liguofeng29’s blog

個人勉強用ブログだっす。

Spring4 - ApplicationContextによる国際化サンプル

1.定義 beanMessage.xml

<?xml version="1.0" encoding="GBK"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
    <bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
        <!-- ApplicationContext生成時に、Springは自動的にidがmessageSourceのBeanを探す -->
        <property name="basenames">
            <list>
                <!-- リソースファイルを複数指定 -->
                <value>message</value>
            </list>
        </property>
    </bean>
</beans>

2.リソースファイル:message_ja_JP.properties

hello=\u3053\u3093\u306B\u3061\u306F
now=\u73FE\u5728\u306E\u6642\u523B\u306F:{0}

3.テストクラス

package app;

import java.util.Date;
import java.util.Locale;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestDI {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("beanMessage.xml");

        String hello = context.getMessage("hello", new String[]{}, Locale.getDefault(Locale.Category.FORMAT));
        String now = context.getMessage("now", new Object[]{new Date()}, Locale.getDefault(Locale.Category.FORMAT));

        System.out.println(hello);
        System.out.println(now);

    }
}
こんにちは
現在の時刻は:16/06/20 23:17