Languages and Scripts for Content

What Plone Does

Plone supports internationalization of its interface and content. Thus, Plone will present language-specific content to a user (if available) on the basis of that user's browser locale and other optional settings. Control over Plone's language behavior is activated by installing the PloneLanguageTool product, which ships with the stock Plone distribution.

PloneLanguageTool makes available a number of languages, designated by the widely-recognized, two-letter standard codes (the so-called "Alpha-2 Codes" of ISO 639-1). Moreover, it also makes available out-of-the-box combinations of these codes with other standard codes for countries and localities (in accordance with ISO 3166), thereby permitting differentiation between, e.g., British and U.S. English (en-GB vs. en-US).

PloneLanguageTool stores these code settings as a series of Python dictionaries in the file availablelanguages.py.

What We Need

Because we will be managing content using a number of ancient languages and scripts, we need more control than this. Specifically, we want to make use of additional language/script codes for content (not portal translations, just items and fields), for example:

See further: LanguagesAndScriptsSupported for the list of code combinations Pleiades uses.

How We'll Do It

Codes can be added simply by entering them in the appropriate dictionaries in Plone Language Tool's availablelanguages.py. I double-checked this approach with developers subscribed to the Plone Internationalization Mailing List, and got the following positive reply from Alexander Limi (I asked: is this best practice and are there any "gotchas"?):

Just that you need to be careful when you upgrade so your file isn't overwritten. No browsers support these language codes, so you're on your own there. :)

We need to settle on how to do configurations of this type. Install-time scripting?