토토 커뮤니티지원 세 가지 접근 방식으로 현지화 :
운영 체제의 로케일 기능 사용 로케일 별 콜레이션 순서, 번호 형식을 제공합니다. 번역 된 메시지 및 기타 측면.
명시 적 다중 바이트 문자 세트 사용토토 커뮤니티지원할 서버 더 많은 문자가 필요한 언어 단일 바이트, 그리고 그 사이의 문자 세트를 제공합니다 클라이언트 및 서버. 지원되는 문자 세트의 수는 다음과 같습니다 서버가 컴파일 된 시점에서 수정되고 내부 문자열 비교와 같은 작업에는 확장이 필요합니다 각 캐릭터는 32 비트 단어로.
단일 바이트 문자 Recoding이 더 많은 것을 제공합니다 다중이지만 단일 바이트 사용자를위한 가벼운 솔루션 캐릭터 세트.
로케일지원을 말합니다 문화적 선호에 관한 응용 프로그램 알파벳, 정렬, 번호 형식 등토토 커뮤니티표준 ISO C 및 사용posix같은 로케일 시설 서버 운영 체제에서 제공합니다. 추가 정보는 귀하의 시스템 문서를 참조하십시오.
로케일 지원은 자동으로 초기화됩니다
데이터베이스 클러스터는를 사용하여 작성됩니다.initdb. initdb의지
로케일 설정으로 데이터베이스 클러스터를 초기화하십시오
실행 환경; 시스템이 이미 설정되어있는 경우
데이터베이스 클러스터에서 원하는 로케일을 사용하려면
당신이해야 할 다른 일은 없습니다. 사용하려면 a
다른 로케일 (또는 어떤 로케일이 당신의
시스템이 설정되어), 당신은 말할 수 있습니다initdb정확히 어떤 로케일을 원하는지
옵션-로케일
. 예를 들어:
$initdb -locale = sv_se
이 예제는 로케일을 스웨덴어로 설정합니다 (SV14297_14322SE). 다른 가능성은en_us(U.S. English) 및FR_CA(캐나다, 프랑스어). 둘 이상 문자 세트는 로케일에 유용 할 수 있습니다. 사양은 다음과 같습니다.CS_CZ.ISO8859-2. 어떤 지역을 사용할 수 있는지 시스템의 이름 아래에서 제공된 내용에 따라 운영 체제 공급 업체 및 설치된 내용.
때로는 여러 규칙을 혼합하는 것이 유용합니다 예를 들어 로케일 (예 : 미국 콜레이션 규칙)이지만 스페인 메시지를 사용합니다. 이를 지원하기 위해 일련의 로케일 하위 범주가 존재합니다. 현지화 규칙의 특정 측면 만 통제하십시오.
lc_collate | 문자열 정렬 주문 |
LC_CTYPE | 문자 분류 (문자 란 무엇입니까? 상위 상위 동등한?) |
lc_messages | 메시지 언어 |
lc_monetary | 통화 지식 |
lc_numeric | 숫자 형식 |
LC_TIME | 날짜와 시간의 형식 |
시스템이 로케일이없는 것처럼 행동하기를 원한다면 지원, 특별 로케일 사용C또는posix.
일부 로케일 카테고리의 특성은 그 가치가 있다는 것입니다. 데이터베이스 클러스터의 수명을 위해 고정해야합니다. 저것 IS, ONEinitdb실행할 수 없습니다 더 이상 변경하십시오.LC_COLLATEandLC_CTYPE해당 범주입니다. 그들 색인의 정렬 순서에 영향을 미치므로 고정 상태로 유지해야합니다. 또는 텍스트 열의 인덱스가 손상됩니다.토토 커뮤니티기록을 통해이를 시행합니다 의 값LC_COLLATEandLC_CTYPEinitdb. 서버는 자동으로이를 채택합니다 시작했을 때 두 가지 값.
다른 로케일 범주는 원하는대로 변경할 수 있습니다 런타임을 설정하여 서버가 시작될 때마다 로케일과 같은 이름을 가진 구성 변수 카테고리 (참조젠 토토 : 문서 :자세한 내용). 에 의해 선택된 기본값initdb는 실제로 만 기록됩니다 구성 파일토토 커뮤니티.conf서버가 시작될 때 기본값으로 사용합니다. 당신이 에서 할당 삭제토토 커뮤니티.conf그러면 서버가 상속됩니다 실행 환경의 설정.
Note that the locale behavior of the server is determined 서버가 보는 환경 변수에 의해 모든 고객의 환경. 따라서 구성하도록주의하십시오 서버를 시작하기 전에 올바른 로케일 설정. 에이 이것의 결과는 클라이언트와 서버가 설정된 경우 다른 로케일에 메시지가 다르게 나타날 수 있습니다 출발 한 위치에 따라 언어.
참고 :우리가 로케일을 물려받는 것에 대해 말할 때 실행 환경에서 이것은 다음을 의미합니다 대부분의 운영 체제 : 주어진 로케일 카테고리의 경우 다음 환경 변수 인 Collation을 말하십시오 하나가 설정 될 때 까지이 순서대로 상담합니다.LC_ALL, LC_COLLATE(에 해당하는 변수 각각의 범주),Lang. 만약에 이러한 환경 변수 중 어느 것도 설정되지 않습니다 로케일의 기본값C.
일부 메시지 현지화 라이브러리도 환경 변수언어목적을 위해 다른 모든 로케일 설정을 무시합니다 메시지 언어를 설정하는 것. 의심스러운 경우 제발 운영 체제의 문서를 참조하십시오 특히getText매뉴얼 페이지, 자세한 정보.
사용자가 선호하는 메시지로 변환 된 메시지를 활성화합니다
언어,--enable-nls
옵션
사용해야합니다. 이 옵션은 다른 로케일과 무관합니다
지원하다.
특히 다음과 같은 로케일 지원 영향 특징:
Locale 지원을 사용하는 유일한 심각한 단점토토 커뮤니티속도입니다. 그래서 실제로 필요한 경우에만 로케일을 사용하십시오. 주목해야합니다 특히 비 C 로케일을 선택하면 색인이 비활성화됩니다 에 대한 최적화좋아요and~운영자는 거대 할 수 있습니다 그것들을 사용하는 검색 속도의 차이 연산자.
설명에도 불구하고 로케일 지원이 작동하지 않는 경우 위에서, 운영 체제의 로케일 지원을 확인하십시오. 올바르게 구성됩니다. 주어진 로케일이 있는지 확인합니다 사용할 수있는 설치 및 기능Perl예를 들어. Perl도 지원했습니다 로케일과 로케일이 부러진 경우Perl -v다음과 같이 불평 할 것입니다 :
$ 내보내기 lc_ctype = 'not_exist' $ Perl -v Perl : 경고 : 로케일 설정에 실패했습니다. Perl : 경고 : 로케일 설정을 확인하십시오. lc_all = (unset), lc_ctype = "not_exist", lang = (unset) 시스템에 지원 및 설치됩니다. Perl : 경고 : 표준 로케일 ( "C")로 돌아 가기.
로케일 파일이 올바른 위치에 있는지 확인하십시오. 가능한 위치에는 다음이 포함됩니다./usr/lib/locale(Linux, Solaris),/usr/share/locale(Linux),/usr/lib/nls/loc(Dux 4.0). Locale Man 페이지를 확인하십시오 확실하지 않은 경우 시스템입니다.
확인토토 커뮤니티is 실제로 당신이 생각하는 로케일을 사용합니다.LC_COLLATEandLC_CTYPE설정이 결정됩니다initdb시간을 변경할 수 없습니다 반복하지 않고initdb. 를 포함한 기타 로케일 설정lc_messages및lc_monetary환경에 의해 결정됩니다 우체국 장은 시작되었으며 간단한 포스트 마스터 재시작. 를 확인할 수 있습니다.lc_collateandLC_CTYPE이있는 데이터베이스 설정Contrib/PG_CONTROLDATA유틸리티 프로그램.
디렉토리src/test/locale테스트 스위트를 포함합니다토토 커뮤니티'S Locale Support.
서버 측 오류를 처리하는 클라이언트 응용 프로그램 오류 메시지의 텍스트를 구문 분석하는 것은 분명히 서버의 메시지가 다를 때의 문제 언어. 그러한 애플리케이션을 작성하는 경우 필요합니다 이 상황에 대처할 계획을 세우십시오. 임베디드 SQL 인터페이스 (ECPG)도 있습니다 이 문제의 영향을받습니다. 현재 권장됩니다 와 인터페이스하는 서버ECPG응용 프로그램은 보내도록 구성됩니다 영어로 된 메시지.
메시지 변환 카탈로그 유지하려면 필요합니다 보고 싶어하는 많은 자원 봉사자들의 지속적인 노력토토 커뮤니티선호하는 언어. 당신의 언어로 된 메시지가 있다면 현재 사용 가능하거나 완전히 번역되지 않으면 도움이됩니다 감사하겠습니다. 당신이 도와주고 싶다면를 참조하십시오.개발자 가이드또는 개발자의 메일 링리스트.