2017-10-20 30 views
1

2つの異なるWebサイトで同じコードベースを使用しているマルチテナントアプリケーションを開発しています。それぞれ2つの言語で利用できます。マルチテナントアプリケーションの異なる翻訳

  • サイトA FR
  • サイトA EN
  • サイトBのFR
  • サイトB EN

Laravelは別のフォルダの下に、あなたはresources/langディレクトリにローカライズ翻訳を保存することができます各言語(この場合はfrフォルダとenフォルダの1つ)に対応します。

これはうまくいきますが、現在のテナントに応じて異なる翻訳が必要な文字列があります。ウェブサイトAでは、「ホーム」ボタンのリンクは「ホーム」と呼ばれ、ウェブサイトBでは「ホームへ」と呼ばれる。

異なるテナントに異なる翻訳ファイルを指定するにはどうすればよいですか?

私はこのような何かやってみました。すると

/ ressources 
/lang 
    /fr 
    /tenantA 
     - messages.php 
    /tenantB 
     - messages.php 
    /en 
     /tenantA 
     - messages.php 
     /tenantB 
     - messages.php 

を、私は、サービスプロバイダーにグローバルロケールを設定します。

App::setLocale('en'); 

私はその後、私のビューから適切な翻訳をロードしよう:

{{ __('tenantA.messages.home') }} 

これは動作しませんが、それはエコーアウトですtenantA.messages.home(リテラルstrin g)messages.phpファイルに含まれている翻訳の代わりに、homeキーの下に入力します。

どうすればこの問題を解決できますか?これを行うより良い方法はありますか?

答えて

1

それは.を使用してsub-directoriesでは動作しませんが、たとえば、あなたが(v-5.4上でテスト)以下の方法を試すことがありますので、、/で動作します:

{{ __('tenantA/messages.home') }} 
関連する問題