|
|
|
|
|
by contingencies
4780 days ago
|
|
Whilst the key/value approach is solid, the 'industry standard' .po (GNU gettext / https://en.wikipedia.org/wiki/Gettext) format supports more features, like complex plural and ordinal/cardinal number support that is a requirement in some languages. In addition, some of the biggest issues with internationalization in my experience (~exclusively i18n projects for 10+ years) are generally missing/broken support in certain components (great reasons to contribute resources upstream for open source projects!), managing translations over time, cultural issues, right-to-left, differing program-level logic (eg. maximum SMS message length variations based upon character set requirements), differing seasons/days of operation/holidays. Calendars are of course a pain (though a solved one), as are timezones - for which a truly synchronized, global approach is frustratingly hard to deploy at the best of times. |
|
The format does have some pretty major drawbacks too, like the msgid can become "fuzzy" which leads to a differing set of issues related to the unique keying between translations.
It also tends to lead to developers English (C locale if you like) being selected as the default language and it turns out developers like myself are sloppy and sometimes produce barely parsable messages.
Your remaining points are really valuable to someone inexperience in the field, like myself, so thanks for pointing those out.
It is interesting you call out cultural issues, did you have any specific examples?