diff --git a/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml b/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml new file mode 100644 index 0000000000..345bfa4635 --- /dev/null +++ b/ru_RU.KOI8-R/books/handbook/l10n/chapter.sgml @@ -0,0 +1,997 @@ + + + + + + + Andrey A. + Chernov + Предоставил + + + + + Michael C. + Wu + Переписал + + + + + + Локализация - I18N/L10N использование и настройка + + + Краткий обзор + + FreeBSD - это очень распределенный проект, пользователи + и контрибьюторы которого находятся в самых разных частях света. + В этой главе рассказывается о возможностях интернационализации + и локализации FreeBSD, которые позволяют не-англоговорящим + пользователям делать свою работу. Существует много подходов в + i18n реализации - как на системном уровне, так и на уровне + приложений, так что, где это возможно, мы будем давать читателю + ссылки на более углубленные источники документации. + + После прочтения этой главы, вы будете знать: + + Как разные языки и региональные настройки кодируются + в современных операционных системах. + Как установить региональные настройки для вашей + оболочки. + Как настроить вашу консоль для отличных от + английского языков. + Как эффективно использовать X Window System с разными + языками. + Где найти дополнительную документацию по созданию + i18n-совместимых приложений. + + + Перед чтением этой главы вам следует:: + + + Знать как установить дополнительные приложения сторонних + разработчиков (). + + + + + Основы + + + Что такое I18N/L10N? + интернационализация + локализация + + Разработчики сократили интернационализацию в термин I18N, по числу + символов между первым и последним символом интернационализации. В + названии L10N используется тот же принцип от локализации. + Совместно используемые I18N/L10N методы, протоколы и приложения + позволяют пользователям использовать языки по своему выбору. + + I18N приложения написаны с применением набора I18N посредством + библиотек. Это позволяет разработчикам писать простые файлы и переводить + отображаемые меню и надписи на разные языки. Мы настоятельно рекомендуем + программистам следовать этому соглашению. + + + + Почему я должен использовать I18N/L10N? + + I18N/L10N используется всегда, когда вы хотите просмотреть, ввести + или обработать данные на отличных от английского языках. + + + + Какие языки поддерживаются в проекте I18N? + + I18N и L10N не являются специфичными для FreeBSD. На текущий момент + у вас есть выбор между самыми распространенными языками мира, включая, но + не ограничиваясь: китайский, немецкий, японский, корейский, французский, + русский, вьетнамский и др. + + + + + Использование локализации + + При всем своем величии, I18N не специфична для FreeBSD и + является, по сути, соглашением. Следование этому соглашению + помогает FreeBSD, и мы это приветствуем. + locale + + Настройки локализации базируются на трех основных терминах: + код языка, код страны и кодировка. Имена локализаций строятся из этих + частей следующим образом: + + кодязыка_кодстраны.кодировка + + + Язык и код страны + language codes + country codes + + Чтобы настроить FreeBSD (или любую другую &unix;-систему, + поддерживающую I18N) на использование специфического языка, пользователю + нужно выяснить коды этого языка и страны (коды страны сообщают + приложению какой именно диалект языка этой страны нужно использовать). К + тому же, веб-браузеры, SMTP/POP серверы, веб-серверы и т.п. делают свой + выбор в зависимости от этого. Далее показаны примеры кодов + языка/страны: + + + + + + Код языка/страны + Описание + + + + + + en_US + Английский - Соединенные Штаты + + + + ru_RU + Русский для России + + + + zh_TW + Традиционный китайский для Тайваня + + + + + + + + + Кодировки + кодировки + ASCII + + Некоторые языки используют не соответствующие ASCII кодировки, + которые используют для кодирования 8 бит, расширенное или + многобайтовое представление символов (подробности см. в &man.multibyte.3;). + Старые приложения не распознают такие кодировки и ошибочно принимают их + за управляющие символы. Новые приложения обычно распознают 8-битные + символы. В зависимости от реализации, пользователю может + потребоваться компиляция приложения с поддержкой расширенного или + многобайтного представления символов, или же просто правильная его + настройка. Чтобы иметь возможность вводить и обрабатывать символы с + расширенным или многобайтным представлением, Коллекция портов FreeBSD + предоставляет поддержку разных языков для различных приложений. Смотрите + документацию по I18N в соответствующем порту FreeBSD. + + В частности, пользователю необходимо читать прилагаемую к приложению + документацию чтобы решить, как правильно его настроить или + указать правильные параметры configure/Makefile/компилятору. + + Следует помнить следующие вещи: + + + + Наборы символов, использующие один байт для кодирования символа + (см. &man.multibyte.3;), например, + ISO-8859-1, ISO-8859-15, KOI8-R, CP437. + + + + Расширенные или многобайтные кодировки, например, EUC, Big5. + + + + Вы можете посмотреть актуальный список наборов символов на сайте + IANA Registry. + + + Вместо этого, FreeBSD версий 4.5 и выше используют X11-совместимые + кодировки для локализации. + + + + + + Приложения, использующие I18N + + В системе Портов и Пакетов FreeBSD в название приложений, + поддерживающих I18N, включена аббревиатура I18N для + легкой их идентификации. И, тем не менее, не все приложения поддерживают + требуемый язык. + + + + Настройка локализации + + Обычно достаточно экспортировать значение имени локализации в + переменной LANG Вашей оболочки. Это можно сделать в + пользовательском ~/.login_conf файле или в + инициализационном файле пользовательской оболочки + (~/.profile, ~/.bashrc, + ~/.cshrc). Нет надобности устанавливать отдельные + параметры локализации такие как LC_CTYPE, + LC_CTIME. За дополнительной информацией, пожалуйста, + обращайтесь к документации FreeBSD по нужному вам языку. + + Вам следует установить следующие переменные окружения в ваших + конфигурационных файлах: + + + POSIX + + LANG для семейства функций &posix; + &man.setlocale.3; + + + MIME + + MM_CHARSETнабор символов MIME для + приложений + + + + Эти настройки включают конфигурацию оболочки пользователя, + конфигурацию конкретных приложений и конфигурацию X11. + + + Методы настройки локализации + locale + login class + + Существует два метода настройки локализации и оба описаны ниже. + Первый (рекомендуемый) заключается в задании переменных в классе логина, другой метод заключается в + задании переменных окружения в + инициализационном + файле системной оболочки. + + + Метод Login Classes + + Этот метод позволяет установить переменные окружения, + необходимые для установки локализации и набора символов MIME, + однократно для любых оболочек, вместо того, чтобы добавлять + установку этих переменных в инициализационный файл каждой оболочки. + Настройка на уровне пользователя может + быть сделана самим пользователем, а + Настройка на уровне администратора требует привилегий + суперпользователя. + + + Настройка на уровне пользователя + + Вот минимальный пример файла .login_conf + в домашнем каталоге пользователя, в котором задаются обе переменные + для кодировки Latin-1: + + me:\ + :charset=ISO-8859-1:\ + :lang=de_DE.ISO8859-1: + + Traditional ChineseBIG-5 encoding + Это пример .login_conf, который задает + переменные для Традиционного Китайского языка в кодировке 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": #Setting the XIM Input Server + + За подробностями обращайтесь к разделу + Настройка на + уровне администратора и &man.login.conf.5;. + + + + Настройка на уровне администратора + + Проверьте, что класс логина пользователя в + /etc/login.conf задает нужный язык. + Убедитесь, что эти настройки присутствуют в + /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: + + Изменение класса логина с помощью + &man.vipw.8; + + + vipw + + Используйте vipw для добавления новых + пользователей и отредактируйте запись о пользователе, чтобы она была + похожа на эту: + + user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh + + Изменение класса логина с помощью + &man.adduser.8; + + + adduser + + login class + Используйте adduser для добавления новых + пользователей и сделайте следующее: + + + + Установите defaultclass = + язык в + /etc/adduser.conf. Помните, что в этом + случае вы должны задать default класс для + всех пользователей других языков. + + + + Другой способ заключается в задании класса логина каждый + раз, когда &man.adduser.8; попросит об этом: + Enter login class: default []: + + + + + Еще один способ - использовать следующее для каждого + пользователя другого языка, которого вы хотите + добавить: + + &prompt.root; adduser -class язык + + + + Изменение класса логина с помощью + &man.pw.8; + pw + Если для добавления новых пользователей вы используете + утилиту &man.pw.8;, запускайте ее с такими параметрами: + + &prompt.root; pw useradd + имя_пользователя -L язык + + + + + Метод инициализационных файлов оболочки + + + Этот метод не рекомендуется, потому что он требует разных + настроек для каждой оболочки. Вместо этого используйте + Метод класса логина. + + + MIME + locale + Чтобы добавить локализацию и набор символов 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 + + В зависимости от вашей оболочки (см. выше). + + + + + + + Настройка консоли + + Для всех однобайтовых кодовых таблиц, укажите подходящие + консольные шрифты в /etc/rc.conf для + требуемого языка: + + font8x16=имя_шрифта +font8x14=имя_шрифта +font8x8=имя_шрифта + + The имя_шрифта берется из каталога + /usr/share/syscons/fonts, + без указания расширения .fnt. + + + sysinstall + + keymap + screenmap + Убедитесь также в установке правильных значений keymap и screenmap + для вашей однобайтовой кодовой таблицы через + /stand/sysinstall. + В 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-битный шрифт. + + Если даемон мыши moused включен + добавлением в /etc/rc.conf следующей + строки: + +moused_enable="YES" + + прочтите информацию о курсоре мыши в следующем параграфе. + + + moused + + По умолчанию драйвер &man.syscons.4; выделяет для курсора мыши + в таблице символов диапазон 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, без расширения + .kbd. Если вы не знаете какую таблицу + использовать, запустите &man.kbdmap.1; для тестирования таблицы + без перезагрузки. + + keychange обычно требуется для сопоставления + функциональных клавиш выбранному типу терминала, поскольку + последовательности функциональных клавиш не могут быть определены + в раскладке клавиатуры. + + Убедитесь также, что для всех записей ttyv* + в /etc/ttys установлен подходящий тип терминала. + Имеющиеся типы соответствуют следующим кодировкам: + + + + + + Кодовая таблица + Тип терминала + + + + + + 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. + Некоторые порты выводят информацию на консоль, хотя для системы + выглядят как последовательные псевдотерминалы, следовательно вы + должны зарезервировать достаточное количество псевдотерминалов + и для X11 и для последовательных псевдоконсолей. Вот неполный + список приложений для использования этих кодировок в консоли: + + + + + + Язык + Приложение + + + + + + Традиционный китайский (BIG-5) + chinese/big5con + + + + Японский + japanese/ja-kon2-* or + japanese/Mule_Wnn + + + + Корейский + korean/ko-han + + + + + + + + Настройка X11 + + Хотя X11 не является частью проекта FreeBSD, мы включили сюда + некоторую информацию для пользователей FreeBSD. За детальной + информацией обращайтесь к Веб + сайту &xfree86; или к сайту того сервера X11, который вы + используете. + + В ~/.Xresources, вы можете внести + дополнительные I18N настройки приложений (настройки шрифтов, + меню и т.п.). + + + Отображение шрифтов + X11 True Type font server + Установите сервер X11 &truetype; Common + (x11-servers/XttXF86srv-common) + и &truetype; шрифты для используемого языка. После установки корректного + значения locale меню, сообщения и т.д. должны появиться на + соответствующем языке. + + + + Ввод не-англоязычных символов + X11 Input Method (XIM) + Протокол X11 Input Method (XIM) это новый стандарт для всех + клиентов X11. Все приложения X11 должны быть написаны как XIM + клиенты, получающие ввод с серверов XIM Input. Существует + несколько XIM серверов, доступных для различных языков. + + + + + Настройка принтера + + Некоторые однобайтовые кодовые таблицы обычно поддерживаются + принтерами на аппаратном уровне. Расширенные, или + мультибайтовые кодовые таблицы требуют дополнительной настройки. + Мы рекомендуем использование apsfilter. + Кроме того, вы можете преобразовать документ в формат &postscript; или + PDF с помощью поддерживающих соответствующий язык программ. + + + + Ядро и файловые системы + + Файловая система FreeBSD (fast filesystem, FFS) поддерживает + 8-битные символы, ее можно использовать с любой односимвольной + кодовой таблицей (см. &man.multibyte.3;), но кодовые таблицы не + хранятся в файловой системе; т.е. ей ничего не известно о порядке + расположения символов в кодовой таблице. Официально FFS пока + не поддерживает расширенные или много символьные кодовые таблицы. + Однако, для некоторых расширенных или многобайтовых кодировок есть + неофициальные патчи, включающие их поддержку в FFS. Это всего + лишь временные не переносимые решения или исправления кода и + мы решили не включать их в дерево исходных текстов. Обращайтесь + к сайтам по соответствующим языкам за дальнейшей информацией + и патчами. + + DOS + Unicode + Файловая система &ms-dos; в FreeBSD может быть настроена для + поддержки перекодировки между &ms-dos;, кодовыми таблицами Unicode + и выбранной кодовой таблицей FreeBSD. Обращайтесь к + &man.mount.msdos.8; за подробностями. + + + + + Компиляция I18N программ + + Многие порты FreeBSD были созданы с поддержкой I18N. Некоторые + из них помечены символами -I18N в имени порта. Эти и многие другие + программы имеют встроенную поддержку I18N и не нуждаются в + специальной настройке. + + + MySQL + + Однако, некоторые приложения, такие как + MySQL, требуют указания кодировки в + Makefile. Это обычно делается правкой + Makefile или передачей параметров + configure при сборке из исходных + текстов. + + + + Локализация FreeBSD для поддержки определенных языков + + + + + + Andrey A. + Chernov + Первоначально предоставил + + + + Русский язык (кодировка KOI8-R) + + localization + Russian + + + За дополнительной информацией о кодировке KOI8-R, обращайтесь к + странице KOI8-R References + (Russian Net Character Set). + + + Настройка локализации + + Поместите в ~/.login_conf следующие + строки: + + me:My Account:\ + :charset=KOI8-R:\ + :lang=ru_RU.KOI8-R: + + Обратитесь к вышеизложенному материалу этой главы за + соответствующей + информацией. + + + + Настройка консоли + + + + Для FreeBSD версий до 5.0 добавьте к файлу настройки + ядра следующую строку: + + options SC_MOUSE_CHAR=0x03 + + Для FreeBSD версий 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 в качестве типа терминала. + + + + Обратитесь к вышеизложенному материалу этой главы за примерами + настройки консоли. + + + + Настройка принтера + принтеры + Большинство принтеров для России поставляются с аппаратной кодовой + страницей 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: + + Обратитесь к &man.printcap.5; за подробным описанием. + + + + &ms-dos; FS и русские имена файлов + + Следующий пример записи в &man.fstab.5; включает поддержку + русских имен файлов при монтировании файловых систем &ms-dos;: + + /dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0 + + Параметр выбирает имя используемой + локализации, а параметр задает таблицу + перекодировки. При использовании параметра + убедитесь, что раздел /usr смонтирован перед + разделом &ms-dos;, поскольку таблицы перекодировки расположены + в каталоге + /usr/libdata/msdosfs. За более подробной + информацией обращайтесь к странице справочника + &man.mount.msdos.8;. + + + + Настройка X11 + + + + Выполните сначала не-X + настройку локализации. + + + Локализация KOI8-R + может не работать со старыми релизами + &xfree86; (ниже 3.3). + На настоящий момент в FreeBSD в качестве системы X Window по + умолчанию используется &xfree86; 4.X. + Поэтому если только вы не используете старые версии FreeBSD, + это не должно стать проблемой. + + + + + Зайдите в каталог + russian/X.language и + выполните следующую команду: + + &prompt.root; make install + + Вышеуказанный порт установит последнюю версию KOI8-R + шрифтов. В &xfree86; 3.3 уже есть + некоторые KOI8-R шрифты, но эти масштабируются лучше. + + Проверьте раздел "Files" в файле + /etc/XF86Config. Следующие строки + должны быть добавлены перед всеми + записями 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" + + Если вы используете видеорежим с высоким разрешением, + поменяйте местами строки для 75 dpi и 100 dpi. + + + + Для настройки ввода на русском языке, добавьте + нижеприведенные строки в раздел + "Keyboard" файла + XF86Config. + + Для &xfree86; 3.X: + + XkbLayout "ru" +XkbOptions "grp:caps_toggle" + + Для &xfree86; 4.X: + + Option "XkbLayout" "ru" +Option "XkbOptions" "grp:caps_toggle" + + Убедитесь, что XkbDisable отключен + (закомментирован) в этом разделе. + + Переключателем RUS/LAT служит CapsLock. + Прежняя функция CapsLock все еще доступна в комбинации + ShiftCapsLock + (только в режиме LAT). + + Если на вашей клавиатуре есть клавиши &windows;, + и некоторые не-алфавитные клавиши работают неправильно в режиме + RUS, добавьте следующую строку в файл + XF86Config. + + Для &xfree86; 3.X: + + XkbVariant "winkeys" + + Для &xfree86; 4.X: + + Option "XkbVariant" "winkeys" + + + Ввод на русском языке может может не работать со старыми + версиями &xfree86;, прочтите + предупреждение выше с + более подробной информацией. Ввод на русском языке может + также не работать с нелокализованными приложениями. + Минимально локализованные приложения должны вызывать + функцию XtSetLanguageProc (NULL, NULL, + NULL); в начале программы. Обратитесь к KOI8-R for X Window + за дальнейшими инструкциями по локализации приложений + X11. + + + + + + + + Локализация на традиционном китайском для Тайваня + + локализация + традиционный китайский + + У проекта FreeBSD-Taiwan есть I18N/L10N учебник для + FreeBSD по адресу + , + в котором используются многие порты на китайском. + Редактором учебника zh-L10N-tut является Clive Lin + Clive@CirX.org. Вы можете получить с помощью cvsup + с freebsd.sinica.edu.tw следующие + коллекции: + + + + + + Коллекция + Описание + + + + + + outta-port tag=. + Beta-quality коллекция портов на китайском + + + + zh-L10N-tut tag=. + Локализация учебника FreeBSD на BIG-5 традиционном + китайском + + + + zh-doc tag=. + Перевод документации FreeBSD на BIG-5 традиционный + китайский + + + + + + Chuan-Hsing Shen s874070@mail.yzu.edu.tw создал + Chinese + FreeBSD Collection (CFC) используя FreeBSD-Taiwan + zh-L10N-tut. Пакеты и скрипты доступны по адресу + . + + + + Локализация на немецкий язык (для всех ISO 8859-1 + языков) + + локализация + немецкий + + + Slaven Rezic eserte@cs.tu-berlin.de написал + учебник по использованию umlauts в FreeBSD. Учебник написан + на немецком и доступен по адресу + . + + + + Локализация на японский и корейский языки + + локализация + японский + + + локализация + корейский + + За информацией по японской локализации, обратитесь к + , + а за информацией о корейской локализацией к + . + + + + Не-англоязычная документация FreeBSD + + Отдельные контрибьюторы FreeBSD перевели части документации + FreeBSD на другие языки. Эти переводы доступны на основном сайте или из каталога + /usr/share/doc. + + +