2009-08-11 6 views
2

C#의 응용 프로그램을 만들고 있는데 다국어로 만들고 싶습니다. 모든 클래스 파일에 대해 별도의 리소스 파일을 만들고 둘째로 전체 응용 프로그램에 대해 하나의 공통 리소스 파일을 만드는 두 가지 옵션이 있습니다.C# .NET을 사용하는 다국어 Windows 응용 프로그램

어떤 옵션이 가장 좋으 냐고 확신하지 못해서 누군가 나에게 이것에 관해 조언 해 줄 수 있습니까 ?? 다국어 기능을 수행하는 다른 방법이 있다면 나에게도 알려주십시오.

건배 :) 내 경험에

답변

1

, 한 곳에서 지역화 된 모든 자원을 가지고하는 것이 더 쉽습니다. 종종 응용 프로그램에는 여러 위치에서 사용되는 문자열이 있습니다. 한 곳에서 모든 리소스를 가지고 있다면 반복 된 문자열을 한 번만 번역하면됩니다.

1

IDE에 포함 된 기본 제공 현지화 기능을 사용하는 것을 선호합니다. 까다 롭지 만 일을 끝내게됩니다. 그것은 각 언어에 대해 별도의 DLL을 생성합니다.

UI 문자열이 아닌 경우 고유 한 식별자에 연결된 언어 문자열이있는 모든 언어를 포함하는 단일 XML 파일이 있습니다.

1

저는 Softwarebuero Jollans (http://jollans.com/tiki/tiki-index.php)에서 "다국어 추가 기능"을 사용했습니다. 그것은 꽤 잘 지원되는 상용 제품입니다. Visual Studio의 응용 프로그램에서 Excel 스프레드 시트로 문자열을 내보내 번역 할 수 있으며 스프레드 시트를 응용 프로그램에 다시 가져올 수 있습니다. 그러면 언어가 자동으로 포함 된 리소스로 컴파일됩니다.

1

(필요한 경우) 각 어셈블리에 하나의 리소스 파일을 만듭니다.

리소스 파일에 대한 클래스를 VS에서 만들면 리소스에 컴파일 타임에 안전하게 액세스 할 수 있습니다. (당신은 각 문자열에 대한 속성을 얻는다.) 나는 당신이 Build Action으로 이것을한다고 생각한다. 생성 된 클래스는 내부 클래스입니다. 따라서 리소스는 어셈블리 내에서만 액세스됩니다.

1

하나의 리소스 파일을 사용하고 양식 및 구성 요소가 모두 지역화 가능으로 표시되어 있는지 확인하십시오. 이렇게하면 여러 타사 도구를 사용하여 응용 프로그램을 현지화 할 수 있습니다.

직장에서 Visual Localize를 사용합니다. 번역 후에 텍스트 자원을 내보내고 다시 가져올 수는 없으며 새 텍스트 크기에 맞게 대화 상자의 크기를 조정하거나 다시 정렬 할 수도 있습니다. 예 : 독일어는 영어로 같은 텍스트보다 1.5 시간 길다.

1

gettext를 감싸서 사용했습니다. 긍정적 인 점은 새로운 번역을 추가하면 모든 것이 작동한다는 것입니다. 언어를 즉시 변경할 수 있습니다. 번역자가 편집 할 수있는 간단한 텍스트 파일을 보낼 수 있기 때문에 번역사가 쉽습니다.

아직 프로젝트에 공개하지 않았지만 사람들이 흥미로웠다면 그렇게 할 수 있습니다.

관련 문제