LINUX.ORG.RU

Locale


4

0

Всего сообщений: 1

Исправление кракозябров в региональной локали (en_DE, ru_UA...)

Я с одного немецкого форума украл гениальное решение кракозябров для региональных кодировок типа en_DE и ru_UA (многие репаки и старые игры типа NWN2 и VTMB сыпят кракозябрами, если вы используете эти региональные кодировки).

Рассматривать буду своё решение для кодировки ru_UA.

Первым делом, нужно сгенерировать локаль ru_RU

/etc/locale.gen
ru_RU.UTF-8 UTF-8
# locale-gen

Далее САМОЕ ИНТЕРЕСНОЕ: export LANG=ru_RU.UTF-8 даёт лишь временный эффект, вписывание LANG в locale.conf не даёт ощутимых результатов. И тут я прочитал интересное решение.

Берём делаем:

$ export LANG=ru_RU.UTF-8
$ locale

Получается вот такой вывод:

LANG=ru_RU.UTF-8
LC_CTYPE=ru_RU.UTF-8
LC_NUMERIC=ru_UA.UTF-8
LC_TIME=ru_UA.UTF-8
LC_COLLATE=ru_RU.UTF-8
LC_MONETARY=ru_UA.UTF-8
LC_MESSAGES=ru_RU.UTF-8
LC_PAPER=ru_UA.UTF-8
LC_NAME=ru_UA.UTF-8
LC_ADDRESS=ru_UA.UTF-8
LC_TELEPHONE=ru_UA.UTF-8
LC_MEASUREMENT=ru_UA.UTF-8
LC_IDENTIFICATION=ru_UA.UTF-8
LC_ALL=

Что здесь примечательно:

  • в сгенерированный выхлоп добавились значения сразу нескольких полей;
  • сгенерированы дополнительные поля, которые отсутствовали в locale.conf;
  • кодировка всех сообщений принудительно задана как ru_RU, в то время как региональные стандарты ru_UA не пострадали.

Теперь САМОЕ ВАЖНОЕ: Заменяем содержимое /etc/locale.conf на этот сгенерированный выхлоп программы locale.

Перезагружаемся.

Кому это может быть полезно?

  • это хороший воркэраунд для русских кодировок республик бывшего СССР;
  • может быть полезно для английских кодировок стран Европы и Америки.

Примечание: Ваше DE может затирать LANG=, потому по этому вопросу нужно разбираться с конкретным DE. Например, для KDE нужно сделать env-скрипт с экспортом LANG.

Теперь в инсталляторах репаков и старых играх типа NWN2 и VTMB все надписи на русском.

Приятной игры!

 ,

Set440
()