翻译的最佳实践

Tom*_*nal 4 java jsp

我正在使用JSP编写一个网站.我希望网站有多种语言版本,所以我HashMap为我计划支持的每种语言创建了一个,并且通过map.get("identifier")其他一些代码来查找文本.

我遇到的问题是我之前通过使用format函数解决的问题(类似于printf许多语言),但这是另一种语言.

具体问题是,文本User performed action可能会出现Action was performed by user另一种语言(即术语可能会出现故障).

在过去,我做过类似的事情#translate("Welcome to the site, %s!", {"Username"}),然后使用语言的format功能替换%s用户名.我可以简单地使用String#replace但是我不能做#translate("Welcome to the site, %s! You last visited on %s!", {"username", "last visit"})像我想做的事情.

对不起,如果这是一个不好的解释 - 只需查看printfPHP之类的东西.

在Java中复制这样的东西的最佳方法是什么?谢谢您的帮助.

Bal*_*usC 9

不要重新发明.使用JSTL fmttaglib.它也支持参数化消息.

<fmt:message key="identifier">
  <fmt:param value="${username}" />
</fmt:message>
Run Code Online (Sandbox Code Playgroud)

也可以看看: