2011-03-14 4 views
2

소형 임베디드 시스템을위한 최소 gettext 구현이 있습니까? 내 응용 프로그램을 몇 가지 다른 언어로 번역해야합니다. 응용 프로그램은 FreeRTOS 및 최소한의 libc가있는 50MHz ARM7 CPU에서 실행되지만 파일 시스템은 없습니다. GNU gettext 도구를 살펴 보았지만 libintl을 내 플랫폼에 이식하는 작업은 다소 어려워 보입니다. 어떤 아이디어?gettext?

답변

5

로컬라이제이션은 임베디드 시스템에서 큰 고통이 될 수 있습니다. 먼저 고려해야 할 몇 가지 사항이 있습니다. 번역 된 언어에 대체 문자 집합이 필요합니까? 텍스트를 그래픽 디스플레이 또는 직렬 콘솔과 같은 것으로 표시하고 있습니까?

번역 된 언어 집합이 상대적으로 적고 텍스트 문자열 집합이 잘 정의되어있는 경우 완전한 번역 라이브러리를 피할 수 있습니다. 필자는 일련의 언어 별 문자열 테이블을 사용하는 임베디드 제품을 상속 받았다. 각 텍스트 요소는 테이블에 위치하므로 특정 번역 된 텍스트는 언어, 요소별로 2D 테이블에서 조회 할 수 있습니다. (이 테이블은이 응용 프로그램의 ROM에 저장되어 있습니다.)

이 경로를 사용하는 경우 고려해야 할 여러 가지 문제가 있습니다. 일부 언어는 영어보다 간결하게 내용을 표현할 수 있습니다. 독일어가 좋은 예입니다. 간단한 구는 문장과 비슷한 길이를 가질 수 있습니다. 결과적으로 한 텍스트 요소가 언어마다 언어의 길이가 크게 다를 경우를 대비해야합니다. 상속 된 응용 프로그램에서이 작업은 텍스트 요소가 둘 이상의 "줄"을 가질 수 있도록 테이블을 3D로 확장하여 수행되었습니다. 물론 텍스트 레이아웃 (약어, 문장 길이, 페이지 매김 등)도 이와 같이 확장됩니다.

ROM 공간이 제한되어 있으면 번역 된 발췌 문장을 고려한 다음 필요에 따라 붙여 넣을 수 있습니다. 소위 문자열 통합 접근법은 원하는 현지화 된 구문이 서투른 부분으로 번역 될 수 있기 때문에 까다로울 수 있습니다. 즉, 번역 된 텍스트 미리보기를 함께 쓸모 없게 붙여 넣으면 "Engrish"를 준비하십시오. Babelfish, 그 외 여러분, 도울 수있다 - 그러나 방위는 원어민 에의 한 최종 제품의 좋은 국내 검토이다. (주 : 원어민이 "평균"방언을 나타내야합니다.)

1

LCD를 운전한다면 EasyGui - www.easygui.com을 살펴볼 가치가 있습니다. 번역 모듈이있어 정말 편리합니다. 번역을 관리합니다.

PC에서 디스플레이 레이아웃을보고 텍스트를 할당 된 공간에 맞는지 확인하면서 언어를 변경할 수 있습니다.

번역 추가 기능이있어서 번역자에게 보낼 수있어 다양한 언어를 볼 수 있으며 화면에서 어떻게 작동하는지 확인할 수 있습니다.