在 Yii 中使用 GetText 翻译字符串时,我们必须使用Yii::t($category,'message')
gettext 的_('message')
语法吗?
然后我们如何将字符串拉入 PO 文件?
在 Yii 中使用 GetText 翻译字符串时,我们必须使用Yii::t($category,'message')
gettext 的_('message')
语法吗?
然后我们如何将字符串拉入 PO 文件?
我总是使用 Yii::t('xx','yy') 来更好地控制本地化。我可以在下拆分更多文件
message/LANG/file.php
和
<?php
return array(
'xx' => 'localized',
);
?>
这适用于 Yii Framework 1.x
您可以通过 POEdit 应用程序输入字符串:http://poedit.net/它 允许您扫描项目文件并自动将所有需要的字符串添加到 .po 文件中。
如果涉及到 Yii::t($category,'message') 和 _('message') 之间的区别 - 你应该使用 Yii::t($category,'message')。GetText 的 _('message') 使用完全不同的 po/mo 目录结构。
我个人使用 POEdit 作为字符串扫描仪,它的工作原理就像一个魅力。
我这样使用它:
当我有例如:
Yii::app()->language = en
在文件夹messages
中有我的文件夹en
,在这个文件夹中我有文件lang.php
在这个文件夹上,lang.php
我有例如:
<?php
return array(
'example1'=>'search',
'example2'=>'news',
);
然后当我需要调用视图翻译时:
<?=Yii::t('lang','example1');?>
结果是:search
当我改变时:Yii::app()->language = de
,我必须有messages/de/lang.php
并且在这个文件夹上我有:
<?php
return array(
'example1'=>'Suche',
'example2'=>'Nachrichten',
);
然后当我需要调用视图翻译时:
<?=Yii::t('lang','example1');?>
结果是:Suche
您需要使用 Yii::t() 进行翻译。使用内置yiic message
命令,您可以将所有文本生成到语言文件中。
例子-
Yii::t('app', 'Hello World');
Yii::t('email', 'Welcome');
这将在您的消息目录中生成 2 个文件 app.php 和 email.php。消息/en/app.php & 消息/en/email.php
请在此处找到有关 Yii 翻译的更多信息
https://www.yiiframework.com/doc/guide/2.0/en/tutorial-i18n https://www.yiiframework.com/doc/guide/1.1/en/topics.i18n