Proposal

Registry should switch from custom internationalization to a language or package based system.

Options

  1. Maintain the current custom implementation.
  2. Switch to the CakePHP mechanism.
  3. Use PHP native gettext.
  4. Use PHP native Internationalization libraries.

Evaluation Criteria

  1. The selected internationalization system must support language keys (eg: "fd.title") rather than default to untranslated English strings (eg: "title"). This is to avoid context and disambiguation problems. (Is "read" a command or a status?)
  2. The selected internationalization system must support partial translations (ie: merging together an incomplete translation with a default or parent translation) at a CO or platform level.
  3. The selected internationalization system must support plugins.
  4. The selected internationalization system must support dynamic overrides (ie: those stored in a database to localize specific phrases) at a CO level.
  5. The selected internationalization system must support enumerations, though how enumerations will be handled in v4.0.0 is not yet determined.
  6. The selected internationalization system should support the ICU standard.

Benefits

  1. Elimination of custom code.
  2. "Industry standard" translation approach will be familiar to more people.

Drawbacks

  1. All text localizations may need to be re-implemented (eg: from _txt() to __()).

Conclusion

(question) TBD

XXX