이 섹션에서는 모국어 지원을 지원하는 방법에 대해 설명합니다 의 일부인 프로그램 또는 도서관에서postgresql분포. 현재, 그것은 단지입니다 C 프로그램에 적용됩니다.
프로그램에 NLS 지원 추가
이 코드를의 시작 시퀀스에 삽입하십시오 스포츠 토토램:
#ifdef enable_nls #include <locale.h #endif ... #ifdef enable_nls setLocale (lc_all, ""); BindTextDomain ( "Progname", LocalEdir); TextDomain ( "Progname"); #endif
(Prognamecan 실제로 자유롭게 선택됩니다.)
번역 후보 인 메시지가 어디에 있든
발견된다, 전화getText ()
삽입해야합니다. 예 :
fprintf (stderr, "panic level %d \ n", lvl);
fprintf (stderr, getText ( "panic level %d \ n"), lvl);
(getText는 NO-OP로 정의됩니다 NLS가 구성되지 않은 경우.)
이것은 많은 혼란을 더하는 경향이있을 수 있습니다. 하나의 일반적인 바로 가기는
#define _ (x) getText ((x))
스포츠 토토램이 많은 것을하는 경우 다른 솔루션이 가능합니다.
와 같은 하나 또는 몇 가지 기능을 통한 커뮤니케이션elog ()
백엔드에서. 그 다음에
이 기능을 호출합니다getText
내부적으로 모든 입력
값.
파일 추가nls.mk프로그램 소스가있는 디렉토리. 이 파일은 읽습니다 makefile로. 다음 변수 할당이 필요합니다 여기에 만들어 질 :
스포츠 토토램 이름,TextDomain ()
전화.
제공된 번역 목록 - 비어 있습니다 시작.
번역 가능한 문자열이 포함 된 파일 목록,
즉, 표시된getText
또는 대체 솔루션.
결국에는 거의 모든 소스 파일이 포함됩니다
프로그램의. 이 목록이 너무 오래 걸리면 가능합니다
첫 번째"파일"a+두 번째 단어는 a
줄 당 하나의 파일 이름을 포함하는 파일.
메시지 카탈로그를 생성하는 도구
일하는 번역가는 어떤 기능을 알아야합니다
통화에는 번역 가능한 문자열이 포함되어 있습니다. 기본적으로 만getText ()
전화는입니다
알려진. 사용한 경우_
또는
다른 식별자는 여기에 나열해야합니다. 만약
번역 가능한 문자열은 첫 번째 인수가 아닙니다
항목은 양식이어야합니다func : 2(두 번째 인수의 경우).
빌드 시스템은 자동으로 건물을 관리하고 메시지 카탈로그 설치.
메시지 번역을 용이하게하기 위해 여기에 있습니다 가이드 라인 :
게으름으로 런타임에 문장을 구성하지 마십시오. 좋다
printf ( "files where %s. \ n", flag? "복사": "제거";
문장 내의 단어 순서가 다를 수 있습니다. 기타 언어.
비슷한 이유로 작동하지 않습니다 :
printf ( "복사 된 %d 파일 %s", n, n! = 1? "s": "");
복수형이 어떻게 형성되는지 가정하기 때문입니다. 당신이 이렇게 해결할 수 있다고 생각했습니다
if (n == 1) printf ( "복사 1 파일"); 또 다른 printf ( "Coveried %d 파일", n) :
그런 다음 실망하십시오. 일부 언어에는 2 개가 넘습니다 몇 가지 독특한 규칙이있는 형태. 우리는 해결책이있을 수 있습니다 이것은 미래에 있지만 지금은 피하는 것이 가장 좋습니다. 전부. 당신은 쓸 수 있습니다 :
printf ( "복사 된 파일 수 : %d", n);
번역기에게 무언가를 전달하려면, 메시지가 다른 사람과 일치하는 방법에 대한 것과 같은 출력, 문자열의 발생 앞에 댓글이 있습니다. 로 시작합니다번역기, 예 :
/* Translator :이 메시지는 그 모습이 아닙니다. */
이 주석은 메시지 카탈로그 파일에 복사됩니다. 번역가가 그들을 볼 수 있다는 것.
와이즈 토토stgreSQL : 문서 : 7.3 : 모국어 지원 | 홈 | PostgreSQL : 문서 : 7.3 : 토토 꽁 머니 저장소 |
모국어 지원하다 | up | theCVS저장소 |