Internationalization 在Yii2语言字符串中包含html元素

Internationalization 在Yii2语言字符串中包含html元素,internationalization,yii2,Internationalization,Yii2,目前我们有一个字符串,它被翻译成几种语言。字符串需要在特定单词周围设置一些格式,因此我们在翻译字符串中包含一个span 在语言文件中 return [ 'signup.success.reminder' => 'This is <span>very</span> important!' ]; 返回[ “注册。成功。提醒”=>“这非常重要!” ]; …然后在模板中 <p><?php echo \Yii::t('app', 'signup.

目前我们有一个字符串,它被翻译成几种语言。字符串需要在特定单词周围设置一些格式,因此我们在翻译字符串中包含一个span

在语言文件中

return [
    'signup.success.reminder' => 'This is <span>very</span> important!'
];
返回[
“注册。成功。提醒”=>“这非常重要!”
];
…然后在模板中

<p><?php echo \Yii::t('app', 'signup.success.reminder'); ?></p>


鉴于上述要求,是否有更好的方法包含span标记?

我认为,如果在代码中不使用变量,最好的方法是将所有变量都放在转换后的字符串中

看法

消息文件

return [
    'This is <span>very</span> important!' => 'Esto es <span>muy</span> importante!'
];
返回[
“这很重要!”=>“这很重要!”
];
至少这种方法对我最有效

如果您使用的是复杂的html,您可以这样替换它

看法


我不这么认为。您可以用变量替换标记,但这并不能使它变得更好。或者,您可以删除span标记,然后告诉视图将定义的单词(“very”)替换为单词加上周围的标记(“very”)。每种语言都需要这样做。但这也不是那么优雅。。。文档是——但您可能已经知道了。
return [
    'This is <span>very</span> important!' => 'Esto es <span>muy</span> importante!'
];
<p><?php echo \Yii::t('app', 'This is {tag} important!', ['tag'=>Html::tag('span'), \Yii::t('app', 'Very'))]; ?></p>