47 votes

Les paramètres locaux ne sont pas corrects. Comment puis-je les réinitialiser ?

J'ai un problème de locale.
La séquence d'assemblage en nautilus et d'autres programmes a changé.
Des erreurs de paramètres linguistiques apparaissent dans le terminal lorsque je lance une application GUI

    Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

Les locale La commande produit des messages d'erreur

    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    LANG=en_AU
    LANGUAGE=en_AU:en
    LC_CTYPE="en_AU"
    LC_NUMERIC="en_AU"
    LC_TIME="en_AU"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU"
    LC_NAME="en_AU"
    LC_ADDRESS="en_AU"
    LC_TELEPHONE="en_AU"
    LC_MEASUREMENT="en_AU"
    LC_IDENTIFICATION="en_AU"
    LC_ALL=

Comme suggéré dans question askubuntu J'ai exécuté les commandes suivantes, mais il n'y a eu aucun changement.

    sudo apt-get install language-pack-en-base
    sudo dpkg-reconfigure locales

J'ai également essayé la suggestion dans question askubuntu ... pas de changement non plus.

    apt-get install --reinstall locales

I penser cela a commencé lorsque j'ai temporairement installé et désinstallé l'éditeur de méthode d'entrée en langue ourdou via IBus cela s'est certainement produit le même jour.

C'est peut-être lié à l'IBus, mais je n'ai jamais eu de problème avec lui avant cela.

  • Le système d'exploitation est 10.04

28voto

Peter Hilton Points 10580

J'ai réussi à faire en sorte que les choses fonctionnent à nouveau "normalement".

Après avoir essayé de nombreuses réinstallations de paquets, etc., y compris la suppression complète d'IBus (en vain), j'ai commencé à penser que cela pouvait être dû à un paramètre de configuration que la réinstallation ne modifie pas.

J'avais remarqué que la sortie de locale était plutôt dépourvue d'affectations UTF-8, j'ai donc vérifié cela dans une VM récemment installée... toutes les entrées de LC_* (à l'exception de LC_ALL, qui supplante tous les autres) ont été réglés avec le .UTF-8 suffixe. J'ai donc défini manuellement les valeurs de LC_* comme indiqué ci-dessous.

J'aurais probablement pu me contenter d'utiliser LC_ALL="en_AU.UTF-8" mais en me renseignant sur ce sujet, j'ai découvert comment personnaliser la fonction format de la date et de l'heure du système y LC_ALL remplacerait mon réglage personnalisé.

Je ne sais pas si j'ai utilisé la méthode la plus appropriée, mais elle fonctionne !

Le fichier modifié est le suivant : /etc/default/locale

  • Ceci montre le contenu avant la modification :

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_MESSAGES="en_AU.UTF-8"
  • Ceci montre le contenu après le mod :

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_CTYPE="en_AU.UTF-8"
    LC_NUMERIC="en_AU.UTF-8"
    LC_TIME="en_AU.UTF-8"
    LC_COLLATE=en_AU.UTF-8
    LC_MONETARY="en_AU.UTF-8"
    LC_MESSAGES=en_AU.UTF-8
    LC_PAPER="en_AU.UTF-8"
    LC_NAME="en_AU.UTF-8"
    LC_ADDRESS="en_AU.UTF-8"
    LC_TELEPHONE="en_AU.UTF-8"
    LC_MEASUREMENT="en_AU.UTF-8"
    LC_IDENTIFICATION="en_AU.UTF-8"

Le même fichier dans la VM ne contenait que cette ligne :

    LANG="en_AU.UTF-8" 

24voto

Guillaume Vincent Points 542

La redéfinition des locales et la reconfiguration pourraient suffire à résoudre le problème :

sudo locale-gen en_AU.UTF-8
sudo dpkg-reconfigure locales

Lorsque vous exécutez sudo dpkg-reconfigure locales vous pouvez sélectionner la langue souhaitée en cliquant sur spacebar et se déplaçant avec y avant de frapper Enter .

15voto

shamess Points 435

J'ai également rencontré ce problème, comme vous le voyez, votre LC_ALL est vide. J'ai procédé comme suit et cela fonctionne :

$ sudo vim /etc/environment

et définir le LC_ALL à quelque chose comme en_US.UTF-8 Le mien l'est :

LANG="en_US.UTF-8"
LC_MESSAGES="C"
LC_ALL="en_US.UTF-8"

Puis redémarrez et exécutez locale et elle devrait ressembler à quelque chose comme :

LANG=zh_CN.utf8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

4voto

Paul Kroon Points 2200

Si vous êtes connecté à distance à la machine via ssh (par exemple à partir d'un appareil macosx), vous devez définir ces variables sur la machine à partir de laquelle vous vous connectez

ajouter ce qui suit à ~/.bash_profile

#fix for locale issues when connecting to ubuntu servers
export LANG="en_US.utf8"
export LANGUAGE="en_US.utf8"
export LC_ALL="en_US.utf8"

2voto

retriever123 Points 335

Je voudrais juste ajouter que j'ai également dû modifier mon profil d'accueil :

gedit ~/.profile

Dans votre cas, il s'agirait donc de

...
LANG="en_AU.UTF-8"
LANGUAGE="en_AU:en"

Se déconnecter + Se connecter. Et tout se passe comme prévu.

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