有誰知道如何本地化org.apache.wicket的「Month」,「Year」,「Okay」和「Cancel」標籤。 extensions.yui.calendar.DatePicker?本地化org.apache.wicket.extensions.yui.calendar.DatePicker中的標籤
根據API,您可以重寫localize(Map)方法來設置本地化的字符串,但是我找不到相應屬性的名稱。
有誰知道如何本地化org.apache.wicket的「Month」,「Year」,「Okay」和「Cancel」標籤。 extensions.yui.calendar.DatePicker?本地化org.apache.wicket.extensions.yui.calendar.DatePicker中的標籤
根據API,您可以重寫localize(Map)方法來設置本地化的字符串,但是我找不到相應屬性的名稱。
該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
關於標籤本身的定位,可能是你可以嘗試:
我想你是在談論日曆導航器上的標籤。這example可能會有所幫助。
根據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);
}
}
希望你會發現這個代碼片斷非常有用。
我認爲這個解決方案是好的:
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)
);
沒有明確的解決方案,只需加入你去探索的鏈接列表... – VonC 2009-08-20 11:10:54
通過的DatePicker的源好像至少月/年的標籤找與組件的區域設置綁定。除此之外,我不確定其他標籤的來源。 – Esko 2009-08-21 07:33:52