2017-10-20 158 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') }}