搜索中心
搜索中心 搜索快照

开发必看 - 多语言

系统多语言支持

翻译文件位置

ModStart从底层架构支持多语言。多语言翻译文件位于以下路径:

  • resources/lang/zh/xxx.php
  • resources/lang/en/xxx.php

翻译文件格式

return [
    'Message' => '消息',
    'Error Msg Is %s' => '错误为 %s',
    // ...
];

代码调用多语言

// 没有参数
L('xxx.Message')
// 带有参数
L('xxx.Error Msg Is %s', '错误信息')

模块多语言支持

翻译文件位置

模块多语言翻译文件位于模块的路径:

  • module/Xxx/Lang/zh.php
  • module/Xxx/Lang/en.php
  • ...

翻译文件格式

return [
    'Message' => '消息',
    'Error Msg Is' => '错误为 %s',
    // ...
];

代码调用多语言

// 没有参数,Xxx 表示模块名
LM('Xxx', 'Message')
// 带有参数,Xxx 表示模块名
LM('Xxx', 'Error Msg Is', '错误信息')

系统如何切换多语言

可以通过程序切换 Session 中的变量 _locale 来实现。

如:

// 切换到中文
Session::put('_locale', 'zh');
// 切换到英文
Session::put('_locale', 'en');

系统多语言示例

resources/lang/zh/xxx.phpresources/lang/en/xxx.php 中,定义多语言:

// 语言包文件 resources/lang/zh/xxx.php
return [
    'Message' => '消息',
    'Error Msg Is %s' => '错误为 %s',
];
// 语言包文件 resources/lang/en/xxx.php
return [
    'Message' => 'Message',
    'Error Msg Is %s' => 'Error is %s',
];

xxx.blade.php 视图文件中,输出多语言:


    不带参数语言:{{ L('xxx.Message') }}


    带参数语言:{{ L('xxx.Error Msg Is %s', '错误信息') }}

可以在 Controller 中切换语言:

class XxxController
{
    public function index() {
        // 切换到中文
        Session::put('_locale', 'zh');
        // 切换到英文
        Session::put('_locale', 'en');
    }
}
查看原文
QQ
微信