11.1.2. Локализация
11.1.2. Локализация
Только организовать ввод и вывод символов национального языка еще недостаточно для того, чтобы можно было считать решенным проблему применения компьютеров в той или иной стране. В разных странах в силу сложившихся традиций имеются различия не только в используемом алфавите, но и в способах представления некоторых конкретных данных. Это касается, например, символов, используемых для обозначения валюты, форматов представления даты и времени, обычаев записи (чтения) текстов слева направо или справа налево и т.д. При создании ПО, рассчитанного на применение в разных странах, приходится учитывать такие местные особенности. Кроме того, большие трудности вызывают такие вопросы как проверка орфографии на конкретном языке, автоматическая расстановка переносов при вводе текста или перевод на данный язык всех меню и служебных сообщений в программном обеспечении.
Способ проектирования ПО (включая ОС), при котором возможность многоязыковой поддержки закладывается с самого начала, принято называть интернационализацией (кстати, загадочное i18n - это просто сокращение для слова internationalization: i - потом еще 18 букв - n, аналогично, l10n = localization). При интернационализации программного обеспечения КОД не зависит от национальных особенностей. Все языково-зависимые данные сосредотачиваются в особых "объектах локализации", которые разбиты на функциональные группы: категории локализации. При таком подходе локализация - это процесс настройки программной системы на особенности конкретной страны.
В стандарте POSIX (Portable Operating System) были определены средства локализации, которые состоят из следующих компонент:
• набор библиотечных (libc) вызовов (locale API): setlocale(), isalpha(), toupper(), и т.д;
• исходные тексты описания средств локализации, в том числе файл(ы) описания кодировки (Character Set Definition File);
• наборы данных для локализации, которые в Linux размещаются в каталогах /usr/share/i18n/* и /usr/share/locale/*;
• утилита для получения информации о средствах локализации: locale;
• утилита для изготовления (компиляции) объектов локализации: localedef;
• переменные окружения, для управления средствами локализации: LANG, LC_ALL, LC_CTYPE, LC_TIME, LC_COLLATE, LC_NUMERIC и LC_MONETARY (они соответствуют категориям локализации).
В табл.11.1 кратко перечислено, на что именно влияет та или иная из этих переменных (или категорий локализации).
Таблица 11.1. Категории локализации.
Категория Описание LC_CTYPE Определяет правила классификации и преобразования одиночных символов. Позволяет правильно определять вид символа: цифра, буква, значок, заглавная буква или прописная и т.д. Другими словами, включает правильную работу системных вызовов isalnum(), isalpha(), iscntrl(), isdigit(),… и т.п. для местного алфавита. Вдобавок, включает правильный перевод строчных - прописных букв: toupper() и tolower() LC_COLLATE Определяет правила сравнения и преобразования строк. Позволяет определять лексикографический порядок символов (порядок сортировки) в местном алфавите. Включает правильную работу strcoll() и strxfrm(). Оказывает непосредственное влияние на работу утилит типа sort и т.д. LC_TIME Определяет правила национального представления времени и даты. Задает именование дней недели, месяцев и т.п. а также задает способ написания даты и времени (12/24). Hепосредственно влияет на strftime(), а через нее на утилиты date и т.д. LC_NUMERIC Определяет правила национального представления чисел с плавающей точкой. Влияет на strtod() и форматы %f и %g printf(), scanf() LC_MONETARY Определяет правила национального представления денежных величинОсобая переменная LC_ALL служит для обращения одновременно ко всем категориям.
Заметим, что включение средств локализации изменяет также некоторые пути поиска, в частности, пути поиска к файлам помощи (man-страницам), так что вначале команда man ищет переведенные man-страницы и только при их отсутствии выдает информацию на английском.
Подводя краткий итог всему вышеизложенному, можно сказать, что процедура русификации системы состоит из следующих этапов:
• настройка средств локализации;
• русификация текстового режима (консоли);
• русификация графического режима;
• русификация используемого ПО;
• русификация процесса печати.
В последующих разделах каждый из этих этапов рассматривается по отдельности.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Глава 13 Интернационализация и локализация
Глава 13 Интернационализация и локализация Ранние вычислительные системы обычно для своего вывода (приглашений, сообщений об ошибках) и ввода (ответы на запросы, такие, как «да» и «нет») использовали английский язык. Это было верно для систем Unix вплоть до середины 1980-х. В
Глава 15 Локализация
Глава 15 Локализация Еще лет десять назад нормальным явлением в компьютерном мире было почти полное отсутствие русского, украинского, белорусского и тому подобных языков в большинстве операционных сред и программ. Знание пользователем английского технического
Локализация
Локализация Для того, чтобы наградить Ubuntu русским языком, нам придётся потратить целых 2 минуты :) System — Administration — Language Support Ubuntu определяет, что в системе отсутствует русский язык и предлагает установить, на что мы собственно и соглашаемся, нажав Install.Я надеюсь, что вы уже
1.3. Локализация и интернационализация
1.3. Локализация и интернационализация Для того чтобы иметь успех на международном рынке, программные продукты должны быть локализованы, т.е. приспособлены к культурным и языковым нормам потенциальных покупателей.Для многих программных приложений локализация может быть
3.1. Локализация системы
3.1. Локализация системы Если вы до установки системы не настроили соединение с Интернетом, инсталлятор не установит языковую поддержку. Раньше для поддержки русского языка нужно было вручную установить около 17 пакетов. Сейчас же вам нужно настроить соединение с
23.1. Локализация причины сбоя
23.1. Локализация причины сбоя Всему есть своя причина — сбой не происходит сам по себе. Причиной может стать либо ошибка программного обеспечения, либо отказ «железа». Исходя из этого, различают программные и аппаратные сбои. Последние можно смело назвать