BazingaJsTranslationBundle不翻译字符串

时间:2014-11-18 05:22:15

标签: php symfony translation

我正在尝试使用BazingaJsTranslationBundle来推进Symfony2翻译。阅读完文档之后,这就是我所做的:

  1. 包含所需的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>
    
  2. config.yml处的设置包:

    bazinga_js_translation:
        locale_fallback:      "%locale%"
        default_domain:       AppBundle
    
  3. 使用bazinga供应命令转储翻译:

    Symfony > bazinga:js-translation:dump
    Installing translation files in /var/www/html/sencamer.dev/web/js directory
    
  4. 开始在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");
    
  5. 当执行该代码时,我得到未翻译的字符串:mensaje.msgAgregarSatisfactorio但不是消息,为什么?怎么了?本主题以某种方式与this one有关,有什么建议吗?

    如图所示,控制台上没有Javascript错误,文件也已加载,我认为它已经很好了:

    enter image description here

1 个答案:

答案 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");