问题描述
不要重新发明。使用JSTLfmt
taglib。它也支持参数化消息。
<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中复制类似内容的最佳方法是什么?谢谢您的帮助。