我正在开发一个多租户应用程序,我在两个不同的网站上使用相同的代码库,每个网站都有两种语言版本。
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
文件中包含的翻译。
我该如何解决这个问题?有更好的方法吗?
答案 0 :(得分:1)
它不能与使用sub-directories
的{{1}}一起使用,但它可以与.
一起使用,例如,您可以通过以下方式尝试(在{{1上测试) }}):
/