plant español array symfony twig

symfony - español - ¿Cuál es la mejor manera de traducir cadenas literales de JavaScript en activos Assetic?



twig html (2)

Estoy usando Symfony2 para desarrollar una aplicación que será traducible. La aplicación tiene Assetic habilitado para minimizar y combinar archivos * .js y * .css. Sin embargo, tengo un complemento de jQuery que escribí, que tiene cadenas literales. Por ejemplo, considere el siguiente código:

$(''<p>Are you sure you want to proceed?</p>'').dialog({ buttons: { "Yes" : function() { // ... }, "No" : function() { // ... } } });

En el fragmento anterior, "Are you sure ...", "Yes" y "No" siempre serán en inglés, y no puedo usar las plantillas de Twig en el archivo .js para traducirlo usando algo como: {{"yes "| trans}}

Lo que quiero saber es cuál sería la mejor manera de usar Twig para aprovechar el mecanismo de traducción Symfony2 incorporado, para traducir las cadenas literales en mis scripts JS.

¿Hay alguna forma de crear, por ejemplo, archivos myscript.js.twig?


¿Hay alguna forma de crear, por ejemplo, archivos myscript.js.twig?

Parece una mala idea.

Puede consultar https://github.com/willdurand/BazingaExposeTranslationBundle

o créelo usted mismo, por ejemplo, incluya esto en su plantilla:

<script type="text/javascript"> var translations = { // ... ''yes'' : {{ ''yes'' | trans }}, // ... } </script>

luego, si su archivo javascript está incluido justo antes de </body> , puede usar la variable de translations en él.


Estaba buscando algo para que twig.js funcionara con traducciones, lo que me parece la mejor solución. Sigo buscando sin embargo.

Mientras tanto, estoy usando este jsgettext que es una implementación de gettext en Javascript, por Joshua I. Miller. He subido de nuevo a github ya que el repositorio original está fuera de servicio.

<script language="javascript" src="/path/LC_MESSAGES/myDomain.json"></script> <script language="javascript" src="/path/Gettext.js"></script>

Cargas tus archivos de traducción en tu DOM y jsgettext puede analizarlos:

function _(msgid) { return gt.gettext(msgid); } alert(_("some string"));

Para obtener la ruta de tus archivos de traducción de Symfony, tendrás que hacer alguna extensión php / twig en torno al servicio de Traductor, pero funciona muy bien sin duplicar tus recursos de traducción.