2025 년 7 월 17 일 : | 윈 토토 : 윈 토토 18 베타

24.1. 로케일 지원#

로케일지원은 알파벳, 정렬, 숫자 형식 등에 관한 문화적 선호도에 관한 응용 프로그램을 말합니다.토토표준 ISO C 및 사용posix서버 운영 체제가 제공하는 로케일 시설. 추가 정보는 시스템 문서를 참조하십시오.

24.1.1. 개요#

데이터베이스 클러스터를 사용하여 생성 될 때 로케일 지원이 자동으로 초기화됩니다initdb. initdb기본적으로 실행 환경의 로케일 설정으로 데이터베이스 클러스터를 초기화하므로 시스템이 이미 데이터베이스 클러스터에서 원하는 로케일을 사용하도록 설정된 경우 다른 일이 필요하지 않습니다. 다른 로케일을 사용하려면 (또는 시스템이 설정되었는지 확실하지 않으면 지시 할 수 있습니다initdb정확히 어떤 로케일을 지정하여 사용할 로케일-로케일옵션. 예를 들어:

initdb -로케일 = sv_se

UNIX 시스템 의이 예제는 로케일을 스웨덴어로 설정합니다 (SV) 스웨덴에서 사용 된대로 (SE). 다른 가능성은 다음과 같습니다.en_us(U.S. E토토lish) 및fr_ca(프랑스 캐나다). 로케일에 둘 이상의 문자 세트를 사용할 수 있다면 사양이 양식을 취할 수 있습니다La토토uage_Territory.codeset. 예를 들어,fr_be.utf-8벨기에에서 사용 된 프랑스어 (FR)를 대표합니다.UTF-8캐릭터 세트 인코딩.

운영 체제 공급 업체가 제공 한 내용 및 설치 한 내용에 따라 이름으로 시스템에서 사용할 수있는 로케일. 대부분의 UNIX 시스템에서 명령로케일 -A사용 가능한 로케일 목록을 제공합니다. Windows는와 같은 더 많은 장황한 로케일 이름을 사용합니다.german_germany또는Swedish_sweden.1252그러나 원칙은 동일합니다.

때로는 여러 지역의 규칙을 혼합하는 것이 유용합니다. 예를 들어 영어 통합 규칙을 사용하지만 스페인 메시지를 사용합니다. 이를 뒷받침하기 위해 현지화 규칙의 특정 측면 만 제어하는 일련의 로케일 하위 범주가 존재합니다.

LC_COLLATE 문자열 정렬 주문
LC_CTYPE 캐릭터 분류 (문자 란 무엇입니까? 상위 상위 동등한가?)
lc_messages 메시지 언어
lc_monetary 통화 지식
lc_numeric 숫자 형식
LC_TIME 날짜와 시간의 형식

카테고리 이름은의 이름으로 번역됩니다initdb특정 범주에 대한 로케일 선택을 무시할 수있는 옵션. 예를 들어, 로케일을 프랑스 캐나다인으로 설정하지만 통화 서식에 미국 규칙을 사용하려면 사용initdb ---locale = fr_ca ---lc-monetary = en_us.

시스템이 로케일 지원이없는 것처럼 행동하기를 원한다면 특별 로케일 이름을 사용하십시오C또는 동등하게posix.

일부 로케일 범주에는 데이터베이스가 생성 될 때 값이 고정되어 있어야합니다. 다른 데이터베이스에 대해 다른 설정을 사용할 수 있지만 데이터베이스가 생성되면 해당 데이터베이스에 대해 더 이상 변경할 수 없습니다.LC_COLLATEandLC_CTYPE이 범주입니다. 인덱스의 정렬 순서에 영향을 미치므로 고정 된 상태로 유지해야합니다. 그렇지 않으면 텍스트 열의 인덱스가 손상 될 수 있습니다. (그러나 콜라이트를 사용 하여이 제한을 완화 할 수 있습니다.섹션 24.2.)이 범주의 기본값은에 결정됩니다.initdb실행 중이며 해당 값은 새 데이터베이스를 작성할 때 사용됩니다.데이터베이스 생성명령.

다른 로케일 범주는 로케일 범주와 동일한 이름을 가진 서버 구성 매개 변수를 설정하여 원하는 때마다 변경할 수 있습니다 (참조섹션 20.11.2자세한 내용). 선택한 값initdb실제로 구성 파일에만 기록되어 있습니다토토.conf서버가 시작될 때 기본값으로 사용합니다. 이 과제를 제거하면토토.conf그러면 서버는 실행 환경에서 설정을 상속합니다.

서버의 로케일 동작은 클라이언트의 환경이 아니라 서버가 보이는 환경 변수에 의해 결정됩니다. 따라서 서버를 시작하기 전에 올바른 로케일 설정을 구성하도록주의하십시오. 그 결과 클라이언트와 서버가 다른 로컬로 설정되면 메시지가 출발 한 위치에 따라 다른 언어로 표시 될 수 있습니다.

note

실행 환경에서 로케일을 물려받는 것에 대해 말하면, 이는 대부분의 운영 체제에서 다음을 의미합니다. 이는 주어진 로케일 카테고리의 경우 다음 환경 변수가 설정 될 때 까지이 순서로 참조됩니다.LC_ALL, LC_COLLATE(또는 각 범주에 해당하는 변수),La토토. 이러한 환경 변수 중 어느 것도 설정되지 않으면 로케일 기본값은C.

일부 메시지 현지화 라이브러리도 환경 변수를 봅니다언어메시지 언어를 설정하기 위해 다른 모든 로케일 설정을 무시합니다. 의심스러운 경우, 운영 체제의 문서, 특히에 대한 문서를 참조하십시오.getText.

메시지를 사용자의 선호 언어로 번역 할 수 있도록NLS빌드 시간에 선택되어 있어야합니다 (구성 -Enable-NLS). 다른 모든 로케일 지원은 자동으로 내장되어 있습니다.

24.1.2. 행동#

로케일 설정은 다음 SQL 기능에 영향을 미칩니다.

  • 쿼리로 순서를 정렬합니다주문 by또는 텍스트 데이터의 표준 비교 연산자

  • the어퍼, LowerInitcap기능

  • 패턴 매칭 연산자 (좋아요, 유사및 Posix 스타일 정규식); 로케일은 사례 무감각 일치와 캐릭터 클래스 정규 표현에 의한 문자 분류에 영향을 미칩니다

  • theto_char기능 가족

  • Like클로즈

이외의 로케일 사용 단점C또는POSIXin토토성능 영향입니다. 그것은 문자 취급 속도를 늦추고 일반 인덱스가 사용되는 것을 방지합니다Like. 이런 이유로 실제로 필요한 경우에만 로케일을 사용하십시오.

허용 해결 방법으로토토LikeC 조항이 아닌 로케일에 따라 여러 맞춤형 운영자 클래스가 존재합니다. 이를 통해 로케일 비교 규칙을 무시하고 엄격한 문자 별 비교를 수행하는 색인을 생성 할 수 있습니다. 참조PostgreSQL : 문서 : 16 : 11.10. 토토 베이 수업 및 토토 베이 가족자세한 내용. 또 다른 방법은를 사용하여 인덱스를 만드는 것입니다.CCollation에서 논의 된대로PostgreSQL : 문서 : 16 : 24.2. 토토 사이트 Support.

24.1.3. 지역 선택#

요구 사항에 따라 다른 스코프로 로케일을 선택할 수 있습니다. 위의 개요는 로케일이를 사용하여 어떻게 지정되는지 보여주었습니다.initdb전체 클러스터의 기본값을 설정합니다. 다음 목록은 로케일을 선택할 수있는 위치를 보여줍니다. 각 항목은 후속 항목의 기본값을 제공하고 각 하위 항목은 더 미세한 세분화에서 기본값을 재정의 할 수 있습니다.

  1. 위에서 설명한 바와 같이, 운영 체제의 환경은 새로 초기화 된 데이터베이스 클러스터의 로컬에 대한 기본값을 제공합니다. 대부분의 경우 충분합니다 : 운영 체제가 원하는 언어/영토에 대해 구성된 경우토토기본적으로 해당 로케일에 따라 행동합니다.

  2. 위에 표시된대로, 명령 줄 옵션initdb새로 초기화 된 데이터베이스 클러스터의 로케일 설정을 지정합니다. 운영 체제에 데이터베이스 시스템에 원하는 로케일 구성이없는 경우 사용하십시오.

  3. 각 데이터베이스에 대해 로케일을 별도로 선택할 수 있습니다. SQL 명령데이터베이스 생성및 그 명령 줄 동등한createb이를위한 옵션이 있습니다. 예를 들어 데이터베이스 클러스터가 요구 사항이 다른 여러 임차인에 대한 데이터베이스가있는 경우

  4. 개별 테이블 열에 대해 로케일 설정을 만들 수 있습니다. 이것은라는 SQL 객체를 사용합니다.Collation그리고에 설명되어 있습니다.PostgreSQL : 문서 : 16 : 24.2. 토토 사이트 Support. 예를 들어이 방법을 사용하여 데이터를 다른 언어로 정렬하거나 특정 테이블의 정렬 순서를 사용자 정의합니다..

  5. 마지막으로, 개별 쿼리에 대해 로케일을 선택할 수 있습니다. 다시, 이것은 SQL Collation 객체를 사용합니다. 이것은 런타임 선택 또는 임시 실험에 따라 정렬 순서를 변경하는 데 사용될 수 있습니다.

24.1.4. 로케일 제공자#

토토다중 지원로케일 제공 업체. 이것은 로케일 데이터를 공급하는 라이브러리를 지정합니다. 하나의 표준 제공자 이름은입니다.libc, 운영 체제 C 라이브러리가 제공하는 로케일을 사용합니다. 이들은 운영 체제에서 제공하는 대부분의 도구에서 사용하는 로케일입니다. 다른 제공자는ICU, 외부 ICU를 사용하는라이브러리. ICU 로케일은 토토을 구축 할 때 ICU에 대한 지원이 구성된 경우에만 사용할 수 있습니다.

위에서 설명한대로 로케일 설정을 선택하는 명령 및 도구에는 각각 로케일 제공 업체를 선택할 수있는 옵션이 있습니다. 이전에 표시된 예제는 모두를 사용합니다.LIBC제공자는 기본값입니다. 다음은 ICU 제공 업체를 사용하여 데이터베이스 클러스터를 초기화하는 예입니다.

initdb-locale-provider = ICU --Icu-locale = en

자세한 내용은 해당 명령 및 프로그램에 대한 설명을 참조하십시오. 로케일 제공 업체가 다른 세분화에서 혼합 할 수 있습니다 (예 : 사용).LIBC클러스터의 경우 기본적으로를 사용하는 데이터베이스가 하나 있습니다.ICU공급자, 그리고 해당 데이터베이스 내에서 어떤 공급자를 사용하여 콜레이션 객체가 있습니다.

사용하는 로케일 제공 업체는 개별 요구 사항에 따라 다릅니다. 대부분의 기본 용도의 경우 어느 하나의 공급자가 적절한 결과를 제공합니다. LIBC 제공 업체의 경우 운영 체제가 제공하는 내용에 따라 다릅니다. 일부 운영 체제는 다른 운영 체제보다 낫습니다. 고급 용도의 경우 ICU는 더 많은 로케일 변형 및 사용자 정의 옵션을 제공합니다.

24.1.5. ICU 지역#

24.1.5.1. ICU 로케일 이름#

로케일 이름의 ICU 형식은 A입니다.언어 태그.

CLEATE COLLATION MYCOLLATION1 (제공자 = ICU, LOCALE = 'JA-JP');
collation mycollation2 만들기 (제공자 = ICU, locale = 'fr');

24.1.5.2. 로케일 정제 및 검증#

공급자로 ICU를 사용하여 새 ICU 콜라이트 객체 또는 데이터베이스를 정의 할 때 주어진 로케일 이름은 아직 해당 양식에 있지 않은 경우 언어 태그로 변환됩니다 ( "Canonicalized"). 예를 들어,

CLEATE COLLATION MYCOLLATION3 (제공자 = ICU, locale = 'en-us-u-kn-true');
통지 : "en-us-u-kn-true"에 대한 표준 형식 "en-us-u-kn"사용
Collation MyCollation4를 작성합니다. (제공자 = ICU, locale = 'de_de.utf8');
통지 : 로케일 "de_de.utf8"에 표준 양식 "de-de"를 사용합니다.

이 통지가 표시되면 확인하십시오.제공자and로케일예상 결과입니다. ICU 제공 업체를 사용할 때 일관된 결과를 얻으려면 표준을 지정하십시오언어 태그변환에 의존하는 대신

언어 이름이없는 로케일 또는 특별 언어 이름루트, 언어를 갖도록 변환und( "정의되지 않은").

ICU는 대부분의 LIBC 로케일 이름과 일부 다른 형식을 언어 태그로 변환하여 ICU 로의 쉽게 전환 할 수 있습니다. LIBC 로케일 이름이 ICU에서 사용되는 경우 LIBC에서와 정확히 동일한 동작을 가질 수 있습니다.

로케일 이름을 해석하는 데 문제가 있거나 로케일 이름이 ICU가 인식하지 못하는 언어 또는 지역을 나타내는 경우 다음 경고가 표시됩니다.

COLLITE COLLATION NINNENSELSE (제공자 = ICU, locale = 'Nonsense');
경고 : ICU 로케일 "말도 안되는"언어가 "말도 안되는"언어가 있습니다.
힌트 : ICU 로케일 유효성 검사를 비활성화하려면 매개 변수 ICU_VALIDATION_LEVEL을 비활성화로 설정하십시오.
Collation 만들기

ICU_VALIDATION_LEVEL메시지보고 방법을 제어합니다. 설정하지 않는 한오류, Collation은 여전히 생성되지만 동작은 사용자가 의도 한 것이 아닐 수도 있습니다.

24.1.5.3. 언어 태그#

BCP 47에 정의 된 언어 태그는 로케일에 대한 언어, 지역 및 기타 정보를 식별하는 데 사용되는 표준화 된 식별자입니다..

기본 언어 태그는 간단합니다언어-지역; 또는 그냥언어. 그만큼언어언어 코드입니다 (예 :FR프랑스어) 및지역는 지역 코드입니다 (예 :CA캐나다의 경우). 예 :JA-JP, de또는FR-CA.

Collation Settings는 Collation 동작을 사용자 정의하기 위해 언어 태그에 포함될 수 있습니다. ICU는 강조, 케이스 및 구두점에 민감성 (또는 무감각)과 같은 광범위한 사용자 정의를 허용합니다. 텍스트 내에서 숫자 처리; 그리고 다양한 용도를 충족시키기위한 많은 다른 옵션.

언어 태그 에이 추가 콜라이트 정보를 포함 시키려면-u, 추가 콜레이션 설정이 있음을 나타내는 다음 하나 이상의--value쌍. 그만큼|Collation Settingandvalue는 해당 설정에 유효한 값입니다. 부울 설정의 경우-해당하지 않고 지정 될 수 있습니다-value.true.

예를 들어 언어 태그en-us-u-kn-ks-level2미국 지역의 영어가있는 로케일을 의미하며, 협업 설정이 포함되어 있습니다KN설정trueandKS설정level2. 이러한 설정은 Collation이 대소 문자를 사용하지 않으며 일련의 숫자를 단일 숫자로 취급한다는 것을 의미합니다.

CONTED COLLATION MYCOLLATION5 (제공자 = ICU, 결정 론 = 거짓, locale = 'en-us-u-kn-ks-level2');
'ab'= 'ab'를 선택하여 mycollation5를 결과적으로 선택하십시오.
 결과
--------
 티
(1 줄)

'N-45'< 'N-123'을 선택하여 결과적으로 myCollation5를 collate;
 결과
--------
 티
(1 행)

참조섹션 24.2.3로케일에 대한 사용자 정의 콜레이션 정보와 함께 언어 태그 사용의 세부 사항 및 추가 예.

24.1.6. 문제#

위의 설명에 따라 로케일 지원이 작동하지 않으면 운영 체제의 로케일 지원이 올바르게 구성되어 있는지 확인하십시오. 시스템에 어떤 지역이 설치되어 있는지 확인하려면 명령을 사용할 수 있습니다로케일 -A운영 체제가 제공하는 경우.

확인토토실제로 당신이 생각하는 로케일을 사용하고 있습니다. 그만큼LC_COLLATELC_CTYPE설정은 데이터베이스가 생성 될 때 결정되며 새 데이터베이스를 작성하는 것 외에는 변경할 수 없습니다. 를 포함한 기타 로케일 설정lc_messageslc_monetary초기에 서버가 시작된 환경에 의해 결정되었지만 비행 중에 변경할 수 있습니다. 를 사용하여 활성 로케일 설정을 확인할 수 있습니다.명령.

디렉토리src/test/locale소스 배포에는 테스트 스위트가 포함되어 있습니다.토토'S Locale Support.

오류 메시지의 텍스트를 구문 분석하여 서버 측 오류를 처리하는 클라이언트 응용 프로그램은 서버의 메시지가 다른 언어에있을 때 분명히 문제가 있습니다. 이러한 응용 프로그램의 저자는 오류 코드 체계를 대신 사용하는 것이 좋습니다.

메시지 번역 카탈로그 유지하려면보고 싶어하는 많은 자원 봉사자들의 지속적인 노력이 필요합니다토토선호하는 언어를 잘 말하십시오. 언어로 된 메시지가 현재 사용할 수 없거나 완전히 번역되지 않은 경우 도움을 주시면 감사하겠습니다. 도와주고 싶다면 참조스포츠 토토 : 문서 : 16 : 57 장. 모국어 지원또는 개발자의 메일 링리스트에 쓰기.

수정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면