如何在Symfony中获取所有翻译消息域

时间:2018-10-12 19:35:42

标签: symfony translation

TL; DR:我想以编程方式获取使用Symfony 3.4制作的所有Message Translations Domains应用程序。

预期结果的示例:

$domains = $this->get('translator')->getDomains();
//$domains = ['home', 'messages', ...]

但是我找不到在翻译服务中返回应用程序域的方法。 是否有另一个服务返回所有应用程序域?

谢谢!

1 个答案:

答案 0 :(得分:0)

好,我找到了解决方法:

$this->getContainer()->get('translator')->getCatalogue()->getDomains();

如果您按照Symfony 3.4的建议将其翻译存储在bundles/Resources/translations/文件夹中,则此解决方案适用于捆绑软件。 否则,您应该在config.yml中精确定位路径:

framework:
    translator:
        ...
        paths:
            - '%kernel.project_dir%/xxx/translations'