2014-09-17 2 views
0

Я ищу способ добавления перевода в существующий каталог переводов во время выполнения.symfony динамически добавить перевод на основе условия

У меня есть рабочее приложение symfony 2.3, которое использует переводы в de/en/fr/it и извлекает все доступные ключи перевода из /Resources/translations/messages..yml.

Теперь, если пользователь регистрируется, я хочу иметь возможность переопределить некоторые из уже загруженных меток на основе настроек для этого пользователя (например, текстовое поле в БД, которое содержит пары ключ-значение).

E.g.

messages.en.yml 
    company.name.short: Company profile 

Usersetting: 
    company.name.short: Profile for company 

Я не нашел способ добавить/переопределить ключи к существующему каталогу или сделать их доступными в веточке. Есть ли Bundle или настройка или какая-то магия Symfony, чтобы заставить это работать?

ответ

0

Возможно, вам понадобится расширить собственный класс трансляции Symfony. В этой статье объясняется, как это сделать:

http://www.webtipblog.com/extend-symfony-2-translator-to-log-untranslated-messages-to-a-database/

Ключевым моментом является то, чтобы переопределить параметр «translator.class» в вашей конфигурации, а затем указать его на свой собственный класс, который сначала проверяет базу данных и будет приоритет над отмените реализацию symfony по умолчанию, если он не сможет ее найти.

+0

Спасибо тонну, это ставит меня в правильном направлении. Я просто вставляю пользовательские переводы в свой собственный класс переводчиков и возвращаю их, если необходимо, используя транс-функцию ... – fschaeffer

Смежные вопросы