5

このような複数のアプリプロジェクトがあります

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

各アプリにはカーネル、コンソール、キャッシュなどがありますが、共通の翻訳を共有するにはどうすればよいですか?

私はhttps://stackoverflow.com/a/11630933/689429で、1つのアプリ構造で使用できることを読みましたapp/Resources/translations. 複数アプリ構造はどうですか?

/apps/Resources/translationsすべてのアプリで自動ロード (または手動でロード)できるようにしたいのですが、それは可能ですか?

4

1 に答える 1

4

まだ試していませんが、おそらく次の可能性があります。

いずれかのアプリでEventListener を記述して登録しkernel.request、翻訳サービスを挿入して、変更できるようにします。たぶん、前に実行する必要がありますLocaleListener。つまり、前に実行するには16priorityよりも大きい必要があります。

次に、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 に答える