Өөрийн бүх сүр жавхлангаараа I18N нь зөвхөн FreeBSD-д зориулагдаагүй бөгөөд энэ нь ёс заншил болсон байдаг. Энэ ёс заншлыг дагаж FreeBSD-д туслахыг бид танаас хүсдэг.
Локалчлалын тохируулгууд нь гурван гол ойлголт дээр тулгуурладаг: Хэлний код, Улсын код ба Кодчилол. Локалын нэрс эдгээр хэсгүүдээс дараах маягаар бүрэлдэн тогтоно:
LanguageCode
_CountryCode
.Encoding
FreeBSD системийг тухайн хэл уруу (эсвэл I18N дэмждэг бусад UNIX® төст системүүд дээр) локалчлахын тулд хэрэглэгч тухайн улс болон хэлийг (улсын код нь програмд өгөгдсөн хэлний аль хувилбарыг ашиглахыг хэлж өгдөг) заах кодуудыг олж мэдэх хэрэгтэй. Мөн вэб хөтчүүд, SMTP/POP серверүүд зэрэг нь тэдгээр дээр тулгуурлан шийдэл гаргадаг. Дараах нь хэл/улсын кодны жишээнүүд юм:
Хэл/Улсын код | Тайлбар |
---|---|
en_US | English буюу Англи - Нэгдсэн Улс |
ru_RU | Орос улсад зориулсан Russian буюу Орос |
zh_TW | Тайваньд зориулсан Уламжлалт Хятад хэл |
Байгаа локалчлалын жагсаалтыг дараах тушаалаар авч болно:
%
locale -a
Зарим хэлнүүд 8-бит, өргөн эсвэл олон байт тэмдэгтүүд зэрэг ASCII биш кодчилолыг ашигладаг. Олон байт тэмдэгтүүдийн талаар илүү дэлгэрэнгүйг multibyte(3)-ээс үзнэ үү. Хуучин програмууд тэдгээрийг танидаггүй бөгөөд тэдгээрийг хянах тэмдэгтүүд гэж алддаг. Шинэ програмууд ихэвчлэн 8-бит тэмдэгтүүдийг танидаг. Шийдлээс хамаараад хэрэглэгчид програмыг өргөн эсвэл олон байт тэмдэгтийн дэмжлэгтэйгээр эмхэтгэх эсвэл зөвөөр тохируулах шаардлагатай байж болох юм. Өргөн эсвэл олон тэмдэгтүүдийг оруулж процесс хийж чадахын тулд FreeBSD портын цуглуулга хэл бүрийг өөр өөр програмуудтайгаар хангадаг. FreeBSD порт дахь харгалзах I18N баримтжуулалтаас лавлана уу.
Ялангуяа програмыг хэрхэн зөв тохируулах эсвэл зөв утгуудыг configure/Makefile/эмхэтгэгчид дамжуулахыг шийдэхдээ програмын баримтжуулалтаас харах хэрэгтэй болно.
Санаж байх ёстой зарим нэг зүйлүүд нь:
Тухайн хэлний ганц C chars тэмдэгтийн олонлогууд (multibyte(3)-г үзнэ үү), өөрөөр хэлбэл ISO8859-1, ISO8859-15, KOI8-R, CP437.
Өргөн эсвэл олон байт кодчилол, өөрөөр хэлбэл EUC, Big5.
Та тэмдэгтийн олонлогуудын идэвхтэй жагсаалтыг IANA Registry-с шалгаж болно.
FreeBSD нь X11-нийцтэй локалын кодчилолуудыг харин ашигладаг.
FreeBSD-ийн портууд болон багцын системд I18N програмууд нь амархан
танигдахын тулд нэрэндээ I18N
-тайгаар нэрлэгддэг.
Гэхдээ тэдгээр нь хэрэгтэй хэлийг үргэлж дэмжсэн байдаггүй.
Нэвтрэх бүрхүүл дээр локалын нэрний утгыг LANG
уруу
экспорт хийхэд ихэвчлэн хангалттай байдаг. Үүнийг хэрэглэгчийн
~/.login_conf
файл эсвэл хэрэглэгчийн бүрхүүлийн
эхлүүлэх файлд (~/.profile
,
~/.bashrc
, ~/.cshrc
)
зааж өгч болно. LC_CTYPE
, LC_CTIME
зэрэг
локал дэд олонлогуудыг тохируулах хэрэггүй. Дэлгэрэнгүй мэдээллийн талаар
тухайн хэлний FreeBSD-ийн баримтаас лавлана уу.
Та өөрийн тохиргооны файлууддаа дараах хоёр орчны хувьсагчийг тохируулах хэрэгтэй:
POSIX® setlocale(3) төрлийн функцуудад зориулсан LANG
Програмуудын MIME тэмдэгтийн олонлогт зориулсан MM_CHARSET
Энэ нь хэрэглэгчийн бүрхүүлийн тохиргоо, тухайн програмын тохиргоо болон X11-ийн тохиргоог агуулдаг.
Локалыг тохируулах хоёр арга байдаг бөгөөд хоёуланг доор тайлбарласан байгаа. Эхнийхийг (бидний зөвлөж байгааг) нэвтрэх ангилалд орчны хувьсагчуудыг зааж хоёр дахийг системийн бүрхүүлийн эхлүүлэх файлд орчны хувьсагчийн заалтуудыг нэмснээр хийдэг.
Энэ арга нь бүрхүүл бүрийн эхлүүлэх файлд тухайн бүрхүүлийн заалтуудыг нэмэхийн оронд локалын нэр болон MIME тэмдэгтийн олонлогуудад хэрэгтэй орчны хувьсагчуудыг боломжит бүрхүүл бүрийн хувьд нэг л удаа заах боломжийг олгодог. Хэрэглэгчийн түвшний тохируулгыг хэрэглэгч өөрөө хийж болох бөгөөд Администраторын түвшний тохируулга нь супер хэрэглэгчийн зөвшөөрлүүдийг шаарддаг.
Энд хэрэглэгчийн гэр сан дотор байрлах Latin-1 кодчилолын хувьд
хоёр хувьсагчийг нь тохируулж өгсөн .login_conf
файлын хамгийн бага жишээ байна:
Энд BIG-5 кодчилолд Уламжлалт Хятад хэлд зориулан хувьсагчуудыг
тохируулж байгаа .login_conf
файлын жишээ
байна. Зарим програм хангамжууд нь Хятад, Япон болон
Солонгос хэлний хувьд локалын хувьсагчуудыг зөвөөр хүндэлдэггүй учраас
илүү олон хувьсагчуудыг тохируулсныг эндээс харж болно.
Илүү дэлгэрэнгүйг Администраторын түвшний тохируулга болон login.conf(5)-с үзнэ үү.
/etc/login.conf
дахь хэрэглэгчийн
нэвтрэх ангилал зөв хэл тохируулсныг шалгана. Эдгээр тохируулгууд
/etc/login.conf
-д байгаа
эсэхийг шалгаарай:
language_name
:Account Type Description
:\
:charset=MIME_charset
:\
:lang=locale_name
:\
:tc=default:Бидний урдны жишээний адил Latin-1-г сонговол энэ нь иймэрхүү харагдана:
Хэрэглэгчийн нэвтрэх ангиллуудыг өөрчлөхөөсөө өмнө дараах тушаалыг ажиллуулж
#
cap_mkdb /etc/login.conf
шинэ тохиргоог системд харагдуулахаар
/etc/login.conf
-д хийнэ.
Шинэ хэрэглэгчид нэмэхийн тулд vipw
тушаал ашиглан
оруулгыг иймэрхүү болгоно:
language
:0:0:User Name:/home/user:/bin/shШинэ хэрэглэгчид нэмэхийн тулд adduser
тушаал
ашиглан доор дурдсаныг хийнэ:
/etc/adduser.conf
файлд
defaultclass =
-г
тохируулна. Та энэ тохиолдолд бусад хэлнүүдийн бүх хэрэглэгчдэд
зориулан language
анхдагч
ангилалыг оруулах
хэрэгтэйг санах хэрэгтэй.
adduser(8)-с гарч ирэх асуулт бүрт
Enter login class: default []:
асуултад тухайн хэлийг зааж өгөх бас нэг хувилбар байж болно.
Өөр нэг арга нь нэмэхээр хүсэж байгаа өөр хэлний хэрэглэгч бүрийн хувьд доор дурдсаныг ашиглах явдал юм:
#
adduser -class language
Хэрэв та pw(8)-г шинэ хэрэглэгч нэмэхийн тулд ашиглаж байгаа бол үүнийг иймэрхүү маягаар дуудаарай:
#
pw useradd user_name
-L language
Энэ аргыг зөвлөдөггүй, учир нь сонгосон боломжит бүрхүүл програм бүрийн хувьд өөр тохируулгыг шаарддаг. Оронд нь Нэвтрэх ангиллын аргыг ашиглаарай.
Локалын нэр болон MIME тэмдэгтийн олонлогийг нэмэхийн тулд
доор үзүүлсэн хоёр орчны хувьсагчийг /etc/profile
-д
болон/эсвэл бүрхүүлийн эхлүүлэх файл /etc/csh.login
-д
зааж өгнө. Бид Герман хэлийг доор жишээ болгон ашиглах болно:
/etc/profile
файлд:
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET
Эсвэл /etc/csh.login
файлд:
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1
Өөрөөр та дээрх заавруудыг /usr/share/skel/dot.profile
файлд (дээрх /etc/profile
-д ашигласантай адил) эсвэл
/usr/share/skel/dot.login
файлд (дээрх
/etc/csh.login
-д ашигласантай адил)
нэмж болно.
X11-ийн хувьд:
$HOME/.xinitrc
файлд:
LANG=de_DE.ISO8859-1; export LANG
Эсвэл:
setenv LANG de_DE.ISO8859-1
Таны бүрхүүлээс хамаараад (дээр дурдсаныг үзнэ үү).
Бүх ганц C chars тэмдэгтийн олонлогуудын хувьд зөв консолын
фонтуудыг /etc/rc.conf
-д
асуултанд байгаа хэлний хувьд тохируулна:
font_name
font8x14=font_name
font8x8=font_name
Эндэх font_name
-ийг
/usr/share/syscons/fonts
сангаас
.fnt
төгсгөлгүйгээр авсан.
Хэрэв шаардлагатай бол keymap болон screenmap-ийг өөрийн ганц C chars тэмдэгтийн
олонлогийн хувьд sysinstall
ашиглан
зааж өгнө. sysinstall
дотор байхдаа -г сонгоод
дараа нь -г сонгоно. Өөрөөр
та доор дурдсаныг /etc/rc.conf
-д нэмж болно:
screenmap_name
keymap=keymap_name
keychange="fkey_number sequence
"Эндэх screenmap_name
-ийг
/usr/share/syscons/scrnmaps
сангаас
.scm
төгсгөлгүйгээр авсан. Зохих оноогдсон фонттой
screenmap нь псевдографик талбарт VGA адаптерийн фонтын тэмдэгтийн
матриц дээр бит 8-ийг бит 9 уруу өргөтгөхөд ихэвчлэн тойрон гарах арга зам
болгон хэрэглэгддэг, өөрөөр хэлбэл хэрэв дэлгэцийн фонт бит 8 багана ашиглаж
байвал тэр талбараас үсэгнүүдийг шилжүүлэн гаргахын тулд хэрэглэгддэг.
Хэрэв та /etc/rc.conf
-д
moused дэмонг идэвхжүүлэхийг
дараах байдлаар тохируулсан бол:
хулганы заагчийн мэдээллийг дараагийн хэсгээс шалгаарай.
Анхдагчаар syscons(4) драйверийн хулганы заагч нь тэмдэгтийн
олонлогийн 0xd0-0xd3 хэсгийг эзэлдэг. Хэрэв таны хэл энэ хэсгийг ашигладаг
бол заагчийн хэсгийг үүнээс гадна шилжүүлэх хэрэгтэй. FreeBSD-ийн хувьд
тойрон гарах арга замыг идэвхжүүлэхийн тулд дараах мөрийг
/etc/rc.conf
-д нэмнэ:
Эндэх keymap_name
-ийг
/usr/share/syscons/keymaps
сангаас
.kbd
төгсгөлгүй авсан. Хэрэв та аль keymap-ийг
ашиглах эсэхдээ эргэлзэж байвал kbdmap(1)-г ашиглаж дахин
ачаалалгүйгээр keymap-уудыг тест хийж болно.
keychange
нь функцын товчлууруудыг сонгосон терминалын
төрөлтэй тааруулахын тулд програмчлахад ихэвчлэн хэрэгтэй байдаг, учир нь функцын
товчлуурын дарааллуудыг товчлууруудын оноолтод тодорхойлж болдоггүй.
Бас консолын терминалын зөв төрлийг бүх ttyv*
оруулгуудын хувьд /etc/ttys
файлд тохируулсан
эсэхээ шалгаарай. Одоогийн урьдчилан тодорхойлсон зохицлууд нь:
Тэмдэгтийн Олонлог | Терминалын Төрөл |
---|---|
ISO8859-1 эсвэл ISO8859-15 | cons25l1 |
ISO8859-2 | cons25l2 |
ISO8859-7 | cons25l7 |
KOI8-R | cons25r |
KOI8-U | cons25u |
CP437 (VGA default) | cons25 |
US-ASCII | cons25w |
Өргөн эсвэл олон байт тэмдэгтүүд бүхий хэлнүүдийн хувьд өөрийн
/usr/ports/
сангаас зөв FreeBSD портоо ашиглаарай. Зарим портууд консол маягаар
байхад түүнийг систем сериал vtty-үүд шигээр хардаг, ийм учраас та X11
болон псевдо-сериал консолын хувьд хангалттай vtty-үүдийг хадгалж байх
шаардлагатай. Өөр хэлүүдийг консолд ашиглахын тулд энд програмуудын
хэсэгчилсэн жагсаалт байна:language
Хэл | Байрлал |
---|---|
Уламжлалт Хятад хэл (BIG-5) | chinese/big5con |
Япон хэл | japanese/kon2-16dot эсвэл
japanese/mule-freewnn |
Солонгос хэл | korean/han |
X11 нь FreeBSD Төслийн нэг хэсэг биш боловч бид энд FreeBSD хэрэглэгчдэд зориулж зарим мэдээлэл орууллаа. Илүү дэлгэрэнгүйг Xorg вэб хаягаас эсвэл аль X11 сервер ашиглаж байгаа түүнийхээ вэб хаягаас лавлана уу.
~/.Xresources
файлд та програмуудад зориулсан
I18N тохируулгуудыг (өөрөөр хэлбэл фонтууд, цэснүүд, гэх мэт.) тааруулж өгч
болно.
Зарим ганц C chars тэмдэгтийн олонлогууд нь ихэвчлэн хэвлэгчүүд дотор хатуугаар бичигдсэн байдаг. Өргөн эсвэл олон байт тэмдэгтийн олонлогууд нь тусгай тохируулга шаарддаг бөгөөд бид apsfilter програмыг хэрэглэхийг зөвлөдөг. Та бас PostScript® эсвэл PDF хэлбэрүүд уруу тухайн хэлний хөрвүүлэгчдийг ашиглан баримтыг хөрвүүлж болох юм.
FreeBSD-ийн хурдан файлын систем (FFS) нь 8-бит цэвэр учир үүнийг ямар ч ганц C chars тэмдэгтийн олонлогтой цуг ашиглаж болно (multibyte(3)-г үзнэ үү), гэхдээ тэмдэгтийн олонлогийн нэр файлын системд хадгалагддаггүй; өөрөөр хэлбэл энэ нь түүхий 8-бит бөгөөд кодчилолын дарааллын талаар юу ч мэддэггүй. Албан ёсоор FFS нь өргөн эсвэл олон байт тэмдэгтийн олонлогуудын аль ч хэлбэрийг дэмждэггүй. Гэхдээ зарим өргөн эсвэл олон байт тэмдэгтийн олонлогууд нь FFS-д ийм дэмжлэгийг идэвхжүүлэхэд зориулсан бие биеэсээ ангид засваруудтай байдаг. Тэдгээр нь цорын ганц ийш тийш хөрвүүлэх боломжгүй шийдлүүд буюу hack бөгөөд бид тэдгээрийг эх модонд оруулахгүй гэж шийдэцгээсэн юм. Тохирох хэлнүүдийн вэб хуудаснуудаас илүү дэлгэрэнгүй мэдээлэл болон засвар файлуудын талаар лавлана уу.
FreeBSD MS-DOS® файлын систем нь MS-DOS®, Юникод тэмдэгтийн олонлогууд болон FreeBSD-ийн сонгосон файлын системийн тэмдэгтийн олонлогуудын хооронд хөрвүүлэх тохируулж болох боломж бүхий байдаг. Дэлгэрэнгүйг mount_msdosfs(8)-с үзнэ үү.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар
<questions@FreeBSD.org>
хаягтай холбоо барихаасаа өмнө
баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал
<doc@FreeBSD.org>
хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал
<admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.