Le Wed, 24 Feb 2021 21:59:31 +0100, David VANTYGHEM <[email protected]> a écrit : > J'ai une question concernant les systèmes de traduction utilisés dans > les logiciels. J'ai testé : > > - le simple fichier JSON dans lequel on met des variables et à côté > de chaque variable une traduction. On a un fichier JSON par langue. > Avantage : facile à comprendre par un non informaticien qui veut > aider à traduire. Inconvénient : si on ajoute une variable dans un > fichier, il faut le faire manuellement dans tous les autres fichiers, > avec un risque d'erreur de saisie. > > - poedit. On a un fichier .pot qui est la référence, avec par exemple > les textes en anglais. Pour chaque autre langue, on a un fichier .po, > avec les mêmes textes en anglais que dans le fichier .pot et sur > chaque ligne, à côté de chaque texte en anglais, sa traduction. > Avantage : risque d'erreur de syntaxe faible. Inconvénient 1 : > nécessite un petit apprentissage. Inconvénient 2 : si on modifie le > fichier .pot, il faut ensuite mettre à jour chaque fichier .po avec > le fichier .pot. Inconvénient 3 : si on modifie un texte dans le > fichier .pot, le texte n'est plus traduit dans le logiciel pour > toutes les autres langues, seule la traduction du fichier .pot est > prise en compte (ou alors j'ai raté quelque chose). > > Quelqu'un connaît-il d'autres systèmes qui gommeraient tous ces > inconvénient ? (éventuellement en lien et automatisable avec Gitlab)
J’ai constaté deux systèmes de traduction. Le premier, rare, est d'associer une constante à chaque phrase. Par exemple en php ce serait echo(_(TXT_WARN_FILE_NOT_FOUND)). Avec la fonction _ qui irait piocher dans le fichier de langue adéquat. Le deuxième système est celui dont tu parles. Une langue principale est utilisée telle quelle, mais la fonction renverra la traduction adéquate. L'exemple devient echo(_"Warning, the file was not found!"). Dans tous les cas, l’absence d’une traduction doit être compensée. Soit on affiche la constante telle quelle pour le premier cas, soit on affiche le message dans la langue principale. Par contre, contrairement au cas de la constante, un changement dans un texte de la langue principale impliquera des changements dans tous les fichiers de traduction. -- Christophe HENRY FR EO EN - https://sbgodin.fr
pgpx8vUqv1WXn.pgp
Description: Signature digitale OpenPGP
_______________________________________________ libre mailing list [email protected] https://brassens.heberge.info/cgi-bin/mailman/listinfo/libre
