На что влияет установка или изменение locale

На что влияет установка или изменение locale [Вперед] [Вверх] [Назад] [Содержание]
Дальше: Установка или изменение locale Вверх: Интернационализация Назад: Что такое локализация

На что влияет установка или изменение locale

При компиляции программы, так же как и при ее выполнении, если не указаны явно какие-либо действия по установке locale соответственно программистом и пользователем, locale устанавливается по умолчанию в так называемое C (иногда также называется POSIX) locale -- минимально необходимое для трансляции и нормальной работы. Это locale содержит некоторые разумные (по крайней мере с точки зрения жителей США и европейцев) значения всех необходимых параметров. При измении же locale могут изменяться (но не обязательно должны -- в зависимости от струкруры заданного locale) параметры, оказываюшие влияние на:

  • набор значимых многобайтовых символьных последовательностей (см. ниже) и способ их интерпретации;
  • представление национального алфавита, порядок букв и соглашения по преобразованию заглавных букв в строчные и наоборот;
  • отношение порядка при сравнения символов в национальном алфавите -- например, при лексикографическом сравнении символьных строк;
  • формат представления чисел и денежных единиц;
  • формат представления даты и времени;
  • язык, используемый программой для взаимодействия с пользователем.

Работа программиста облегчается тем, что не все действия по установке locale надо выполнять вручную -- многие из них производятся автоматически в библиотечных подпрограммах. Например, в зависимости от выбранного locale функции сравнения строк strcoll и strxfrm автоматически устанавливают правильные отношения порядка. С другой стороны, стандартные механизмы locale не обладают каким-либо интеллектом и не могут, скажем, автоматически переводить сообщения, выдаваемые программой, с одного языка на другой. Программист должен заранее предоставить наборы таких сообщений -- по одному для каждого языка, использование которого предполагается.



Dmitry A. Antipov
1999-05-26