前言
PHP翻译接口请看上一篇文件:https://blog.csdn.net/a1351218627/article/details/116998869
具体代码
修改config/web.php,在$config[‘components’] 增加一下元素
'components' => [ //往components中加入 i18n这个key
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
'basePath' => '@app/messages', //自定义翻译文件所在位置 根目录下面的messages目录
//'sourceLanguage' => 'en-US',
'fileMap' => [
'app' => 'lang.php',
// 'app/error' => 'error.php',
],
],
],
],
]
使用案例:
echo translation('翻译一下');
//输出 “I have been translated”
//翻译语言
/**
* @param string $category the message category.
* @param string $message the message to be translated.
* @param array $params the parameters that will be used to replace the corresponding placeholders in the message.
* @param string $language the language code (e.g. `en-US`, `en`). If this is null, the current
*/
function translation($message, $params = [], $category = 'app', $language = null)
{
set_time_limit(0);
// 英文-翻译保存
$file = __DIR__ . '/messages/en/lang.php';
$array = include($file);
$en_array = $array === 1 ? [] : $array;
if (empty($en_array[$message])) {
$res = Trans::transEN($message); //trans为实例化了上篇文章介绍的PHP翻译类,翻译类翻译文字
$en_array[$message] = $res;
//缓存
if (false !== fopen($file, 'w+')) {
$text = '<?php return ' . var_export($en_array, true) . ';';
file_put_contents($file, $text, FILE_APPEND);
}
}
// 高棉语-翻译保存
$file = __DIR__ . '/messages/km/lang.php';
$array = include($file);
$km_array = $array === 1 ? [] : $array;
if (empty($km_array[$message])) {
$res = Trans::transKM($message); //trans为实例化了上篇文章介绍的PHP翻译类,翻译类翻译文字
$en_array[$message] = $res;
//缓存
if (false !== fopen($file, 'w+')) {
$text = '<?php return ' . var_export($km_array, true) . ';';
file_put_contents($file, $text, FILE_APPEND);
}
}
return \Yii::t($category, $message, $params, $language);
}
<?php
//Trans类
namespace app\translates;
use app\translates\Translatectory;
class Trans
{
function transKM($text = '') {
//启动工厂
$model = new Translatectory();
//谷歌翻译1
$form = $model->GoogleTranslate();
$form->target = "km"; //目标语言km-高棉语
$form->source = "zh"; //源语言 zh-中文
$form->text = $text;
$form->translate();
return $form->run();
}
function transEN($text = '') {
//启动工厂
$model = new Translatectory();
//谷歌翻译1
$form = $model->GoogleTranslate();
$form->target = "en"; //目标语言en-英语
$form->source = "zh"; //源语言 zh-中文
$form->text = $text;
$form->translate();
return $form->run();
}
}