Symfony 2: Перевести на язык по умолчанию

Я экспериментирую с компонентом перевода Symfony 2. Моя локаль по умолчанию — el_GR, а альтернативная локаль — en_US. Я настроил свой config.yml, я создал 2 файла перевода: messages.el_GR.yml и messages.en_US.yml, а затем очистил app / cache. Я перевел слово Symfony в обеих локалях. Поэтому, когда я использую команду php app / console translation: debug en_US abcNikBundle, я получаю:

State | Id       | Message Preview (en_US) | Fallback Message Preview (el_GR)
| Symfony  | Symfony_US              | Symfony_GR

Так что в шаблон веточку я пишу

{{ 'Symfony'|trans({},'messages') }}

Он работает нормально, когда я использую локаль en_US (она печатает Symfony_US), но когда я использую мою локаль по умолчанию (el_GR), она печатает Symfony вместо Symfony_GR. Можно ли это как-то сделать?

2

Решение

Убедитесь, что ваш кеш полностью удален. Вы, вероятно, сбрасываете кеш после добавления английского перевода, но не ваш запасной вариант. Увидеть Документация Symfony для получения дополнительной информации:

Каждый раз, когда вы создаете новый ресурс перевода (или устанавливаете пакет, включающий ресурс перевода), обязательно очищайте кэш, чтобы Symfony мог обнаружить новые ресурсы перевода:

Иногда просто бегаю cache:clear Для меня команда не выполняется, и в этом случае я просто вручную удаляю содержимое app/cache каталог.

Кроме того, если перевод не может быть найден, он регистрируется в режиме отладки в канале перевода (dev.translation.log) — проверьте свои журналы, чтобы увидеть, если он не может найти перевод. Кроме того, вам не нужно указывать «сообщения», так как это по умолчанию, вы можете просто сделать {{ 'Symfony'|trans }}

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]