Windows Forms 응용 프로그램 프로젝트가 있으며 기본 폼에는 메뉴 모음이 있습니다. 이 메뉴 스트립의 일부 장소에서 다양한 언어를 선택할 수 있습니다. 예를 들어 사용자가 "영어"를 선택하면이 기본 양식 (및 향후 다른 언어)의 모든 내용이 영어로 바뀌어야합니다. 전환 언어 (cultureinfo/globalization)는 ToolStripMenuItems에 영향을주지 않습니다.
나는이 튜토리얼에 나섭니다 : click이 라벨 등으로 잘 작동을하지만, 모든 도구 스트립 메뉴 항목이 작동하지 않습니다. 그들은 단지 기본 텍스트를 유지합니다.
private void ChangeLanguage(string lang)
{
foreach (Control c in this.Controls)
{
ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1));
resources.ApplyResources(c, c.Name, new CultureInfo(lang));
ComponentResourceManager res2 = new ComponentResourceManager(typeof(ToolStripMenuItem));
res2.ApplyResources(c, c.Name, new CultureInfo(lang));
}
}
을하지만 실패하고 말한다 :
은 내가ChangeLanguage
방법이 개 더 라인을 추가하려고
이
지정된 문화 또는 중립 문화권에 적합한 리소스를 찾을 수 없습니다. 컴파일시 "System.Windows.Forms.ToolStripMenuItem.resources"가 올바르게 임베드되거나 어셈블리 "System.Windows.Forms"에 링크되었는지 또는 필요한 모든 위성 어셈블리가로드 가능하고 완전히 서명되었는지 확인하십시오.
진행 방법 - 확실한 도움을 주셨습니다.
감사합니다. 일부는 작동합니다. 이것은 메뉴 스트립의 "머리글"이 아닌 메뉴 스트립의 드롭 다운 항목의 언어 만 변경하거나 첫 번째 드롭 다운 메뉴 안에 드롭 다운 메뉴가 추가로있는 경우에만 변경됩니다. – eightx2
이것이 제가 말한 것입니다 [재귀 적 접근] (http://www.dotnetperls.com/recursion)이 될 것입니다. 두 번째 foreach 루프 대신 내 편집에서 메서드를 호출하십시오. 그러면 이제 메뉴 구조의 모든 레이어가 지역화를 위해 반복됩니다. – dwonisch
고마워, 나는 그 코드가 나를 위해 잘 작동하도록 사용했다. – eightx2