Module (4%)
Section (60%)

I18N

Конечно, латинского алфавита недостаточно для всего человечества. Пользователи этого алфавита находятся в меньшинстве. Необходимо было придумать что-то более гибкое и емкое, чем ASCII, что-то, что могло бы сделать все программное обеспечение в мире поддающимся интернационализации, потому что разные языки используют совершенно разные алфавиты, и иногда эти алфавиты не такие простые как латинский.

Слово Internationalization - интернационализация обычно сокращается до I18N.

I18N Internationalization


Почему именно так? Посмотрите внимательно - в начале слова есть I, затем 18 разных букв и N в конце.

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

Программное обеспечение I18N является стандартом в настоящее время. Каждая программа должна быть написана так, чтобы ее можно было использовать по всему миру, среди разных культур, языков и алфавитов.

 

Классическая форма кода ASCII использует восемь битов для каждого знака. Восемь битов означают 256 разных символов. Первые 128 используются для стандартного латинского алфавита (как заглавные, так и строчные буквы). Можно ли перенести все остальные национальные символы, используемые во всем мире, в оставшиеся 128 позиций?

Нет. Это не так.



Кодовые позиции и кодовые страницы

Теперь нам нужен новый термин: кодовая позиция.

Кодовая позиция - это число, которое создает символ. Например, 32 - это кодовая позиция, которая создает пробел в кодировке ASCII. Можно сказать, что стандартный код ASCII состоит из 128 кодовых позиций.

Поскольку стандарт ASCII занимает 128 из 256 возможных кодовых позиций, Вы можете использовать только оставшиеся 128.

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

Можно ли определить верхнюю половину кодов по-разному для разных языков? Да, можно. Такая концепция называется кодовой страницей.

Кодовая страница - это стандарт для использования верхних 128 кодовых позиций для хранения определенных национальных символов. Например, существуют разные кодовые страницы для Западной Европы и Восточной Европы, кириллицы и греческого алфавита, арабского и иврита и т.д.

Это означает, что одна и та же кодовая позиция может содержать разные символы при использовании на разных кодовых страницах.

Например, кодовая позиция 200 определят Č (буква, используемая некоторыми славянскими языками) при использовании кодовой страницей ИСО/МЭК 8859-2, и составляет &x428; (кириллица) при использовании кодовой страницы ISO/IEC 8859-5.

Следовательно, чтобы определить значение конкретной кодовой позиции, Вы должны знать целевую кодовую страницу.

Другими словами, кодовые позиции, полученные из кода концепции страницы, неоднозначны.