이 문서는 지원되지 않는 토토 커뮤니티 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 23 장. 메이저 토토 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

제7장. 토토 커뮤니티

다음에서 사용 가능한 현지화 기능을 설명합니다. 관리자의 관점입니다.

포스트그레SQL지원 세 가지 접근 방식을 사용한 현지화:

  • 운영 체제의 로캘 기능을 사용하여 다음 작업을 수행합니다. 로케일별 조합 순서, 숫자 형식 지정, 번역된 메시지 및 기타 측면.

  • 다음에 정의된 명시적인 다중 바이트 문자 집합 사용포스트그레SQL지원할 서버 언어에 맞는 것보다 더 많은 문자가 필요한 언어 단일 바이트 사이에 문자 세트 기록을 제공합니다. 클라이언트와 서버. 지원되는 문자 세트 수는 다음과 같습니다. 서버가 컴파일될 때 고정되며 내부적으로는 문자열 비교와 같은 작업에는 확장이 필요합니다. 각 문자를 32비트 단어로 변환합니다.

  • 단일 바이트 문자 인코딩은 더 많은 정보를 제공합니다. 다중이지만 단일 바이트 사용자를 위한 경량 솔루션 문자 집합.

7.1. 로케일 지원

로케일지원은 문화적 선호를 존중하는 응용 프로그램 알파벳, 정렬, 숫자 서식 등토토 커뮤니티표준 ISO C를 사용하며POSIX-유사 로케일 시설 서버 운영 체제에서 제공합니다. 추가로 자세한 내용은 시스템 설명서를 참조하세요.

7.1.1. 개요

로케일 지원은 다음과 같은 경우 자동으로 초기화됩니다. 데이터베이스 클러스터는 다음을 사용하여 생성됩니다.initdb. initdb할 것이다 로케일 설정으로 데이터베이스 클러스터를 초기화합니다. 실행 환경; 시스템이 이미 설정되어 있다면 데이터베이스 클러스터에서 원하는 로케일을 사용하려면 당신이해야 할 일은 아무것도 없습니다. 당신이 다른 로케일(또는 어떤 로케일을 사용하는지 확실하지 않음) 시스템이)으로 설정되어 있음을 알 수 있습니다.initdb정확히 어떤 로케일을 원하는지 옵션--로케일. 예를 들면:

$ initdb --locale=sv_SE

이 예는 로케일을 스웨덴어로 설정합니다(sv) 스웨덴에서 사용됨(SE). 다른 가능성은 다음과 같습니다.en_US(미국 영어) 및fr_CA(캐나다, 프랑스어). 1개 이상인 경우 문자 집합은 로케일에 유용할 수 있습니다. 사양은 다음과 같습니다.cs_CZ.ISO8859-2. 사용 가능한 로케일 시스템의 이름은 제공된 내용에 따라 다릅니다. 운영 체제 공급업체 및 설치된 항목에 따라 결정됩니다.

때때로 여러 규칙을 혼합하는 것이 유용합니다. 예를 들어 로케일은 미국 대조 규칙을 사용하지만 스페인어 메시지를 사용합니다. 이를 지원하기 위해 다음과 같은 로캘 하위 범주 집합이 존재합니다. 현지화 규칙의 특정 측면만 제어합니다.

LC_COLLATE 문자열 정렬 순서
LC_CTYPE 문자 분류(문자란 무엇입니까? 대문자에 해당합니까?)
LC_MESSAGES 메시지 언어
LC_MONETARY 통화 금액 형식
LC_NUMERIC 숫자 형식 지정
LC_TIME 날짜 및 시간 형식
범주 이름은 다음의 이름으로 번역됩니다.initdb로케일 선택을 무시하는 옵션 특정 카테고리에 대해. 예를 들어 로케일을 다음으로 설정하려면 프랑스어(캐나다)이지만 통화 형식 지정에 미국 규칙을 사용합니다. 사용initdb --locale=fr_CA --lc-monetary=en_US.

시스템이 로케일이 없는 것처럼 작동하도록 하려면 지원하려면 특수 로케일을 사용하세요.C또는POSIX.

일부 로케일 카테고리의 특성은 해당 값이 데이터베이스 클러스터의 수명 동안 수정되어야 합니다. 그 한번은요initdb실행되었으므로 실행할 수 없습니다. 더 이상 바꾸세요.LC_COLLATELC_CTYPE이 카테고리입니다. 그들은 인덱스의 정렬 순서에 영향을 미치므로 고정된 상태로 유지해야 합니다. 그렇지 않으면 텍스트 열의 인덱스가 손상됩니다.포스트그레SQL기록을 통해 이를 시행합니다. 의 값LC_COLLATE그리고LC_CTYPE다음에 의해 표시됨initdb. 서버는 자동으로 이를 채택합니다. 시작될 때 두 개의 값.

다른 로케일 카테고리는 원하는 대로 변경할 수 있습니다 런타임을 설정하여 서버가 시작될 때마다 로캘과 이름이 같은 구성 변수 카테고리(참조젠 토토 : 문서 : 7.3 : 런타임 구성자세한 내용). 에 의해 선택되는 기본값initdb실제로는 구성 파일토토 커뮤니티.conf서버가 시작될 때 기본값으로 사용됩니다. 당신이 에서 할당을 삭제하세요.토토 커뮤니티.conf그러면 서버가 상속받게 됩니다 실행 환경의 설정입니다.

서버의 로케일 동작이 결정된다는 점에 유의하세요 서버가 아닌 서버가 보는 환경 변수에 의해 어떤 클라이언트의 환경. 따라서 구성에 주의하세요. 서버를 시작하기 전에 올바른 로케일 설정을 수행하십시오. 에이 결과적으로 클라이언트와 서버가 설정되면 로케일에 따라 메시지가 다른 언어로 나타날 수 있습니다. 언어는 원산지에 따라 다릅니다.

참고:로케일 상속에 대해 말할 때 실행 환경에서 이는 다음을 의미합니다. 대부분의 운영 체제: 특정 로캘 범주에 대해 데이터 정렬, 다음 환경 변수를 말해보세요. 하나가 설정될 때까지 다음 순서로 참조됩니다.LC_ALL, LC_COLLATE(다음에 해당하는 변수 해당 카테고리),. 만약에 이러한 환경 변수 중 어느 것도 설정되지 않은 경우 로케일 기본값은C.

일부 메시지 토토 커뮤니티 라이브러리는 또한 환경 변수언어목적에 따라 다른 모든 로캘 설정을 재정의합니다. 메시지 언어 설정. 의심스러우면, 제발 운영 체제 설명서를 참조하십시오. 특히gettext매뉴얼 페이지, 자세한 내용은.

사용자가 선호하는 언어로 번역된 메시지를 활성화하려면 언어,--enable-nls옵션 사용해야 합니다. 이 옵션은 다른 로케일과 독립적입니다. 지원합니다.

7.1.2. 이점

로캘 지원은 특히 다음에 영향을 미칩니다. 기능:

  • 정렬 순서주문 기준쿼리.

  • to_char가족 기능

  • 좋아요그리고~패턴 일치 연산자

로케일 지원 사용의 유일한 심각한 단점포스트그레SQL는 속도입니다. 그래서 실제로 필요한 경우에만 로케일을 사용하십시오. 주목해야 할 점 특히 C가 아닌 로케일을 선택하면 색인이 비활성화됩니다. 최적화좋아요그리고~연산자, 이는 거대한 이를 사용한 검색 속도의 차이 연산자.

7.1.3. 문제

설명에도 불구하고 로캘 지원이 작동하지 않는 경우 위에서 운영 체제의 로캘 지원을 확인하세요. 올바르게 구성되었습니다. 특정 로캘이 다음과 같은지 확인하려면 설치되어 있고 사용할 수 있습니다.21615_21698perl -v다음과 같이 불평할 것입니다:

$ LC_CTYPE='not_exist' 내보내기
$ perl -v
perl: 경고: 로캘 설정에 실패했습니다.
perl: 경고: 로케일 설정을 확인하십시오:
LC_ALL = (설정되지 않음),
LC_CTYPE = "존재하지 않음",
LANG = (설정되지 않음)
지원되며 시스템에 설치됩니다.
perl: 경고: 표준 로케일("C")로 대체됩니다.

로케일 파일이 올바른 위치에 있는지 확인하세요. 가능한 위치는 다음과 같습니다:/usr/lib/로케일 (리눅스, 솔라리스), /usr/share/locale (리눅스), /usr/lib/nls/loc (DUX 4.0). 로케일 매뉴얼 페이지를 확인하십시오. 확실하지 않은 경우 시스템을 사용하세요.

확인해 보세요토토 커뮤니티입니다 실제로 당신이 생각하는 로케일을 사용합니다.LC_COLLATE그리고LC_CTYPE설정은 다음에서 결정됩니다.initdb시간이며 변경할 수 없습니다. 반복하지 않고initdb. 다음을 포함한 기타 로케일 설정LC_MESSAGES그리고LC_MONETARY환경에 따라 결정됩니다. 포스트마스터는 에서 시작되고 다음으로 변경될 수 있습니다. 간단한 포스트마스터 재시작. 를 확인할 수 있습니다.LC_COLLATE그리고LC_CTYPE다음을 사용한 데이터베이스 설정contrib/pg_controldata유틸리티 프로그램.

디렉토리src/테스트/로케일다음에 대한 테스트 스위트가 포함되어 있습니다.토토 커뮤니티의 로캘 지원.

다음을 통해 서버측 오류를 처리하는 클라이언트 응용프로그램 오류 메시지의 텍스트를 구문 분석하면 분명히 서버의 메시지가 다른 위치에 있을 때 발생하는 문제 언어. 그러한 응용 프로그램을 만들려면 다음을 수행해야 합니다. 이 상황에 대처할 계획을 세우십시오. 임베디드 SQL 인터페이스(ecpg)도 이 문제의 영향을 받습니다. 현재 권장되는 사항은 다음과 같습니다. 서버와 인터페이스함ecpg응용 프로그램을 보내도록 구성되었습니다. 영어로 된 메시지입니다.

메시지 번역 카탈로그를 유지하려면 다음이 필요합니다. 보고 싶어하는 많은 자원봉사자들의 지속적인 노력토토 커뮤니티말해 보세요 선호하는 언어는 글쎄요. 귀하의 언어로 된 메시지가 현재 사용할 수 없거나 완전히 번역되지 않았습니다. 귀하의 도움 감사하겠습니다. 도움을 원하시면 다음을 참조하세요.개발자 가이드또는 다음 주소로 편지를 보내세요. 개발자 메일링 리스트입니다.