1

org.apache.wicket.extensions.yui.calendar.DatePicker の「Month」、「Year」、「Okay」、「Cancel」ラベルをローカライズする方法を知っている人はいますか?

API によると、localize(Map) メソッドをオーバーライドしてローカライズされた文字列を設定できますが、対応するプロパティの名前を見つけることができませんでした。

4

4 に答える 4

1

これによれば、DatePicker クラスの configure メソッドをオーバーライドして、ラベルをローカライズできます。

    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);
    }
}

このコード スニペットがお役に立てば幸いです。

于 2009-09-12T05:25:33.827 に答える
0

チケット 754は、ローカリゼーションのサポートを追加します。

導入されたパッチで、いくつかの手がかりを得ることができますか? それは参照します:

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

ラベル自体のローカライズに関しては、次のことを試すことができます。

于 2009-08-20T09:07:52.667 に答える
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)
    );
于 2013-05-23T16:18:50.893 に答える