기존 로켈을 기반으로 새 로켈을 사용자 정의하여 만들려면 로켈 정의 소스 파일을 3개 이상 준비해야 합니다.
localedef 소스 파일 – 로켈에 필요한 정의를 포함합니다.
charmap 소스 파일 – 코드점 값과 사용자가 읽을 수 있는 심볼릭 이름 간의 매핑을 포함합니다. 심볼릭 이름은 localedef 소스 파일에 사용됩니다. charmap 소스 파일에는 로케일의 코드 세트 이름, 로케일 코드점으로 표시할 수 있는 최대 바이트 수 및 기타 다른 정의도 포함됩니다.
extension 소스 파일 – strcoll (3C), fgetwc(3C) 등의 표준 인터페이스와 내부 로케일 메소드 및 로케일의 적절한 작동에 필요한 기타 정보 간의 매핑을 포함합니다.
시스템에서 제공하는 로켈에는 source/locale/localedef 패키지에서 사용 가능한 개별 로켈 정의 데이터 파일이 있습니다. 이러한 로켈은 기존 시스템 로켈을 약간만 변경해야 할 경우 유용할 수 있습니다.
$ sudo pkg install system/header source/locale/localedef
$ export PATH=<oracle-studio-path>/bin:$PATH
$ mkdir mynewlocale $ cd mynewlocale $ mkdir amd64 $ cp /usr/lib/locale/common/methods_unicode.so.3 . $ cp /usr/lib/locale/common/amd64/methods_unicode.so.3 amd64/ $ cp /usr/lib/localedef/src/charmaps/UTF-8.charmap \ /usr/lib/localedef/src/extensions/UTF-8.x \ /usr/lib/localedef/src/locales/fr_FR.UTF-8.src .
$ localedef -m lp64 -f UTF-8.charmap -x UTF-8.x -i fr_FR.UTF-8.src \ -L "-R\\\$ORIGIN/../../common/amd64 -Bdirect -M /usr/lib/ld/map.pagealign \ -M /usr/lib/ld/map.noexdata" fr_FR.UTF-8@custom $ mv fr_FR.UTF-8@custom.so.3 amd64/
$ localedef -m ilp32 -f UTF-8.charmap -x UTF-8.x -i fr_FR.UTF-8.src \ -L "-R\\\$ORIGIN/../common" fr_FR.UTF-8@custom
$ sudo mkdir -p /usr/lib/locale/fr_FR.UTF-8\@custom/amd64 $ sudo cp fr_FR.UTF-8\@custom.so.3 /usr/lib/locale/fr_FR.UTF-8\@custom/ $ sudo cp amd64/fr_FR.UTF-8\@custom.so.3 /usr/lib/locale/fr_FR.UTF-8\@custom/amd64/
$ export LANG=fr_FR.UTF-8@custom