多租户应用程序的不同翻译

时间:2017-10-20 18:23:40

标签: php laravel localization multi-tenant

我正在开发一个多租户应用程序,我在两个不同的网站上使用相同的代码库,每个网站都有两种语言版本。

  • 网站A FR
  • 网站A EN
  • 网站B FR
  • 网站B EN

Laravel允许您将本地化翻译存储在resources/lang目录中,每个语言的不同文件夹下(在本例中为一个fr文件夹和一个en文件夹)。

这很有效,但有些字符串需要根据当前租户进行不同的转换。在网站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(文字字符串)而不是messages.php文件中home文件中包含的翻译。

我该如何解决这个问题?有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

它不能与使用sub-directories的{​​{1}}一起使用,但它可以与.一起使用,例如,您可以通过以下方式尝试(在{{1上测试) }}):

/