2010-01-25 11 views
1

오류, GUI 등의 모든 하드 코드 된 문자열을 사용하는 응용 프로그램을 수정하기 시작했습니다.이 두 가지 방법을 고려하고 있지만 더 좋은 방법이 있다면 알려 주시기 바랍니다.현지화 모범 사례

- 모든 문자열을 resource (.rc) 파일에 넣으십시오.

- 각 언어에 대해 한 번 파일의 모든 문자열을 정의하십시오. 전 처리기 정의를 사용하여 컴파일 할 문자열을 결정하십시오.

일반적으로이 두 가지 방법 중 어느 것이 선호됩니까?

답변

6

모든 문자열을 리소스 파일에 넣습니다. 일단 그렇게하면 여러 가지 유용한 번역 패키지를 사용할 수 있습니다. 이 패키지가하는 한 가지 유용한 점은 프로그래밍하지 않는 사람이 번역을 완료 할 수 있도록 허용하는 것입니다.

또한 국제화 (i18n)는 많은 주제이며, 고려해야 할 사항이 많이 있음을 기억하십시오. 문자열을 번역하는 것만이 아닙니다. 최소한 웹 검색을 수행하십시오. Windows 용 국제 프로그래밍을 사용하여 Schmitt가 가이드로 책을 읽을 수 있습니다. Microsoft Press의 오래된 책이며 중고 책 서비스를 통해 책을 얻어야했습니다. 가장 현대적인 것들 대부분은. NET 응용 프로그램을 국제화하는 것 같습니다.

프로젝트에 대해 더 많이 알지 못하면 (어떤 소프트웨어인지, 대상 사용자인지, 어떤 조직인지, 어떤 종류의 예산인지, 국제화에 관심이있는 이유 등), 이는 대부분 내가 당신에게 말할 수 있습니다.

+1

+1 이미지가 문화적으로 정확해야하고, 양식을 다시 디자인해야하며, 통화/날짜 형식을 코드 등으로 올바르게 처리해야 할 수도 있습니다. 또한 문자열을 연결하지 마십시오. - 변환기가 변수 값을 출력의 올바른 위치에 삽입 할 수 있도록 String.Format을 사용하십시오. 또한 가능한 한 먼저 국제화의 필요성을 피하십시오 (일반적인 이미지가 전 세계적으로 적용될 수있는 아이콘에 "Stop"이라는 단어를 사용하지 마십시오) –

+0

오른쪽에서 왼쪽으로 쓰는 언어는 잊지 마십시오. - 일부 이미지는 오른쪽에서 왼쪽으로 읽을 때 뒤집을 필요가 있습니다. 특히 텍스트가 인라인 인 경우 –

0

일반적으로 키가 참조하는 문자열을 포함하는 로캘 별 리소스 파일이 표시됩니다. 다양한 로케일에 대해 서로 다른 버전을 컴파일하는 것은 매우 까다로운 솔루션이며 유지 관리의 악몽이 될 것입니다. 리소스 파일을 사용하면 사용자가 대체 로캘을 사용할 수도 있습니다.

0

tr ("")과 같은 형태로 소스에 문자열을 넣는 방법과 다른 도구를 사용하여 변환하는 방법이 있습니다.

모든 툴킷/GUI 라이브러리에서 작동합니다.
변환 할 텍스트와 텍스트를 변경할 수 없습니다 (예 : 프로토콜 문자열 또는 db 키).
소스를 쉽게 읽고 검색 할 수 있으며, IDS_MESSAGE34가 의미하는 것을 조회해야하는 것은 아닙니다.

적어도 Windows/MFC의 리소스 파일에 대한 한 가지 문제점은 대화 상자에서 문자열 테이블을 사용할 수 없다는 것입니다. 따라서 문자열 태그에 텍스트가 있고 대화 상자 섹션에 텍스트가 있으므로 별도로 처리해야합니다.