Php Yii::t()复杂翻译

Php Yii::t()复杂翻译,php,yii,localization,translation,Php,Yii,Localization,Translation,我有一些文本要用这个Yii::t()方法翻译。 例如,文本是“wordA wordB wordC” 我会写字 Yii::t('file_with_translations','AAA BBB CCC') 在我的带有翻译的文件中,我可以存储这个 return array( 'AAA BBB CCC'=>'translation_of_AAA BBB CCC', ); 但我想做的是写作 Yii::t('file_with_translations','AAA{BBB}CCC') 然后我想在我

我有一些文本要用这个Yii::t()方法翻译。 例如,文本是“wordA wordB wordC”

我会写字

Yii::t('file_with_translations','AAA BBB CCC')

在我的带有翻译的文件中,我可以存储这个

return array(
'AAA BBB CCC'=>'translation_of_AAA BBB CCC',
);
但我想做的是写作

Yii::t('file_with_translations','AAA{BBB}CCC')
然后我想在我的翻译文件中包含以下内容

return array(
'BBB'=>'translation of BBB'
'AAA {VAR} CCC'=>'translation_of_AAA CCC {VAR}',
);
正如你所看到的,使用这种方法,我将有可能在翻译时移动文本中的单词。但Yii可能无法猜测VAR是什么,也无法以这种方式工作。有没有在VAR下将BBB转换为翻译文件的解决方案?所以翻译文件将获取这个VAR并搜索自身,以查找VAR中存储的字符串是否存在以进行翻译?

所以类似于:

Yii::t('file_with_translations', 'AAA {BBB} CCC', array('{BBB}'=>Yii::t('file_with_translations','BBB')))

你可以在这里阅读更多内容:检查参数部分。

好,但在我的翻译文件中,我想写{Anything},而不是{BBB},它不起作用。从文档中,
Yii::t('app',路径别名{alias}被重新定义。'),数组({alias}=>$alias))
{alias}只是一个占位符,你可以在其中写任何东西,只要确保你在翻译文件中使用相同的内容,就行了!我终于猜到了一切,从一开始就不明白。谢谢Mihai,现在我更深入了,提出了另一个问题,继续这个问题。你能检查一下吗?