09-10-2020, 01:26 PM
Pour mon projet sur unity j'utilise un plugin qui s'utilise avec une fonction GetTranslationText(name, fallback). C'est basique mais ça me suffit.
Les traductions sont dans des fichiers textes au format "texte de base=texte traduit". Le plugin détecte automatiquement le langage de l'utilisateur et charge le fichier correctement. Il y a également possibilité de "traduire" des assets, comme des sons (doublage) et des images.
Le pluriel n'est pas géré, j'ai deux traductions différentes pour chaque truc que je peux mettre au pluriel. Par exemple "A cow" et "{1} cows". C'est pas ultra pratique mais au final je n'ai besoin de gérer le pluriel qu'à un ou deux endroits donc ce n'est pas gênant.
Si je me souviens bien quand j'avais regardé les libraries i18n pour le web (il y a des années) il y en a certaines qui gèrent les pluriels.
Si je devais faire une solution maison avec des technos web, en BDD je ferrais une table avec 3 colonnes : texte de base (utilisé comme id), langue et traduction, plutôt que de faire une colonne par langage. Ou alors je ferrais côté client avec en mettant les traductions dans un fichier json ou autre.
Les traductions sont dans des fichiers textes au format "texte de base=texte traduit". Le plugin détecte automatiquement le langage de l'utilisateur et charge le fichier correctement. Il y a également possibilité de "traduire" des assets, comme des sons (doublage) et des images.
Le pluriel n'est pas géré, j'ai deux traductions différentes pour chaque truc que je peux mettre au pluriel. Par exemple "A cow" et "{1} cows". C'est pas ultra pratique mais au final je n'ai besoin de gérer le pluriel qu'à un ou deux endroits donc ce n'est pas gênant.
Si je me souviens bien quand j'avais regardé les libraries i18n pour le web (il y a des années) il y en a certaines qui gèrent les pluriels.
Si je devais faire une solution maison avec des technos web, en BDD je ferrais une table avec 3 colonnes : texte de base (utilisé comme id), langue et traduction, plutôt que de faire une colonne par langage. Ou alors je ferrais côté client avec en mettant les traductions dans un fichier json ou autre.