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:~# 

Пожалуйста, помогите мне, в чем проблема и что мне делать?

5
задан 4 April 2016 в 04:27

3 ответа

Это произошло, потому что названия довольно многих локалей 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 сценарий генерала локали был изменен , таким образом, пользователь не должен знать, что точное называет в ПОДДЕРЖИВАЕМОМ. Следовательно в 16,04 это будет работать:

sudo locale-gen fa_IR.UTF-8

Для предыдущих версий Ubuntu, самый простой способ создать одну из этих локалей состоит в том, чтобы использовать точное имя согласно ПОДДЕРЖИВАЕМОМУ, например:

sudo locale-gen fa_IR

Так, AbdolHosein, Ваш вопрос помог нам улучшить Ubuntu. Спасибо за это. :)

0
ответ дан 4 April 2016 в 14:27
  • 1
    Это было аппаратным блоком в модуле ядра. Команда удалила модуль. – Pilot6 12 August 2017 в 09:14

Наконец я мог найти решение путем выполнения некоторых вещей вручную:

  1. проверка, какие локали поддерживаются:

    less /usr/share/i18n/SUPPORTED
    
  2. Добавляют, что локаль к списку сгенерированных

    (sudo) echo fa_IR.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
    
  3. Повторно создает список (это вызовет генерала локали.)

     (sudo) dpkg-reconfigure locales
    
0
ответ дан 4 April 2016 в 14:27
  • 1
    регистрация через Wi-Fi! это работало. что, черт возьми, было этим?! – schojo 12 August 2017 в 04:33

Насколько я понял из справочных страниц, 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 и задаются вопросом, почему они ведут себя не так, как ожидалось (как это случилось со мной).

0
ответ дан 3 June 2020 в 22:19

Другие вопросы по тегам:

Похожие вопросы: