J'ai une application qui est supposée fonctionner à la fois sur Windows et Mac et est localisée en portugais, espagnol et allemand. J'ai un fichier ini d'où les chaînes localisées sont lues. Mais le fichier ini ne fonctionne pas avec le même encodage pour les fichiers sur les deux plates-formes. Pour Windows, je dois avoir le fichier au format ANSI, sinon les lettres accentuées dans les chaînes localisées se gâtent et sur le Mac le même fichier devrait être dans l'encodage Western (Mac OS) ou bien le même résultat. Est-il possible de faire fonctionner un seul fichier sur les deux plates-formes?Localisation des applications sous Mac OS
Répondre
(1) Il n'existe pas de format au format ANSI. C'est un terme regrettable pour ce que Windows signifie "la page de codes locale". En particulier, cela signifie qu'en Europe l'interprétation des octets 128-255 comme "format ANSI" différera entre les pays. Donc, je suis fortement enclin à faire valoir que cela ne fonctionnera même pas sur votre première plate-forme, et encore moins les deux.
La solution à laquelle vous finirez par migrer est Unicode. Cela fonctionne partout, avec tous les caractères, et le nombre d'un personnage ne dépend pas du pays ou de la date actuelle (voir l'introduction de €).
gettext est un cadre largement utilisé pour la traduction des applications, sites Web, etc.
Sur Mac, vous pouvez avoir vos ressources localisées (fichiers texte, etc.) dans un dossier .lproj et les bibliothèques Cocoa trouverez la version pour la langue de l'utilisateur. Par exemple English.lproj, Spanish.lproj etc. Il est préférable d'utiliser ce système plutôt que d'avoir ses propres mécanismes de localisation personnalisés.
Si vous utilisez autre chose que Cocoa et que vous avez besoin d'utiliser votre matériel de localisation personnalisé pour des raisons de portabilité, vous pouvez essayer de charger le fichier en spécifiant l'encodage du texte. Sous Windows, il s'agit généralement d'ISO-8859-1 (également appelé Windows Latin 1). Ou vous pouvez convertir vos fichiers texte en Unicode et les lire en spécifiant que c'est UTF-8. Vous ne parlez pas du langage ou des cadres que vous utilisez pour cela, nous ne pouvons pas vous aider davantage sans plus d'informations.
Bienvenue dans le monde de la douleur. Je recommanderais également de passer à l'Unicode, cela vous donnera une base vérifiable pour commencer, et vous facilitera la vie plus tard