В GWT я должен определить, какие локали поддерживаются в моем приложении. Код компилируется в различных файлах, один для каждой локали (около других версий), но я должен дать моим клиентам один единственный URL. Этот URL, как предполагается, является страницей, которая должна быть отображена согласно локали, предпочтенной браузером. Я dont't хотят иметь параметр HTTP для локали, так как я хочу предвидеть локаль, предпочтенную браузером. Как это может быть кодировано в GWT?
Я должен попытаться к этой апачской перезаписи использования правила? Я thied это, но я думаю, что не могу получить доступ к такому параметру легко в правиле перезаписи.
Большое спасибо, Giuseppe
GWT имеет хорошую поддержку интернационализации. См. эту ссылку. Команда i18nCreator может помочь Вам настроить инфраструктуру интернационализации для подобного пути projectCreator, и applicationCreator настраивают приложение GWT.
Если у Вас есть статические строки (т.е. Недопустимая Запись!), который должен интернационализироваться, Вам не нужен никакой дополнительный флаг к команде i18nCreator для создания файлов свойств и инфраструктуры.
Если у Вас есть строки, которые должны принять параметры (т.е. Привет {0}), необходимо передать флаг-createMessages команде i18nCreator для создания файлов свойств и инфраструктуры.
Теперь Ваш модуль должен включать i18n модуль в Ваш MyApplication.gwt.xml:
<inherits name="com.google.gwt.i18n.I18N"/>
Определите интерфейс Java в том же пакете как Ваши файлы свойств, который расширяет Константы или передает и определяет методы (имя соответствует записям свойства), что вся возвращаемая строка.
MyConstants.properties содержит:
errorMessage=Invalid Entry!
MyConstants.java содержит:
import com.google.gwt.i18n.client.Constants;
public interface myConstants extends Constants {
String errorMessage();
}
Теперь получить доступ к этим интернационализировавшим Строкам от Вас приложение:
public class MyApplication implements EntryPoint {
private static final MyConstants constants = (MyConstants)GWT.create(MyConstants.class);
public void onModuleLoad() {
final Label errorMessage = new Label(constants.errorMessage);
}
}
GWT реализует интерфейс для Вас автоволшебно.
Можно получить сообщения похожим путем.
Надо надеяться, это может помочь Вам начать.
Если я не читаю документацию неправильно, я не думаю, что необходимо сделать что-либо.
Путем создания локали клиентским свойством стандартный процесс запуска в gwt.js выбирает соответствующую локализованную версию приложения, обеспечивая простоту использования (это легче, чем это могло бы звучать!), оптимизированная производительность и минимальный размер сценария.
Путем я считал его, пока Ваш модуль добавил весь выбор локали к нему, это должно быть автоматически?
У меня была та же проблема, что и у вас, но поскольку мне действительно нужно знать текущую локаль (я запрашиваю второй сервер для данных, которые я хочу локализовать), я нашел этот класс:
com.google.gwt.i18n.client.LocaleInfo # getCurrentLocale ()
. Это должно дать вам то, что GWT использует в настоящее время.