7 votes

Le Terminal macOS est-il toujours en anglais?

Sur Windows, l'analyse des chaînes de caractères en ligne de commande est un jeu de hasard, que ce soit pour Batch ou PowerShell. Des outils en ligne de commande essentiels comme fsutil et dcdiag renvoient leur sortie sous forme de chaînes de caractères internationalisées dans la langue de l'installation du système d'exploitation, rendant pratiquement impossible l'écriture de scripts de manière universelle sans prendre en compte le support de chaque choix de mots et de formatage dans chaque langue.

Chaque fois que possible, j'écris en PowerShell (pour retourner des objets au lieu de chaînes de caractères) et j'utilise la WMI pour renvoyer des énumérateurs non localisés que je traduis moi-même via des tables de correspondance. Il y aura toujours cependant des outils qui servent de seul moyen sur un appareil pour recueillir les informations requises.

Je suis actuellement en train d'écrire un script pour macOS en invoquant (dans ce cas) l'outil csrutil.
Comme de nombreux utilitaires *nix, sa sortie est au format de chaîne de caractères. En l'exécutant, on obtient la sortie suivante:

État de la Protection de l'intégrité du système : inconnu (configuration personnalisée).

Configuration :
    Interne à Apple : désactivé
    Signature des kexts : désactivée
    Protections du système de fichiers : désactivées
    Restrictions de débogage : désactivées
    Restrictions DTrace : désactivées
    Protections NVRAM : désactivées
    Vérification de la Base système : activée

Il s'agit d'une configuration non prise en charge, susceptible de se casser dans le futur et de laisser votre machine dans un état inconnu.

À ma grande surprise, Internet ne contient aucune information sur ce sujet que j'ai pu trouver, donc :

Dans quelle mesure Apple internationalise-t-il les sorties du terminal?

Il s'agit moins d'une question sur Bash ou ZSH car je sais qu'ils sont toujours en anglais, mais macOS est notoire pour créer des forks spécifiques à Apple incompatibles avec les outils POSIX; de plus, comme démontré ci-dessus, il existe de nombreux outils en ligne de commande développés par Apple destinés à la gestion des systèmes macOS. Dois-je supposer que ceux-ci ont été traduits au moins en allemand et acheter un appareil macOS avec la langue allemande installée? Ou est-ce que tout est toujours en anglais?

En général, je demande à quel point je devrais m'attendre à l'internationalisation des outils en ligne de commande forgés par Apple.

9voto

jvb Points 2430

En ce moment, la plupart de ces outils d'administration système (non-.app) sont uniquement en anglais. Cela facilite l'analyse de la sortie.

Vous pouvez par exemple essayer d'examiner des binaires comme suit:

strings /usr/bin/csrutil | less

dans ce cas, il n'y a pas de traductions présentes dans le binaire

Vous pourriez envisager de définir la locale $LANG ou $LC_MESSAGES (juste localement dans vos scripts en utilisant env), comme dans

env LC_MESSAGES=C /usr/bin/csrutil

env va lancer csrutil avec la variable d'environnement LC_MESSAGES définie sur "C", ce qui est un réglage spécial traduisant à "agir comme si ce programme n'avait pas été localisé".
Cela provoquera une sortie en anglais pour cette session mais n'aura aucun effet sur votre système en général.

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