Как я могу получить все шаблоны формата даты / времени в GWT для разных локалей? - PullRequest
8 голосов
/ 08 июня 2011

Я пытаюсь получить весь шаблон формата даты / времени в GWT, используя DateTimeFormat.PredefinedFormat , чтобы получить весь шаблон текущей локали. но как я могу получить весь шаблон для другой локали.

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Я нашел способ, а не общий способ, который я хочу, но в этом случае он работает.Возможно, есть кто-то лучшее решение.

   private static Date testDateFormates( String dateText ) {

        ArrayList<String> locales = new ArrayList<String>();

        DateTimeFormatInfo formatDE = new DateTimeFormatInfoImpl_de();
        DateTimeFormatInfo formatEN = new DateTimeFormatInfoImpl_en();
        DateTimeFormatInfo formatFR = new DateTimeFormatInfoImpl_fr();
        DateTimeFormatInfo formatES = new DateTimeFormatInfoImpl_es();
        DateTimeFormatInfo formatZH = new DateTimeFormatInfoImpl_zh();
        DateTimeFormatInfo formatRU = new DateTimeFormatInfoImpl_ru();

        addToList( locales, LocaleInfo.getCurrentLocale().getDateTimeFormatInfo() );
        addToList( locales, formatDE );
        addToList( locales, formatEN );
        addToList( locales, formatFR );
        addToList( locales, formatES );
        addToList( locales, formatZH );
        addToList( locales, formatRU );

        .
        .
        .  
    }

    private static void addToList( ArrayList<String> patterns, DateTimeFormatInfo format ) {
        patterns.add( format.dateFormat() );
        patterns.add( format.dateFormatFull() );
        patterns.add( format.dateFormatLong() );
        patterns.add( format.dateFormatMedium() );
        patterns.add( format.dateFormatShort() );
    }
1 голос
/ 09 июня 2011

Я не думаю, что вы можете сделать это. При создании приложения GWT-Compiler создает несколько версий приложения для разных локалей. Одна конкретная версия затем загружается браузером, поэтому другие локали не доступны во время выполнения. Прочтите об отложенной привязке, если вы хотите узнать больше: http://code.google.com/webtoolkit/doc/latest/DevGuideCodingBasicsDeferred.html

Однако есть опция для принудительной установки определенной локали. Это может быть полезно, если вы поддерживаете только одну локаль, или ее можно использовать для тестирования. Добавьте следующие строки в XML-файл вашего модуля:

<inherits name="com.google.gwt.i18n.I18N"/>
<extend-property name="locale" values="en_US"/>
<set-property name="locale" value="en_US"/>
...