Yii2多语言

背景: 如果项目有要求需要用到多语言的话,那么就需要引入语言包了。

要添加语言包,需要现在config/main.php配置:

‘i18n‘ => [
            ‘translations‘ => [
                ‘lang*‘ => [
                    ‘class‘ => ‘yii\i18n\PhpMessageSource‘,
                ]
            ],
        ],

上面的 lang*表示可以加载lang+任意合法文件名的文件如:

接下来是lang.php的内容:

return [
    ‘title‘ => ‘‘,
    ‘ws_id‘ => ‘工号‘,
    ‘phone‘ => ‘手机‘,
    ‘next‘  =>  ‘下一步‘,
    ‘cancel‘    =>  ‘取消‘,

];

调用方式如下:

$this->title = Yii::t(‘lang_home‘, ‘Title‘);

另外,有时候会遇到一些比较特殊需要转化的字符串如   常量+变量+常量 (这边文章在2017年发表了) 2017就是变量,像这种要怎么做呢?

我们先来看一下 Yii2 自带的函数 t

    public static function t($category, $message, $params = [], $language = null)
    {
        if (static::$app !== null) {
            return static::$app->getI18n()->translate($category, $message, $params, $language ?: static::$app->language);
        }

        $placeholders = [];
        foreach ((array) $params as $name => $value) {
            $placeholders[‘{‘ . $name . ‘}‘] = $value;
        }

        return ($placeholders === []) ? $message : strtr($message, $placeholders);
    }

上面第三个参数是对参数的解析,什么参数呢?我们来看看下面的例子:

 ‘password {passwdMinLength}‘
                                => ‘密码长度必须大于或等于{passwdMinLength}‘,

那么可以这么解析:

$this->title = Yii::t(‘文件名‘, password‘,[‘passwdMinLength‘ => 5]);

那么结果就是:密码长度必须大于或等于5

时间: 2024-08-26 22:56:25

Yii2多语言的相关文章

yii2多语言设置

yii2的多语言切换功能 1.页面添加语言切换按钮,如下图: 代码如下: <ul>       <li>           <a href="javascript:;" onclick="changeLanguage('en_US');">               <span><?php echo \Yii::t('app','English')?></span>           &l

Yii2.0 语言切换的简单设置

多余的话不说,直接看代码: 1) 在 common/config/main.php 写入配置代码 1 // 配置翻译信息 2 'i18n' => [ 3 'translations' => [ 4 'app' => [ 5 'class' => 'yii\i18n\PhpMessageSource', 6 'basePath' => '@common/messages', 7 // 'sourceLanguage' => 'en', 8 'fileMap' =>

[moka学习笔记]yii2设置语言和时区

1.在web/index.php中 (new yii\web\Application($config))->run(); $app = new \yii\web\Application($config); $app->language = "zh-CN";//设置中国区的语言 $app->run(); //(new yii\web\Application($config))->run(); 2.app\config\web.php中 $config = [ 'i

yii2时区语言设置

main.php return [ 'charset' => 'utf-8', 'language' => 'zh-CN', 'timeZone' => 'Asia/Shanghai', 'components' => [ 'cache' => [ 'class' => 'yii\caching\FileCache' ], 'formatter' => [ 'dateFormat' => 'yyyy-MM-dd', 'timeFormat' => 'H

yii2语言设置

1.父配置文件在yii2/base/Application中的$language="en-US", 修改项目的语言可以修改项目的配置文件main.php中加'language'=>'zh-cn',最好还是也加上'sourceLanguage'=>'zh-cn' yii2语言设置

Yii2.0实现语言包切换功能

在yii2.0高级模板框架中,以前台为例,首先  在前台frontend 下面建立  messages/zh-CN 在 messages文件夹中创建一个文件:  ①common.php                                                     如果是使用的后台目录,就在  backend/config/main.php 中添加如下的配置文件return  [                     'language'=>'zh-CN',//选择中文

Yii2 学习日志------多语言

网上有许多的方法,这里只是自己总结一下. 大致分为3种吧. 1.用cookie保存,在服务端操作. 2.用cookie保存,在本地浏览器操作. 3.用session保存. 方法: 设置message文件夹 里面文件 然后 方式一:在index.php页面添加 $application->language = \Yii::$app->request->cookies->get('locale')?\Yii::$app->request->cookies->get('

yii2 api接口 实现国际化多语言设置

1) 在 /config/main.php 下添加如下代码: 'components' => [ 'language' => 'zh-CN', 'i18n' => [ 'translations' => [ '*' => [ 'class' => 'yii\i18n\PhpMessageSource', 'basePath' => '@application/messages', //application根据自身项目进行修改 'fileMap' =>[ '

PHP框架Yii2.0安装(基础版、高级版)

最近农成也是切入了yiiframework 2.0,就是安装yii2.0就花费了不少的时间,为此做了很多的弯路,特此写一篇博文来给后面学习的同学少走一点的弯路.写的不好的地方欢迎各位学习的同学们能够指点出来. yii2.0的安装,官方提供了两种的安装办法,一种是通过composer来安装,另外一种是通过跟yii1.0的办法直接下载安装包来安装.至于对于第一种composer的安装,农成就不做多余的说明了,这里有很好的安装教程.点击进去就可以看到了,为此农成就不在说了,下面就给大家详细讲讲第二种通