i18n php_国际化(I18N)

news/2024/7/7 12:38:23

[TOC]

#### 1. Yii::t() 方法可以像这样使用,如下所示:

~~~

//代码片段中,'app' 代表文本消息的类别

echo \Yii::t('app', 'This is a message to translate!');

~~~

#### 2. 修改配置文件

~~~

'components' => [

// ...

'i18n' => [

'translations' => [

'*' => [

'class' => 'yii\i18n\PhpMessageSource',

'basePath' => '@common/messages',

//'sourceLanguage' => 'en',

'fileMap' => [

'common' => 'common.php',

'backend' => 'backend.php',

'frontend' => 'frontend.php',

],

],

],

],

],

~~~

> 上面配置中的“*”表示所有消息开始程式类别必须使用这种特殊的消息源进行翻译(转换)。

设置了fileMap进行对应各自的源消息。如\Yii::t(''backend, 'username'),翻译中文时,则对应common文件夹->messages文件夹->zh文件夹->backend.php源文件

#### 3. 设置翻译文件

>上一步骤的配置文件中,我们设置了basePath。所以翻译文件应存放在:

>>common

>>>messages

>>>>es

>>>>ru

>>>>zh

>>>>>backend.php

>>>>>common.php

>>>>>frontend.php

~~~

return [

'This is a string to translate' => '这是一个翻译的字符串'

];

?>

~~~

#### 4. 文本消息翻译 测试。

~~~

//测试111111

public function actionTest1() {

//该文本消息会被翻译成中文,因为设定的目标语言是 zh-CN。我们也可以动态地改变应用程序的语言。

echo \Yii::t('backend', 'This is a string to translate');

\Yii::$app->language = 'en-US';

echo \Yii::t('backend', 'This is a string to translate!');

}

//测试222222

//在一个转换(翻译)的消息,可以插入一个或多个参数

public function actionTest2() {

$username = 'Username1';

// display a translated message with username being "Vladimir"

echo \Yii::t('backend', 'Hello, {username}!', [

'username' => $username,

]), "
";

$username = 'username2';

// display a translated message with username being "John"

echo \Yii::t('backend', 'Hello, {username}!', [

'username' => $username,

]), "
";

$price = 150;

$count = 3;

$subtotal = 450;

echo \Yii::t('backend', 'Price: {0}, Count: {1}, Subtotal: {2}', [$price, $count, $subtotal]);

}

~~~

#### 5. 视图文件翻译 测试

> 可以翻译整个视图脚本,而不是单独的翻译文本消息。例如,如果目标语言是zh-CN,想翻译是 views/site/index.php 视图文件,

那么应该翻译视图并保存在 views/site/zh-CN 目录下。

第8步 - 创建 views/site/zh-CN 目录。

然后,zh-CN 文件夹中创建一个 index.php 文件并使用下面的代码。

~~~

/* @var $this yii\web\View */

$this->title = 'My Yii Application';

?>

欢迎您访问!

~~~

> 更多可参考

>>1. http://www.yiifans.com/yii2/guide/tutorial-i18n.html

>>1. http://www.yiibai.com/yii2/yii_localization.html


http://www.niftyadmin.cn/n/4084349.html

相关文章

篇一、安装配置Android Studio

系统:Mac 10.10 Java JDK:官方JDK1.8 IDE:Android Studio 1.2 Android SDK:24.2 模拟器:genymtion 安装 Mac版本的Android Studio安装实在没有什么好讲的,把app拖到Application文件夹里面就好了。比Windows…

Mac上提取应用APP的LOGO

1、找到想提取LOGO的应用,右键「显示包内容」 2、 双击【Contents】文件夹,再双击【Resources】文件夹 3、双击图标打开,选择最清晰的一帧,右键【导出为】 4、选择保存位置,格式注意选择常见格式,如png

字符串的宽度

文本编辑器,就是捕获键盘事件,获得输入字符,在控件表面绘制字符串,设定光标位置。这一系列的文章,将告诉大家所有这些操作该如何处理,有什么注意点。这篇随笔将首先要讨论一个看似很简单,其实有…

php变量作用域分别的是,PHP 变量作用域

南宫晟醺PHP 变量作用域变量的作用域是脚本中变量可被引用和使用的部分,PHP 中有四种不同的变量作用域:序号作用域描述1local局部作用域2global全局作用域3static静态作用域4parameter函数参数作用域1、local(本地的)—— 局部变量的作用域在 PHP 函数内部声明的变量…

什么是I2C协议

什么是I2C协议 转载自:http://blog.sina.com.cn/s/blog_6001b7cf0100dsef.html一. I2C协议技术性能: 工作速率有100K和400K两种; 支持多机通讯; 支持多主控模块,但同一时刻只允许有一个主控; 由数据线…

Java 大地坐标转经纬度,经纬度与WGS84坐标转换

如下代码,输出为:WGS84: -2175790.73969891 4461032.11207734 3992337.79032463BLH: 38.9999999999998 116.000000000000 33.0000069718808Module CorrTrans!// WGS84 系统BLH坐标与空间直角坐标转换!// Fortran Coder http://fcode.cn!…

机器学习工具

机器学习工具 参考网站: https://www.zhihu.com/question/20472776(知乎:学习机器学习有哪些好工具推荐?) http://blog.csdn.net/myarrow/article/details/50608334(CSDN:机器学习工具汇总&…

js阻止默认事件、拖拽等等

1.自定义右键菜单&#xff1a; 1 <!DOCTYPE HTML>2 <html>3 <head>4 <meta charset"utf-8">5 <title>无标题文档</title>6 <style>7 * {margin:0; padding:0; list-style:none;}8 #div1 {position:absolute; width:80px; …