Proposal
Registry should switch from custom internationalization to a language or package based system.
Options
- Maintain the current custom implementation.
- Switch to the CakePHP mechanism.
- Use PHP native gettext.
- Use PHP native Internationalization libraries.
Evaluation Criteria
- 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?)
- 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.
- The selected internationalization system must support plugins.
- The selected internationalization system must support dynamic overrides (ie: those stored in a database to localize specific phrases) at a CO level.
- The selected internationalization system must support enumerations, though how enumerations will be handled in v4.0.0 is not yet determined.
- The selected internationalization system should support the ICU standard.
Benefits
- Elimination of custom code.
- "Industry standard" translation approach will be familiar to more people.
Drawbacks
- All text localizations may need to be re-implemented (eg: from
_txt()
to__()
).
Conclusion
TBD
XXX