-
Notifications
You must be signed in to change notification settings - Fork 56
Получение строк с использованием messagesource
wizardjedi edited this page Nov 20, 2012
·
1 revision
В ApplicationContext
есть получения строк сообщений, что удобно использовать для интернационализации.
Создадим бин источника строк
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>
<value>format</value>
</list>
</property>
</bean>
Данное определение описывает источник строк, который состоит из одного пространства строк format
.
Создадим файлы для хранения строк: format_ru_RU.properties
msg1 = "Тестовая строка"
msg2 = "Найдено {0} файлов"
format_en_US.properties
msg1 = "This is example message en US"
msg2 = "Found {0} files"
Пример приложения
public class App
{
public static void main( String[] args )
{
ApplicationContext ctx = (ApplicationContext) new ClassPathXmlApplicationContext("context.xml");
Locale l = Locale.getDefault();
System.out.println(l.toLanguageTag());
System.out.println(ctx.getMessage("msg1", null, Locale.US));
System.out.println(ctx.getMessage("msg1", null, new Locale("en")));
System.out.println(ctx.getMessage("msg1", null, new Locale("en","US")));
System.out.println(ctx.getMessage("msg2", new Object[]{10}, Locale.US));
System.out.println(ctx.getMessage("msg2", new Object[]{10}, new Locale("en")));
System.out.println(ctx.getMessage("msg2", new Object[]{10}, new Locale("en","US")));
}
}
Вывод приложения
ru-RU
"This is example message en US"
"Тестовая строка"
"This is example message en US"
"Found 10 files"
"Найдено 10 файлов"
"Found 10 files"