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).
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:
- 3-letter codes, following ISO639-2 and/or ISO639-3, for registered languages not covered in the 2-letter codes registered for ISO639-1 (e.g., "grc" for Ancient Greek).
- lang codes plus script subtags, following ISO15924 and assembled in accordance with http://www.inter-locale.com/ID/draft-ietf-ltru-registry-14.html (e.g., "grc-Latn" for ancient Greek transliterated with Roman characters)
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?