Рубрики
Без рубрики

Пакет ресурсов Spring с примером ResourceBundleMessageSource

– Пакет ресурсов Spring с примером ResourceBundleMessageSource

Весной вы можете использовать ResourceBundleMessageSource для разрешения текстовых сообщений из файла свойств на основе выбранных языков. См. Следующий пример:

1. Структура каталогов

Просмотрите структуру каталогов в этом примере.

2. Файл свойств

Создайте два файла свойств, один для английских символов ( messages_en_US.properties ), другой для китайских символов ( messages_zh_CN.properties ). Поместите его в путь к классу проекта (см. Рисунок выше).

Файл: Файл:

customer.name=Yong Mook Kim, age : {0}, URL : {1}

Файл: messages_zh_CN.свойства

customer.name=\ufeff\u6768\u6728\u91d1, age : {0}, URL : {1}

\ufeff\u6768\u6728\u91d1 ‘ – это символы Юникода на китайском языке.

3. Файл конфигурации компонента

Включите файл свойств в файл конфигурации компонента. Оба ” messages_en_US.properties ” и ” messages_zh_CN.properties ” рассматривают один файл в Spring, вам просто нужно один раз указать имя файла, и Spring автоматически найдет правильный язык.




	
		
			locale\customer\messages
		
	


P.S Предположим, что оба файла находятся в папке “ресурсы\локаль\клиент\”.

4. Запустите его

package com.mkyong.common;

import java.util.Locale;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

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

		String name = context.getMessage("customer.name", 
				new Object[] { 28,"http://www.mkyong.com" }, Locale.US);

		System.out.println("Customer name (English) : " + name);

		String namechinese = context.getMessage("customer.name", 
				new Object[] {28, "http://www.mkyong.com" }, 
                                        Locale.SIMPLIFIED_CHINESE);

		System.out.println("Customer name (Chinese) : " + namechinese);

	}
}

Выход

Объяснение

1. В context.GetMessage() второй аргумент – параметры сообщения, вы должны передать его как массив объектов. Вы можете просто передать значение null, если значения параметров недоступны.

	context.getMessage("customer.name",null, Locale.US);

2. местный. Мы будем извлекать сообщения из ‘ messages_en_US.properties ‘, в то время как язык. SIMPLIFIED_CHINESE будет извлекать сообщения из ‘ messages_zh_cn.свойства ‘.

Скачать Исходный Код

Оригинал: “https://mkyong.com/spring/spring-resource-bundle-with-resourcebundlemessagesource-example/”