Я пытаюсь использовать 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 supply:
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
но не сообщение, почему? В чем дело? Эта тема связана с этот в какой-то совет?
Как показывает это изображение, на консоли нет ошибок Javascript, а также загружен файл, и я думаю, что он правильно сформирован:
У вас есть опечатка в вашем trans
функция:
Translator.trans('mensaje.msgAgregarSatisfactorio', {"pronombre": "la", "elemento": "solicitud"}, 'AppBundle')
так как сообщение, к которому вы пытаетесь получить доступ, использует mensajes
ссылка:
Translator.add("mensajes.msgAgregarSatisfactorio", "Se ha creado %pronombre% %elemento% satisfactoriamente.", "AppBundle", "es");
Других решений пока нет …