yii2-i18n

框架的翻译机制

framework/validators/Validator.php 中调用了翻译:

Yii::t('yii', 'the input value')

在框架内的 '@yii/messages/zh-CN/yii.php 文件返回的数组中,找到

return [
    // ...
    'the input value' => '该输入',
    // ...
];

应用框架的翻译

新建文件 frontend/messages/zh-CN/app.php

<?php
return [
    'Start time' => '开始时间',
    'End time' => '结束时间',
];

使用:

Yii::t('app', 'Start time');

如果前后端公用,可以新建 common/messages/zh-CN/app.php,并修改配置 common\config\main.php

[
    'components' => [
        ...
        'i18n' => [
            'translations' => [
                'app*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@common/messages',
                    'fileMap' => [
                        'app' => 'app.php',
                        'app/error' => 'error.php',
                    ],
                ],
                'model*' => [
                    'class' => 'yii\i18n\PhpMessageSource',
                    'basePath' => '@common/messages',
                    'fileMap' => [
                        'model' => 'model.php',
                    ],
                ],
        ],
    ]
]