Monday, November 08, 2010 at 12:04 AM.

system.verbs.builtins.mainResponder.localization.getCalendarLocalization

on getCalendarLocalization (adrFirstDow, adrMonthNamesList, adrAbbrevDowList, pta=nil) {
	<<4/18/00; 2:00:36 PM by JES
		<<Gets localized string lists of month-names and abbreviated day-names, and the day to start calendar rows with.
		<<adrFirstDow
			<<address of a number to be assigned the first day of week
		<<adrMonthNamesList
			<<address to assign to the list of month-names
		<<adrAbbrevDowList
			<<address to assign to the list of abbreviated day of week names
		<<Changes:
			<<06/05/01; 2:14:38 PM by PBS
				<<Use direct assignment rather than list addition for a performance boost.
			<<9/26/01; 6:36:28 PM by PBS
				<<Use caching for performance boost.
	
	if pta == nil {
		pta = html.getPageTableAddress ()};
	
	local (langTableAdr = mainResponder.localization.getLanguageTableAddress (pta));
	local (langName = nameOf (langTableAdr^));
	
	bundle { //PBS 09/26/01: try to get from cache
		if defined (temp.mainResponder.localizationCache.[langName].calendar) {
			local (adrTable = @temp.mainResponder.localizationCache.[langName].calendar);
			adrFirstDow^ = adrTable^.firstDow;
			adrMonthNamesList^ = adrTable^.monthNamesList;
			adrAbbrevDowList^ = adrTable^.AbbrevDowList;
			return (true)}};
	
	try { // if we can't get localized strings, return false
		adrFirstDow^ = number (mainResponder.getString ("date.firstDayOfWeek", pta: pta));
		adrMonthNamesList^ = {};
		adrAbbrevDowList^ = {};
		
		local (i);
		for i = 1 to 12 { // get month names
			<<adrMonthNamesList^ = adrMonthNamesList^ + mainResponder.getString ("date.monthNames." + string.padWithZeros (i, 2), pta: pta)
			adrMonthNamesList^ [i] = mainResponder.getString ("date.monthNames." + string.padWithZeros (i, 2), pta: pta)}; //PBS 06/05/01: direct assignment is faster
		for i = 1 to 7 { // get abbrev DOW names
			<<adrAbbrevDowList^ = adrAbbrevDowList^ + mainResponder.getString ("date.abbrevDayOfWeekNames." + i, pta: pta)
			adrAbbrevDowList^ [i] = mainResponder.getString ("date.abbrevDayOfWeekNames." + i, pta: pta)}; //PBS 06/05/01: direct assignment is faster
		
		bundle { //09/26/01: cache
			if defined (temp.mainResponder.localizationCache.[langName]) {
				local (adrTable = @temp.mainResponder.localizationCache.[langName].calendar);
				new (tableType, adrTable);
				adrTable^.firstDow = adrFirstDow^;
				adrTable^.monthNamesList = adrMonthNamesList^;
				adrTable^.AbbrevDowList = adrAbbrevDowList^}};
		
		return (true)}
	else {
		return (false)}}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.