2

在 Yii 中使用 GetText 翻译字符串时,我们必须使用Yii::t($category,'message')gettext 的_('message')语法吗?

然后我们如何将字符串拉入 PO 文件?

4

4 回答 4

6

我总是使用 Yii::t('xx','yy') 来更好地控制本地化。我可以在下拆分更多文件

message/LANG/file.php

<?php
  return array(
    'xx' => 'localized',
  );
?>

这适用于 Yii Framework 1.x

于 2015-04-15T07:19:33.600 回答
4

您可以通过 POEdit 应用程序输入字符串:http://poedit.net/ 允许您扫描项目文件并自动将所有需要的字符串添加到 .po 文件中。

如果涉及到 Yii::t($category,'message') 和 _('message') 之间的区别 - 你应该使用 Yii::t($category,'message')。GetText 的 _('message') 使用完全不同的 po/mo 目录结构。

我个人使用 POEdit 作为字符串扫描仪,它的工作原理就像一个魅力。

于 2015-02-04T10:29:04.800 回答
2

我这样使用它:

当我有例如:

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

于 2015-02-10T10:18:40.867 回答
1

您需要使用 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

于 2018-06-22T03:03:16.913 回答