The answer is C) some other method, which I’ll try to describe, in easily digestible bullet points and as concisely as I can.
[*] System Settings defines configuration defaults, including default cultural settings (languages, date/currency formatting, etc.)
[*] Contexts can then override system settings for distinct domains, subdomains, site subsections, localized sections, or even programmatically; use this to divide the site into manageable pieces, or to customize based on other contextual data.
[*] Resources (aka documents or pages) can aggregate content Elements in just about any way imaginable.
[*] Elements have source content and produce content for output or consumption by other Elements, and can point to specific source Content based on Context and/or Culture.
[*] Content is unique from Elements and an Element can point to various Content records based on Culture, Context, or directly via the MODx API.
[*] Revisions to Content are stored incrementally only; the baseline Revision is the only full copy.
[*] Rollback of Revisions consists of reconstructing a specific Revision by patching from the baseline with the relevant incremental diffs.
[*] Archiving of Revisions will be possible by exporting up to a specific Revision, and resetting the baseline at the next Revision. Where and how it is exported will be completely independent and configurable.
Using this structure I believe we can support l10n (localization) and i18n (internationalization) efforts easily in MODx, as well as achieve just about any other kind of contextual customizations/variations of content.
Also worth mentioning regarding internationalization, I’m working on something I call a Lexicon, which will be like a dictionary of common words/phrases that can be used for anything from internationalizing a page similarly to the way $_lang[’blah’] is used now, to auto-linking, to glossary generation, to just about any other kind of lexical analysis.
BTW, just for reference from
http://en.wikipedia.org/wiki/Internationalization_and_localization ...
The distinction between internationalization and localization is subtle but important. Internationalization is the adaptation of products for potential use virtually everywhere, while localization is the addition of special features for use in a specific locale. The processes are complementary, and must be combined to lead to the objective of a system that works globally.