IA et Technologie
Comment traduire des sous-titres SRT sans perdre les horodatagesPourquoi la traduction de sous-titres est un travail de précision Un fichier SRT est un format très structuré. Chaque b…
Amanda Lee
Les fichiers de langue PO, YAML, .properties, RESX, XLIFF et JSON ressemblent à des listes de phrases, mais seules les valeurs sont du texte rédigé. Les clés sont des identifiants que le code recherche ; les espaces réservés sont des emplacements que le code remplit à l'exécution ; les échappements et le balisage sont une syntaxe dont dépend l'analyseur. Un traducteur qui traite toute la ligne comme du texte produira un fichier qui se lit à merveille et ne se charge pas, ou qui se charge puis plante la première fois qu'un écran formate un nombre. L'échec n'apparaît généralement que dans une seule langue, ce qui en fait le type de bogue le plus difficile à repérer en relecture.
L'anglais a deux formes de pluriel, et il est tentant de croire que toutes les langues en ont autant. Le manuel de GNU gettext montre pourquoi c'est faux : chaque langue déclare sa propre règle Plural-Forms, l'anglais utilise nplurals=2, et le russe a besoin de trois formes choisies selon les derniers chiffres du nombre. Un fichier PO traduit en russe avec seulement deux formes renseignées compile, s'exécute et affiche une grammaire incorrecte pour chaque quantité se terminant par 2, 3 ou 4. Bien gérer le pluriel, c'est produire le nombre d'entrées msgstr qu'exige la langue cible, et non le nombre que la langue source avait par hasard.
L'ordre des mots varie d'une langue à l'autre, si bien qu'une phrase contenant deux valeurs doit souvent les placer dans l'ordre inverse. Les espaces réservés positionnels comme %1$s et %2$s, ou nommés comme {count} et {user}, existent précisément pour cela : la traduction peut les réordonner, mais chacun doit rester présent exactement une fois. Les espaces réservés anonymes, comme un simple %s, ne peuvent pas être réordonnés sans risque — un problème qu'il vaut mieux corriger dans les chaînes sources avant la traduction plutôt qu'après.
Chaque format a ses pièges. En YAML, la spécification donne à un bloc littéral (|) et à un bloc replié (>) un comportement différent vis-à-vis des sauts de ligne, et les ancres (&) et alias (*) permettent à un nœud d'en réutiliser un autre ; les deux doivent donc passer intacts. XLIFF 2.1 enveloppe la mise en forme d'origine dans des éléments en ligne comme <ph> et <pc>, qu'une traduction doit garder en place autour des bons mots. En .NET, les ressources RESX sont recherchées par nom à l'exécution pour la culture d'interface actuelle, si bien qu'un élément data renommé bascule silencieusement vers la langue par défaut. Enfin, un fichier .properties Java traite le premier =, : ou espace non échappé comme séparateur de clé, de sorte qu'un deux-points égaré dans une clé traduite la coupe en deux.
Presque toujours parce qu'un espace réservé a été modifié dans cette langue uniquement — renommé, supprimé ou dupliqué. Le code transmet les mêmes arguments à toutes les langues, donc la seule traduction qui ne leur correspond plus échoue lorsque cet écran est mis en forme.
Les règles de pluriel appartiennent à la langue, pas au logiciel. Gettext permet à chaque langue de déclarer sa propre règle ; le russe choisit entre trois formes selon les derniers chiffres du nombre, donc une traduction avec seulement deux formes affiche une grammaire incorrecte pour de nombreuses quantités.
Parce que la méthode classique Properties.load(InputStream) lit le fichier en Latin-1. Les caractères hors de cette plage doivent être écrits sous forme d'échappements \uXXXX, ou le fichier doit être chargé avec un lecteur qui utilise le bon encodage.
Oui, lorsqu'ils sont positionnels (%1$s, %2$s) ou nommés ({count}, {user}) — les réordonner est souvent nécessaire pour un ordre des mots naturel. Chaque espace réservé doit toutefois apparaître exactement une fois. Les espaces réservés %s simples ne peuvent pas être réordonnés sans risque.
Les clés sont des identifiants, pas du texte. Le code demande une chaîne par sa clé ; une clé traduite signifie que la recherche échoue et que l'application affiche une clé brute ou bascule vers la langue par défaut.
Téléversez un fichier PO, YAML, .properties ou RESX et récupérez-le avec les clés, les espaces réservés, les échappements et la structure exactement là où ils étaient.
Traduire un Fichier de Langue Gratuitement
IA et Technologie
Comment traduire des sous-titres SRT sans perdre les horodatagesPourquoi la traduction de sous-titres est un travail de précision Un fichier SRT est un format très structuré. Chaque b…
Amanda Lee
IA et Technologie
Comment traduire une présentation PowerPoint en ligneLe vrai défi de la traduction d'une présentation Une présentation PowerPoint est bien plus que du texte. Chaque di…
Amanda Lee