【问题标题】:Different translations for multi-tenant applications多租户应用程序的不同翻译
【发布时间】:2017-10-21 04:55:30
【问题描述】:

我正在开发一个多租户应用程序,其中我为两个不同的网站使用相同的代码库,每个网站都提供两种语言。

  • 网站 A FR
  • 网站 A ZH
  • 网站 B FR
  • 网站 B ZH

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 键下的翻译。

我该如何解决这个问题?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: php laravel localization multi-tenant


    【解决方案1】:

    它不适用于使用.sub-directories,但它可以用于/,因此例如,您可以尝试以下方式(在v-5.4 上测试):

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-26
      • 2018-04-05
      • 2018-08-29
      • 2011-05-05
      • 2015-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多