我想通过以下方式实现i18n:
在spring-by-example's simple-form project的基础上,我更改了以下内容:
Index: web/simple-form-annotation-config-webapp/src/main/resources/messages_en.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>windows-1252
===================================================================
--- web/simple-form-annotation-config-webapp/src/main/resources/messages_en.properties (date 1567652013000)
+++ web/simple-form-annotation-config-webapp/src/main/resources/messages_en.properties (date 1567652013000)
@@ -0,0 +1,1 @@
+index.message=this is English (en)
Index: web/simple-form-annotation-config-webapp/src/main/webapp/WEB-INF/templates/footer.jsp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- web/simple-form-annotation-config-webapp/src/main/webapp/WEB-INF/templates/footer.jsp (date 1422210675000)
+++ web/simple-form-annotation-config-webapp/src/main/webapp/WEB-INF/templates/footer.jsp (date 1567652013000)
@@ -4,13 +4,17 @@
<div align="right">
<div>
<fmt:message key="button.locale"/>:
- <c:url var="englishLocaleUrl" value="/index.html">
+ <c:url var="fooLocaleUrl" value="/index.html">
<c:param name="locale" value="" />
</c:url>
+ <c:url var="englishLocaleUrl" value="/index.html">
+ <c:param name="locale" value="en" />
+ </c:url>
<c:url var="spanishLocaleUrl" value="/index.html">
<c:param name="locale" value="es" />
</c:url>
-
+
+ <a href='<c:out value="${fooLocaleUrl}"/>'>Foo</a>
<a href='<c:out value="${englishLocaleUrl}"/>'><fmt:message key="locale.english"/></a>
<a href='<c:out value="${spanishLocaleUrl}"/>'><fmt:message key="locale.spanish"/></a>
</div>
因此,现在“ en”是特定于语言环境的资源,而不是默认资源(通过选择“ Foo”作为lang进行设置)。
我希望单击index.html上的“ Foo”将显示来自index.message
的原始messages.properties
,单击“ English”将显示来自“ en”(专用)的this is English (en)
文件。但是,两者都会产生messages_en.properties
的版本。
如何设置它,以便该应用将默认值视为不是“ en”?
谢谢!
答案 0 :(得分:0)
已解决。
我误解的是如何在消息束中实现“默认”的概念,以及它与默认语言环境的关系。我假设基本名称资源(messages.properties
)映射到默认语言环境。
它的实际工作方式是:
messages.properties
)中具有所有公共资源,并在其各自的资源中具有特定于语言环境的属性。在这种情况下,ResourceBundle的“默认”集是与区域设置无关的通用属性集。