Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hyperlink 在web2py中使用URL翻译字符串_Hyperlink_Internationalization_Web2py - Fatal编程技术网

Hyperlink 在web2py中使用URL翻译字符串

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

一个简单的问题-如果我在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('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))))}}