2012-06-27 2 views
0

기사를 언급하는 주석 뒤에 내 질문을 수정했습니다.C# Forms App Localization

사용자 상호 작용을위한 양식 및 대화 상자/메시지 상자가 포함 된 C# Win 양식 앱이 있습니다. 언어 집합을 현지화하려고합니다.

  • 대부분의 형태는 양식 디자이너와 텍스트를 생성/문자열을 메시지 상자 및 기타 런타임 메시지
  • 문자열 코드에서 온 속성을 통해 설정됩니다. 이이 양식 디자이너 gernerated 코드 이루어집니다 - 나는이 방법을 가리키는 여기에 기사 http://msdn.microsoft.com/en-us/library/y99d1cd3(v=vs.71).aspx

    을 읽고

,

  • 먼저 Visual Studio를 당신을 위해 resouece 파일을 생성하는 것입니다
  • 두 번째는 리소스 파일을 수동으로 추가하고 GetString ("strMessage") 메서드를 사용하여 코드에 액세스하는 것입니다.

내가 생각하는 문제는 desingner가 생성 한 코드에 대해 VS가 자체적으로 리소스 파일을 만드는 첫 번째 승인을 사용해야한다는 것입니다. 런타임 메시지와 mssage 상자를 현지화하려면 두 번째 방법을 사용해야합니다. 즉, 수동으로 리소스 파일을 추가해야합니다.

각 언어에 대한 두 세트의 리소스 파일로 끝납니다. 하나의 메서드 만 사용하고 두 형식의 문자열을 한 곳에서 현지화 할 수 있습니까? 두 가지 기술의 조합을 사용을 중지 아무것도 없다

감사합니다,

+0

-1/닫기 : 기본 [검색] (http://www.bing.com/search?q=C%23+Forms+App+Localization)을 사용하면 바로 [연습] (http : // msdn.microsoft.com/en-us/library/y99d1cd3%28v=vs.100%29.aspx). 구체적인 질문을 읽고 다시 찾아주십시오. –

+0

@AlexeiLevenkov 이전에이 기사를 읽었습니다. 더 구체적인 질문이 업데이트되었습니다. – Ahmed

+0

Satellite 어셈블리를 살펴 봅니다. http : //www.codeproject.com/Articles/11036/Satellite-Assembly-Multi-languages ​​ – tsells

답변

0

불행히도 (쉽게) 케이크를 먹을 수는 없습니다. MSFT가 설계 한 것입니다. VS 폼 디자이너에서 생성 한 코드 숨김 ".resx"파일에 메시지 문자열을 추가 할 수 없습니다. VSX 양식 디자이너에서 생성 한 코드는 ".resx"파일이 변경 될 때마다 VS에서 다시 생성되기 때문에 메시지 양식 문자열을 추가 할 수 없습니다 (메시지 문자열 덮어 쓰기) . VS는 (VS에서 ".resx"편집기를 사용하여)이 파일에 자신의 리소스를 추가하려고하면 경고합니다. 그리고 그 반대는 사실이 아닙니다. 즉, 수동으로 생성 된 ".resx"파일에 코드 숨김 ".resx"리소스를 추가 할 수 없습니다 (엄청난 어려움없이). 상황은 그렇게 나쁘지 않습니다. 이 방법으로 수년간 해왔고 효과가 있습니다. 개인적으로 모든 리소스에 대한 중앙 저장소를 선호하지만 모든 시스템에는 장단점이 있습니다. BTW, 메시지 문자열 및 ".resx"파일 (수동으로 직접 추가 한 파일)의 모든 리소스에 대해 "강력한 형식의"리소스를 사용해야합니다. "GetString()"IOW (또는 찾을 수있는 다른 함수)를 사용하지 마십시오. 강력한 형식의 리소스가 훨씬 쉽습니다. Google은 세부 정보를 얻고이를 사용하는 방법을 배우고 난 후 Dmytro Kryvko가 작성한 강력한 형식의 리소스 생성기 (VS에 대한 유용한 도구)를 검색합니다.

+0

다음은 위에서 언급 한 강력한 형식의 리소스 생성기에 대한 링크입니다. http://www.codeproject.com/Articles/13830/Extended-Strongly-Typed-Resource-Generator –

0

. 1 단계를 진행하여 모든 언어 리소스 파일을 만든 다음 해당 파일에 고유 한 문자열을 추가하십시오.