在 web2py 中用 URL 翻译字符串

Translate string with URL in web2py

一个简单的问题 - 如果我在 web2py 中有一个带有类似

的字符串的网页视图
Here is a string to <a href="{{=URL('my_other_page', vars=vars)}}">translate</a>.

T() 运算符应用到它的批准方法是什么,以便我可以提供不同的语言翻译,但保持不变 url?

对我来说,最简单的方法是先用占位符进行翻译,例如:

Here is a string to <a href="@URL@">translate</a>

然后将占位符@URL@替换为URL('my_other_page', vars=vars)

唯一的风险是翻译过程中代码或占位符的损坏。

您的翻译字符串可以包含 内插 变量,如 here 所述。例如:

T('Here is a string to <a href="%(url)s">translate</a>',
  dict(url=URL('my_other_page', vars=vars)))

请注意,如果您打算在 web2py 视图中插入以上内容,默认情况下 HTML 标记将被转义,因此您必须将其包装在 XML() 中以防止转义:

{{=XML(T('Here is a string to <a href="%(url)s">translate</a>',
         dict(url=URL('my_other_page', vars=vars))))}}