5 votes

locale-gen ne fonctionne pas

Comme j'ai besoin de ma locale qui est fa_IR.UTF-8 sur mon Ubuntu Server J'essaie de l'installer par (sudo) locale-gen "fa_IR.UTF-8" mais je n'obtiens aucune sortie :

user@s1:~# sudo locale-gen "fa_IR.UTF-8"
user@s1:~#

ET IL N'AJOUTE AUCUNE LOCALE à mes locales !

Lorsque j'essaie d'installer de nouvelles locales sur ma Ubuntu Desktop Je n'obtiens pas cette erreur et cela fonctionne bien ! comme suit :

user@s1:~# sudo locale-gen "fa_IR.UTF-8"
Generating locales...
  fa_IR.UTF-8... done
Generation complete.
user@s1:~# 

Aidez-moi, s'il vous plaît, à comprendre le problème et à savoir ce que je dois faire.

4voto

Wade73 Points 2102

Cela s'est produit parce que les noms de plusieurs locales UTF-8 dans le fichier /usr/share/i18n/SUPPORTED n'incluent pas la partie codeet ".UTF-8", et fa_IR en fait partie.

$ grep -E '[a-z]+_[A-Z]+ UTF-8' /usr/share/i18n/SUPPORTED | grep fa
fa_IR UTF-8

Dans Ubuntu 16.04 le script de locale-gen a été modifié Ainsi, l'utilisateur n'a pas besoin de connaître le nom exact de SUPPORTED. Par conséquent, cela fonctionnera dans la version 16.04 :

sudo locale-gen fa_IR.UTF-8

Pour les versions précédentes d'Ubuntu, la manière la plus simple de créer une de ces locales est d'utiliser le nom exact selon SUPPORTED, par exemple :

sudo locale-gen fa_IR

Donc, AbdolHosein, votre question nous a aidé à améliorer Ubuntu. Merci pour cela :)

3voto

AbdolHosein Points 213

Enfin, j'ai pu trouver la solution en faisant certaines choses manuellement :

  1. vérifier quelles sont les locales supportées :

    less /usr/share/i18n/SUPPORTED
  2. Ajouter la locale à la liste des générés

    (sudo) echo fa_IR.UTF-8 UTF-8 >> /var/lib/locales/supported.d/local
  3. Régénérer la liste (cela invoquera locale-gen...)

     (sudo) dpkg-reconfigure locales

0voto

T-Dawg Points 71

Si j'ai bien compris, d'après les pages de manuel, locale-gen ne prend aucun paramètre, donc par exemple sudo locale-gen "de_DE.UTF-8" ne fait rien.

De man locale-gen :

locale-gen est un programme qui lit le fichier /etc/locale.gen et invoque localedef pour les profils de localisation choisis. Exécuter locale-gen après avoir modifié le fichier /etc/locale.gen .

La solution était simplement de modifier /etc/locale.gen en conséquence en utilisant :

echo "de_DE.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
sudo locale-gen de_DE.UTF-8

Mise à jour : Selon le commentaire de Gunnar Hjalmarsson, les arguments sont possibles dans Ubuntu, mais ne sont pas reflétés dans la page de manuel. Cette réponse pourrait encore être pertinente pour les personnes qui configurent d'autres systèmes à partir de leur machine Ubuntu et se demandent pourquoi ils ne se comportent pas comme prévu (comme cela m'est arrivé).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X