2017-10-20 161 views
1

我正在開發多租戶應用程序,我在兩個不同的網站上使用相同的代碼庫,每個網站都有兩種語言版本。多租戶應用程序的不同翻譯

  • 網站FR
  • 網站EN
  • 網站B FR
  • 網站B EN

Laravel可以讓你的本地化翻譯存儲在resources/lang目錄,在不同的文件夾對於每種語言(在本例中爲一個fr文件夾和一個en文件夾)。

這很好,但有一些字符串需要根據當前租戶進行不同的翻譯。在網站A上,「首頁」按鈕鏈接可能被稱爲「主頁」,而在網站B上,它將被稱爲「回家」。

如何爲不同租戶指定不同的翻譯文件?

我試圖做這樣的事情:

App::setLocale('en'); 

然後我試圖從我的觀點加載正確的翻譯:

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

然後,我在服務提供商設置全局locale

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

然而,這不起作用,它只是回聲出tenantA.messages.home(字面條g)而不是密鑰下的messages.php文件中包含的翻譯。

我該如何解決這個問題?有一個更好的方法嗎?

回答

1

它不使用.sub-directories工作,但它會與/工作,因此,例如,可以嘗試以下方法(上v-5.4測試):

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