Symfony2:多个应用程序,一个共享翻译文件夹

时间:2013-06-05 09:56:24

标签: symfony

我有一个看起来像这样的多个应用程序项目

/apps/app1
/apps/app2
/apps/app3
/apps/config
/src
/vendor
/web/app1
/web/app2
/web/app3

每个应用都有自己的内核,控制台,缓存......但是如何分享常见的翻译?

我在那里阅读https://stackoverflow.com/a/11630933/689429,在单应用程序结构上,您可以使用app/Resources/translations。多重应用程序结构怎么样?

我希望我可以在我的所有应用中制作/apps/Resources/translations自动加载(或手动加载),但它是否可能?

1 个答案:

答案 0 :(得分:4)

尚未尝试过,但也许可以采取以下措施:

在您的某个应用中的kernel.request上编写并注册EventListener,并在其中注入翻译服务,以便您可以对其进行修改。也许它需要在LocaleListener之前执行,这意味着它必须先执行高于 16 priority

然后,在事件监听器的onKernelRequest()方法中,您可以调用Symfony\Component\Translation\Translator::addResource()方法即时添加翻译文件。

请参阅:http://api.symfony.com/2.3/Symfony/Component/Translation/Translator.html#method_addResource

参数$resource包含全局翻译文件的路径。

(你要做的事情确实是一个边缘案例,但有一些某些方法可以在没有符号化的情况下完成它。)

希望这个想法有所帮助。我会尽快尝试并发布我的结果以及我是如何做到的。