Architecture de l'internationalisation dans Darling
Darling est une couche de compatibilité permettant d'exécuter des applications macOS sous Linux. Son support de l'internationalisation repose sur les frameworks natifs de macOS pour offrir une expérience localisée. La gestion multilingue s'articule autour de plusieurs composants clés :
- Interfaces de localisation : Définies dans
framework-include/CoreFoundation/CFLocale.h, elles gèrent les préférences linguistiques au niveau système. - Service de configuration : Le répertoire
src/configd/administre les paramètres régionaux. - Chargement des ressources : Le fichier
src/frameworks/Foundation/NSBundle.ms'occupe de l'instanciation des packs de langues.lproj.
Le système prend en charge de nombreuses langues internationales via une combinaison de variables d'environnement et de fichiers de préférences.
Configuration de l'environnement linguistique
Compilation avec le support i18n
Pour bénéficier des fonctionnalités de localisation, il faut compiler le projet en activant l'option correspondante :
git clone https://github.com/darlinghq/darling.git
cd darling
mkdir build_dir && cd build_dir
cmake .. -DENABLE_I18N=ON
make -j$(nproc)
sudo make install
Définition de la langue système
La langue par défaut peut être définie via des variables d'environnement avant de lancer le shell Darling :
export DARLING_LANG=fr_FR.UTF-8
export LC_ALL=fr_FR.UTF-8
darling shell
Pour rendre cette configuration persistante, ajoutez ces lignes à votre fichier ~/.bashrc ou ~/.zshrc.
Vérification des paramètres
Une fois dans l'environnement Darling, utilisez l'outil defaults pour vérifier la langue active :
defaults read -g AppleLocale
La sortie attendue doit indiquer le code de la langue configurée, par exemple fr_FR.
Résolution des problèmes courants
Applications affichées en anglais
Si une application ne change pas de langue, vérifiez la présence des répertoires de localisation dans son paquet :
ls -l /Applications/VotreApp.app/Contents/Resources/ | grep lproj
Si le dossier .lproj correspondant à votre langue est absent, vous devrez l'extraire d'une installation officielle de macOS et le copier dans le dossier Resources de l'application.
Affichage incorrect des caractères
Les caractères spéciaux ou non latins peuvent s'afficher de manière incorrecte si les polices nécessaires ne sont pas installées sur l'hôte Linux. Installez les paquets de polices appropriés, par exemple :
sudo apt update && sudo apt install fonts-noto-cjk fonts-noto-color-emoji
Personnalisation avancée
Les développeurs souhaitant affiner la prise en charge linguistique peuvent modifier directement le code source de Darling :
- Ajout de langues : Éditez le fichier
Sources/Foundation/NSLocale.mpour inclure de nouveaux mappages de codes de langues. - Règles régionales : Ajustez les formats de date et de devise dans
Sources/CoreFoundation/CFLocale.c. - Substitution de polices : Modifiez la logique de repli de polices dans
Sources/AppKit/NSFont.mpour améliorer le rendu typographique.