0
votes

Traduction de symfony qui passe à Symfony webpack Encore

avec symfony, j'utilise traduction , brindille et WebPack Encore Composants.

Je peux traduire dans FRONTEND TWIG avec: P>

'my_key'|trans


0 commentaires

3 Réponses :


1
votes

Vous devez utiliser BazingajstranslationBundle qui permet Vous accédez aux traductions que vous avez exposées via JavaScript:

Translator.trans('key', {}, 'DOMAIN_NAME');

Translator.transChoice('key', 1, {}, 'DOMAIN_NAME');


0 commentaires

2
votes

Malheureusement, depuis que JS n'est pas manipulé par PHP et par extension non pas par Symfony, vous n'aurez pas accès au composant de traduction de Symfony à l'intérieur de vos fichiers JS.

Un contournement qui pourrait fonctionner lorsque vous n'avez pas trop de traductions Vous devez passer est créer un objet de données JS dans votre modèle de brindille dans votre application Symfony, puis l'accédez à partir de vos fichiers JS. Si grossièrement comme ceci: xxx

L'inconvénient de cette solution est que vous devez décider quelles touches de mettre dans votre carte de traduction sans vraiment savoir si elles sont utilisées, donc ceci pourrait devenir un peu inefficace et difficile à suivre. De plus, vous devez faire attention à ce que votre contenu traduit soit valide JSON. Vous pouvez appliquer (personnalisé) s'échapper / filtrer pour vous assurer que, mais le rend toujours un peu fragile.

Au total, cela pourrait ne pas être la meilleure solution mais peut être une solution de contournement décente pour des projets plus petits jusqu'à ce que vous Trouvez que cela devienne plus une nuisance et vous devez trouver quelque chose de plus sophistiqué.


0 commentaires

0
votes
  1. Vous pouvez transformer les traductions YAML en JSON avec WebPack ou un gestionnaire de tâches (Gulp | GRUNT).
  2. Mettez des fichiers de traduction JSON construits à des actifs.
  3. les nécessite à l'intérieur du script JS.
  4. ÉMIT Valeur locale à frontend Pour choisir la traduction appropriée Objet JSON à l'intérieur du script JS.

    Remarque: Dans WebPack Case, vous devez exécuter 2 étapes par conséquent: La première étape construira des traductions vers des actifs à être nécessaires dans les scripts JS. La deuxième étape compilera ensuite les scripts JS.

    Voici une partie de WebPack Encore Config, qui transforme les traductions * .YAML Fichiers vers JSON avec 'JS-YAML' et les met dans le répertoire d'actifs: < Pré> xxx


0 commentaires