我有一个看起来像这样的多应用程序项目
/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
这将在我的所有应用程序中自动加载(或手动加载),但它甚至可能吗?
最佳答案
还没有尝试过,但也许以下是可能的:
在 kernel.request
上编写并注册一个 EventListener在您的一个应用程序中并在其中注入(inject)翻译服务,以便您可以对其进行修改。也许它需要在 LocaleListener
之前执行这意味着它必须有 priority
高于 16 之前要执行。
然后在onKernelRequest()
事件监听器的方法,然后您可以调用 Symfony\Component\Translation\Translator::addResource()
动态添加翻译文件的方法。
见:http://api.symfony.com/2.3/Symfony/Component/Translation/Translator.html#method_addResource
参数$resource
包含您的全局翻译文件的路径。
(您实际上是在尝试做一个极端情况,但必须有某种方法可以做到这一点,而无需对所有内容进行符号链接(symbolic link)。)
希望这个想法有所帮助。我会尽快尝试并发布我的结果以及我是如何做到的。
关于Symfony2 : multiples apps, 一个共享翻译文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16936872/