Я экспериментирую с компонентом перевода 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. Можно ли это как-то сделать?
Убедитесь, что ваш кеш полностью удален. Вы, вероятно, сбрасываете кеш после добавления английского перевода, но не ваш запасной вариант. Увидеть Документация Symfony для получения дополнительной информации:
Каждый раз, когда вы создаете новый ресурс перевода (или устанавливаете пакет, включающий ресурс перевода), обязательно очищайте кэш, чтобы Symfony мог обнаружить новые ресурсы перевода:
Иногда просто бегаю cache:clear
Для меня команда не выполняется, и в этом случае я просто вручную удаляю содержимое app/cache
каталог.
Кроме того, если перевод не может быть найден, он регистрируется в режиме отладки в канале перевода (dev.translation.log) — проверьте свои журналы, чтобы увидеть, если он не может найти перевод. Кроме того, вам не нужно указывать «сообщения», так как это по умолчанию, вы можете просто сделать {{ 'Symfony'|trans }}
Других решений пока нет …