Est-il possible de définir la langue de sortie des commandes shell sur autre chose que l'anglais?


9

Ai - je raison dans mon hypothèse que les commandes shell telles que cp, man, ls, etc. toujours imprimer leurs messages en anglais quel que soit le système et les paramètres utilisateur, ainsi que des messages shell standard comme « command not found » ne sont pas localisable?

Dans Préférences Système> Langue et texte, j'ai essayé de changer la langue, la région et la source d'entrée dans une autre langue / locale. J'ai aussi essayé de courir sudo languagesetup. Rien ne semble affecter le langage des commandes shell, donc je suppose qu'il doit être codé en dur en anglais, mais je n'ai trouvé aucune référence sur Internet. Si ce n'est pas correct, comment changez-vous la langue du shell sous OS X?


Je pense que la localecommande pourrait vous aider. Je n'ai pas réussi à le faire fonctionner correctement, mais voici quelques instructions qui pourraient vous aider à démarrer: linuxspy.com/1850/how-to-change-the-bash-shell-language
alexwlchan

Réponses:


7

Si vous changez LC_MESSAGES, cela change la langue des messages d'erreur et d'aide affichés par bash, mais seule une partie d'entre eux est traduite pour de nombreuses langues:

$ export LC_MESSAGES=de_DE.UTF-8
$ aa
bash: aa: Kommando nicht gefunden.
$ help alias
alias: alias [-p] [Name[=Wert] ... ]
    Definiert Aliase oder zeigt sie an.

    Ohne Argumente wird die Liste der Aliase (Synonyme) in der Form
    `alias Name=Wert' auf die Standardausgabe gedruckt.

    Sonst wird ein Alias für jeden angegebenen Namen definiert, für den ein
    Wert angegeben wurde.
    A trailing space in VALUE causes the next word to be checked for
    alias substitution when the alias is expanded.

    Options:
      -p    Print all defined aliases in a reusable format

    Rückgabewert:
    Meldet Erfolg, außer wenn NAME nicht existiert.

Terminal et ensemble iTerm 2 LANG(qui modifient toutes les variables locales réelles comme LC_MESSAGES) en fonction de la région sélectionnée dans les Préférences Système par défaut.

Certaines distributions GNU / Linux sont livrées avec des pages de manuel dans d'autres langues que l'anglais, mais pas OS X. Certains packages Homebrew ajoutent cependant des pages de manuel localisées /usr/local/share/man/:

$ LC_MESSAGES=de_DE.UTF-8 man -w ps2pdf
/usr/local/share/man/de/man1/ps2pdf.1
$ LC_MESSAGES=de_DE.UTF-8 man ps2pdf|head
PS2PDF(1)                         Ghostscript                        PS2PDF(1)



NAME
       ps2pdf - konvertiert PostScript nach PDF mittels ghostscript
       ps2pdf12 - konvertiert PostScript nach PDF 1.2 (kompatibel zu Acrobat 3
       und spAxter) mittels ghostscript
       ps2pdf13 - konvertiert PostScript nach PDF 1.3 (kompatibel zu Acrobat 4
       und spAxter) mittels ghostscript

Vous pouvez par exemple copier à /usr/share/man/de/partir d'une machine virtuelle Ubuntu vers OS X, mais seule une petite partie des pages de manuel sont traduites:

ubuntu:~$ find /usr/share/man/de -type f|wc -l
113
ubuntu:~$ find /usr/share/man/man* -type f|wc -l
2857

1
Dans un simple bash 3.2 sur Mountain Lion, le paramètre LC_MESSAGESne changerait pas la langue des messages. Les messages en allemand doivent être probablement un ajout Homebrew.
GOTO 0

@ ft1 Oh, tu as raison. J'utilise bash 4.2. Peut-être que ces traductions ont été ajoutées dans bash 4.0 ou version ultérieure ou peut-être qu'elles n'ont pas été incluses dans la version de bash 3.2 incluse avec OS X.
Lri
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.