LINUX.ORG.RU

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

 ,


1

2

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


Ответ на: комментарий от tz4678_2

Если ты живёшь в России или Штатах, то конечно у тебя проблем нет. У тебя ведь кодировка не региональная, а международная.

Решение для тех, кто использует европейскую английскую кодировку, или для тех, кто живёт в республиках экс-ссср

Set440 ()
Ответ на: комментарий от superuser

а почему не Российской империи?

Для Финляндии и Польши ru_FI и ru_PL к сожалению не так актуальны.

ex-kiev ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.