이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 55.2.사설 스포츠 토토 사이트 사이트 위해버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

​​46.2. 스포츠 토토 사이트래머를 위해

46.2.1. 역학

이 섹션에서는 모국어 구현 방법을 설명합니다 의 일부인 스포츠 토토 사이트램 또는 도서관에서의 지원PostgreSQL분포. 현재 C 스포츠 토토 사이트램에만 적용됩니다.

스포츠 토토 사이트램에 NLS 지원 추가

  1. 이 코드를의 시작 시퀀스에 삽입하십시오 스포츠 토토 사이트램:

    #ifdef enable_nls
    #include <locale.h
    #endif
    
    ...
    
    #ifdef enable_nls
    setLocale (lc_all, "");
    BindTextDomain ( "Progname", LocalEdir);
    TextDomain ( "Progname");
    #endif

    (Prognamecan 실제로 자유롭게 선택됩니다.)

  2. 번역 후보 인 메시지가 어디에 있든 발견된다, 전화getText ()삽입해야합니다. 예 :

    fprintf (stderr, "panic level %d \ n", lvl);

    로 변경됩니다

    fprintf (stderr, getText ( "panic level %d \ n"), lvl);

    (getText는 NO-OP로 정의됩니다 NLS가 구성되지 않은 경우.)

    이것은 많은 혼란을 더하는 경향이있을 수 있습니다. 하나의 일반적인 바로 가기는 사용하는 것입니다

    #define _ (x) getText (x)

    스포츠 토토 사이트램이 많은 경우 다른 솔루션이 가능합니다 하나 또는 몇 가지 기능을 통한 의사 소통의 처럼Ereport ()백엔드. 그런 다음이 기능을 호출합니다getText내부적으로 모든 입력 문자열.

  3. 파일 추가nls.mkin 프로그램 소스가있는 디렉토리. 이 파일이 될 것입니다 Makefile로 읽으십시오. 다음 변수 할당 여기에 만들어야합니다 :

    catalog_name

    스포츠 토토 사이트램 이름,TextDomain ()전화.

    avail_languages

    제공된 번역 목록 - 처음에는 비어 있는.

    getText_files

    번역 가능한 문자열이 포함 된 파일 목록, 즉, 표시된getText또는 대안 해결책. 결국에는 거의 모든 것이 포함될 것입니다 스포츠 토토 사이트램의 소스 파일. 이 목록도 가져 오면 당신은 먼저 만들 수 있습니다"파일"a+그리고 두 번째 단어는 파일입니다 줄 당 하나의 파일 이름을 포함합니다.

    getText_triggers

    메시지 카탈로그를 생성하는 도구 일하는 번역가는 어떤 기능을 알아야합니다 통화에는 번역 가능한 문자열이 포함되어 있습니다. 기본적으로 오직getText ()전화 알려져 있습니다. 사용한 경우_또는 필요한 기타 식별자 여기에 나열합니다. 번역 가능한 문자열 인 경우 첫 번째 주장이 아니라 항목은 형태func : 2(용 두 번째 논쟁).

빌드 시스템은 자동으로 건물을 처리합니다 메시지 카탈로그 설치.

46.2.2. 메시지 작성 가이드 라인

다음은 메시지 작성에 대한 몇 가지 지침이 있습니다 쉽게 번역 할 수 있습니다.

  • 런타임에 문장을 구성하지 마십시오.

    printf ( "파일은 %s. \ n", flag? "복사": "제거";

    문장 내의 단어 순서가 다를 수 있습니다. 다른 언어. 또한 전화를 기억하더라도 getText () 각 조각에서 조각이 번역되지 않을 수 있습니다 별도로. 작은 코드를 복제하는 것이 좋습니다 번역 될 각 메시지는 일관된 전체입니다. 숫자, 파일 이름 및 같은 런타임 변수 만 런 타임에 메시지 텍스트에 삽입해야합니다.

  • 비슷한 이유로 작동하지 않습니다 :

    printf ( "복사 된 %d 파일 %s", n, n! = 1? "s": "");

    복수형이 어떻게 형성되는지 가정하기 때문입니다. 당신이 이렇게 해결할 수 있다고 생각했습니다

    if (n == 1)
        printf ( "복사 1 파일");
    또 다른
        printf ( "Coveried %d 파일", n) :

    실망하십시오. 일부 언어에는 2 개가 넘습니다 몇 가지 독특한 규칙이있는 형태. 우리는 해결책이있을 수 있습니다 이것은 미래에 있지만 지금은 문제를 피하는 것이 가장 좋습니다. 전부. 당신은 쓸 수 있습니다 :

    printf ( "복사 된 파일 수 : %d", n);
  • 번역기에게 무언가를 전달하려면, 메시지가 어떻게 일치하는지에 대한 것과 같은 다른 출력은 문자열의 발생에 앞서 로 시작하는 의견번역기, 예 :

    /* Translator :이 메시지는 그 모습이 아닙니다. */

    이 주석은 메시지 카탈로그 파일에 복사됩니다 번역가가 그들을 볼 수 있도록.