1 votes

Forcer un script à s'exécuter en anglais

Mon Mac tourne sous Mavericks en anglais, mais comme ma région est réglée sur le Portugal et que mon clavier est portugais, lorsque j'exécute certains scripts, ils affichent des messages en portugais. Je déteste généralement exécuter des logiciels créés par des personnes dont ce n'est pas la langue maternelle en portugais, car la traduction est toujours merdique. Je me retrouve avec des messages comme "cubra is not defined". Qu'est-ce qu'un "cubra" ?

Ainsi, ces scripts lisent quelque chose dans le système et passent au portugais. Existe-t-il un moyen de les forcer à toujours s'exécuter en anglais ?

Cette option est sélectionnée dans mon terminal :

Terminal > Preferences > Settings > [profile] > Advanced > Set locale environment variables on startup

2voto

verdammelt Points 186

Cela dépend du programme. S'il utilise gettext qui est une bibliothèque commune pour l'internationalisation, puis en définissant le paramètre LANG à la variable d'environnement en_US (ou en_UK si vous souhaitez comparer l'anglais britannique à l'anglais américain) devrait faire l'affaire.

Si vous seulement Si vous souhaitez que des applications spécifiques utilisent des messages en anglais, vous pouvez utiliser un alias de la commande, comme par exemple LANG=en_US command-you-want-in-english .

L'alias dépend de l'interpréteur de commandes que vous utilisez, mais en bash (l'interpréteur de commandes par défaut de MacOSX), vous devez placer la commande suivante dans votre fichier .bashrc ou .bash_profile :

alias command='LANG=en_US command'

En cas de doute, consultez la page de manuel de la commande que vous exécutez pour voir si elle donne des détails sur la façon dont l'internationalisation est mise en œuvre et comment vous pouvez la contrôler en tant qu'utilisateur.

0voto

Comme vous n'avez pas décoché l'option "Set locale environment variables on startup", Terminal définit LANG en fonction de la région sélectionnée dans les préférences du système.

$ defaults read -g AppleLocale
ja_JP
$ locale
LANG="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_CTYPE="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_ALL=
$ asd
bash: asd: 

Vous pouvez modifier LANG en ajoutant une ligne comme celle-ci à ~/.bash_profile :

export LANG=en_US.UTF-8

Après cela, les commandes ci-dessus devraient s'afficher comme suit :

$ locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
$ asd
bash: asd: command not found

LC_ALL n'a pas besoin d'être défini. LANG y LC_ALL Il existe différentes façons de modifier la LC_ les variables qui sont indiquées entre LANG y LC_ALL ci-dessus. LANG est utilisé comme valeur par défaut pour les variables locales non définies. LC_ALL remplace les variables locales même si elles ont été définies, et si elle est définie, la modification d'autres variables locales n'a pas d'effet.

Si vous décochez la case "Set locale environment variables on startup" et que vous ne configurez les variables linguistiques nulle part, les shells utiliseront les paramètres linguistiques C par défaut. Cela complique cependant le travail avec du texte non-ASCII. Dans bash, les caractères non ASCII sont affichés et insérés sous forme de séquences d'échappement. ä est interprété comme M-l . Vous pouvez remédier à tous ces problèmes en changer output-meta, input-meta, et convert-meta dans ~/.inputrc mais même dans ce cas pbpaste y pbcopy mélanger les caractères UTF-8, ls affiche les caractères non ASCII sous forme de points d'interrogation, et vous ne pouvez pas saisir de caractères non ASCII dans Emacs. À mon avis, il est plus facile d'utiliser une locale UTF-8.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X