로케일 정의 소스 파일 형식에 대한 LC_COLLATE 범주
용도
문자 또는 문자열 조합 정보를 정의합니다.
설명
데이터 정렬 요소는 데이터 정렬에 대한 비교 단위입니다. 배열 요소는 문자 또는 문자 시퀀스일 수 있습니다. 로케일의 모든 데이터 정렬 요소에는 로케일의 다른 데이터 정렬 요소 이전, 동일 또는 이후에 데이터 정렬 요소가 조합되는지 여부를 판별하는 가중치 세트가 있습니다. 각 조합 요소는 로케일 정의 소스 파일이 변환될 때 localedef 명령에 의해 조합 가중치가 지정됩니다. 이러한 조합 가중치는 문자열을 비교하는 애플리케이션 프로그램에서 사용됩니다.
문자열 비교는 차이가 발견되거나 문자열이 동일한 것으로 판별될 때까지 문자열에 있는 각 문자의 데이터 정렬 가중치를 비교하여 수행됩니다. 로케일이 여러 데이터 정렬 순서를 정의하는 경우 이 비교를 여러 번 수행할 수 있습니다. 예를 들어, 프랑스어 로케일에서 문자열은 데이터 정렬 가중치의 기본 세트를 사용하여 비교됩니다. 이 비교를 기반으로 동일한 경우 보조 데이터 정렬 가중치 세트를 사용하여 다시 비교됩니다. 데이터 정렬 요소에는 로케일에 대해 정의된 데이터 정렬 순서 수와 동일한 데이터 정렬 가중치 세트가 연관되어 있습니다.
charmap 파일에 정의된 모든 문자 (또는 charmap 파일이 지정되지 않은 경우 휴대용 문자 세트의 모든 문자) 자체가 조합 요소입니다. collating-element 문을 사용하여 추가 데이터 정렬 요소를 정의할 수 있습니다. 구문은 다음과 같습니다.
collating-element character-symbol from 문자열
LC_COLLATE 범주는 LC_COLLATE 키워드로 시작하고 END LC_COLLATE 키워드로 끝납니다.
다음 키워드는 LC_COLLATE 범주에서 인식됩니다.
| 항목 | 설명 |
|---|---|
| 복사 | copy 문은 이 카테고리의 정의로 사용할 기존 로케일의 이름을 지정합니다. copy 문이 파일에 포함되어 있으면 다른 키워드를 지정할 수 없습니다. |
| 조합 요소 (collating-element) | collating-element 문은 다중 문자 조합 요소를 지정합니다. |
collating-element 문의 구문은 다음과 같습니다.
배열 요소 <배열 기호> 시작 <문자열>
collating-symbol 값은 하나 이상의 문자 문자열인 조합 요소를 단일 조합 요소로 정의합니다. collating-symbol 값은 현재 charmap 파일의 기호 이름 또는 이 데이터 정렬 정의에 정의된 다른 기호 이름을 복제할 수 없습니다. string 값은 collating-symbol 값을 정의하는 둘 이상의 문자열을 지정합니다. 다음은 collating-element 문의 구문 예제입니다.
배열 요소 <치> 시작 <C><시> 배열 요소 <전자 액센트> 시작 <양음><E> 배열 요소 <11> 시작 <1><1>
collating-element 문에 의해 정의된 collating-symbol 값은 LC_COLLATE 범주에서만 인식됩니다.
| 항목 | 설명 |
|---|---|
| 조합 기호 (collating-symbol) | collating-symbol 문은 데이터 정렬 시퀀스 명령문에서 사용할 데이터 정렬 기호를 지정합니다. |
collating-symbol 문의 구문은 다음과 같습니다.
배열 기호 <배열 기호>
collating-symbol 값은 현재 charmap 파일의 기호 이름 또는 이 데이터 정렬 정의에 정의된 다른 기호 이름을 복제할 수 없습니다. 다음은 collating-symbol 문의 구문 예제입니다.
조합 기호 <UPPER_CASE> 조합 기호 <HIGH>
collating-symbol 문에 의해 정의된 collating-symbol 값은 LC_COLLATE 범주 내에서만 인식됩니다.
| 항목 | 설명 |
|---|---|
| 주문 시작 | order_start 문 다음에는 데이터 정렬 요소에 데이터 정렬 가중치를 지정하는 하나 이상의 데이터 정렬 순서 명령문이 와야 합니다. 이 명령문은 필수입니다. |
order_start 문의 구문은 다음과 같습니다.
order_start <sort-rules>, <sort-rules>,...<sort-rules> collation order문 order_end
<sort-rules> 지시문의 구문은 다음과 같습니다.
keyword, keyword, ...keyword; keyword, keyword, ...keyword
여기서 keyword 는 forward, backward및 position키워드 중 하나입니다.
sort-rules 지시문은 선택사항입니다. 존재하는 경우 문자열 비교 중에 적용할 규칙을 정의합니다. 지정된 sort-rules 지시문의 수는 각 조합 요소가 지정되는 가중치의 수 (즉, 로케일의 조합 순서 수) 를 정의합니다. sort-rules 지시문이 없는 경우 하나의 forward 키워드가 가정되고 문자열 기반이 아닌 문자 기반으로 비교됩니다. 존재하는 경우, 첫 번째 sort-rules 지시문은 기본 가중치를 사용하여 문자열을 비교할 때 적용되고, 두 번째는 보조 가중치를 사용하여 문자열을 비교할 때 적용됩니다. 각 sort-rules 지시문 세트는; 로 구분됩니다. (세미콜론). sort-rules 지시문은 하나 이상의 쉼표로 구분된 키워드로 구성됩니다. 다음의 키워드가 지원됩니다.
| 항목 | 설명 |
|---|---|
| forward | 데이터 정렬 가중치 비교가 문자열의 시작에서 문자열의 끝까지 진행되도록 지정합니다. |
| 뒤로 | 데이터 정렬 가중치 비교가 문자열의 끝에서 문자열의 시작으로 진행되도록 지정합니다. |
| 위치 | 데이터 정렬 가중치 비교가 특수 기호 IGNORE를 따르지 않는 문자열에서 요소의 상대적 위치를 고려하도록 지정합니다. 즉, 문자열이 동일하게 비교되는 경우 문자열의 시작점에서 가장 짧은 거리에 있는 요소가 먼저 조합됩니다. |
forward 및 backward 키워드는 상호 배타적입니다. 다음은 <sort-rules> 지시문에 대한 구문의 예입니다.
order_start 앞으로, 뒤로, 위치
각 배열 요소의 선택적 피연산자는 배열 요소의 1차, 2차 또는 후속 가중치를 정의하는 데 사용됩니다. 특수 기호 IGNORE 는 문자열이 비교될 때 무시될 조합 요소를 표시하는 데 사용됩니다.
왼쪽에 줄임표 키워드가 있는 데이터 정렬 명령문을 사용하면 오른쪽에 있는 collating-element-list 가 이전 명령문의 왼쪽에 있는 문자와 다음 명령문의 왼쪽에 있는 문자 사이에 숫자로 표시되는 인코딩을 사용하여 모든 문자에 적용됩니다. 첫 번째 명령문에서 생략 기호 가 발생하면 선행 행이 NUL 문자를 지정한 것으로 해석됩니다. ( NUL 문자는 모든 비트가 0으로 설정된 문자입니다.) 마지막 명령문에서 생략 부호 가 발생하면 다음 행이 가장 큰 인코딩된 값을 지정한 것으로 해석됩니다.
collating-element-list 대신 표시되는 생략 부호 키워드는 식별된 범위의 문자에 대해 이전 명령문의 왼쪽에 있는 문자 기호의 가중치에서 숫자적으로 증가하는 순서로 가중치가 지정됨을 표시합니다.
문자 세트의 모든 문자는 UNDEFINED 특수 기호를 사용하여 명시적 또는 내재적으로 조합 순서로 배치되어야 합니다. UNDEFINED 특수 기호에는 명시적으로 지정되지 않았거나 생략 기호가 있는 모든 코드화된 문자 세트 값이 포함됩니다. 이러한 문자는 문자 코드 세트 값의 순서대로 UNDEFINED 특수 기호로 표시되는 지점에서 문자 조합 순서로 삽입됩니다. UNDEFINED 특수 기호가 없고 조합 순서가 코드화 문자 세트의 모든 조합 요소를 지정하지 않는 경우 경고가 발행되고 정의되지 않은 모든 문자가 문자 조합 순서의 끝에 배치됩니다.
예
다음은 LC_COLLATE 로케일 정의 소스 파일 범주에 있는 데이터 정렬 순서 명령문의 예입니다.
order_start forward;backward
UNDEFINED IGNORE;IGNORE
<LOW> <LOW>;<space>
... <LOW>;...
<a> <a>;<a>
<a-acute> <a>;<a-acute>
<a-grave> <a>;<a-grave>
<A> <a>;<A>
<A-acute> <a>;<A-acute>
<A-grave> <a>;<A-grave>
<ch> <ch>;<ch>
<Ch> <ch>;<Ch>
<s> <s>;<s>
<ss> <s><s>;<s><s>
<eszet> <s><s>;<eszet><eszet>
... <HIGH>;...
<HIGH>
order_end이 예제는 다음과 같이 해석됩니다.
- UNDEFINED 특수 기호는 정의에 지정되지 않은 모든 문자 (명시적으로 또는 생략 기호로) 가 조합 용도로 무시됨을 표시합니다.
- 다음 사이의 모든 조합 요소<space>및<a>코딩된 문자 세트 값을 기반으로 동일한 1차 등가 클래스 및 개별 2차 가중치를 갖습니다.
- 대문자 또는 소문자를 기반으로 하는 모든 문자a문자가 동일한 1차 등가 클래스에 속합니다.
- 다음<c><h>다중 문자 조합 요소는 다음으로 표시됩니다.<ch>동일한 1차 등가 클래스에 속해 있습니다.<C><h>다중 문자 조합 요소.
- 다음<eszet>문자가 다음과 같이 조합됩니다.<s><s>문자열. 즉,<eszet>비교하기 전에 두 문자로 확장됩니다.
파일
| 항목 | 설명 |
|---|---|
| /usr/lib/nls/loc/* | 지원되는 로케일에 대한 로케일 정의 소스 파일을 지정합니다. |
| / usr/lib/nls/charmap/* | 지원되는 로케일에 대한 문자 세트 설명 (charmap) 소스 파일을 지정합니다. |