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