Локализация в GWT

В наши дни, когда Интернет сближает людей вне зависимости от страны проживания, очень часто требуется создать сайт, который можно читать на разных языках: русском, английском, немецком, китайском… Писать для каждого языка свою версию HTML-страницы — это, конечно же, безумие. Есть способ лучше — задействовать GWT, где реализованы необходимые механизмы интернационализации.



Для начала нужно продумать структуру надписей, которые будут подвергнуты переводу на разные языки. Необходимые текстовые фрагменты оформляются как методы интерфейса:

package com.myproject.client;

public interface Constants extends com.google.gwt.i18n.client.Constants{
 String mainHeader();
 String about();
 String newsHeader();
}


Затем создаются текстовые файлы с текстовыми фрагментами на разных языках, например для русского языка — Constants_ru.txt:

mainHeader     = Доступные средства GPS-навигации
about          = О проекте
newsHeader     = Новости сайта 


для английского — Constants_en.txt:

mainHeader     = Affordable GPS navigation
about          = About the project
newsHeader     = Project news 


Текстовые файлы преобразуются в специальные файлы properties примерно вот такой командой ant:

<native2ascii
   encoding="UTF8"
   src="."
   dest="${classesdir}/${dirprefix}/client"
   includes="*.txt"
   ext=".properties"
  />


Кроме того, в заголовочную часть html-документа нужно включить специальный тэг:

<meta name="gwt<img class="smile" src="/images/smilies/tease.gif" />roperty" content="locale=en"/>


После компиляции проекта в зависимости языка, указанного в этом тэге (в данном случае en — английского) все указанные в интерфейсе фрагменты будут выведены на нем.

Подробности см., например, здесь.
  • +2
  • 16 февраля 2010, 22:52
  • yababay

Комментарии (3)

RSS свернуть / развернуть
+
0
Вот за это спасибо — ценнейший материал!
avatar

Sergei_T

  • 16 февраля 2010, 22:59
+
0
Да, в ГлазоСчетчике пригодится
avatar

yababay

  • 16 февраля 2010, 23:02
+
0
avatar

Markony

  • 17 февраля 2010, 10:02

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.