Forum OpenACS Development: Re: i18n of content repository content

Collapse
Posted by Don Baccus on
I don't like the idea of storing the different translations in one item's set of content revisions for several reasons:

  • Malte's suggestion is a big change to the existing datamodel. Lots of code, including custom user code, would need to change. Lots of upgrade scripts written.

  • People already claim the CR's too complex. This would make it more complex, adding fuel to their argument.

  • I still want to investigate "non-versionable" content-items (item still linked to revision via live_revision and latest_revisions, but sharing the same acs_object row rather than having two objects - the default would be today's versional content item, so no existing client code would be broken). This would give us "lighter weight" content types for applications that don't need versioning, adding weight to the arguments of those of us who lobby for more usage of the CR.

  • We should remember that the vast majority of sites are monolingual, not multilingual. Trade-offs, when necessary, shouldn't make the monolingual case more complex unless it is absolutely impossible to avoid because far more people are affected by this than the multilingual case.
Collapse
Posted by Malte Sussdorff on
  • I still want to investigate "non-versionable" content-items .

    If you think about non-versionable content-items, why should we still store information about the item in cr_revisions? If we do it for API's sake, then we just make the API smarter....

  • We should remember that the vast majority of sites are monolingual, not multilingual

    This is the primary reason behind my approach of overlayering translation (have a default version that is "overlayered" by a locale specific translation). I agree that your master item approach is best in achieving this.

  • Malte's suggestion is a big change to the existing datamodel

    I agree that idea 1) is a big change, but I don't see how the move of nls_language to cr_items is a big change, especially taking into account that is not used anywhere in the first place (if my knowledge is accurate). Otherwise I don't think the upgrade would be hell.
    My main thinking here is: Only keep information in cr_revisions that is bound to change or has to be displayed to the user.