我正在尝试使用BazingaJsTranslationBundle来推进Symfony2翻译。阅读完文档之后,这就是我所做的:
包含所需的JS库
<script src="{{ asset('bundles/bazingajstranslation/js/translator.min.js') }}"></script>
// Tried this way
<script src="{{ url('bazinga_jstranslation_js', { 'domain': 'AppBundle' }) }}"></script>
// Also tried this one
<script src="{{ url('bazinga_jstranslation_js') }}"></script>
config.yml
处的设置包:
bazinga_js_translation:
locale_fallback: "%locale%"
default_domain: AppBundle
使用bazinga供应命令转储翻译:
Symfony > bazinga:js-translation:dump
Installing translation files in /var/www/html/sencamer.dev/web/js directory
开始在JS文件中使用翻译:
Translator.trans('mensaje.msgAgregarSatisfactorio', {"pronombre": "la", "elemento": "solicitud"}, 'AppBundle')
这是AppBundle.es.yml
的原始字符串:
msgAgregarSatisfactorio: Se ha creado %pronombre% %elemento% satisfactoriamente.
这是web\js\translations\AppBundle\es.js
Translator.add("mensajes.msgAgregarSatisfactorio", "Se ha creado %pronombre% %elemento% satisfactoriamente.", "AppBundle", "es");
当执行该代码时,我得到未翻译的字符串:mensaje.msgAgregarSatisfactorio
但不是消息,为什么?怎么了?本主题以某种方式与this one有关,有什么建议吗?
如图所示,控制台上没有Javascript错误,文件也已加载,我认为它已经很好了:
答案 0 :(得分:1)
您的trans
函数中有拼写错误:
Translator.trans('mensaje.msgAgregarSatisfactorio', {"pronombre": "la", "elemento": "solicitud"}, 'AppBundle')
因为您尝试访问的邮件使用mensajes
引用:
Translator.add("mensajes.msgAgregarSatisfactorio", "Se ha creado %pronombre% %elemento% satisfactoriamente.", "AppBundle", "es");