i18n不能在Yii用户定义的组件中工作

时间:2012-03-08 07:28:05

标签: php yii internationalization translation

我在Yii项目中创建了一个简单的组件,并且有一个文本需要使用Yii的i18n功能进行翻译

class MySimpleComponent{
   public static function WelcomeCurrentUser(){
       $wuser = Yii::t("lstrings","Welcome back ");
       $wuser .= Yii::app()->session['curuser']; 
       return $wuser;
   }
}

我在我的一个视图中调用了这个小组件函数。

echo MySimpleComponent::WelcomeCurrentUser();

但是当我使用以下代码更改我的一个控制器中的语言时

Yii::app()->language = 'ja' //change language to japanese

翻译不起作用...我仔细检查我的i18n字符串,以确保消息彼此完全相同但仍无法正常工作。

这是我的lstrings.php文件

return array("Hello"=>"こんにちは",
             "Welcome back "=>"お帰りなさい",
);

为什么翻译不起作用的任何想法?任何解决方案感谢

1 个答案:

答案 0 :(得分:2)

致电

Yii::app()->language = 'ja'

之前

echo MySimpleComponent::WelcomeCurrentUser();

语言翻译只要在Yii :: t()

之前生效