使用 thymeleaf 片段变量 select i18n 短语
use thymeleaf fragment variable to select i18n phrase
我正在使用 Thymeleaf 并设置了本地化文件并且工作正常,但为了获得帮助,我想显示相关页面的帮助,所以我将页面作为片段变量传递。
我知道我可以使用 th:switch/case 并通过一系列选项,但肯定有更快的方法吗?
到目前为止对此有任何变化:
<p th:text="#{help.${page}}"></p>
仅returns
??help.${page}_en??
而不是检索 help.page3=foo bar
,并显示 foo bar
我已经尝试过不使用第二个大括号,并且还添加了方括号,但到目前为止还没有成功。有什么好用的 shorthand 吗?还是我坚持设置一个开关?
是的,我意识到我可以在这一点上写 5 次开关......
你需要的是表达式preprocessing。您可以按如下方式进行:
<p th:text="${__#{help.${page}}__}"></p>
您只需要对相关变量进行表达式预处理:
<p th:text="#{help.__${page}__}"></p>
我正在使用 Thymeleaf 并设置了本地化文件并且工作正常,但为了获得帮助,我想显示相关页面的帮助,所以我将页面作为片段变量传递。
我知道我可以使用 th:switch/case 并通过一系列选项,但肯定有更快的方法吗?
到目前为止对此有任何变化:
<p th:text="#{help.${page}}"></p>
仅returns
??help.${page}_en??
而不是检索 help.page3=foo bar
,并显示 foo bar
我已经尝试过不使用第二个大括号,并且还添加了方括号,但到目前为止还没有成功。有什么好用的 shorthand 吗?还是我坚持设置一个开关?
是的,我意识到我可以在这一点上写 5 次开关......
你需要的是表达式preprocessing。您可以按如下方式进行:
<p th:text="${__#{help.${page}}__}"></p>
您只需要对相关变量进行表达式预处理:
<p th:text="#{help.__${page}__}"></p>