だから私は次のチュートリアルの組み合わせに従っています....
http://viralpatel.net/blogs/spring-3-mvc-internationalization-i18n-localization-tutorial-example/
http://www.mkyong.com/spring-mvc/spring-mvc-internationalization-example/
アイデア!
特定の言語をクリックし、それに応じてウェブページを更新することで、ウェブページで複数の言語を表示できるようにします
計画!
spring の LocaleChangeInterceptor、LocaleResolver、HandlerMapping、MessageSource、およびいくつかの messages_xx.properties ファイルを使用して、指定された「lang」パラメーターに応じてさまざまな言語からメッセージを動的に呼び出しています。たとえば、"lang"=en の場合、messages_en.properties ファイルに移動して、label.message のメッセージを取得します。
問題のセットアップ!
applicationContext.xml ファイルと web.xml ファイルにすべての春の「もの」を設定しました (私はこのようなことについては素人です)。また、.jsp ファイルの 1 つに を追加しました。
問題!
(TomCat サーバーを使用して) アプリケーションを実行すると、messages_en.properties ファイル (この場合は「hello」) にメッセージが正常に表示されますが、言語を変更しようとすると、同じメッセージが表示されます。
参照コード
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ctx="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd ">
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="en"/>
</bean>
<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<ref bean="localeChangeInterceptor" />
</property>
</bean>
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8"/>
</bean>
例: messages_en.properties
label.message = Hello
メッセージを表示する/言語を変更するためのjspスニペット
<%@ include file="/include.jsp"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
..............
<a href="?lang=en">English</a>|<a href="?lang=ar">Arabic</a>
<h3>
<spring:message code="label.message" text="default text" />
</h3>
..............
ノート
${pageContext.response.locale}
コードに行を挿入すると、Web ページの出力は"en_US"でした。パラメータを変更した後でも(.....lang=ar
たとえば、URLのどこに表示されるか)messages_en.propertiesファイルを見つけて、そのファイルからメッセージを取得し、それを Web ページに出力しますが、そのファイルにアクセスするだけで、対応するメッセージを表示するだけです。
私たちはSpring v3.0.3を使用しています(編集:ライブラリファイルに基づいていますが、xmlファイルには2.5と表示されているのでわかりません)、別のバージョンまたはライブラリを使用する必要がありますか?
それは何だと思いますか?
- 経験はほとんどありませんが、ロケール変数が実際には変更されていないように感じます。どうすれば効果的に変更できますか?
みんなありがとう!すべての助けに本当に感謝しています!
編集
それ以来、「localeChangeInterceptor」を で囲んでいますが
<mvc:interceptors>
、運が悪いさらにファイルやコードが必要な場合は、お問い合わせください。