11:45:07) max: ok, there are two classes that are important (11:45:28) max: actually not even (11:45:42) max: if you look at test2/unit/static.T in okws1.0 (11:45:55) max: in the ::process function, there's a call to set_localizer (11:46:07) max: a localizer is an object that runs internal to the publishing system (11:46:24) max: when the publishing system is looking for a content page, it builds up a little search path (11:46:41) max: if you supply a localizer, it can add an additional file to the search path based on a language (11:47:45) max: a localizer is a pretty simple object (11:47:58) max: has one virtual method — localize() (11:48:21) max: i made a localizer that works based on suffixes and put that in okws (11:48:29) max: if you ask for index.html with LANG set to fr (11:48:34) max: it will look for index.fr.html (11:48:42) max: this isn't what we want for okcupid, but it's an example (11:49:17) max: so we need a localizer for okcupid — call it ok::localizer (11:49:25) max: that given a string of the form (11:49:31) max: /okcontent/splash.html (11:49:36) max: will return (11:49:44) max: /okcontent/lang/fr/splash.html (11:49:59) max: we should make one localizer per HTTP request (11:50:15) max: so when a request comes in, look up language preference (either from browser or from DB or from cookie) (11:50:25) max: and allocate a localizer with that prefernce built in (11:50:37) max: then set that localizer before the first call to publish