2009-08-20 3 views
1

Кто-нибудь знает, как локализовать метки «Месяц», «Год», «Хорошо» и «Отменить» для org.apache.wicket. extensions.yui.calendar.DatePicker?Локализация меток в org.apache.wicket.extensions.yui.calendar.DatePicker

В соответствии с API вы можете переопределить метод локализации (Карта) для настройки локализованных строк, но мне не удалось выяснить, какие имена соответствуют соответствующим свойствам.

+0

Нет прозрачный раствор, добавлен список ссылок для вас, чтобы изучить ... – VonC

+0

Глядя через источник DatePicker кажется, как, по крайней мере месяц/год этикетки привязаны к настройке локали Component. Кроме того, я не уверен, откуда берутся другие лейблы. – Esko

ответ

0

ticket 754 добавить поддержку для localization.

Может быть, patch introduced then может дать вам некоторые подсказки? Он ссылается на:

src/main/java/org/apache/wicket/extensions/yui/calendar/locale/DatePicker_de.properties 

с:

DATE_FIELD_DELIMITER=x 
MDY_DAY_POSITION=1 
MDY_MONTH_POSITION=2 
MDY_YEAR_POSITION=3 
MD_DAY_POSITION=1 
MD_MONTH_POSITION=2 

MONTHS_SHORT=Jan,Feb,M\u00E4r,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez 

MONTHS_LONG=Januar,Februar,M\u00E4rz,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember 
WEEKDAYS_1CHAR=S,M,D,M,D,F,S 
WEEKDAYS_SHORT=So,Mo,Di,Mi,Do,Fr,Sa 
WEEKDAYS_MEDIUM=Son,Mon,Die,Mit,Don,Fre,Sam 
WEEKDAYS_LONG=Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag 

Что касается локализации меток сам, может быть, вы могли бы попробовать:

+0

Это позволяет локализовать фактические месяцы и дни недели. Я ищу локализацию для ярлыков «Месяц», «Год», «Хорошо» и «Отмена» (последние 2 являются ярлыками кнопок). – tehvan

+0

@tehvan: «Я ищу локализацию для ярлыков» ... которые вы уже сказали мне в своем предыдущем комментарии! Извини за это. Все еще ищу правильный ответ. – VonC

0

Я думаю, вы говорите о ярлыках в навигаторе календаря. Это может быть полезно example.

1

По this вы можете локализовать метки пути переопределения метода конфигурационного класса DatePicker:

public class DatePicker extends org.apache.wicket.extensions.yui.calendar.DatePicker { 

    @Override 
    protected void configure(Map<String, Object> widgetProperties) { 
     super.configure(widgetProperties); 

     /* 
     * var navConfig = { 
     * strings: { 
     * month:"Calendar Month", 
     * year:"Calendar Year", 
     * submit: "Submit", 
     * cancel: "Cancel", 
     * invalidYear: "Please enter a valid year" 
     * }, 
     * monthFormat: YAHOO.widget.Calendar.SHORT, 
     * initialFocus: "month" 
     * } 
     */ 

     Map<String, Object> strings = new HashMap<String, Object>(); 
     strings.put("month", "Месяц"); 
     strings.put("year", "Год"); 
     strings.put("submit", "Ok"); // put label for 'Okay' button 
     strings.put("cancel", "Отмена"); // put label for 'Cancel' button 
     strings.put("invalidYear", "Введите корректный год"); 

     Map<String, Object> props = new HashMap<String, Object>(); 
     props.put("strings", strings); // pass localization related parameters 
     props.put("monthFormat", "YAHOO.widget.Calendar.SHORT"); 
     props.put("initialFocus", "year"); 

     widgetProperties.put("navigator", props); 
    } 
} 

Надеется, что вы найдете этот фрагмент кода полезным.

0

Я думаю, что это решение хорошо:

protected static final String[] NAVIGATOR_LOCALIZATION_KEYS = { 
    "month", "year", "submit", "cancel", "invalidYear", 
}; 

In overridden method u should write: 

super.configure(widgetProperties, response, initVariables); 
    Map<String, String> strings = MapBuilder.newHashMap(); 
    for (String key : NAVIGATOR_LOCALIZATION_KEYS) { 
     strings.put(key, LocalizationUtils.getString(key)); 
    } 
    widgetProperties.put(
     "navigator", Collections.singletonMap("strings", strings) 
    );