В общем, я с одного немецкого форума украл гениальное решение кракозябров для региональных кодировок типа 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 все надписи на русском. Приятной игры! 🙂