Почему я должен использовать 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!