最佳翻译实践

问题描述

不要重新发明。使用JSTLfmttaglib。它也支持参数化消息。

<fmt:message key="identifier">
  <fmt:param value="${username}" />
</fmt:message>

解决方法

我正在使用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"})

抱歉,如果这是一个错误的解释,请查找printf类似PHP的内容。

在Java中复制类似内容的最佳方法是什么?谢谢您的帮助。