Formats / Apple String Catalog

Des String Catalogs, sans éditer du JSON à la main

Xcode 15 a remplacé .strings par un seul fichier .xcstrings qui contient toutes les langues à la fois. C'est un meilleur format, et une pire chose à mettre dans une pull request.

.xcstrings

Un fichier, toutes les langues, un conflit de fusion

L'ancienne organisation .strings donnait à chaque langue son propre fichier, si bien que deux traducteurs sur deux langues ne touchaient jamais les mêmes lignes. Un String Catalog les met toutes dans un seul document JSON : chaque traduction atterrit dans le même fichier, et deux d'entre elles peuvent entrer en collision.

L'import dans Linguiqo le redécoupe : chaque langue redevient une langue, chaque clé un texte, et le fichier est écrit une seule fois à la sortie.

Les variantes de pluriel sont lues, pas aplaties

Un String Catalog range les pluriels sous variations.plural, par catégorie CLDR. Linguiqo les lit dans les mêmes cases de pluriel que tous les autres formats, si bien qu'un traducteur tchèque voit quatre champs et un traducteur anglais deux.

Les variantes par appareil sont un autre axe et restent telles quelles au lieu d'être devinées.

Ce que Xcode récupère

Un fichier de la forme dans laquelle il est arrivé, avec les localisations remplies. Les clés extraites par Xcode restent telles que Xcode les a écrites.

Si un texte a changé à la fois dans Xcode et dans Linguiqo depuis la dernière synchronisation, l'import garde la version de Linguiqo et range celle du fichier dans l'historique du texte.

Questions

Gère-t-il les pluriels dans .xcstrings ?

Oui, variations.plural est lu langue par langue et associé aux catégories CLDR de cette langue.

Puis-je encore utiliser des fichiers .strings ?

Oui. Apple .strings est pris en charge séparément, donc un projet en pleine migration peut importer les deux.

Importez un fichier Apple String Catalog et voyez par vous-même

La démo lit un vrai fichier à vous et montre le résultat. Sans compte, et tout est supprimé au bout de deux heures.

Ouvrir la démo

Ce qu'est Linguiqo