.Net에서 다국어 프로그램을 만드는 방법에 대한 자습서를 읽었으며 잘 작동하지만 여기서는 런타임에 모든 것을 더 쉽게 만들 수있는 아이디어가 필요합니다. 런타임에 사용자가 언어를 클릭 할 때. 나는 예를 들어 선택 적절한 언어와 문화를 변경합니다런타임에서 언어를 변경하는 응용 프로그램
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
을 한 후 내 양식의 레이아웃의 텍스트를 설정하는 함수 호출 : 그것은 룩업 테이블을 보인다으로
private System.Resources.ResourceManager rm;
fileToolStripMenuItem1.Text = rm.GetString("fileToolStripMenuItem1.Text");
settingsToolStripMenuItem.Text = rm.GetString("settingsToolStripMenuItem.Text");
을 내 프로그램의 각 구성 요소에 대한 텍스트를 설정할 때 .Net이 빌드 한 속성은 해당 속성과 동일합니다. 다시 말해서 "fileToolStripMenuItem1.Text"가 GetString() 함수에 전달되고 결과가 fileToolStripMenuItem1.Text로 설정되어야하므로 어떻게 할 수 있는지 또는 어떤 도구를 사용하여 반복 할 수 있는지 알지 못합니다 rm의 모든 속성에 다음 반사 또는 뭔가 다른 키의 값을 키에 할당하십시오. 예를 들어, "fileToolStripMenuItem1.Text"가 조회 테이블의 키이고 값이 "A"라고 가정하면 어떻게 할 수 있습니까? "fileToolStripMenuItem1.Text"의 값을 fileToolStripMenuItem1.Text에 지정하면
가능한 중복 [어떻게 할 런타임에 WinForms 응용 프로그램의 culture 변경] (http://stackoverflow.com/questions/7556367/how-do-i-i-culture-of-a-winforms-applicati on-at-runtime) –
다른 문제가 생겼습니다. menustrip의 subItem을 변경했지만, ApplyResources 함수에서 menuStrip을 반복하고 subItems를 건너 뜁니다! – Ehsan