En soirée ma vigilance manquait un tantinet de focalisation

et j'ai commis un
lapsus : j'ai lu le nom de l'application que j'étais en train d'utiliser («
Safari») à la place de celui évoqué dans le message («
Aperçu»).
Mais la problématique, et donc sa solution, sont strictement équivalentes. Il suffit de remplacer le terme
Safari par le terme
Preview en toute logique. Donc vérifier d'abord que le dossier de la langue Française est bien présent dans le paquetage d'«
Aperçu» en se rendant au menu du
Finder :
/Aller/Aller au dossier... et en copiant-collant :
Bloc de code:
/Applications/Preview.app/Contents/Resources
afin de vérifier à la lettre '
F' si un répertoire '
French.lproj' existe bien. Et si oui, alors ouvrir le «
Terminal» et faire un copier-coller de :
Bloc de code:
defaults write com.apple.Preview AppleLanguages '("fr-FR")'
et ↩︎ + re-démarrage pour faire prendre en compte la modification. Je viens de faire le test sous «
Léopard 10.5.8» : ça marche aussi bien pour «
Aperçu» que pour «
Safari». Il suffit de changer le nom de l'application, à condition de lui donner, sans extension, le nom Anglais sous lequel le Système la connaît : ici «
Aperçu» = «
Preview».
♤
Toutes les applications sont structurées de la même façon sous OSX, en ce qui concerne la distribution
topique des ressources à l'intérieur du super-répertoire '
Contents' qui les englobe sous l'apparence graphique de l'icône : en substance un dossier '
MacOS' (qui contient l'exécutable) et un dossier '
Resources' (qui contient les sous-dossiers de langues '
lproj', les visuels sous forme de fichiers
.icns,
.tiff ou autres
.pdf, et les fichiers
.nib ou
.xib comportant les instructions d'emplacement des objets graphiques), flanqués du dossier contenant la '
CodeSignature' de l'application (de plus en plus exigée) et de fichiers
.plist et .
Pkginfo.
Cette répartition
topique connue, on sait que l'affichage des menus de l'application dans telle langue ou telle autre se fait par invocation du dossier '
lproj' correspondant du répertoire '
Resources'. Si le dossier de langue souhaité '
lproj' ne manque pas à l'appel dans le répertoire '
Resources', la commande :
Bloc de code:
defaults write com.apple.[COLOR="Red"]Nom_Anglais_de_l'app_sans_extension[/COLOR] AppleLanguages '("[COLOR="Blue"]abréviateur_de_la_langue[/COLOR]")'
marchera toujours, sans qu'il soit besoin de faire appel à «
Pacifist» pour remplacer holistiquement le bundle de l'application.
À tout le moins, copié le contenu du paquetage sur le Bureau à partir d'un DVD d'install, il suffirait d'aller au répertoire '
Resources' du bundle pour repêcher un dossier de langue '
lproj' et le ré-injecter dans le répertoire correspondant de l'application en place, au cas où un de ces logiciels de nettoyage de langues aurait appliqué le suçoir de son 'aspirateur_à_ravages' dans le dossier '
Resources' de telle ou telle application - c'est en tout cas ce que la simple bon sens voudrait. Mais il y a un '
hic' avec le bundle d'installation de «
Léopard», qui demande une approche indirecte comme je l'explique.
Afin ce faisant d'illustrer les propos de
Moonwalker que je salue (

) et dont je partage l'appréciation élogieuse de «
Pacifist», voici un visuel montrant le procédé permettant d'extraire le '
FRENCH.lproj' du DVD d'install de «
Léopard 10.5» :
Je pense que mon fléchage indique suffisamment la marche à suivre. Le dossier obtenu, aller au menu du
Finder :
Aller/Aller au dossier..., faire :
Bloc de code:
/Applications/Preview.app/Contents/Resources
et loger le dossier '
French.lproj' dans l'espace du répertoire.
[
D'aucuns ne manqueront pas de s'étonner de la bizarrerie de ma navigation dans l'arborescence des paquets d'installation .pkg contenus dans le bundle d'installation .mpkg. Mais c'est que si on va basiquement à : Contenu de OSInstall.mpkg/Contenu de EssentialSystemSoftware/Contenu de EssentialSystemSoftwareGroup/Contenu de Essentials.pkg/Applications/Preview.app/Contents/Resources - eh bien! le seul dossier de langue présent est : 'English.lproj' nageant parmi un plancton de .tif et de .png. C'est uniquement si on va à : Contenu de OSInstall.mpkg/Contenu de LanguageTranslations/Contenu de French.pkg/Applications/Preview.app/Contents/Resources, que nous tombons sur un dossier : 'FRENCH.lproj '. Manifestement, les développeurs Apple ont choisi une méthode logique élégante au lieu de 'bourrin' : au lieu de charger le répertoire 'Resources' de chaque application native à installer de tous les dossiers de langues lproj, ils n'ont implémenté le 'Resources' de ces applications que du seul 'ENGLISH.lproj' assorti de fichiers images, et ont défini une instruction consistant à appliquer distributivement uniquement à l'installation les ressources du paquetage 'Language Translations' à chaque répertoire 'Resources' des différentes applications. Ce que l'excellent «Pacifist» permet d'apercevoir, bien qu'il soit incapable d'exécuter isolément l'instruction d'appliquer distributivement les lproj autres que celui de l'Anglais au répertoire 'Resources' d'«Aperçu» si on lui demande une extraction ou une installation du bundle. Étant donné, donc, cette disposition logique d'installation, extraire le paquet de «Preview» du bundle d'installation condamne à n'avoir que le 'English.lproj' dans les ressources d'«Aperçu». Malgré cette lacune pratique, je ne me lasse pas des 'révélations_logiques' du logiciel de Charles Srstka dont le nom à lui seul est un .pkg défiant le déchiffrage 
.]
Cela dit, si le répertoire '
Resources' d'une application (comme «
Aperçu» donc) contient bien le dossier '
lproj' attendu, la simple formulation dans :
Menu/Préférences Système/International/Langues/Colonne gauche des Langues [
panneau disponible sous «
Léopard 10.5»] du '
Français' en tête de liste des langues avec précellence sur '
English' (sinon, presser le bouton : '
Modifier la liste' pour redonner au '
Français' sa primauté de rang attendue) suffit à ce que, par défaut, toute application invoque
en première instance le dossier langue '
French.lproj' à l'intérieur du répertoire '
Resources' de son paquetage.
Si cette préférence de type
universel s'appliquant à toutes les applications d'un OS (dans la mesure de la présence de la langue afférante dans son répertoire '
Resources', faute de quoi la langue listée en second sera choisie par défaut à l'affichage) ne prend pas effet pour une application comme «
Aperçu», sans que le dossier attendu '
French.lproj' ne fasse défaut dans son répertoire '
Resources' - c'est donc que le fichier
.plist d'utilisateur a été malencontreusement modifié suite à on ne sait quelle manœuvre involontaire (s'il ne s'agit pas d'une préférence délibérée) et il convient donc de l'éditer à rebours. Sans quoi, aucune implémentation (par «
Pacifist») de '
lproj' dans le répertoire '
Resources' (opération qui ne restaure que des ressources) ne changera quoi que ce soit à la situation découlant d'une instruction de préférences dans un fichier complètement indépendant des ressources du bundle, mais portant instruction de son mode d'emploi pour l'usager. Q.E.D.
♧
<Encore désolé pour ce lapsus vespéral sur le nom de l'application. Mais si tu veux, en compensation, je te donne la commande te permettant de faire afficher par «
Mail» les menus dans la langue de
Dostoievsky 
:
Bloc de code:
defaults write com.apple.Mail AppleLanguages '("RU")'
situation que bien évidemment, au cas où tu aurais couru le risque, tu peux rattraper par un :
Bloc de code:
defaults write com.apple.Mail AppleLanguages '("fr-FR")'
Une fois lancé, on a du mal à s'arrêter... Est-ce que quelqu'un veut me prêter son Mac 2 minutes, que je lui customise de façon aléatoire les préférences de langue
application_à_application?

>
<<Il paraît clair que supprimer une application native sous «
Léopard» et tenter de la reconstituer à partir du DVD d'install et de «
Pacifist» ne permet pas directement de récupérer tous les '
lproj' dans le répertoire '
Resources', mais le seul '
English.lproj' présent par défaut dans le paquet de l'application. Il faut donc naviguer au paquetage des '
Language Translations', éventuellement paquet de langue à paquet de langue, pour y récupérer pour une application donnée la totalité des '
lproj' manquant et que «
Pacifist» ne parvient pas à récupérer.>>
♡