Руководство Freebsd icon

Руководство Freebsd


Смотрите также:
Руководство Freebsd...
Ермаков В. И. ред...
Avira AntiVir PersonalEdition...
Киев, пр-т Освободителей 25, кв. 15...
Техническое задание на разработку сайта...
Frenzy 0 информация о релизе...
Руководство по парашютной подготовке авиации досааф россии (рпп-2010) (далее Руководство)...
Методологическое руководство по мониторингу и оценке...
Методологическое руководство по мониторингу и оценке вич/спид, туберкулез и малярия июнь 2004 г...
Руководство пользователя Сетевой цифровой видеорекордер...
Руководство проведением конкурса Общее руководство, организацию подготовки...
Методическое руководство по дипломному проектированию...



страницы: 1   ...   7   8   9   10   11   12   13   14   ...   27
вернуться в начало

Глава 20. Локализация - I18N/L10N использование и настройка


^ Предоставил Andrey Chernov. Переписал Michael C. Wu. Перевод на русский язык: Александр Пересунко, Денис Пеплин.

20.1. Краткий обзор


FreeBSD - это очень распределенный проект, пользователи и контрибьюторы которого находятся в самых разных частях света. В этой главе рассказывается о возможностях интернационализации и локализации FreeBSD, которые позволяют не-англоговорящим пользователям делать свою работу. Существует много подходов в i18n реализации - как на системном уровне, так и на уровне приложений, так что, где это возможно, мы будем давать читателю ссылки на более углубленные источники документации.

После прочтения этой главы, вы будете знать:

• Как разные языки и региональные настройки кодируются в современных операционных системах.

• Как установить региональные настройки для вашей оболочки.

• Как настроить вашу консоль для отличных от английского языков.

• Как эффективно использовать X Window System с разными языками.

• Где найти дополнительную документацию по созданию i18n-совместимых приложений.

Перед чтением этой главы вам следует::

• Знать как установить дополнительные приложения сторонних разработчиков (Гл. 4).

20.2. Основы

20.2.1. Что такое I18N/L10N?


Разработчики сократили интернационализацию в термин I18N, по числу символов между первым и последним символом интернационализации. В названии L10N используется тот же принцип от ''локализации''. Совместно используемые I18N/L10N методы, протоколы и приложения позволяют пользователям использовать языки по своему выбору.

I18N приложения написаны с применением набора I18N посредством библиотек. Это позволяет разработчикам писать простые файлы и переводить отображаемые меню и надписи на разные языки. Мы настоятельно рекомендуем программистам следовать этому соглашению.

20.2.2. Почему я должен использовать I18N/L10N?


I18N/L10N используется всегда, когда вы хотите просмотреть, ввести или обработать данные на отличных от английского языках.

20.2.3. Какие языки поддерживаются в проекте I18N?


I18N и L10N не являются специфичными для FreeBSD. На текущий момент у вас есть выбор между самыми распространенными языками мира, включая, но не ограничиваясь: китайский, немецкий, японский, корейский, французский, русский, вьетнамский и др.

^ 20.3. Использование локализации


При всем своем величии, I18N не специфична для FreeBSD и является, по сути, соглашением. Следование этому соглашению помогает FreeBSD, и мы это приветствуем.

Настройки локализации базируются на трех основных терминах: код языка, код страны и кодировка. Имена локализаций строятся из этих частей следующим образом:

кодязыка_кодстраны.кодировка

20.3.1. Язык и код страны


Чтобы настроить FreeBSD (или любую другую UNIX-систему, поддерживающую I18N) на использование специфического языка, пользователю нужно выяснить коды этого языка и страны (коды страны сообщают приложению какой именно диалект языка этой страны нужно использовать). К тому же, веб-браузеры, SMTP/POP серверы, веб-серверы и т.п. делают свой выбор в зависимости от этого. Далее показаны примеры кодов языка/страны:

^ Код языка/страны

Описание

en_US

Английский - Соединенные Штаты

ru_RU

Русский для России

zh_TW

Традиционный китайский для Тайваня



20.3.2. Кодировки


Некоторые языки используют не соответствующие ASCII кодировки, которые используют для кодирования 8 бит, расширенное или многобайтовое представление символов (подробности см. в multibyte(3)). Старые приложения не распознают такие кодировки и ошибочно принимают их за управляющие символы. Новые приложения обычно распознают 8-битные символы. В зависимости от реализации, пользователю может потребоваться компиляция приложения с поддержкой расширенного или многобайтного представления символов, или же просто правильная его настройка. Чтобы иметь возможность вводить и обрабатывать символы с расширенным или многобайтным представлением, Коллекция портов FreeBSD (http://www.FreeBSD.org/ru/ports/index.html) предоставляет поддержку разных языков для различных приложений. Смотрите документацию по I18N в соответствующем порту FreeBSD.

В частности, пользователю необходимо читать прилагаемую к приложению документацию чтобы решить, как правильно его настроить или указать правильные параметры configure/Makefile/компилятору.

Следует помнить следующие вещи:

• Наборы символов, использующие один байт для кодирования символа (см. multibyte(3)), например, ISO8859-1, ISO8859-15, KOI8-R, CP437.

• Расширенные или многобайтные кодировки, например, EUC, Big5.

Вы можете посмотреть актуальный список наборов символов на сайте IANA Registry (http://www.iana.org/assignments/character-sets).

Замечание: Вместо этого, FreeBSD используют X11-совместимые кодировки для локализации.

20.3.3. Приложения, использующие I18N


В системе Портов и Пакетов FreeBSD в название приложений, поддерживающих I18N, включена аббревиатура I18N для легкой их идентификации. И, тем не менее, не все приложения поддерживают требуемый язык.

20.3.4. Настройка локализации


Обычно достаточно экспортировать значение имени локализации в переменной LANG Вашей оболочки. Это можно сделать в пользовательском ~/.login_conf файле или в инициализационном файле пользовательской оболочки (~/.profile, ~/.bashrc, ~/.cshrc). Нет надобности устанавливать отдельные параметры локализации такие как LC_CTYPE, LC_CTIME. За дополнительной информацией, пожалуйста, обращайтесь к документации FreeBSD по нужному вам языку.

Вам следует установить следующие переменные окружения в ваших конфигурационных файлах:

• LANG для семейства функций POSIX setlocale(3)

• MM_CHARSETнабор символов MIME для приложений

Эти настройки включают конфигурацию оболочки пользователя, конфигурацию конкретных приложений и конфигурацию X11.
20.3.4.1. Методы настройки локализации

Существует два метода настройки локализации и оба описаны ниже. Первый (рекомендуемый) заключается в задании переменных в классе логина, другой метод заключается в задании переменных окружения в инициализационном файле системной оболочки.
20.3.4.1.1. Метод Login Classes

Этот метод позволяет установить переменные окружения, необходимые для установки локализации и набора символов MIME, однократно для любых оболочек, вместо того, чтобы добавлять установку этих переменных в инициализационный файл каждой оболочки. Настройка на уровне пользователя может быть сделана самим пользователем, а Настройка на уровне администратора требует привилегий суперпользователя.

20.3.4.1.1.1. Настройка на уровне пользователя

Вот минимальный пример файла .login_conf в домашнем каталоге пользователя, в котором задаются обе переменные для кодировки Latin-1:

me:\

:charset=ISO-8859-1:\

:lang=de_DE.ISO8859-1:

Это пример .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

За подробностями обращайтесь к разделу Настройка на уровне администратора и login.conf(5).

20.3.4.1.1.2. Настройка на уровне администратора

Проверьте, что класс логина пользователя в /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:

После изменения описания классов логинов выполните команду

# cap_mkdb /etc/login.conf

для того, чтобы изменения в файле /etc/login.conf стали использоваться системой.

^ Изменение класса логина с помощью vipw(8)

Используйте vipw для добавления новых пользователей и отредактируйте запись о пользователе, чтобы она была похожа на эту:

user:password:1111:11:language:0:0:User Name:/home/user:/bin/sh

^ Изменение класса логина с помощью adduser(8)

Используйте adduser для добавления новых пользователей и сделайте следующее:

• Установите defaultclass = язык в /etc/adduser.conf. Помните, что в этом случае вы должны задать default класс для всех пользователей других языков.

• Другой способ заключается в задании класса логина каждый раз, когда adduser(8) попросит об этом:

Enter login class: default []:

• Еще один способ - использовать следующее для каждого пользователя другого языка, которого вы хотите добавить:

# adduser -class язык

Изменение класса логина с помощью pw(8)

Если для добавления новых пользователей вы используете утилиту pw(8), запускайте ее с такими параметрами:

# pw useradd

имя_пользователя -L язык
20.3.4.1.2. Метод инициализационных файлов оболочки

Замечание: Этот метод не рекомендуется, потому что он требует разных настроек для каждой оболочки. Вместо этого используйте Метод класса логина.

Чтобы добавить локализацию и набор символов 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

В зависимости от вашей оболочки (см. выше).

20.3.5. Настройка консоли


Для всех однобайтовых кодовых таблиц, укажите подходящие консольные шрифты в /etc/rc.conf для требуемого языка:

font8x16=имя_шрифта

font8x14=имя_шрифта

font8x8=имя_шрифта

The имя_шрифта берется из каталога /usr/share/syscons/fonts, без указания расширения .fnt.

Убедитесь также в установке правильных значений keymap и screenmap для вашей однобайтовой кодовой таблицы через sysinstall (/stand/sysinstall в FreeBSD версий более ранних, чем 5.2). В 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"

прочтите информацию о курсоре мыши в следующем параграфе.

По умолчанию драйвер 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. Если вы не знаете какую таблицу использовать, запустите kbdmap(1) для тестирования таблицы без перезагрузки.

keychange обычно требуется для сопоставления функциональных клавиш выбранному типу терминала, поскольку последовательности функциональных клавиш не могут быть определены в раскладке клавиатуры.

Убедитесь также, что для всех записей ttyv* в /etc/ttys установлен подходящий тип терминала. Имеющиеся типы соответствуют следующим кодировкам:

Кодовая таблица

Тип терминала

ISO8859-1 or ISO8859-15

cons25l1

ISO8859-2

cons25l2

ISO8859-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/kon2-16dot или japanese/mule-freewnn

Корейский

korean/han



20.3.6. Настройка X11


Хотя X11 не является частью проекта FreeBSD, мы включили сюда некоторую информацию для пользователей FreeBSD. За детальной информацией обращайтесь к Веб сайту Xorg (http://www.x.org/) или к сайту того сервера X11, который вы используете.

В ~/.Xresources, вы можете внести дополнительные I18N настройки приложений (настройки шрифтов, меню и т.п.).
20.3.6.1. Отображение шрифтов

Установите сервер Xorg (x11-servers/xorg-server) или XFree86 (x11-servers/XFree86-4-Server), затем TrueType шрифты для используемого языка. После установки корректного значения locale меню, сообщения и т.д. должны появиться на соответствующем языке.
20.3.6.2. Ввод не-англоязычных символов

Протокол X11 Input Method (XIM) это новый стандарт для всех клиентов X11. Все приложения X11 должны быть написаны как XIM клиенты, получающие ввод с серверов XIM Input. Существует несколько XIM серверов, доступных для различных языков.

20.3.7. Настройка принтера


Некоторые однобайтовые кодовые таблицы обычно поддерживаются принтерами на аппаратном уровне. Расширенные, или мультибайтовые кодовые таблицы требуют дополнительной настройки. Мы рекомендуем использование apsfilter. Кроме того, вы можете преобразовать документ в формат PostScript или PDF с помощью поддерживающих соответствующий язык программ.

20.3.8. Ядро и файловые системы


Файловая система FreeBSD (fast filesystem, FFS) поддерживает 8-битные символы, ее можно использовать с любой односимвольной кодовой таблицей (см. multibyte(3)), но кодовые таблицы не хранятся в файловой системе; т.е. ей ничего не известно о порядке расположения символов в кодовой таблице. Официально FFS пока не поддерживает расширенные или много символьные кодовые таблицы. Однако, для некоторых расширенных или многобайтовых кодировок есть неофициальные патчи, включающие их поддержку в FFS. Это всего лишь временные не переносимые решения или исправления кода и мы решили не включать их в дерево исходных текстов. Обращайтесь к сайтам по соответствующим языкам за дальнейшей информацией и патчами.

Файловая система MS-DOS в FreeBSD может быть настроена для поддержки перекодировки между MS-DOS, кодовыми таблицами Unicode и выбранной кодовой таблицей FreeBSD. Обращайтесь к mount_msdos(8) за подробностями.

^ 20.4. Компиляция I18N программ


Многие порты FreeBSD были созданы с поддержкой I18N. Некоторые из них помечены символами -I18N в имени порта. Эти и многие другие программы имеют встроенную поддержку I18N и не нуждаются в специальной настройке.

Однако, некоторые приложения, такие как MySQL, требуют указания кодировки в Makefile. Это обычно делается правкой Makefile или передачей параметров configure при сборке из исходных текстов.

20.5. Локализация FreeBSD для поддержки определенных языков

20.5.1. Русский язык (кодировка KOI8-R)


Первоначально предоставил Andrey Chernov.

За дополнительной информацией о кодировке KOI8-R, обращайтесь к странице KOI8-R References (Russian Net Character Set) (http://koi8.pp.ru/).
20.5.1.1. Настройка локализации

Поместите в ~/.login_conf следующие строки:

me:My Account:\

:charset=KOI8-R:\

:lang=ru_RU.KOI8-R:

Обратитесь к вышеизложенному материалу этой главы за соответствующей информацией.
20.5.1.2. Настройка консоли

• Для 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 в качестве типа терминала.

Обратитесь к вышеизложенному материалу этой главы за примерами настройки консоли.
20.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) за подробным описанием.
20.5.1.4. MS-DOS FS и русские имена файлов

Следующий пример записи в fstab(5) включает поддержку русских имен файлов при монтировании файловых систем MS-DOS:

/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0

Параметр -L выбирает имя используемой локализации, а параметр -W задает таблицу перекодировки. При использовании параметра -W убедитесь, что раздел /usr смонтирован перед разделом MS-DOS, поскольку таблицы перекодировки расположены в каталоге /usr/libdata/msdosfs. За более подробной информацией обращайтесь к странице справочника mount_msdos(8).
20.5.1.5. Настройка X11

1. Выполните сначала не-X настройку локализации.

2. Если вы используете Xorg, установите пакет x11-fonts/xorg-fonts-cyrillic.

Проверьте раздел "Files" в файле /etc/X11/xorg.conf. Следующие строки должны быть добавлены перед всеми записями 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.

3. Для настройки ввода на русском языке, добавьте нижеприведенные строки в раздел "Keyboard" файла corg.conf:

Option "XkbLayout" "us,ru"

Option "XkbOptions" "grp:toggle"

Убедитесь, что XkbDisable отключен (закомментирован) в этом разделе.

Для случая grp:caps_toggle переключателем RUS/LAT служит CapsLock. Прежняя функция CapsLock все еще доступна в комбинации Shift+CapsLock (только в режиме LAT). При установке grp:toggle переключателем RUS/LAT будет правая клавиша Alt. Режим grp:caps_toggle по неустановленным причинам не работает в Xorg.

Если на вашей клавиатуре есть клавиши ''Windows'', и некоторые не-алфавитные клавиши работают неправильно в режиме RUS, добавьте следующую строку в файл xorg.conf:

Option "XkbVariant" ",winkeys"

Замечание: Ввод на русском языке может может не работать с нелокализованными приложениями.

Замечание: Минимально локализованные приложения должны вызывать функцию XtSetLanguageProc (NULL, NULL, NULL); в начале программы.

Обратитесь к KOI8-R for X Window (http://koi8.pp.ru/xwin.html) за дальнейшими инструкциями по локализации приложений X11.

20.5.2. Локализация на традиционном китайском для Тайваня


У проекта FreeBSD-Taiwan есть Chinese HOWTO для FreeBSD по адресу http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/, в котором используются многие порты на китайском. На данный момент редактором FreeBSD Chinese HOWTO является Shen Chuan-Hsing .

Chuan-Hsing Shen создал Chinese FreeBSD Collection (CFC) (http://netlab.cse.yzu.edu.tw/~statue/cfc/), используя FreeBSD-Taiwan zh-L10N-tut. Пакеты и скрипты доступны по адресу ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/.

20.5.3. Локализация на немецкий язык (для всех ISO 8859-1 языков)


Slaven Rezic написал учебник по использованию umlauts в FreeBSD. Учебник написан на немецком и доступен по адресу http://www.de.FreeBSD.org/de/umlaute/.

20.5.4. Локализация на японский и корейский языки


За информацией по японской локализации, обратитесь к http://www.jp.FreeBSD.org/, а за информацией о корейской локализацией к http://www.kr.FreeBSD.org/.

20.5.5. Не-англоязычная документация FreeBSD


Отдельные контрибьюторы FreeBSD перевели части документации FreeBSD на другие языки. Эти переводы доступны на основном сайте (http://www.FreeBSD.org/ru/index.html) или из каталога /usr/share/doc.




Скачать 14.45 Mb.
оставить комментарий
страница11/27
Дата18.10.2011
Размер14.45 Mb.
ТипРуководство, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы: 1   ...   7   8   9   10   11   12   13   14   ...   27
отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Документы

Рейтинг@Mail.ru
наверх