Hyperlink 在web2py中使用URL翻译字符串
一个简单的问题-如果我在web2py中有一个带有字符串的网页视图,如Hyperlink 在web2py中使用URL翻译字符串,hyperlink,internationalization,web2py,Hyperlink,Internationalization,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="@UR
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('my\u other\u page',vars=vars)替换占位符@URL@
唯一的风险是翻译过程中代码或占位符的损坏。您的翻译字符串可能包含所述的插值变量。例如:
T('Here is a string to <a href="%(url)s">translate</a>',
dict(url=URL('my_other_page', vars=vars)))
但是当我执行
T('here is')
时,html由web2py转义。有没有办法使用a()
html助手函数?@user2667066,请注意T()
不会转义html。相反,您可能会在web2py视图中插入翻译后的字符串,并且默认情况下会转义写入视图的字符串,除非包装为XML()
。请参见。@Paolo Betti,您可以使用标准的Python字符串格式(即使用%(占位符)s
语法)完成此操作,如前所述。@Anthony您说得对,这是视图中显示的文本。提供翻译的最佳方式是什么,或者是视图中的字符串,或者甚至是整个页面?目前,我正在视图中提取段落,并将它们包装在{{=T('This used's text')}
中,我想这是错误的。这种方法很好——如果它包含您不希望转义的标记,只需包装在XML()
中即可(尽管要小心——如果文本包含任何用户提供的输入,规避默认转义是危险的)。有没有一种方法可以使用内置的帮助程序(如a()
)插入URL,而不必使用XML()
)?最终转换的必须是字符串。如果要使用a()
helper,您必须单独翻译它的文本(即,A(T('linktext'),…)
)。
{{=XML(T('Here is a string to <a href="%(url)s">translate</a>',
dict(url=URL('my_other_page', vars=vars))))}}