Internationalization 我可以在i18n标签的同时使用可视显示上下文吗?

Internationalization 我可以在i18n标签的同时使用可视显示上下文吗?,internationalization,aem,sightly,htl,Internationalization,Aem,Sightly,Htl,我在我的项目中看到一个代码 ${'myproj.label' @i18n, format=[sighltyObj.field1], context='text'} 意图是将一个变量传递到i18n文本+安全地编码文本。将显示上下文与i18n翻译一起使用是否正确?当我使用field1=“Hello%20World”进行测试时,它不是编码文本,而是按原样呈现。 在将参数作为变量传递到i18n中时,如何对html字符串进行编码?HTL不会解码格式返回的文本。我认为混淆源于文档,该文档为显示上下文te

我在我的项目中看到一个代码

${'myproj.label' @i18n, format=[sighltyObj.field1], context='text'} 
意图是将一个变量传递到i18n文本+安全地编码文本。将显示上下文与i18n翻译一起使用是否正确?当我使用field1=“Hello%20World”进行测试时,它不是编码文本,而是按原样呈现。 在将参数作为变量传递到i18n中时,如何对html字符串进行编码?

HTL不会解码
格式返回的文本。我认为混淆源于文档,该文档为显示上下文
text
说明了以下内容:

用于简单HTML内容-对所有HTML进行编码

(来源:)

但这并不意味着这个上下文解码任何东西,它编码HTML标记

因此,如果
sighltyObj.field1
Hello%20World
,它将不会呈现为
Hello World
,而是您已经注意到的
Hello%20World

显示上下文
text
将对给定文本中的所有HTML标记进行编码,以便您不能将它们“走私”到文本中(请参见代码注入)

例如:

${'这是我的文本

'@context='text'}

将创建以下HTML

p这是我的文本/p

注意
p
标记是如何编码的:

变成了
p

变成了
/p>

您的
sighltyObj
field1
的getter必须进行解码,以便
Hello%20World
变成
Hello World
。关于Stackoverflow,已经有一个答案向您展示了如何执行此操作:


String result=java.net.urldecover.decode(url,“UTF-8”)

抱歉@Jens,在我的数据字典中,我定义了花括号。问题是,当field1的值为say'Hello%20World'时,我希望呈现为'Hello World'。但仅作为编码值打印为“Hello%20World”。我可以将“文本”显示上下文与i18n结合使用来格式化和解码标签文本吗?@SaravanaPrakash现在我明白你的问题了。我已经更新了我的答案。希望有帮助。谢谢你的详细解释@Jens