我有一个看起来像这样的多个应用程序项目
/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
自动加载(或手动加载),但它是否可能?
答案 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
包含全局翻译文件的路径。
(你要做的事情确实是一个边缘案例,但有一些某些方法可以在没有符号化的情况下完成它。)
希望这个想法有所帮助。我会尽快尝试并发布我的结果以及我是如何做到的。