locale-gen не работает
Как мне нужен мой язык, который fa_IR.UTF-8 на моем Ubuntu ServerЯ пытаюсь установить его через (sudo) locale-gen "fa_IR.UTF-8" но я не получаю вывод:
user@s1:~# sudo locale-gen "fa_IR.UTF-8"
user@s1:~#
И ЭТО НЕ ДОБАВЛЯЕТ НИКАКОГО МЕСТА в мои страны!
Когда я пытаюсь установить новые локали на моем Ubuntu Desktop Я не получаю эту ошибку, и она работает хорошо! следующее:
user@s1:~# sudo locale-gen "fa_IR.UTF-8"
Generating locales...
fa_IR.UTF-8... done
Generation complete.
user@s1:~#
Пожалуйста, помогите мне, в чем проблема и что мне делать?
2 ответа
Наконец я смог найти решение, выполнив некоторые действия вручную:
проверьте, какие локали поддерживаются:
less /usr/share/i18n/SUPPORTEDДобавить локаль в список сгенерированных
(sudo) echo fa_IR.UTF-8 UTF-8 >> /var/lib/locales/supported.d/localВосстановить список (он вызовет locale-gen...)
(sudo) dpkg-reconfigure locales
Это произошло потому, что названия многих UTF-8 локалей в /usr/share/i18n/SUPPORTED не включайте часть кодового набора ".UTF-8", и fa_IR является одним из них.
$ grep -E '[a-z]+_[A-Z]+ UTF-8' /usr/share/i18n/SUPPORTED | grep fa
fa_IR UTF-8
В Ubuntu 16.04 скрипт locale-gen был изменен, поэтому пользователю не нужно знать точное наименование в SUPPORTED. Следовательно, в 16.04 это будет работать:
sudo locale-gen fa_IR.UTF-8
Для предыдущих версий Ubuntu самый простой способ создать одну из этих локалей - использовать точное имя в соответствии с SUPPORTED, например:
sudo locale-gen fa_IR
Итак, AbdolHosein, ваш вопрос помог нам улучшить Ubuntu. Спасибо за это.:)
Насколько я понимаю согласно справочным страницам, local-gen не принимает никаких параметров, поэтому, например, sudo locale-gen "de_DE.UTF-8" ничего не делает.
Из man locale-gen:
locale-gen - это программа, которая читает файл /etc/locale.gen и вызывает localedef для выбранных профилей локализации. Запустите locale-gen после того, как вы изменили файл /etc/locale.gen.
Решением было просто изменить /etc/locale.gen соответствующим образом, используя:
echo "de_DE.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
sudo locale-gen de_DE.UTF-8
Обновление: Согласно комментарию Гуннара Хьялмарссона, аргументы возможны в Ubuntu, но не отражены на странице руководства. Этот ответ все еще может быть актуален для людей, которые настраивают другие системы со своей машины ubuntu и задаются вопросом, почему они не ведут себя так, как ожидалось (как это случилось со мной).