web-dev-qa-db-fra.com

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

J'ai un problème de localisation.
La séquence de classement dans nautilus et d’autres programmes a été modifiée.
Des erreurs de localisation apparaissent dans le terminal lorsque je lance une application graphique.

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

La commande locale génère 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 askubunt , 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 aussi essayé la suggestion dans question askubunt ... également pas de changement.

    apt-get install --reinstall locales

Je pense que tout a commencé quand j'ai temporairement installé et désinstallé l'éditeur de méthode de saisie en langue ourdou via IBus .. que cela s'est certainement passé le même jour.

Peut-être est-ce lié à IBus, mais je n’ai eu aucun problème auparavant.

  • Le système d'exploitation est 10.04
42
Peter.O

J'ai réussi à faire fonctionner les choses "normalement" à nouveau.

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

J'avais remarqué que le résultat de locale était plutôt dépourvu d'affectations UTF-8; je l'ai donc vérifié dans une VM récemment installée ... toutes les entrées de LC_ * (sauf LC_ALL, qui remplace tous les autres) ont été définis avec le suffixe .UTF-8. donc je règle manuellement les valeurs LC_ * comme indiqué ci-dessous.

J'aurais probablement pu simplement utiliser LC_ALL="en_AU.UTF-8", mais en lisant cela, j'ai découvert comment personnaliser le format de la date et de l'heure du système , et LC_ALL remplaçait mon paramètre personnalisé.

Je ne sais pas si j'ai utilisé la méthode la plus appropriée, mais ça marche!

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

  • Ceci affiche le contenu avant le mod:

    LANG="en_AU.UTF-8"
    LANGUAGE="en_AU:en"
    LC_MESSAGES="en_AU.UTF-8"
    
  • Ceci affiche 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" 

27
Peter.O

Redéfinir les paramètres régionaux et reconfigurer peut 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 les paramètres régionaux de votre choix en cliquant sur spacebar et se déplaçant avec  et  avant de frapper Enter.

19
Guillaume Vincent

J'ai également rencontré ce problème, comme vous le voyez, votre LC_ALL est vide. J'ai fait comme suit et ça aide:

$ Sudo vim /etc/environment

et définissez le LC_ALL à quelque chose comme en_US.UTF-8, le mien est:

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

puis redémarrez et exécutez locale, ce qui devrait ressembler à ceci:

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
15
McKelvin

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

ajoutez 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"
4
Somatik

J'ai eu le même problème pendant plusieurs mois, de nombreux outils logiciels ont mis en garde sur des paramètres régionaux non respectés, et certains ont même refusé de s'exécuter. Je souhaite utiliser la langue anglaise, mais les paramètres monétaires et numériques suédois.

Ce qui a finalement fonctionné pour moi a été d’éditer /etc/default/locale où j’ai supprimé tout le contenu de ce fichier. J'ai ensuite lancé la configuration de la langue Unity (Settings -> Language Support), tout configuré (Ubuntu voulait installer certains composants manquants) et appuyé sur "Apply System-wide" lorsque j'ai terminé.

Mon /etc/default/locale ressemble maintenant à ceci.

 LC_NUMERIC = "sv_SE.UTF-8" 
 LC_TIME = "sv_SE.UTF-8" 
 LC_MONETARY = "sv_SE.UTF-8" 
 LC_PAPER = " sv_SE.UTF-8 "
 LC_IDENTIFICATION =" sv_SE.UTF-8 "
 LC_NAME =" sv_SE.UTF-8 "
 LC_ADDRESS =" sv_SE.UTF-8 "
 LC_TELEPHONE = "sv_SE.UTF-8" 
 LC_MEASUREMENT = "sv_SE.UTF-8" 
 LANGUAGE = "en" 
 LANG = "en_US.UTF-8" 

La grande différence entre ceci et mon fichier d'origine est LANGUAGE="en".

2
David A

Je veux juste ajouter que je devais aussi éditer mon profil personnel:

gedit ~/.profile

Donc, dans votre cas, cela ressemblerait à:

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

Déconnexion + Connexion. Et tout est comme prévu.

2
Aas

Cela fait un certain temps que cela a été posté, mais récemment, j'ai eu des problèmes avec les variables "locales" et aucune réponse ne m'a donné de résultat. Peut-être que ma propre expérience pourrait aider quelqu'un d'autre.

Ma variable LANG était vide et cela me posait des problèmes.

$locale

Sortie:

LANG=
LANGUAGE=en_US
LC_CTYPE=POSIX
LC_NUMERIC=POSIX
LC_TIME=POSIX
LC_COLLATE=POSIX
LC_MONETARY=POSIX
LC_MESSAGES=POSIX
LC_PAPER=POSIX
LC_NAME=POSIX
LC_ADDRESS=POSIX
LC_TELEPHONE=POSIX
LC_MEASUREMENT=POSIX
LC_IDENTIFICATION=POSIX
LC_ALL=POSIX

J'ai essayé certaines des commandes comme:

Sudo locale-gen
Sudo dpkg-reconfigure locales

Sans succès. J'ai essayé de modifier le fichier /etc/default/locale et de découvrir qu'il était déjà O.K:

$cat /etc/default/locale

Sortie:

LANG=en_US.UTF-8
LC_NUMERIC="es_CO.UTF-8"
LC_TIME="es_CO.UTF-8"
LC_MONETARY="es_CO.UTF-8"
LC_PAPER="es_CO.UTF-8"
LC_NAME="es_CO.UTF-8"
LC_ADDRESS="es_CO.UTF-8"
LC_TELEPHONE="es_CO.UTF-8"
LC_MEASUREMENT="es_CO.UTF-8"
LC_IDENTIFICATION="es_CO.UTF-8"

Mon fichier . Pam_environment semblait également correct:

$cat .pam_environment

Sortie:

LANGUAGE=en_US:en
LANG=en_US.UTF-8
LC_NUMERIC=es_CO.UTF-8
LC_TIME=es_CO.UTF-8
LC_MONETARY=es_CO.UTF-8
LC_PAPER=es_CO.UTF-8
LC_NAME=es_CO.UTF-8
LC_ADDRESS=es_CO.UTF-8
LC_TELEPHONE=es_CO.UTF-8
LC_MEASUREMENT=es_CO.UTF-8
LC_IDENTIFICATION=es_CO.UTF-8
PAPERSIZE=letter

Je n'ai pas envie d'ajouter des éléments supplémentaires aux fichiers de profil ou bash, principalement parce que, même si cela pouvait résoudre le problème, je ne connaissais pas la cause, ce qui m'a agacé.

Enfin, je me suis demandé si quelque chose remplaçait déjà les variables "locales" et j'ai lancé la commande suivante:

$cat .bashrc | grep LANG

Sortie:

unset LANG

J'ai donc trouvé deux lignes sur mon fichier . Bashrc qui en est la cause (je ne colle pas le fichier entier):

unset LANG
export LC_ALL=POSIX

Je ne sais pas comment ni quand ces lignes se sont retrouvées dans mon fichier bash, mais je suis tout à fait sûr de ne pas les avoir écrites. Peut-être que mon .bashrc a été remplacé alors que je travaillais avec des outils de développement Web, je ne 'sais pas, mais puisque je sais que c'était involontaire et qu'il y a des gens qui n'ont aucune idée de ce qui cause la mauvaise conduite "locale", peut-être que cela pourrait les aider. Quoi qu'il en soit, commenter ces lignes et un redémarrage ont résolu le problème pour moi. Ici J'ai répondu à la même question axée sur les plaintes sublimeT3 concernant la variable LANG.

2
smajtkst

Semble une mise à jour locales lieux en quelque sorte. Le correctif que j'ai trouvé consistait à vous déconnecter, à changer la langue sélectionnée avant de vous connecter et de vous reconnecter.

Il pourrait également être utile de réinstaller les paramètres régionaux dans Synaptic, bien que je ne puisse pas confirmer que c’est ce qui a été résolu, mais je pense qu’il était en train de se déconnecter ou quelque chose du genre.

1
RolandiXor

J'ai essayé de modifier le fichier de paramètres régionaux et de choisir différentes langues lors de la connexion.

Filtrer les paquets cassés avec Synaptic et supprimer complètement les 9 paquets incriminés a fonctionné pour moi (libreoffice et python uno).

Cependant, je ne peux pas installer LibreOffice sans apparemment corrompre le gestionnaire de paquets. Il s'installe cependant.

Je suis sur 11.04 i386. Avertissement: Il y a eu une panne de courant lors de la dernière partie de mon installation, Ubuntu téléchargeant des mises à jour.

1
marajit

J'ai eu le même problème, mais aller dans Système> Administration> Language Support peut résoudre votre problème, car il vous demandera peut-être d'installer des paquets et tout ira bien !! Cela a fonctionné pour moi alors je suppose que ça va faire la même chose pour vous !!

1
Nickolas Pylarinos

J'ai eu un problème similaire (le plus visible dans Thunderbird) à l'exemple en_AU ici - mais je viens de en_NZ - et après quelques essais et erreurs avec Ubuntu 17.10, mon correctif était de mettre à jour ~/.pam_environment, en remplaçant toutes les autres entrées ( principalement en_AU et en_US) avec en_NZ, puis redémarrez.

Il est dommage que vous ne puissiez pas simplement définir votre environnement local et le laisser faire ce qu'il prétend: la plupart des déçus que le fait d'exécuter dpkg-configure locales ne semble en réalité rien faire d'utile.

0
BlakJak

Courir

export LC_ALL="zh_CN.utf8"
ibus-setup

et sélectionnez l’une des options de la méthode de saisie que vous souhaitez.

0
mobeyond