Hello,

Je dois créer un site multilingue (le site existe déjà)
Il y a de la translation coté back, pas de soucis, ici parlons de la trad coté front, coté JS.

Je vois pas trop comment faire ?

J'aimerais des conseils d'experts ! Smiley langue

plus sérieux, comment devrait-je le concevoir pour que ce soit facilement maintenable/évolutif ?
Avec un .json ? genre


{
  "ENG": {
    "example": [
      {
        "title": "This is a test!",
        "text": "This is some text."
      }
    ]
  },
 "FR": {
    "example": [
      {
        "title": "C'est un test",
        "text": "C'est du text ! "
      }
    ]
  }
} 


Quelque chose comme ça ? est ce une bonne solution ?

Merci à vous Smiley biggrin
Modérateur
Hello, je l'ai déjà fait par le passer mais dans mon souvenir, j'avais placé les langues dans la clé et pas l'inverse. Je trouve ça plus facile à maintenir et peut-être plus facilement fallback vers une autre langue.

Autre avis perso, je nommerais EN et pas ENG pour que ce soit standard…
Hello
Merci de vos réponses,

Du coup il n'y a pas vraiment de "bonnes méthodes" concernant cela.
Juste garder la logique classique d'une traduction, et faire quelque choses de maintenable facilement.

Merci à vous

@Felipe
Je regarderais ton lien un peu plus tard merci!
Modérateur
Je viens d'y penser, question référencement, ça ne pose pas de problème d'injecter les traductions en JS ? (question ouverte). à mon avis c'est pris en compte mais tu pourrais être "pénalisé"/obtenir un moins bon score pour ça par Google.

Lorsque je l'ai fait, c'était pour des app offline donc je ne me posais pas la question. Si c'est online, je passe toujours par le php avec un define()…

Aussi, tu as déjà réfléchis comment injecter ? Passer par un data-key="" ou quelque chose de genre ?
Oui j'imagine que c'est un problème pour le référencement. Mais pour ce projet on s'en fout. C'est une application web, accessible en login mpd pour les comptes en interne (environ 1000 - 2000 personne) donc pas besoin de référencement.

Mais tu as raison de souligner ce pts.
Fait sur quatre sites j'ai opté pour les drapeaux discrets mais efficaces, géré par Cookies + Session ! c'est classe car celui qui revient un mois après est dans sa langue
Donc par exemple :
chaque page est en trois versions
an_lapage.php anglais
es_lapage.php espagnol
fr_lapage.php français
Et donc Toutes les pages sont super référencées.puisqu'elles ont toutes un lien d'arborescence directe l'un de mes site, le plus vieux, est en première page Google, que tu tapes ta recherche dans l'une ou l'autrre des langues !
Il n’empêche qu'il n' y a aucun inconvénient à ce que tes pages soient traduites à la volée.Mais elles existent avec leur nom !
Oué je vois merci,

Coté BACK j'ai plutôt opter pour pour la translation native de Symfony, avec un fichier
fr.yml
eng.yml
esp.yml,

et pour chaque libellé j'ai un
$this->get('translator')->trans($libellé)


et au moins au niveau de mes templates j'ai qu'un seul algo

Néanmoins ma question du début portés plus sur le Front, par exemple pour une simple ALERT() javascript, ou pour un libellé de popup jquery, etc.. des trucs qui ne sont pas gérer par le BACK.