Яка вірна назва української локалі?
-> ... чому не назвати [українску локаль -DK] по повній программі? Як -> інші локалі, щоб було ясно що до чого. На зразок uk_UA.*
Розглянемо для прикладу одну з українських локалей, що мають використанння в сучасних Юніксах: uk_UA.koi8-u
Назва локалі вказує на мову, яка використовується в даній локалі. Локалі більшості мов складаються з двох літер. Дві латинські літери є кодом мови відповідно до ISO 639. Для більшості мов світу короткої назви локалі достатньо для того щоб повністю характеризувати робоче середовище без неоднозначностей.
Назва локалі української мови - uk.
Але в деяких випадках одного коду мови недостатньо. Деякі мови можуть вживатися у кількох країнах (реґіонах) і, для того, щоб позбутися неоднозначності і врахувати розбіжності між варіантами однієї і тієї ж мови в різних країнах до коду мови ще додається міжнародний код країни, в якій дана мова вживається. Наприклад, існують різні локалі англійської мови для таких країн, як Великобританія (en_GB), Австралія (en_AU), Канада (en_CA). Також існує варіант локалі російської мови, який вживається в Україні (назва локалі ru_UA). Тож друга частина локалі (після символу підкреслення "_" -- UA у випадку локалей для України) вказує на реґіон вживання локалі. Коли такої неоднозначності не існує, як у випадку з мовами, які вживаються переважно на території однієї країни, довгі назви локалей в більшості випадків не вживаються.
Якщо локаль для певної мови користується кількома різними кодовими таблицями для однієї і тієї ж мови, часто до назви локалі додається третя частина (після крапки. У випадку з розглянутою українською локаллю -- "koi8-u").
Тож, щоб підсумувати -- повна назва української локалі, яка вживається в Україні і користується кодовою таблицею koi8-u є uk_UA.koi8-u. Відмітимо, що хоча дана локаль є на даний момент найбільш вживаною в середовищі українських користувачів операційних систем типу Юнікс, з часом не виключена поява інших локалей для української мови (наприклад, для інших кодових таблиць: uk_UA.cp1251, або для варіантів української мови, що вживається в інших країнах. Наприклад, uk_RU або uk_PL.
Системний погляд на локаль
-> інші локалі, щоб було ясно що до чого. На зразок uk_UA.* -> що там має бути замість зірочки? Чи її це обходить?
З "фізичної" точки зору локаль - це просто директорія з потрібними файлами в ній. Тому назва локалі практично не має значення. Єдине що потрібно - це щоб змінні середовища користувача були встановлені так, як потрібно. Під "так, як потрібно" розуміється, що якщо в системі встановлена локаль "uk", то LANG (і інші такі як LC_*) повинні бути встановлені в "uk", і не в "uk_UA". І навпаки.
У більшості випадків можна просто створити символічне посилання з uk_UA... на uk (або навпаки). Як, наприклад:
cd /usr/share/locale
cp uk_UA.koi8-u/LC_MESSAGES/* uk/LC_MESSAGES
rm -rf uk_UA.koi8-u
ln -s uk uk_UA.koi8-u
До речі в Мандрейк 6.1 була ще локаль uk_UA.koi8-u в якій лежав один єдиний файл. Все інше було ідентичне до uk. Я просто скопіював цей файл в uk, стер директорію і створив симлінк.
Але крім цього є ще файл "locale.aliases" в директорії з локалями. В цьому файлі вказуються псевда для локалей. Тобто в цьому файлі може бути встановлено, що локаль "uk" є насправді uk_UA.koi8-u. (Jap)
Питання локалі дуже гарно викладені тут: http://www.sensi.org/~alec/locale/
Краще завжди задавати локаль повною назвою. Це позбавить Вас від зайвих проблем. Відповідно до цього треба створити каталог з повною назвою локалі як зазначено вище.
Чому міжнародний код України UA, а всі файли української локалі знаходяться в каталозі uk?
By the way I would change code from 'uk' to 'ua' as soon as 'ua' is international code of Ukraine.
Це запитання є дуже розповсюдженим і виникає від плутанини яка виникла через існування двох різних кодів: коду мови та коду країни. Так "uk" є кодом української мови, в той час як "UK" є міжнародним кодом країни Великобританія. Кодом же України в свій час є "UA". Таким чином українська локаль має код "uk_UA", і може скорочуватися до "uk", але не до "ua". > Щодо заміни 'uk' на 'ua' раджу заглянути на http://www.dsv.su.se/
~jpalme/ietf/language-codes.html лінк на цю сторінку є на http:// i18n.kde.org/teams/index.shtml 'uk' - є офіційним кодом згідно ISO 639, тому не варто його порушувати...
Мої 2 копійки : До цього можу додати тільки невеличке уточнення щодо кодів: різниця полягає в тому, що UA - є кодом країни Україна, в той час, як кодом української мови є uk. (Mike, Jap)
Проблеми пов'язані з UTF-8
Від: "Volodymyr M. Lisivka" lvm at mystery.lviv.net В новій беті RH80 все перведено на унікод, то ж не дивно, що старі 8-ми бітні аплікації не працюють. Але якщо встановити системну локаль в uk_UA.KOI8-U то працюють всі аплікації(і старі і нові) крім консолі - консоль чомусь не відображає зі старту кирилицю, лише після переключення з X-ів назад, і не відображається псевдографіка - мабуть тому, що вона унікодному режимі. Хтось знає, як цей унікодний режим консолі вимикається?
Від: Eugene Onischenko oneugene at alphadiz.com
Уconsole-tools повинна бути програма unicode_stop. Якщо її немає то: kbd_mode -a або echo -n -e '\033%@' lvm at mystery.lviv.ne
CP1125 aka RUSCII aka РСТ2018-91
Від: Volodymyr M. Lisivka До: Andrew V. Samoilov
Не перший раз бачу посилання на кодування CP1125 (альтернативне кодування з українськими літерами), але вона не зареєстрована як RFC. Це кодова таблиця IBM для української мови на PC (на інших машинах використовуються інші кодування - CP1123 (просто для України) і CP1124(українська для AIX) ). Вона використовується в IBM PC DOS і в OS/2. Ця кодова таблиця також відома як RUSCII і РСТ2018-91.
Чи можна отримати посилання на більш-менш офіційний опис? Офіційний опис на сайті IBM: http://oss.software.ibm.com/cvs/icu/charset/data/ucm/ Шукай ibm-1125_P100-2000.ucm або відразу клацай на це посилання: http://oss.software.ibm.com/cvs/icu/~checkout~/charset/data/ucm/ibm-1125_P100-2000.ucm?rev=1.1&content-type=text/plain