- From: Norbert Lindenberg ♻ <norbert.lindenberg@yahoo-inc.com>
- Date: Fri, 30 Apr 2010 11:03:19 -0700
- To: public-i18n-core@w3.org, public-device-apis@w3.org, Yoshito Umaoka <yoshito_umaoka@us.ibm.com>, Peter Edberg <pedberg@apple.com>, John Emmons <emmo@us.ibm.com>, Mark Davis ☕ <mark@macchiato.com>, Robin Berjon <robin@robineko.com>
- Cc: Norbert Lindenberg ♻ <norbert.lindenberg@yahoo-inc.com>
I just talked to Addison - since it seems very difficult to get all key people into a conference call, we'll abandon that plan for now and start a W3C wiki page instead where people can contribute asynchronously. Look forward to a URL some time next week. Sorry about the detour, and enjoy the weekend! Norbert On Apr 29, 2010, at 19:44 , Norbert Lindenberg ♻ wrote: > Thanks to all who doodled! > > First choice: The slot that got the highest number of votes is > 2010-05-04T15:00:00Z, but unfortunately that does not include Robin or > any other DAP WG member. Robin, any chance you can make this time > possible? > > Second choice: The best times that would include Robin are > 2010-05-03T14:00:00Z and 2010-05-04T14:00:00Z. So if Robin cannot make > the first choice possible, then let's use 2010-05-03T14:00:00Z. > > Robin, your call. > > Norbert > > > > On Apr 28, 2010, at 17:00 , Norbert Lindenberg ♻ wrote: > >> My first attempt hasn't seen enough response to lead to a meeting, so >> we have to try again. >> >> Can everybody who cares about calendar internationalization please >> go to >> http://doodle.com/vinifwmdfitwv66a >> *NOW* and fill in their availability? >> >> I'll announce the winning time in 24 hours. >> >> John, Yoshito, Peter - Mark suggested inviting you. >> >> Norbert >> >> >> >> On Apr 21, 2010, at 09:20 , Norbert Lindenberg ♻ wrote: >> >>> I have set up a doodle poll for a meeting on calendar >>> internationalization: >>> http://doodle.com/vinifwmdfitwv66a >>> >>> It seems you have to allow cookies for doodle at least when >>> creating a >>> poll - the first time I went through the exercise it lost all my >>> data >>> three quarters of the way, without any prior warning. >>> >>> Norbert >>> >>> >>> On Apr 14, 2010, at 06:26 , Robin Berjon wrote: >>> >>>> Hi Norbert, I18N, >>>> >>>> thank you all for the very valuable information you've provided us >>>> with. Clearly, there's work to be done! >>>> >>>> On Apr 14, 2010, at 08:59 , Norbert Lindenberg ♻ wrote: >>>>> The Internationalization Core WG has discussed your message, and >>>>> realized that you've hit on a real problem for which we're not >>>>> aware of an existing solution. >>>> >>>> We were afraid you'd say that :) >>>> >>>>> - Not all calendars are defined in a way that makes it possible to >>>>> convert individual time values to the Gregorian calendar. In the >>>>> Islamic calendar, for example, the first day of a month >>>>> traditionally depends on actual observation of the moon, so it >>>>> can't be predicted with certainty. Countries using this calendar >>>>> watch the moon separately, and some now rely on more predictable >>>>> rules, so the location of an event also comes into play. >>>>> >>>>> - Even where the mapping for a single time value follows >>>>> predictable rules, rules for a recurring event often cannot be >>>>> mapped to an equivalent rule in the Gregorian calendar, but >>>>> instead >>>>> would have to be represented as a (possibly infinitely long) >>>>> series >>>>> of time values. Take Chinese New Year, for example, a very >>>>> important holiday in east Asia - it occurs every year, and follows >>>>> rules that cannot be represented in the Gregorian calendar. It's >>>>> the same problem as with Easter and Easter-related holidays, which >>>>> follow different rules than the Gregorian calendar. >>>> >>>> This is just a thought off the top of my head, and it might be a >>>> very bad one, but I think that there's a subset of these dates that >>>> can be algorithmically mapped. It may be a tall order for us to >>>> require from all implementations that they support all of these >>>> algorithms, but it might be that we can work around that. To take >>>> your example with (Western) Easter, perhaps something along the >>>> lines of the following could work: >>>> >>>> // takes a date and returns true if it's Western Easter >>>> // NB: untested, ported from Perl with mostly search and replace >>>> function isWesternEaster (date) { >>>> var year = date.getFullYear(); >>>> var goldenNumber = year % 19; >>>> var quasiCentury = (year / 100).toFixed(); >>>> var epact = (quasiCentury - (quasiCentury/4).toFixed() - >>>> ((quasiCentury * 8 + 13) / 25).toFixed() + (goldenNumber * 19) + >>>> 15) >>>> % 30; >>>> var interval = epact - (epact/28).toFixed() * (1 - (29/(epact >>>> +1)).toFixed() * ((21 - goldenNumber)/11).toFixed()); >>>> var weekday = (year + (year/4).toFixed() + interval + 2 - >>>> quasiCentury + (quasiCentury/4).toFixed()) % 7; >>>> var offset = interval - weekday; >>>> var month = 3 + ((offset+40)/44).toFixed(); >>>> var day = offset + 28 - 31 * (month/4).toFixed(); >>>> return date.getMonth() == month && date.getDate() == day; >>>> } >>>> >>>> date.addReminder({ >>>> // regular reminder stuff (bells because it's France) >>>> description: "Go look for the eggs the bells have brought", >>>> // repeat rule is tested daily >>>> repeatRule: isWesternEaster, >>>> granularity: "daily", >>>> }); >>>> >>>> The idea here is that third party libraries could be developed for >>>> just about any calendar event from the more common like Easter >>>> above >>>> to the more exotic such as calculating St. Tib's day in the >>>> Discordian calendar. This is *potentially* attractive because it >>>> simplifies implementation and specification, while still making it >>>> possible for services to expose the full wealth of calendaring >>>> systems that we have. >>>> >>>> Now there are about a bazillion and a half issues with the above. >>>> There are security issues about the code being run in a different >>>> context, there's carrying the context around so that it can run, >>>> problems with whether it could access the network or not (e.g. to >>>> get up to date information, for instance about the start of >>>> Ramadan) >>>> and if so under what rules, not to mention how such reminders would >>>> go about being saved to existing file formats in order to be >>>> exchanged. >>>> >>>> So before we even think about this as an option, we would be >>>> interested in knowing whether you think it would be a (relatively) >>>> sane approach, and roughly how big a chunk of the problem it would >>>> solve. >>>> >>>>> The correct solution obviously would be to store time values as >>>>> field-based time in the relevant local calendar, along with an >>>>> identifier for the calendar. As Felix already mentioned, CLDR [1] >>>>> provides such identifiers for the calendars it supports - >>>>> obviously >>>>> a subset of the list you found on Wikipedia. However, this >>>>> solution >>>>> makes it impossible to process time information efficiently or to >>>>> compare time values across calendars. >>>> >>>> I see two potential problems with the CLDR (I'm not sure they're >>>> problems, but I want to ferret issues out). One is that the list >>>> seems surprisingly short. For instance, the first use case we >>>> received in this area concerned the Korean lunisolar calendar which >>>> I don't see in the list. It might be that it's equivalent to >>>> another >>>> in the list — that's not entirely clear. The other issue is that, >>>> as you no doubt know, for a WG a correct solution is one that gets >>>> implemented. If we need to define a separate interface for each >>>> (major) calendar and then provide the means to integrate all this >>>> information (if only so that it can be represented within a single >>>> UI) then we're in trouble :) Don't get me wrong, if it's the only >>>> way, then it's the way, but I would very much like if possible to >>>> find an option simpler than the exhaustive listing of calendaring >>>> systems. Further, given that if we don't ship a calendar API others >>>> will (likely with little or no I18N consideration whatsoever) if >>>> this is going to be a time-consuming piece of work I would like to >>>> find ways to orthogonalise it from "core" (for lack of a better >>>> word) parts of the API. It makes me cringe to hear "80/20" and >>>> "I18N" in the same sentence, but if you could help us find an >>>> architectural and incremental approach to this issue instead of an >>>> exhaustive take it would be extremely helpful. >>>> >>>> One thing that I'd like to know is how implementations actually >>>> handle this today. We've seen that for several calendars there is >>>> UI >>>> support, but we don't know if they exchange the information and if >>>> so how. Would someone with access to an iCal/Outlook with support >>>> for non-Gregorian calendars mind sending me an invite to a >>>> recurring >>>> event in that calendar (e.g. lunisolar) so that I can look at how >>>> it's stored? >>>> >>>>> Time zones have a similar problem in that their definition can >>>>> change (e.g. in their daylight savings rules) before a scheduled >>>>> event occurs [2]. In this case, some systems are storing the time >>>>> value as incremental time, but along with the time zone >>>>> identifiers >>>>> and the time zone offset assumed in calculating the incremental >>>>> time value. This allows to verify later on whether the offset >>>>> assumed is still correct, and adjust the stored incremental time >>>>> value if necessary. >>>> >>>> Yes, we've been thinking about this problem, notably the fact that >>>> when using a Javascript Date object the TZ information is lost. >>>> This >>>> is tracked by our ISSUE-81. >>>> >>>>> If you want to learn more about calendars, there's "Calendrical >>>>> Calculations" by Dershowitz and Reingold. >>>> >>>> Thanks for the pointer, I might just buy it. Shame there isn't a >>>> Kindle version. >>>> >>>> Apparently there's pretty good support for I18N calendars somewhere >>>> in Emacs, but I'm afraid to look. Volunteers welcome! >>>> >>>>> It may be a good idea to set up a joint teleconference to discuss >>>>> the issues in more detail. >>>> >>>> Yes, I think we'll need it. Should we try organising this with a >>>> Doodle or some such? >>>> >>>> -- >>>> Robin Berjon >>>> robineko — hired gun, higher standards >>>> http://robineko.com/ >>>> >>>> >>>> >>>> >>> >> >
Received on Friday, 30 April 2010 18:04:10 UTC