【发布时间】: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