使用__($str)和_e($str)来转换带有HTML的字符串

时间:2015-08-02 作者:5ervant - techintel.github.io

我现在正在开发一个非常重要的主题,大多数时候我没有使用a __($str) translate function 当文本中有HTML标记时。总是使用这样的翻译功能好吗__($str)_e($str) 每当有文本要输出时?这有什么坏处吗?

即使是混合了这样的HTML标记的很长的文本,我仍然可以使用它吗?

__("This <em>text</em> have an <b>HTML</b> tag. Another sentence...")
还是像这样使用很好(*看起来很凌乱…)

__(\'This \').\'<em>\'.__(\'text\').\'</em>\'.\' have an \'.\'<b>\'.__(\'HTML\').\'</b>\'__(\' tag.\')
如何正确使用这种函数?

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

总之,不要试图翻译HTML标记。使用占位符和printfsprintf 使用HTML标记翻译字符串

这样就可以了

printf()

printf( __( \'This %s text %s have an %s HTML %s tag. Another sentence...\' ), \'<em>\', \'</em>\', \'<b>\', \'</b>\' );

sprintf()

sprintf( __( \'This %s text %s have an %s HTML %s tag. Another sentence...\' ), \'<em>\', \'</em>\', \'<b>\', \'</b>\' );

SO网友:Claudio Rimann

第二种选择(正如@mmm已经说过的)不仅会让翻译人员感到困惑,而且句子中的单词顺序在不同的语言之间可能会有很大的不同。

对于第一个选项,翻译人员可以进行适当的调整和翻译,而对于第二个选项,这是不可能的。

结束

相关推荐

Plugin Localization

我刚刚为wp构建了我的第一个插件,即使它不是一个伟大的“代码诗意”;)它正常工作。这是一个使用GalleryView 3.0 jquery插件转换默认wp库的插件(http://spaceforaname.com/galleryview).我唯一不能做的就是本地化。此插件的本地化意味着转换管理界面,在这里可以配置jquery插件选项来更改结果库的外观。我试着关注网络上数百万的教程,在论坛上阅读了很多关于这个问题的帖子,并遵循了codex的指南。。。但仍然没有运气。这就是我所做的:每个文本行都位于gette