Yves
En « principe » -->
Préférences Système >
Langue et région >
Langues préférées => affiche le
tableau (
array) > contenant 1 à plusieurs
chaînes de préférences (
string) > attaché à la
clé (
key) :
AppleLanguages > du fichier de préférences générales :
~/Library/Preferences/.GlobalPreferences.
Chez toi la commande :
Bloc de code:
defaults read -g AppleLanguages
retourne un :
Cet affichage simplifié correspond, en syntaxe de fichier
plist tel qu'affiché par un éditeur comme «
TextWrangler», à ceci :
Bloc de code:
<key>AppleLanguages</key>
<array>
<string>fr-FR</string>
</array>
<key>AppleLanguages</key> --> est la
clé "
Langages Apple" : il s'agit d'un paramètre spécifique à l'intérieur du fichier
plist global.
<array>.........</array> --> est le
tableau des préférences qui vont être inscrites pour le paramètre "
clé" précédent.
<string>fr-FR</string> --> est une
chaîne de préférence singulière > qui inclut ici la valeur :
fr-FR (Français Métropolitain) > contenue dans le
tableau.
Donc > étant donné le dispositif syntaxique que je viens de restituer dans le fichier d'utilisateur :
~/Library/Preferences/ .GlobalPreferences > le tableau graphique :
Langues Préférées dans le panneau
Langue et région affiche (en traduction) l'équivalent :
Français.
En « principe » toujours --> si tu presses le bouton
+ dans ce dernier panneau > pour choisir en plus l'
Anglais comme langue préférée en second (en spécifiant que tu veux continuer à utiliser le
Français en langue principale) --> alors l'
Anglais devrait venir s'inscrire en second sous le
Français dans le tableau graphique des
Langues préférées.
Chez toi (dans «
Sierra») > il ne se passe rien --> chez moi : c'est pareil. À peine l'
Anglais sélectionné et validé > rien ne s'affiche. Si je récidive la commande de lecture :
Bloc de code:
defaults read -g AppleLanguages
j'obtiens toujours en retour un :
signe que rien n'a été modifié dans le fichier.
--------------------
Qu'à cela ne tienne > maintenant que je suis lancé > c'est parti pour les grandes manœuvres.
D'abord par un :
Bloc de code:
cp ~/Library/Preferences/.GlobalPreferences.plist Desktop/GlobalPreferences.plist
> je me fais une copie (non invisible) du fichier paradigme > au cas où je me mélangerais les pinceaux (ce qui me permettrait de remettre un fichier valide à la localisation initiale).
Puis > comme l'utilitaire
defaults, quoique confortable à utiliser, est assez sommaire en édition > je vais utiliser l'utilitaire alternatif
PlistBuddy, plus pointu mais aussi plus sourcilleux à l'usage.
Je commence par un :
Bloc de code:
/usr/libexec/PlistBuddy -c "Add :AppleLanguages:1 string en" ~/Library/Preferences/.GlobalPreferences.plist
suivi d'un :
Bloc de code:
defaults read -g AppleLanguages
informatif > et j'obtiens un retour :
Alors > puisque je ne me suis pas mélangé les doigts > rien ne peux plus m'arrêter -->
Bloc de code:
/usr/libexec/PlistBuddy -c "Add :AppleLanguages:2 string es" ~/Library/Preferences/.GlobalPreferences.plist
renvoie ensuite dans la commande d'affichage
defaults read un :
Mais comment ! moi > un locuteur de langues romanes > je tolérerais qu'une langue germanique précédât l'
Espagnol ? - Quel outrage ! Vite à nos crayons ! D'abord un :
Bloc de code:
/usr/libexec/PlistBuddy -c "Add :AppleLanguages:1 string es" ~/Library/Preferences/.GlobalPreferences.plist
me remonte une préférence pour l'
Espagnol en 2è posititon du tableau :
et comme j'ai un doublon "
Espagnol" en 4è position > un :
Bloc de code:
/usr/libexec/PlistBuddy -c "Delete :AppleLanguages:3" ~/Library/Preferences/.GlobalPreferences.plist
me retourne en commande informative un :
et j'ai donc en tableau ordonné des langues préférées :
Français >
Espagnol >
Anglais.
--------------------
Bon : en résumé --> j'appelle en chemin absolu
PlistBuddy > avec l'option
-c (
command : exécuter directement la commande) > et j'énonce entre
"" la commande qui est de la forme :
- pour
ajouter une chaîne d'une valeur spécifiée à un rang donné du tableau associé à une clé j'énonce : le verbe
Add > l'intitulé de la clé entre
:: (ici :
:AppleLanguages:) > j'accolle le
numéro de rang dans le tableau associé (le premier rang =
0 > le 2è =
1 etc.) > puis j'indique le type d'insert (ici
string : une chaîne) > et la valeur à inscrire dans cet insert (ici
es pour espagnol) -->
Bloc de code:
"Add :AppleLanguages:1 string es"
- pour
supprimer une chaîne à un rang donné du tableau associé à une clé j'énonce : le verbe
Delete > l'intitulé de la clé entre
:: (ici :
:AppleLanguages:) > j'accolle le
numéro de rang de la chaîne ciblée dans le tableau associé (le premier rang =
0 > le 2è = 1 etc.) et... c'est tout !
Bloc de code:
"Delete :AppleLanguages:3"
(si la cible est en 4è position de chaîne dans le tableau concerné)
pour finir > j'indique toujours en dernier lieu l'
adresse du fichier
plist cible en
chemin absolu > ici :
Bloc de code:
~/Library/Preferences/.GlobalPreferences.plist
[NB. comme pour des éditions complexes > il serait absurde de multiplier les commandes atomiques comme énoncées ci-dessus > il vaut mieux passer pour le confort en mode interactif de
PlistBuddy > les écritures successives étant mise-en-cache avant sauvegarde > le mode interactif préservant toujours par défaut la cible du fichier choisi en départ.]
--------------------
Bref : à la suite des ces manipulations avec
PlistBuddy > j'ai donc le tableau :
que je souhaite (par exemple).
Eh bien ! j'aurais beau re-démarrer 100 fois > le tableau graphique
Langues Préférées du panneau
Langues et régions des
Préférences Système > continue de ne m'afficher que la
1ère langue du tableau du fichier paradigme : le
Français et aucune des langues secondaires à leur rang.
J'en conclus que l'application : «
Préférences Système.app» (
SystemPreferences.app) est
boguée quant à son affichage graphique du tableau de la clé
AppleLanguages du fichier
~/Library/Preferences/.GlobalPreferences.plist.
=> je jette l'éponge. Quelqu'un qui veut changer de langue préférée > n'a qu'à passer une commande
defaults brutale du type :
Bloc de code:
defaults write -g AppleLanguage '(lg)'
où
lg est à remplacer par l'énoncé abrégé de la langue préférée (
fr,
en,
es etc.) => en conséquence > le tableau associé à la clé
AppleLanguage se trouve effacé et ré-écrit de la seule valeur de chaîne mentionnée dans la commande. Après re-démarrage > la langue de préférence devrait correspondre à l'édition.