The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Локализация FreeBSD - I18N/L10N Использование и настройка (freebsd rus locale)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: freebsd, rus, locale,  (найти похожие документы)
From: vadim s. sabinich <http://bookshelf.ath.cx/>; Newsgroups: email Date: Mon, 18 Nov 2003 14:31:37 +0000 (UTC) Subject: Локализация FreeBSD - I18N/L10N Использование и настройка Перевод 14 главы из FreeBSD 5.1 HandBook Глава 14 Локализация - I18N/L10N Использование и настройка Содержание 14.1 Синтаксис 14.2 Основы 14.3 Использование локализации 14.4 Компилирование I18N-программ 14.5 Локализация FreeBSD на определенные языки Contributed by Andrey A. Chernov. Rewritten by Michael C. Wu. 14.1 Синтаксис FreeBSD очень распространенный проект с пользователями и контрибьютерами по всему миру. Данная глава посвещена интернационализации и локализации FreeBSD для пользователей, неговорящих на английском. Некоторые аспекты i18n описаны как на системном, так и на уровне приложений; но все же следует не пропускать способов локализации приложений, которые описываются в прилагающейся к ним документации. После прочтения главы вы узнаете: * Как раскодировать различные языки и локали в современных операционных системах. * Как установить локаль в вашем шелле. * Как настроить вашу консоль для языков, отличных от английского. * Как пользоваться X Window с разными языками. * Где найти больше информации о приложениях, легко поддающихся локализации. Перед прочтением, вам следует: * Знать, как установить дополнительные third-part приложения (Глава 4). 14.2 Основы 14.2.1 Что такое I18N/L10N? Разработчики свернули интернационализацию в терминал I18N, считающим число букв между первым и последним символом интернационализации. L10N использует подобной схемой, исходя из ``локализации''. Комбинируя эти два метода, протоколы и приложения, пользователи добиваются использования языка по их выбору. I18N-приложения написаны с использованием I18N-библиотек. Что предоставляет разработчикам возможность написать простой файл и перевод, выводя меню и тексты в каждый язык. Мы настойчивл рекомендуем программистам придерживаться этого способа. 14.2.2 Почему мне следует использовать I18N/L10N? I18N/L10N используется всегда, как только вы хотите посмотреть, ввести или обработать данные на языке, отличном от английского. 14.2.3 Какие языки поддерживаются в I18N? I18N и L10N являются специфичными для FreeBSD. .В данный момент, поддерживается многие из распространенных языков в Мире, включая: китайский, немецкий, японский, корейский, французский, русский, вьетнамский и другие. 14.3 Использование локализации Во всем этом великолепии, I18N не является специфичной для FreeBSD и это, можно сказать, обычай. Мы поддержим вас в ваших начинаниях по локализации FreeBSD. Установки локализации основаны на трех основных terms: Language Code, Country Code и Encoding. Имена локалей состоят именно из этих частей: LanguageCode_CountryCode.Encoding 14.3.1 Язык и код страны В процессе локализации FreeBSD на определенный язык (или какой из других I18N-поддерживающих Юниксов) пользователю требуется узнать коды для указания страны и языка (код страны дает понять приложениям, какой из предложеных вариантов языков использовать). В дополнение, веб-броузеры, SMTP/POP серверы, веб-серверы и тому подобное, основываются на нем. Ниже небольшие примеры кодов страны и языка: en_US Английский - Соединенные Штаты ru_RU Русский для России zh_TW Традиционный китайский для Тайваня 14.3.2 Кодировка Многие языки используют не-ASII кодирование, в том числе и 8-битные, широкие или многобайтовые символы; для более подробной информации смотрите мануал multibyte(3). Старые приложения не распознают их и ошибочно используют эти символы в качестве управляющих. Новые приложения, обычно, распознают 8-битные символы. В зависимости от запросов, пользователям может потребоваться компиляция приложения с поддержкой широких или многобайтовых символов или правильная их настройка. Коллекция портов FreeBSD поставляет каждый язык с различными программами для возможности ввода и обработки широких или многобайтовых символов и избежания путаницы. Обратите внимание на документацию I18N в каждом уважающем себя порте FreeBSD. Вообще, пользователю следует изучить документацию к приложению для того, чтобы решить, как ему правильней настроить программу или прописать корректные значения в configure/Makefile/compiler. Вещи, которые следует запомнить: * Определенный язык устанавливается одним символом Си (см. multibyte(3)), напр., ISO-8859-1, ISO-8859-15, KOI8-R, CP437. * Широкое или многобайтовое кодирование напр., EUC, Big5. Вы можете проверить список активных символьных установок в IANA Registry. Замечание: FreeBSD 4.5 и выше использует X11-совместимое кодирование локали. 14.3.3 I18N-приложения В портах FreeBSD и системе пакетов, для более понятной идентификации, I18N-приложения содержат в своих названиях "I18N". К тому же, они не всегда поддерживают нужный язык. 14.3.4 Настройка локали Обычно настройка заключается в экспортировании значения названия локали в качестве LANG в логине шелла. Это следует сделать в пользовательском файле ~/.login_conf или стартовом файле пользовательского шелла (~/.profile, ~./bashrc, ~/.cshrc). Установка LANG не потребует дополнительной установки значений LC_CTYPE, LC_CTIME. Для более подробной информации изучите документацию FreeBSD по вопросу установки языка. Вам следует установить следующие две переменные окружения в конфигурационных файлах: * LANG for POSIX setlocale(3) family functions * MM_CHARSET for applications' MIME character set Это всталяется в конфигурацию пользовательского шелла, конфигурацию определенного приложения и X11-конфигурацию. 14.3.4.1 Методы установки локали Существует два метода установки локали и каждый из них будет описан ниже. Первый метод (рекомендуемый) построен на добавлении переменных окружения в login class. Второй - на добавлении в стартовый файл системного шелла. 14.3.4.1.1 Метод Login Class'а Данный метод предоставляет возможность добавления переменных окружения, требуемых для названия локали и установки MIME-символа, всего лишь один раз для всех возможных шеллов, вместо установок для каждого в отдельности. Настройка на пользовательском уровне может быть выполнена пользователем самостоятельно, настройка на администраторском уровне требует привилегий суперпользователя. 14.3.4.1.1.1 Настройка на пользовательском уровне Это пример минимальной настройки файла .login_conf в домашней директории пользователя, в которой установлены переменные для кодировки Latin-1: me:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1: А ниже приведен пример того же самого файла .login_cong, в котором находятся настройки для Традиционного Китайского в кодировке BIG-5. Заметно, что установлено намного больше переменных; это обьясняется тем, что многое программное обеспечение не правильно отражает переменные локали Китая, Японии и Кореи. #Пользователи, которые не желают пользоваться тайваньским форматом времени # или денежными знаками, могут изменить каждую переменную вручную me:\ lang=zh_TW.Big5:\ lc_all=zh_TW.Big:\ lc_collate=zh_TW.Big5:\ lc_ctype=zh_TW.Big5:\ lc_messages=zh_TW.Big5:\ lc_monetary=zh_TW.Big5:\ lc_numeric=zh_TW.Big5:\ lc_time=zh_TW.Big5:\ charset=big5:\ xmodifiers="@im=xcin": #Установка XIM Input Server Для более подробной информации смотрите главу "Настройка на администраторском уровне" и мануал login.conf(5). 14.3.4.1.1.2 Настройка на администраторском уровне Убедитесь, что пользовательский login class в /etc/login.cons содержит правильную информацию о языке. Вы можете добавить новые или изменить текущие настройки в /etc/login.conf: language_name:accounts_title:\ :charset=MIME_charset:\ :lang=locale_name:\ :tc=default: Основываясь на предыдущем примере, можно получить пример использования Latin-1. Это будет выглядеть примерно вот так: german:German Users Accounts:\ :charset=ISO-8859-1:\ :lang=de_DE.ISO8859-1:\ :tc=default: Изменение Login Classes с помощью vipw(8) Используйте vipw для добавления новых пользователей, чтобы строка ввода выглядела примерным образом: user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh Изменение Login Classes с помощью adduser(8) Используйте adduser для добавления новых пользователей и обратите внимание на следующие моменты: * Установка defaultclass равнозначна language в /etc/adduser.conf. Запомните, какой следует вводить defaultclass для пользователейт вашем случае. * Альтернативой вышеописанного будет указание language при каждом новом пользователе Enter login class: default []: appears from adduser(8). * Другой альтернативой может послужит использование следующего для каждого пользователя, добавляя различный язык по желанию: # adduser -class language Изменение Login Classes с помощью pw(8) Если вы используете pw для добавления новых пользователей, вызывайте его следующим образом: # pw useradd user_name -L language 14.3.4.1.2 Метод стартового файла шелла Замечание: Использование этого метода не рекомендуется в связи с тем, что требуется различная настройка для каждого из выбранного шелла. Рекомендуется использовать метод Login Class'а. Для добавления названия локали и 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. Для X11: В $HOME/.xinitrc: LANG=de_DE.ISO8859-1; export LANG Или: setenv LANG de_DE.ISO8859-1 Относительно вашего шелла (см. выше). 14.3.5 Настройка консоли Установите правильный консольный шрифт в /etc/rc.conf для требуемого языка в следующих строках: font8x16=font_name font8x14=font_name font8x8=font_name Font_name берется из директории /usr/share/syscons/fonts, без указания расширения '.fnt'. Так же будет правильным установить корректные keymap и screenmap вашего однобайтового набора символов, установленные через /stand/sysinstall. Если быть точней, то установка находится /stand/sysinstall -> Configure -> Console. Альтернативой может служить установка этих же значений в /etc/rc.conf: scrnmap=screenmap_name keymap=keymap_name keychange="fkey_number sequence" Где screenmap_name берется из директории /usr/share/syscons/scrnmaps (без расширения .scm). Screenmap с соответствующим шрифтом обычно требуется в качестве расширяющих битность с 8 бит до 9 на VGA адаптерах в области псевдографики, напр., перемещать буквы в эту область, если экранный шрифт использует 8 битную колонку. Если у вас включен демон мыши, установкой следующей строки в /etc/rc.conf: moused_enable="YES" то следующий параграф как раз для вас. В нем рассматривается информация о мышином курсоре. По умолчанию, курсор мыши занимает место с 0xd0 по 0xd3 в таблице символов. Если ваш язык использует данный диапазон, вам следует переместить диапазон курсора мыши. Для включения рабочего окружения для FreeBSD версий до 5.0, вставьте следующую строку в конфигурацию вашего ядра: options SC_MOUSE_CHAR=0x03 Для FreeBSD 4.4 и выше, вставьте следующую строку в /etc/rc.conf: mousechar_start=3 Keymap_name взят из директории /usr/share/syscons/keymaps (без расширения). Если вы сомневаетесь в том, какой из keymap использовать, - прочитайте мануал kbdmap(1) для тестирования разных keymap без перезагрузки. Изменение шрифта обычно требуется функциональным клавишам программы для подстановки выбранного типа терминала, потому что последовательности функциональных клавиш могут быть не указаны в keymap. Так же желательно установить правильный тип терминала в /etc/ttys для всех ttyv*. В данный момент работают ниженаписанные варианты: Character Set Terminal Type ISO-8859-1 or ISO-8859-15 cons25l1 ISO-8859-2 cons25l2 ISO-8859-7 cons25l7 KOI8-R cons25r KOI8-U cons25u CP437 (VGA default) cons25 US-ASCII cons25w Для расширенных и многобайтовых языковых символов, используется корректный порт FreeBSD из директории /usr/ports/<language> (где <language> - язык, который вы выбрали). Многие порты имеют вид консоли, пока система видит из как терминалы, следовательно, вы должны зарезервировать несколько терминалов для X11 и псевдоконсолей. Ниже приведен частичный список приложений для использования других языков в консоли: Language Location Traditional Chinese (BIG-5) chinese/big5con Japanese japanese/ja-kon2-* or japanese/Mule_Wnn Korean korean/ko-han 14.3.6 Настройка X11 Хотя X11 и не является частью проекта FreeBSD, мы решили добавить некоторое количество информации для пользователей. Не мешает так же изучить информацию с сайта XFree86 о используемом вами X11-сервере. В ~/.Xresources вы можете внести дополнительные настройки для локализации шрифтов, меню и тому подобное. 14.3.6.1 Шрифты вывода Установите X11 True Type-Common server (x11-servers/XttX86srv-common) и truetype шрифты для вашего языка. Правильная настройка локали позволит вам видеть выбранный язык в меню и прочих графических приложениях. 14.3.6.2 Ввод не английских символов X11 Input Metod (XIM) Protocol является новым стандартов для всех X11-клиентов. Все приложения следует быть написанными как XIM-клиенты, что даст возможность ввода с серверов XIM Input. Так же, некоторые серверы XIM уже имеют встроенную поддержку различных языков. 14.3.7 Настройка печати Некоторые однобитовые таблицы символов обычно перекодируются на аппаратном уровне принтеров. Расширенные и многобайтовые таблицы символов требуют специальной настройки и мы рекомендует использовать apsfilter. Так же вы можете конвертировать документ в формат PostScript или PDF, используя специфичные для данного языка конверторы. 14.3.8 Ядро и файловые системы Быстрая файловая система FreeBSD (FFS, от 'fast filesystem') является 8-битной, поэтому она может использоваться с любым однобитовым символьным набором (см. multibyte(3)), но только там, где нет ни одной символьной таблицы в файловой системе; напр., ругает 8-битный и не знает никаких других кодировок. Официально, FFS не поддерживает любые из форм расширенных и многобайтовых символьных таблиц. Хотя, некоторые их них уже имеют патчи для FFS, включающие поддержку. Но это всего лишь временные и непортируемые заплатки или хакерские поделки и мы решили не вставлять из в дерево исходников. FreeBSD MS-DOS файловая система может настраиваться на конвертирование между MS-DOS, Unicode и выбранной символьной таблицей файловой системы FreeBSD. Подробней можно прочитать в mount_msdos(8). 14.4 Компиляция I18N-программ Многие программы FreeBSD могут быть портированы с поддержкой I18N. Некоторые из них имеют отметку '-I18N' в своем названии. Они и многие другие программы собираются с поддержкой I18N и не требуют специальных ухищрений. Хотя, некоторый приложения, такие как MySQL, требуют настройку Makefile с указанной кодировкой. Обычно это проделывается в Makefile или изменяются некоторые переменные в исходном коде. 14.5 Локализация FreeBSD на определенные языки 14.5.1 Русский (кодировка KOI8-R) Originally contributed by Andrey A. Chernov. Для более подробной информации о кодировке KOI8-R, смотри KOI8-R References (Russian Net Character Set). 14.5.1.1 Настройка локали Поместите следующие линии в ваш ~/.login_conf: me:My Account:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R: В начале этой главы были приведены примеры настройки локали. 14.5.1.2 Настройка консоли * Для версий FreeBSD до 5.0 добавьте следующую строку в конфигурационный файл вашего ядра: options SC_MOUSE_CHAR=0x03 Для версия 4.4 и выше, вставьте следующую строку в /etc/rc.conf: mousechar_start=3 * Используйте следующие установки в /etc/rc.conf: keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8" * Для каждой строки ttyv* в /etc/ttys в качестве типа терминала используйте cons25r. В начале этой главы были приведены примеры настройки консоли. 14.5.1.3 Настройка принтера Большинство принтеров для России поставляются с аппаратной кодовой страницей CP866, поэтому требуются специальный выходной фильтр для перекодировки с KOI8-R на CP866. По умолчанию, подобный фильт установлен сюда /usr/libexec/lpr/ru/koi2alt. И настройка для принтера в /etc/printcap будет выглядеть примерно вот так: lp|Russian local line printer:\ :sh:of=/usr/libexec/lpr/ru/koi2alt:\ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs: Для более подробной информации смотри printcap(5). 14.5.1.4 MS-DOS FS и русские имена файлов Следующий пример fstab(5) включает поддержку русских имен файлов в примонитрованное файловой системе MS-DOS: /dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0 Так же смотрите mount_msdos(8) для более подробного описания ключей -W и -L. 14.5.1.5 Настройка X11 1. Настроить не-X локаль, как описано выше. Замечание: Русская KOI8-R локаль может не работать со старыми релизами XFree86 (до 3.3 версии включительно). Сейчас по умолчанию используются XFree86 4.X. Это следует учитывать при использовании старых версий FreeBSD. 2. Перейдите в директорию russian/X.language и введите следующую команду: # make install После этого установит порт шрифтов KOI8-R последней версии. XFree86 3.3 уже имеет эти шрифты, но лучше их заменить. Проверьте в файле /etc/XF86Config раздел "Files". Следующие строки должны быть добавлены перед любыми другими строками FontPath: FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi" Если вы используете видеорежим с высоким разрешением поменяйте местами строки 75dpi и 100dpi. 3. Активируйте русскую клавиатуру, добавив следующий раздел "Keyboard" в файл XF86Config. Для XFree86 3.X: XkbLayout "ru" XkbOptions "grp:caps_toggle" Для XFree86 4.X: Option "XkbLayout" "ru" Option "XkbOptions" "grp:caps_toggle" Так же отключите XkbDisable (просто закоментируйте). Переключение рус/лат будет производиться с помощью клавиши CapsLock. Старая функция CapsLocj будет доступна через комбинацию Shift+CapsLock (только в режиме латиницы). Если у вас на клавиатуре имеются клавиши ``Windows'' и притензии некорректной работе каких-нибудь не-алфавитных клавиш в режиме кириллицы, добавьте следующую строку в XF86Config. Для XFree86 3.X: XkbVariant "winkeys" Для XFree86 4.X: Option "XkbVariant" "winkeys" Замечание: Русская XKB-клавиатура может не работать со старыми версиями XFree86, более подробно описано выше. Так же эта клавиатура может работать с нелокализованными приложениями не всегда так, как требуется. Минимально локализованные приложения следует вызывать с помощью XtSetLanguageProc (NULL, NULL, NULL); старая функция в программе. Для более подробных инструкций по локазации X11-приложений читайте KOI8-R for X Window. 14.5.2 Локализация традиционного китайского для Тайваня Проект FreeBSD-Taiwan имеет руководство по I18N/L10N для FreeBSD на http://freebsd.sinica.edu.tw/~ncvs/zh-l10n-tut/ используя много китайских портов. Редактором zh-L10N-tut является Клив Лин (Clive Lin) <Clive@CirX.org.. Так же вы можете обновить через CVS следующие коллекции на freebsd.sinica.edu.tw: Collection Description outta-port tag=. Бета-версия коллекции портов для Китая zh-L10N-tut tag=. Руководство по локализации FreeBSD на традиционный китайский в кодировке BIG-5 zh-doc tag=. Перевод документации к FreeBSD на традиционный китайский в кодировке BIG-5 Хуан-Хсинг Шень (Huan-Hsing Shen) <s874070@mail.yzu.edu.tw.> создал китайскую коллекцию FreeBSD (CFC) используя zh-L10N-tut. Пакеты и скрипты можно взять на ftp://ftp.csie.ncu.edu.tw/OS/FreeBSD/taiwan/CFC/. 14.5.3 Локализация для немецкого языка (Для всех языков ISO 8859-1) Славен Резиц (Slaven Rezic) <eserte@cs.tu-berlin.de.> написал руководство по обеспечению использования умлаутов под FreeBSD. Данное руководство на немецком доступно на сайте http://www.de.FreeBSD.org/de/umlaute/. 14.5.4 Локализация японского и корейского языков Для японского изучите материалы на http://www.jp.FreeBSD.org/, а для корейского - на http://www.kr.FreeBSD.org/. 14.5.5 Документация по FreeBSD на языках, отличном от английского Некоторые контрибуторы FreeBSD, при наличие переводов, размещают их на основных сайтах или в /usr/share/doc. перевод: vadim s. sabinich <http://bookshelf.ath.cx/>;

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру