首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用HTML标记进行本地化

使用HTML标记进行本地化
EN

Stack Overflow用户
提问于 2010-05-03 22:08:17
回答 2查看 2.2K关注 0票数 5

我想在我的Zend框架应用程序中本地化一些文本。这里有一些文本,比如:

Hello, I'm <a href="test.php" title="Title-Attribute" rel="test">a sample text</a>, greetings to all of you! :)

如果里面没有html,本地化就很简单,但是有HTML在里面,我该怎么做才好呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-03 23:12:43

一些本地化工具,如Virtaal,在way中处理XML (HTML)标签,这使得翻译器更容易使用。另一种选择是简化提供给本地化程序的字符串,方法是将标记替换为字符串格式化变量,并使格式化字符串可本地化,而不是格式化的结果。例如(我主要是为了这个例子而猜测,并不是很了解PHP ):

printf(_("Hello, I'm %sa sample%s, greetings to all of you!"), '<a href="test.php" title="Title-Attribute" rel="test">', "</a>");

在上面的语句中,本地化程序将看到的字符串只包含%s格式化变量(因为它被包装在_() gettext函数中)。当然,这样做的缺点是,如果本地化人员不知道变量将被替换为什么,那么他会非常困惑,所以一定要包含适当的本地化注释。

票数 4
EN

Stack Overflow用户

发布于 2010-05-03 22:12:29

您应该本地化UI中的任何字符串。在这种情况下,您拥有UI/控件元素的组合。这意味着title属性的内容必须单独本地化。

在这种情况下,这意味着:

代码语言:javascript
复制
$guilink = "<a href='test.php' "
           ."title='".gettext("Title-Attribute")."'"
           ." rel='test'>"
           .gettext( "a sample text" )
           ."</a>";

$guistring = sprintf( 
      gettext( "Hello, I'm %s, greetings to all of you! :)" ),  $guilink );

但是,正如戈登所说:不要过于复杂化。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2758599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档