Logo

i18n Changes from the CPSCore

Last modified: 05/19/2006 08:02 AM
Revision: i18n-changes-from-CPSCore-3_18_0.txt 30312 2005-12-05 21:19:47Z dkuhlman

This document provides some explanation about changes to handle i18n from a CPSCore 3.18.0.

1   ProxyBase:

New methods:

  • getL10nTitles()``and ``getL10nDescriptions(): These methods return all available translation of the title or description into a dictionary. This is used by the portal_tree to make it i18n.

  • Languages(): return a list of locale abbreviation

  • Title() and Description(): If the proxy has an use_mcat attribute instead of return proxy.getContent.Title() it will return translation_service(proxy.getContent.Title()).

    This makes it possible to have structural folder like 'Favorite', 'Root of workspace', ... using the message catalog to i18n their Title and Description without the need to create a new document revision.

Intermediate Objects:

LanguageViewer:
This is called by the traversall on url like pathToObject/viewLanguage/fr. This will force getBestRevision to choose the requested language only during the request life. It is mainly used for indexing purpose.
LanguageSwitcher:
This is called by the traversall on url like pathToObject/switchLanguage/fr. This will force getBestRevision to choose the requested language. This choice is stored into session, so any further request to pathToObject will return the latest switchLanguage requested. It is used by the document language selector.

1.1   ProxyTool

getBestRevision(proxy, lang=None):
This method is called by any proxy.getContent() or getEditableContent It chooses which document revision/local to return in order. It tries to: (1) return the request lang locale if any, (2) return the locale set into the request by languageViewer, (3) return the locale set into session by languageSwitcher, (4) return Localizer selected locale, (5) return portal default locale, (6) return the first available locale.

1.2   PatchCatalogTool

IndexableObjectWrapper:
This class is redefined; this makes things easier. There is an optional parameter is_default_proxy; this enables for example creation of some index only for the default locale proxy. This will be useful when replacing portal_tree by catalog_navigation.
catalog_object():
If the object has only one locale, it behaves exactly like a standard CMF catalog. If the object has more than one locale (proxy.Languages()>1), then we create one entry by language with a path like: objectPath/viewLanguage/fr or objectPath/viewLanguage/en
uncatalog_object
If the object has more than one locale, it takes care of deleting all catalog entries (objectPath/viewLanguage/*). Otherwise works like CMF.

[ more info CPSDefault/doc/i18n-changes-from-CPSDefault-3_29_0.txt]

This site is powered by CPS, which includes CPSSkins. CPS and its design are Copyright © 2002-2006 Nuxeo SAS.
CPSSkins is Copyright © 2003-2006 Jean-Marc Orliaguet.
powered_by_nuxeo.png