5

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

/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在我的所有应用程序中自动加载(或手动加载),但它甚至可能吗?

4

1 回答 1

4

还没有尝试过,但也许以下是可能的:

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

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

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

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

(您实际上是在尝试做一个极端情况,但必须有某种方法可以做到这一点,而无需对所有内容进行符号链接。)

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

于 2013-06-26T09:20:43.733 回答