1. Наименование файлов ресурсов
Формат именования международных файлов ресурсов заключается в следующем:
baseName_language_country.properties baseName_language.properties baseName.properties
Там, где базовое название является базовым названием файла ресурсов, язык и страна должны быть языком, а страна, поддерживаемая Java. Коды языка и страны, которые получают Java, следующие:
Locale [] locales = locale.getavailablelocales (); для (локал локализации: локации) {System.out.println ("Country:" + locale.getCountry () + ", язык:" + locale.getlanguage ()); }2. Конфигурация и получение файлов ресурсов
Создайте новый файл ресурса. В китайской среде значение значения в файле ресурса должно быть преобразовано ASCII. Вы можете войти в Native2ascii после запуска. Кроме того, в этой статье используется плагин файла атрибута Eclipse, поэтому он отображается непосредственно на китайском языке. Файл свойств настроен следующим образом:
info_en_us.properties
username = zhangsaninfo_zh_cn.propertiesusername = zhangsaninfo_zh.propertiesusername = li si password = lisiinfo.propertiesusernam
Кроме того, если вам нужно прочитать значение в файле свойств, вам необходимо настроить константы в файле struts-config.xml.
<!-Используйте имя файла ресурса, где значение значения представляет базовое имя файла ресурса-> <постоянное имя = "struts.custom.i18n.resources" value = "info"> </constant>
Способ получить файлы ресурсов на странице состоит в том, чтобы использовать тег Struts <S: Text/>, как показано ниже:
<!-Файл ресурса получает значение ключа-> <S: Text name = "username"/> <S: Text name = "password"/> <S: Text name = "Email"/>
Кроме того, если вы получите значение ключа в форме формы, метод заключается в следующем:
<!- Где значение ключа- это значение ключа в файле ресурса, и функция состоит в том, чтобы добавить имя метки в поле ввода, которое совпадает с значением атрибута метки. Однако в постоянных значениях ключа не может быть получено из файла атрибута. -> <S: Textfield name = "login.username" key = "username"> </s: Textfield>
Также обратите внимание, что когда используется постоянная <constant name = "struts.ui.teme" value = "simple"/>, значение ключа в <s: Textfield/> не может получить соответствующее значение из файла атрибута.
На последней странице показаны результаты следующим образом:
Из приведенных выше файлов конфигурации мы можем увидеть источник значений этих трех значений. Исходя из этого, мы видим, что порядок поиска файла ресурса заключается в следующем:
Во -первых, ищите соответствующее значение ключа от baseName_language_country.properties. Если нет, ищите соответствующее значение ключа в baseName_language.properties. Если нет, ищите соответствующее значение ключа в BaseName.properties. Если нет, ищите соответствующее значение ключа. Если нет, это будет отображаться как имя.
3. Использование заполнителей в файлах атрибутов
Содержание конфигурации файла свойств следующее:
username = Zhang San, {0}, {1}
Используйте тег <s: param> value </s: param> для передачи параметров в JSP.
<S: Text name = "username"> <s: param> hello </s: param> <s: param> добро пожаловать! </s: param> </s: текст>
4. Файлы ресурсов приложений в действии
Чтобы использовать файлы ресурсов в действии, вам необходимо унаследовать класс ActionSupport. Класс ActionSupport реализует два интерфейса: TextProvider и LocaleProvider. TextProvider предоставляет метод для получения метода значения файла ресурса getText (), в то время как интерфейс LocaleProvider имеет только один метод getLocale () для получения локали.
Измените файл конфигурации info_zh_cn.properties:
username = zhang san, {0}, {1} usernameerror = Имя пользователя не может быть пустым! Подтвердите!В действии метод получения файла свойства заключается в следующем:
this.getText ("usermerror");Используйте заполнители в действии для работы, код выглядит следующим образом:
this.getText ("имя пользователя", new String [] {"hello", "Welcome"});5. Файлы ресурсов по всей пакете
Действие в соответствии с этим пакетом и подпакетом могут получить доступ к файлу ресурса. Размещение находится в определенном пакете, а формат именования: package_language_country.properties. Где пакет является фиксированным форматом. Файл конфигурации Package_zh_cn.properties заключается в следующем:
Имя пользователя = имя пользователя под применением пакета
В действии под пакетом вы можете использовать GetText («Имя пользователя»), чтобы получить его.
6. Файлы ресурсов в сфере действия
Вы можете указать файл свойства для отдельного действия и поместить его в каталог того же уровня, что и действие. Формат имени
ActionName_language_country.properties
Полем
Настройте файл свойств по объему действия:
Имя пользователя = имя пользователя в диапазоне действия
Метод GetText («Имя пользователя») также используется в действии, чтобы получить значение.
7. Порядок загрузки файлов ресурсов
Для использования значения getText (ключа) для действий, когда в рамках действия есть оба файла свойств, файлы свойств в области пакета и глобальные файлы свойств, заказ на загрузку заключается в следующем:
Во -первых, существует ли значение ключа в файле атрибута в указанном действии. Если это существует, значение будет принято. Если его не существует, то ищите, существует ли файл атрибута диапазона пакетов с указанным значением ключа в пакете верхнего уровня текущего действия. Если его не существует, продолжайте искать в пакете предыдущего уровня. Если это не было найдено, то ищите, существует ли указанное значение ключа в глобальном файле атрибутов. Если указанное значение ключа существует, значение, соответствующее значению ключа, вынуждено. Если его не существует, по умолчанию является значение ключа.
Кроме того, когда в глобальном файле атрибутов есть несколько файлов ресурсов, вам необходимо искать в порядке baseName_language_country, basename_language и basename.
8. Получить файлы ресурсов на странице
(1) Используйте <s: i18n/> для доступа к файлу ресурса.
Код заключается в следующем:
<!-Используйте тег i18n, чтобы получить файл атрибута-> <!-Получить файл ресурса в прицеле пакета-> <S: i18n name = "com/struts/package"> <S: Text name = "username"> </s: Text> </s: i18n> <!-Получить файл ресурса в сфере действия Action Scope-> <s: i18ne name = "com/names =" com/names = <S: Text name = "username"> </s: text> </s: i18n>
(2) Использование <fmt/>
JSTL включает в себя интернационализацию и форматирование тегов. Использование тегов интернационализации позволяет странице JSP для вывода выражений страницы на разных языках в соответствии с областью, где находится посетитель. Здесь вам нужно использовать Maven, чтобы добавить пакеты JAR -зависимости. Файл конфигурации следующим образом:
<!-Представление библиотеки тегов JSTL-> <Dependency> <groupId> jstl </GroupId> <strifactId> jstl </artifactid> <sersive> 1.2 </version> </depertion>
Используйте тег FMT на странице JSP, а код приложения выглядит следующим образом:
<!-Использование JSTL TAG FMT-> <!-Установка Локала будет перезаписать жалобы, передаваемые клиентом-> <fmt: setlocale value = "zh_cn" scope = "request"/> <!-Загрузите набор ресурсов и сохраните его в переменной EL. BaseName - это базовое название. Если он находится в области пакета, это com.struts.package, и под прицелом действия, это com.struts.service.loginservice-> <fmt: setbundle basename = "info" scope = "warce" var = "baseName"/> <fmt: key key = "unserame" bundle = "$ {baseName}"> «Прохождение»-«Прохождение»-«Прохождение»-«Прохождение»-«Прохождение» <fmt: param value = "hello"/> <fmt: param value = "Welcome"/> </fmt: сообщение> <br/> <!-fmt: набор ресурсов, который доступен только в теге-> <!-Файл ресурса в пакете-> <fmt: baseName = "com.Struts.package"> <fmt.> "use usemern usemerne usemern useriner useRins"/> "/" fmt. </fmt: Bundle> <!-файл ресурса в области действия-> <fmt: baceename baseName = "com.struts.service.loginservice"> <fmt: key message = "username"/> </fmt: bundle>