YUI Calendar - Localization: Germany (YUI Library)

# YUI Calendar: Localization: Germany

# Setting up the Calendar

Calendar provides easy configuration properties that can be used to localize the Calendar's various data labels to be used in international locales. There are several properties that are used to change localization settings:

- LOCALE_MONTHS - The setting that determines which length of month labels should be used. Possible values are "short" and "long".
- LOCALE_WEEKDAYS - The setting that determines which length of weekday labels should be used. Possible values are "1char", "short", "medium", and "long".
- MONTHS_SHORT - The short month labels for the current locale. Default: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
- MONTHS_LONG - The long month labels for the current locale. Default: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
- WEEKDAYS_1CHAR - The 1-character weekday labels for the current locale. Default: ["S", "M", "T", "W", "T", "F", "S"]
- WEEKDAYS_SHORT - The short weekday labels for the current locale. Default: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]
- WEEKDAYS_MEDIUM - The medium weekday labels for the current locale. Default: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
- WEEKDAYS_LONG - The long weekday labels for the current locale. Default: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]

In addition, the Calendar provides special configuration properties for determining how incoming dates and date ranges should be formatted. By default, the date format for input to the Calendar is mm/dd/yyyy. Ranges are separated by a dash ("-") and lists of dates are delimited using a comma (","). Using these properties, the initial formatting of date can be easily modified:

- DATE_DELIMITER - The value used to delimit individual dates in a date string passed to various Calendar functions. Default: ","
- DATE_FIELD_DELIMITER - The value used to delimit date fields in a date string passed to various Calendar functions. Default: "/"
- DATE_RANGE_DELIMITER - The value used to delimit date ranges in a date string passed to various Calendar functions. Default: "-"
- MDY_MONTH_POSITION - The position of the month in a month/day/year date string. Default: 1
- MDY_DAY_POSITION - The position of the day in a month/day/year date string. Default: 2
- MDY_YEAR_POSITION - The position of the year in a month/day/year date string. Default: 3
- MD_MONTH_POSITION - The position of the month in a month/day date string. Default: 1
- MD_DAY_POSITION - The position of the day in a month/day date string. Default: 2
- MY_MONTH_POSITION - The position of the month in a month/year date string. Default: 1
- MY_YEAR_POSITION - The position of the year in a month/year date string. Default: 2

In our tutorial, we will create a German Calendar that is set up both to accept dates in the standard German format (dd.mm.yyyy) and present the labels in German. Note that all of our date label values will contain special characters in Unicode notation. Also, we will present the weekday labels in the "medium" format, which will amount to 3 characters in this example.

YAHOO.example.calendar.cal1 = new YAHOO.widget.Calendar("cal1","cal1Container", { LOCALE_WEEKDAYS:"medium", START_WEEKDAY: 1, MULTI_SELECT: true } ); // Correct formats for Germany: dd.mm.yyyy, dd.mm, mm.yyyy YAHOO.example.calendar.cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "."); YAHOO.example.calendar.cal1.cfg.setProperty("MDY_DAY_POSITION", 1); YAHOO.example.calendar.cal1.cfg.setProperty("MDY_MONTH_POSITION", 2); YAHOO.example.calendar.cal1.cfg.setProperty("MDY_YEAR_POSITION", 3); YAHOO.example.calendar.cal1.cfg.setProperty("MD_DAY_POSITION", 1); YAHOO.example.calendar.cal1.cfg.setProperty("MD_MONTH_POSITION", 2); // Date labels for German locale YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_SHORT", ["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]); YAHOO.example.calendar.cal1.cfg.setProperty("MONTHS_LONG", ["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]); YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_1CHAR", ["S", "M", "D", "M", "D", "F", "S"]); YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_SHORT", ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]); YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]); YAHOO.example.calendar.cal1.cfg.setProperty("WEEKDAYS_LONG", ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);

Next, we can set some selected dates using our newly configured date format, and render the Calendar:

YAHOO.example.calendar.cal1.select("1.10.2006-8.10.2006"); YAHOO.example.calendar.cal1.render();
Continue to Functional Example >