2009-08-20 6 views
1

Kann jemand die "Monat", "Jahr", "Okay" und "Abbrechen" Etiketten der org.apache.wicket lokalisieren. extensions.yui.calendar.DatePicker?Lokalisierung von Labels in org.apache.wicket.extensions.yui.calendar.DatePicker

Gemäß der API können Sie die localize (Map) -Methode überschreiben, um lokalisierte Strings einzurichten, aber ich konnte nicht herausfinden, wie die Namen der entsprechenden Eigenschaften lauten.

+0

Keine klare Lösung, nur eine Liste von Links für Sie hinzugefügt zu erkunden ... – VonC

+0

Blick durch die Quelle von Datepicker es wie mindestens Monat/Jahr Etikett scheint sind an die Gebietsschemaeinstellung von Component gebunden. Darüber hinaus bin ich mir nicht sicher, woher die anderen Labels kommen. – Esko

Antwort

0

Die ticket 754 Unterstützung für localization hinzufügen.

Kann die patch introduced then Ihnen einige Hinweise geben? Es verweist:

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

mit:

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 

Im Hinblick auf die Lokalisierung der Etiketten selbst, können Sie versuchen könnte:

+0

Dies ermöglicht die Lokalisierung der tatsächlichen Monate und Wochentage. Was ich suche, ist die Lokalisierung für die Labels "Monat", "Jahr", "Okay" und "Abbrechen" (die letzten 2 sind Schaltflächenbeschriftungen). – tehvan

+0

@tehvan: "Was ich suche, ist die Lokalisierung für die Labels" ... was du mir bereits in deinem letzten Kommentar gesagt hast! Das tut mir leid. Immer noch auf der Suche nach der richtigen Antwort. – VonC

0

Ich denke, Sie sprechen über die Etiketten auf dem Kalender-Navigator. Diese example könnte hilfreich sein.

1

Nach this können Sie die Etiketten lokalisieren, indem die configure-Methode der Datepicker Klasse überschreibt:

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

Hoffen, dass Sie diesen Code-Schnipsel nützlich finden.

0

Ich denke, diese Lösung ist schön:

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