Развитие JavaWeb - программное обеспечение интернационализация (международные текстовые элементы)

Несколько дней назад вокруг программирования JDBC , мы должны были освоить систему. Сейчас мы работаем на базе программы Java уже хорошо помещенной эксплуатировать. Кроме того, я узнал , как использовать различные рамки , чтобы помочь нам упростить программирование.
Сегодня седьмой день программы обучения, хотя несколько дней назад страсть к обучению не является высокой. Тем не менее, писать в блоге подвел итог привычки должны придерживаться его. Ado.
Сегодня JavaWeb обучения разработки контента - программное обеспечение интернационализация.

Интернационализация программного обеспечения: время разработки программного обеспечения, чтобы сделать это в той же время сделки с доступом к различным частям мира и страны, а также для доступа к различным регионам и странам, обеспечить соответствующую страницу в соответствии с читательскими привычками посетителей или данных.
Интернационализация также известна как i18n: интернационализация.
Популярная точка , то есть набор программного обеспечения для обеспечения различных наборов интерфейсов, в зависимости от страны и языка посетителей, таким образом , отобразить соответствующий интерфейс.

На самом деле, для достижения интернационализации программного обеспечения JDK введите команду JAVAC в окне DOS, окно дос выскочит китайскую информацию. И когда вы меняете язык вашего компьютера является окном английского, дос снова ввести JAVAC команды, дос окна, которое выскакивает является информацией на английском языке.

Программное обеспечение интернационализация, который показывает необходимость:

  • Для программы текстовых элементов для стационарного использования, например, в виде текстовых элементов, используемых в строке меню, панель навигации и т.д., а также сообщения об ошибках, информация о состоянии и т.д., в соответствии с потребностями посетителей регионов и стран, выбрать текст на разных языках, чтобы служить.
  • Для данных динамически генерируемых программой, например (дата, валюта и т.д.), программное обеспечение должно быть в состоянии будет отображаться в соответствии с культурными привычками текущей страны или региона.

Мы смотрим на первой функции

Международные элементы фиксированного текста

  • Для программного обеспечения в строке меню, панели навигации, эти ошибки фиксированных текстовой информации, информация о состоянии и т.д., вы можете записать их в файл свойств и записывать файлы различных свойств в зависимости от страны. Эта группа свойств файла называется пакет ресурсов.
  • JAVAAPI предусмотрен в ResourceBundle класса для описания набора ресурсов и ResourceBundle класс обеспечивает соответствующий метод getBundle, этот метод может автоматически получить соответствующий файл ресурса, который будет отображаться в соответствии с посетителями страны.
Создайте пакет и файлы ресурсов Некоторые заметки
  • Каждый файл ресурсы пакеты ресурсов должны иметь общее название базы. В дополнении к базовому имени, имя каждого файла ресурс должен также определить дополнительную часть своей местной информации. Например: имя ресурса базового пакета «myproperties», и китайский, английский экологический ресурс, соответствующий имени файла было: «myproperites_zh.properties» «myproperites_en.properties».
  • Каждый пакет ресурсов должен иметь файл ресурсы по умолчанию, который не является частью идентификации с дополнительной местной информацией. Если объекты ResourceBundle не может быть найден соответствующий файл пользовательского ресурса в пакете ресурсов, он будет выбрать пакет ресурсов ближе к файлу ресурсов пользователя, если мы не можем найти, файл ресурсов по умолчанию. Например myproperites.properties.

Наклейте язык и коды стран

































































таблица условных сигналов объяснение | код страны объяснение
из Немецкий | CN Китай
это испанский | Калифорния Канада
в английский водораздел О Германия
Fr Французский процент FR Франция
и японский язык линия В Индия
Jw яванский | НАС Единый государственный
мой корейский язык |
Zh китайский язык |

С помощью этой таблицы в будущем, может быть записано в таблице сравнения для каждого файла ресурсов национального языка.
Ресурсное файл именование является: название языка на основе _ _ национальные .properties, где страна может быть опущена.
Например: myproperties_zh_CN.properties от имени Китая, код страны , как правило , прописными буквами, строчными буквами код языка.
myproperties_en_US.properties от имени Соединенных Штатов.

Пакет ресурсов файла , как правило , устанавливается в каталоге Src.
Показать вам.
Новый веб - проект под названием day07.
Новые три конфигурационных файлов в каталоге Src, соответственно myproperties.properties, myproperties_zh_CN.properties, myproperties_en_US.properties.
В myproperties.properties письменных документов , name = default
подготовленных в соответствии с myproperties_zh_CN.properties документов , name = 张三
подготовленных в рамках myproperties_en_US.properties файла name = mary
Некоторые студенты находят написание имен = профили Джо Смит не могут быть сохранены, так как файл конфигурации не сохраняется на китайском языке. Запись о формате файла ресурсов путь науки.

  • Файл ресурсов контента, как правило, в виде «ключ = значение», на странице ключевых слов поиска программного обеспечения на основе отображаемого значения. Все ключевой файл ресурсы пакета ресурсов должен иметь то же значение, по сравнению с соответствующими странами текста.
  • И файл ресурсы использует файл свойства формата, так что все символы в файле должны быть кодами символов ASCII, например, для не ACSII китайских иероглифов должны сначала быть закодированы. (Java native2ascii обеспечивает команду для кодирования).

Так что если вы хотите сохранить китаец в конфигурационном файле, вы должны включить в первый китайском Unicode, что , как преобразовать его?
Мы можем сначала открыть окно ДОС и введите в окне native2ascii, введите окно ДОС будет ждать ввода пользователя, то вы можете ввести информацию , которую вы хотите преобразовать китайский, такие как ввод Джо Смит, окно будет показывать соответствующую кодировку Unicode.
Здесь Insert Picture Описание
Теперь несколько китайских символов будут кодироваться Unicode мы смогли достичь, но если есть большое количество китайских данных , которые необходимо Пакетное конвертирование , как я должен это делать?
A.properties создать файл на рабочем столе, а затем введите
имя = Джо Смит
город = Пекин
Наша цель состоит в том, что все содержимое файла в кодировке Unicode.
Открыть окно ДОС, переключиться на путь директории файла, то есть, переход на каталог рабочего стола и введите

native2ascii a.properties b.properties

Первый файл за файл , который будет транскодирования, второй файл представляет собой файл , сгенерированный в кодировке Unicode.
Здесь Insert Picture Описание
Назад к рабочему столу, найти более чем файл b.properties, открыл его, два китайских информация была преобразована в кодировке Unicode.
С помощью этого гаджета можно легко превратить китайскую проблему кодирования Unicode.
Кажется , немного не по теме. Ха - ха, пожалуйста , простите меня Фэнюньте любит делиться сердцем.

Гм, двигаясь по сегодняшнему Казахстану.
При следующем файле конфигурации, мы должны прочитать документ.
Новый класс Test, написать тестовый код

    @Test
    public void demo1(){
        //使用ResourceBundle读取配置文件,不设置国家
        ResourceBundle bundle = ResourceBundle.getBundle("myproperties");
        
        //默认根据系统语言选择配置文件
        System.out.println(bundle.getString("name"));
    }

Запуск кода
Здесь Insert Picture Описание
инструкции для запуска профиля китайской информации.

Существование такого класса, Locale класса в Java, который представляет страну и язык. Что она делает это?
Через случае чувствовать.
Код тестовой записи

    @Test
    public void demo2(){
        //读取文件时,设置国家
        Locale locale = new Locale("en","US");//指定国家为美国
        ResourceBundle bundle = ResourceBundle.getBundle("myproperties",locale);
        
        System.out.println(bundle.getString("name"));
    }

Запуск кода
Здесь Insert Picture Описание
инструкции для запуска информации о файле конфигурации на английском языке. Действие Locale класса теперь должно быть ясно.
Существует проблема приоритетов является установка Locale класс приоритета является наивысшим, вы установили какую страну и язык, на которой работает файл конфигурации, а затем национальные настройки системы, и , наконец , по умолчанию.

Базовые знания о введений, а затем войти в систему написать дело об углублении понимания.
Новый файл login.jsp

<%@page import="java.util.ResourceBundle"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
    <%
        ResourceBundle bundle = ResourceBundle.getBundle("myproperties");
    %>
    <h1><%=bundle.getString("forminfo") %></h1>
    <form>
        <%=bundle.getString("username") %><input type="text" name="username" /><br /> 
        <%=bundle.getString("password") %><input type="password" name="password" /><br /> 
        <input type="submit" value="<%=bundle.getString("submit") %>" />
    </form>
</body>
</html>

Теперь, JSP текстовые элементы интернационализации.
Соответственно изменить файл конфигурации, первый изменить файл myproperties.properties

forminfo = default Login Form
username = default Username
password = default Password
submit = default Submit

Затем измените файл myproperties_en_US.properties

forminfo = Login Form
username = Username
password = Password
submit = Submit

Последнее изменение myproperties_zh_CN.properties файла

forminfo = \u767B\u5F55\u8868\u5355
username = \u7528\u6237\u540D
password = \u5BC6\u7801
submit = \u63D0\u4EA4

Развертывание проектов выполняются ,
Здесь Insert Picture Описание
потому что мы не указали страну, поэтому она должна быть предметом в системе по умолчанию, показывает китайскую информацию.
Теперь мы вручную указать , какую страну.
Login.jsp изменить файл

ResourceBundle bundle = ResourceBundle.getBundle("myproperties",Locale.US);

Только нужно создать объект кода ResourceBundle , как описано выше , может быть изменено, определяет различные константы и соответствующую страну, так что мы можем непосредственно строить объект ResourceBundle Locale к входящему классу поля в Locale класса.
Теперь вновь запустить программу.
Здесь Insert Picture Описание
Я уже говорил, значение национального приоритета класса Locale является самым высоким, поэтому отображать информацию на английском языке.
Приведенный выше код использует широкое использование <% =%>, не только хлопотное, но и неприглядный, мы можем использовать JSTL для отображения данных.
Измените файл login.jsp

<%@page import="java.util.Locale"%>
<%@page import="java.util.ResourceBundle"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%--引入国际化标签库--%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<html>
<head>
<title>Insert title here</title>
</head>
<body>
    <%
        ResourceBundle bundle = ResourceBundle.getBundle("myproperties",Locale.US);
    %>
    <h1><%=bundle.getString("forminfo") %></h1>
    <form>
        <%=bundle.getString("username") %><input type="text" name="username" /><br /> 
        <%=bundle.getString("password") %><input type="password" name="password" /><br /> 
        <input type="submit" value="<%=bundle.getString("submit") %>" />
    </form>
    
    <hr/>
    
    <fmt:setLocale value="zh_CN"/>
    <fmt:setBundle basename="myproperties" var="bundle" scope="page"/>
    <h1><fmt:message key="forminfo" bundle="${bundle }"/></h1>
    <form>
        <fmt:message key="username" bundle="${bundle }"/><input type="text" name="username" /><br /> 
        <fmt:message key="password" bundle="${bundle }"/><input type="password" name="password" /><br /> 
        <input type="submit" value="<fmt:message key="submit" bundle="${bundle }"/>" />
    </form>
</body>
</html>

Запуск проекта
Здесь Insert Picture Описание
достигнуты одинаково успешные результаты, но код будет выглядеть кратким , чем первая реализация удобной.

Из-за ограниченности пространства, программное обеспечение интернационализация закончила содержание в блоге не очень реалистично, эта часть содержимого трех частей, я, вероятно, пойти объяснить, так это серия, она делится на

  • Текстовые элементы интернационализация
  • Динамическая интернационализация данных
  • Динамический текст интернационализация

Три части этого. Вы читали, когда вы можете прочитать в порядке сверху вниз.

рекомендация

отwww.cnblogs.com/blizzawang/p/11411797.html