So, in the way for internationalisation (gee, I spelt it entirely this time) there’s another thing to take into account, that I haven’t before. A lot of software is not written by native English speakers.
Why that is important? Well it’s quite normal for people who don’t speak English, although if they can read it, to commit errors when they write messages for a program, and of course that’s someone one might not want.
So, what’s my solution? The first common solution is to fix the strings theirself, improving them in the “C” locale, that is the literals as they are hardcoded into the program. But this has a quite big downside: all the po translations will be invalidated for that string, as the identifier changed.
Yes of course this has to be corrected when the error is so that you don’t understand what the problem is saying, but it’s not a good idea to break the translations to improve the general spelling and grammar of the messages, if they are understandable anyway.
So, how can this be fixed without breaking stuff, you’re asking yourself? (Or at least I hope you’re sensible to i18n problems enough to ask that to yourself 🙂 )
There’s one simple way to improve the English spelling and grammar without breaking other translations, and is to provide a translation for the “en” language. An en.po that will fix the spelling and grammar so that they make more sense for the native English speakers, leaving the C locale to be just want can be understood. Under this idea, having nls enabled for English users has quite a lot of sense.
I’d like to see this trick used so that i18n can improve without being rejected every now and then 🙂 So if you’re a native English speaker, submit translations anyway! That will help all the rest of native English speakers. Of course one has to pay attention: a British translation would be en_GB, an American English translation would be en_US, while an International English would be just en.
If anyone wants to submit International, British or American English translations for unieject, the pot file is here.