J'ai utilisé wget
pour la première fois après l'installation de Lion OS X et j'ai remarqué que wget était localisé dans ma langue maternelle. L'exécution de la set
commande dans le terminal a montré que ma LANG
variable représente ma langue locale. Où puis-je changer cela ou faire wget
ignorer ce paramètre?
mise à jour
Voici ce locale
qui me donne:
LANG="lt_LT.UTF-8"
LC_COLLATE="lt_LT.UTF-8"
LC_CTYPE="lt_LT.UTF-8"
LC_MESSAGES="lt_LT.UTF-8"
LC_MONETARY="lt_LT.UTF-8"
LC_NUMERIC="lt_LT.UTF-8"
LC_TIME="lt_LT.UTF-8"
LC_ALL=
Par conséquent, toutes les sorties de non-paramètres (comme les invites et les messages de débogage) sont en lituanien. Voilà mon problème. J'aimerais revenir en anglais.
J'utilise zsh
comme shell de connexion.
wget
? Et qu'est-ce quilocale
s'affiche et est-ce la même chose que ce que vous attendez de votre sélection de langue dans le volet des préférences système Langue et texte ?Réponses:
Par défaut, Terminal définit les variables d'environnement locales pour correspondre à la langue et aux formats d'heure / date / nombre actuellement sélectionnés que Terminal utilise, qui est sélectionné via
(C'est le nom sur Lion. Sur les systèmes antérieurs, le nom exact du panneau de préférences peut varier.)
Une solution temporaire consiste à faire glisser l'anglais en haut de la liste des langues, puis à ouvrir le terminal, puis à déplacer le lituanien vers le haut. Seul le terminal sera alors en anglais. Cependant, il sera réinitialisé en lituanien si vous quittez et redémarrez Terminal.
Une approche persistante consiste à dire à Terminal de ne pas définir les variables d'environnement locales, en désactivant
Ensuite, les paramètres régionaux seront par défaut "C" sans langue spécifiée, et la plupart des programmes seront alors par défaut en anglais.
Notez que la désactivation de cette option signifie que certains programmes ne seront pas conscients du codage de caractères utilisé par Terminal et supposeront qu'il s'agit uniquement de ASCII ou ISO-Latin-1. Donc, si Terminal utilise UTF-8 (par défaut), ces programmes peuvent se comporter ou non comme souhaité.
Si cela concerne principalement
wget
, je vous recommande de faire une copie du profil des paramètres par défaut, de désactiver le paramètre régional dans votre profil personnalisé et de n'utiliser ce profil que lors de l'utilisationwget
, afin de pouvoir continuer à utiliser UTF-8 avec une prise en charge complète lors de l'utilisation d'autres programmes, en utilisant les paramètres par défaut.Comme d'autres l'ont mentionné, vous pouvez également remplacer les paramètres régionaux initiaux fournis par Terminal dans un script de démarrage du shell. Pour zsh, mettez-le dans ~ / .zshrc. Pour bash, utilisez ~ / .bashrc (et si vous n'en avez pas déjà un, créez un ~ / .bash_profile qui exécute ~ / .bashrc).
Voir x-man-page: // 1 / locale pour plus d'informations sur chacune des valeurs d'environnement local.
Cependant, si vous deviez simplement
unset LANG
ou le définir sur "C", cela s'appliquerait normalement à tous vos shells et programmes, alors que la plupart du temps vous voudrez probablement utiliser UTF-8 et que Terminal définisse les variables locales pour qu'elles correspondent, pour obtenir le plus haut degré de coopération, de fidélité et de fonctionnalité.Par conséquent, si vous allez dans cette voie, je vous suggère d'écrire du code pour modifier, plutôt que de remplacer, les valeurs initiales, afin de conserver les informations de codage ("UTF-8") et de forcer simplement la langue en anglais, plutôt que de définir les variables sur "C".
Par exemple, cela fonctionne en zsh et bash:
Quand
LANG="lt_LT.UTF-8"
, cela le changera enLANG="en_US.UTF-8"
. Je n'ai pas dewget
disponibilité pour tester cela, mais cela devrait suffire.Le faire de cette façon signifie que si vous modifiez la préférence de codage des caractères dans Terminal, vous ne la remplacerez pas dans votre script de démarrage du shell.
la source
LANG
commande de redéfinition:echo ${LANG/*./en_US.}
remplace le nom de la culture actuelle paren_US
quel qu'il soit; travaille àbash
,ksh
,zsh
.C'est réglé ici ...
Si vous voulez plus ou moins d'options dans le menu déroulant, rendez-vous sur l' onglet Encodages pour voir encore plus de primes.
la source
LANG=
et les autres valeurs par défaut"C"
.J'ai résolu ce problème en définissant la langue dans mon fichier .profile qui se charge chaque fois que je démarre un terminal.
la source
LC_ALL
remplaceLANG
, donc votre première commande n'aura aucun effet.POSIX
est équivalent àC
et qui ne supporte pas du tout Unicode.Basé plus sur l'expérience Linux, si vous ne voulez pas changer complètement votre localisation avec LC_LANG, mais souhaitez simplement avoir des messages système en anglais, vous devez simplement définir
la source
LC_MESSAGES
variable qui contrôle dans quelle langue les messages doivent être émis (si installés).En utilisant un serveur Debian en français et un client bash macsox, j'ai "juste" dû l'ajouter à mon .bash_profile sur le répertoire utilisateur de macosx:
Résolu.
la source
Les autres réponses sont correctes, c'est-à-dire concernant le
Terminal
réglage des variables d'environnement locales définies au démarrage et l'utilisation des shell/etc/profile
. Cependant, il existe un autre moyen qui mérite d'être compris - surtout si le "problème" est rencontré en raison d'unessh
connexion à distance .OpenSSH (tel qu'utilisé sous Linux, BSD et macOS) peut envoyer des variables d'environnement de l'environnement du client au shell que le serveur démarre. Il ne le fait que si le client est configuré pour les envoyer et le serveur est configuré pour les accepter. Le client (
~/.ssh/config
) devrait avoir:et le serveur (
/etc/ssh/sshd_config
) aurait besoin de:Si ceux-ci sont tous les deux en place, le local du client est propagé dans le shell de connexion sur le serveur ssh:
Le paramètre de serveur requis n'est pas là par défaut sur Snow Leopard ; il est là sur Sierra . N'oubliez pas de redémarrer le serveur SSH après avoir modifié
/etc/sshd_config
!!!la source