代码之家  ›  专栏  ›  技术社区  ›  fschaeffer

symfony基于条件动态添加翻译

  •  1
  • fschaeffer  · 技术社区  · 11 年前

    我正在寻找一种在运行时将翻译添加到现有翻译目录的方法。

    我有一个工作的symfony 2.3应用程序,它使用de/en/fr/it中的翻译,并从/Resources/translations/messages中获取所有可用的翻译密钥。。yml。

    现在,如果用户登录,我希望能够根据该用户的设置覆盖一些已经加载的标签(例如,DB中保存键值对的文本字段)。

    例如。

    messages.en.yml
      company.name.short: Company profile
    
    Usersetting:
      company.name.short: Profile for company
    

    我没有办法在现有目录中添加/覆盖键,也没有办法让它们在细枝中可用。是否有一个捆绑包或一个设置或一些Symfony魔法使其发挥作用?

    1 回复  |  直到 11 年前
        1
  •  1
  •   Erik    11 年前

    您可能需要为此扩展Symfony自己的翻译类。本文介绍了如何做到这一点:

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

    关键点是重写配置中的“translator.class”参数,然后将其指向您自己的类,该类首先检查数据库重写,如果找不到,将遵循symfony默认实现。