Forum OpenACS Q&A: Re: Notes from Internationalization Discussion at Heidelberg 2004 .LRN conferenc

I have been pondering and have a simpler implementation, I hope.  The goal is to capitalize on our strength, the excellent localization UI, and not spend time on wheel re-invention:

1) keys can be designated "pluralizable".  This can be done in the
  admin UI for the English version (similar to description) and is
  stored in the catalog files.

2) When a translator accesses a pluralizable key, they see the
appropriate number of versions for their locale.  ie, a German
translator will see two versions, a plural and a singular; a Chinese
translator only one version; a Polish translator, three versions:
singular, plural, and genitive (for 2-4).  (This is determined by
calling a function from gettext or equivalent program.)

3) Pluralized keys are accessed via a new option for lang::message::lookup, "-number".  Pluralized localizations must happen in TCL, not ADP. The syntax is [_ keyname -num x], where -num is an optional
  parameter to the localize function.  Locale and other optional
  parameters remain optional.  -num defaults to the plural form.
  This function should call gettext or whatever we end up using and
  send in the number, the locale, and all available forms of the
  key.  These forms are also stored in the catalog files.

4) if the pluralizer localizer calls for a form which is not
  localized, it should then fall back through the locales using the
  existing scheme.  Ie, if it is pluralizing/localizing foo for
  de_CH (Swiss German), and only the singular form of foo is
  localized to de_DE, it should succeed fully for n=1; for n=2 it
  should fall back to German German if that is the default locale for
  de and is available in plural; if not, it should fall back to the
  English plural.

One other issue is that we now have keys such as acs-kernel.common_open.  Should we replace this with common_open_adj and common_open_verb?  If we do, I think we should drop the naked root form and have only the two specific forms.