Почему я должен использовать I18N/L10N?
I18N/L10N используется всегда, когда вы хотите просмотреть, ввести или обработать данные на отличных от английского языках.
Какие языки поддерживаются в проекте I18N?
I18N и L10N не являются специфичными для FreeBSD. На текущий момент у вас есть выбор между самыми распространенными языками мира, включая, но не ограничиваясь: китайский, немецкий, японский, корейский, французский, русский, вьетнамский и др.
Использование локализации
При всем своем величии, I18N не специфична для FreeBSD и является, по сути, соглашением. Следование этому соглашению помогает FreeBSD, и мы это приветствуем.
Настройки локализации базируются на трех основных терминах: код языка, код страны и кодировка. Имена локализаций строятся из этих частей следующим образом:
кодязыка_кодстраны.кодировка
Язык и код страны
Чтобы настроить FreeBSD (или любую другую UNIX-систему, поддерживающую I18N) на использование специфического языка, пользователю нужно выяснить коды этого языка и страны (коды страны сообщают приложению какой именно диалект языка этой страны нужно использовать). К тому же, веб-браузеры, SMTP/POP серверы, веб-серверы и т.п. делают свой выбор в зависимости от этого. Далее показаны примеры кодов языка/страны:
Код языка/страны | Описание |
en_US | Английский - Соединенные Штаты |
ru_RU | Русский для России |
zh_TW | Традиционный китайский для Тайваня |
Кодировки
Некоторые языки используют не соответствующие 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-совместимые кодировки для локализации.
Приложения, использующие I18N
В системе Портов и Пакетов FreeBSD в название приложений, поддерживающих I18N, включена аббревиатура I18N для легкой их идентификации. И, тем не менее, не все приложения поддерживают требуемый язык.
Настройка локализации
Обычно достаточно экспортировать значение имени локализации в переменной LANG Вашей оболочки. Это можно сделать в пользовательском ~/.login_conf файле или в инициализационном файле пользовательской оболочки (~/.profile, ~/.bashrc, ~/.cshrc). Нет надобности устанавливать отдельные параметры локализации такие как LC_CTYPE, LC_CTIME. За дополнительной информацией, пожалуйста, обращайтесь к документации FreeBSD по нужному вам языку.
Вам следует установить следующие переменные окружения в ваших конфигурационных файлах:
• LANG для семейства функций POSIX setlocale(3)
• MM_CHARSETнабор символов MIME для приложений
Эти настройки включают конфигурацию оболочки пользователя, конфигурацию конкретных приложений и конфигурацию X11.
Методы настройки локализации
Существует два метода настройки локализации и оба описаны ниже. Первый (рекомендуемый) заключается в задании переменных в классе логина, другой метод заключается в задании переменных окружения в инициализационном файле системной оболочки.
|
|
Метод Login Classes
Этот метод позволяет установить переменные окружения, необходимые для установки локализации и набора символов MIME, однократно для любых оболочек, вместо того, чтобы добавлять установку этих переменных в инициализационный файл каждой оболочки. Настройка на уровне пользователя может быть сделана самим пользователем, а Настройка на уровне администратора требует привилегий суперпользователя.
21.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:\
:setenv=LC_ALL=zh_TW.Big:\
:setenv=LC_COLLATE=zh_TW.Big5:\
:setenv=LC_CTYPE=zh_TW.Big5:\
:setenv=LC_MESSAGES=zh_TW.Big5:\
:setenv=LC_MONETARY=zh_TW.Big5:\
:setenv=LC_NUMERIC=zh_TW.Big5:\
:setenv=LC_TIME=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=gcin": #Set gcin as the XIM Input Server
За подробностями обращайтесь к разделу Настройка на уровне администратора и login.conf(5).
21.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 язык
Дата добавления: 2018-10-26; просмотров: 180; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!