yii2 基础多语言
yii2 basic multiple language
我需要在 Yii2 基本框架中使用 2 种语言制作网站,但是,我在 google 和其他搜索引擎上进行了大量研究,但我只能找到 yii2 高级内部化。我需要基本模式,如果你有yii2基本多语言的源代码或者你知道任何link或关于yii2基本内化的视频教程,请与我分享,我将不胜感激。
期待您的回音。
最好的教程就是官方文档
所以,看here
在基本应用程序中,国际化实现与高级应用程序没有区别。
首先,设置您的主配置并添加以下键:
return [
// set target language to be Russian
'language' => 'ru-RU',
// set source language to be English
'sourceLanguage' => 'en-US',
......
];
之后,创建新文件 /messages/ru-RU/app.php
(用于实现 ru-RU
语言的翻译。如果您的目标语言是 es-MX
,那么,那将是 /messages/es-MX/app.php
现在在这个文件中,您可以实现字符串的翻译
<?php
/**
* Translation map for ru-RU
*/
return [
'welcome' => 'Добро пожаловать',
'log in' => 'Войти',
'This is a string to translate!' => 'Это строка для перевода'
//...
];
文件准备就绪后,只需在主配置文件中配置 i18n 组件,如下所示:
'components' => [
// ...
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
//'basePath' => '@app/messages',
//'sourceLanguage' => 'en-US',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
],
],
最后,您可以使用 echo \Yii::t('app', 'This is a string to translate!');
显示您的字符串 因此,当您的应用使用 en-US
语言时,您会看到 This is a string to translate!
,而当应用使用 ru-RU
;
要更改目标语言,只需创建一个简单的操作,例如
public function actionChangeLang($local)
{
$available_locales = [
'ru-RU',
'en-US'
];
if (!in_array($local, $available_locales)) {
throw new \yii\web\BadRequestHttpException();
}
\Yii::$app->language = $local;
return $this->goBack();
}
我需要在 Yii2 基本框架中使用 2 种语言制作网站,但是,我在 google 和其他搜索引擎上进行了大量研究,但我只能找到 yii2 高级内部化。我需要基本模式,如果你有yii2基本多语言的源代码或者你知道任何link或关于yii2基本内化的视频教程,请与我分享,我将不胜感激。
期待您的回音。
最好的教程就是官方文档 所以,看here
在基本应用程序中,国际化实现与高级应用程序没有区别。
首先,设置您的主配置并添加以下键:
return [
// set target language to be Russian
'language' => 'ru-RU',
// set source language to be English
'sourceLanguage' => 'en-US',
......
];
之后,创建新文件 /messages/ru-RU/app.php
(用于实现 ru-RU
语言的翻译。如果您的目标语言是 es-MX
,那么,那将是 /messages/es-MX/app.php
现在在这个文件中,您可以实现字符串的翻译
<?php
/**
* Translation map for ru-RU
*/
return [
'welcome' => 'Добро пожаловать',
'log in' => 'Войти',
'This is a string to translate!' => 'Это строка для перевода'
//...
];
文件准备就绪后,只需在主配置文件中配置 i18n 组件,如下所示:
'components' => [
// ...
'i18n' => [
'translations' => [
'app*' => [
'class' => 'yii\i18n\PhpMessageSource',
//'basePath' => '@app/messages',
//'sourceLanguage' => 'en-US',
'fileMap' => [
'app' => 'app.php',
'app/error' => 'error.php',
],
],
],
],
],
最后,您可以使用 echo \Yii::t('app', 'This is a string to translate!');
显示您的字符串 因此,当您的应用使用 en-US
语言时,您会看到 This is a string to translate!
,而当应用使用 ru-RU
;
要更改目标语言,只需创建一个简单的操作,例如
public function actionChangeLang($local)
{
$available_locales = [
'ru-RU',
'en-US'
];
if (!in_array($local, $available_locales)) {
throw new \yii\web\BadRequestHttpException();
}
\Yii::$app->language = $local;
return $this->goBack();
}