IT Internationalisation (i18n)

Posted by André Schappo on 29 June 2014
by André Schappo

I consider it crucial that Computing students are taught the skills required to build Apps/Websites for the World and not just Britain. They should be able to code for the World and not just for Britain. The Apps/Websites they build should be World Ready and not just Britain Ready.

My findings though indicate that British students are only taught how to build Britain Ready Apps/Websites. When they are taught, for example, Regular Expressions they are only taught how to process ASCII text. What of text processing of other Scripts such as Thai and Chinese?

If we are to produce Computing students with globally applicable IT skills we need to introduce IT Internationalisation education into their classes/courses. This is important for our home students and also our international students thereby ensuring they are taught relevant skills.

So how can this be achieved?

Continuous Enlightenment: Right from the start IT Internationalisation (i18n) should be incorporated into teaching to make students aware of the possibilities and potential. Let me again use Regular Expressions as an example.

[A-Z]+   will match with one or more ASCII characters in the range A thru Z. A standard method for teaching Regular Expressions.

Now lets enlighten and broaden the horizons of the students with

[가-힣]+  will match with one or more Korean Hangul characters in the range 가 thru 힣. So, without changing the syntax of the Regular Expression we are now thinking about Coding for the World.

Simple additions can be made to ASCII dominated teaching material to add World relevant examples thus encouraging students to think globally.

Specialist Modules: I already teach an IT i18n module which I have been teaching for several years. It is a final year optional module though it may well be better placed as a 2nd year module. I cover the basics of IT i18n. The topics I cover includes:-

① Internationalisation & Localisation of Apps/Websites

② Character Sets, including Unicode

③ Encoding of Unicode

④ Keyboard Mappings (Arabic, Latin, Russian)

⑤ Input Methods (Chinese, Japanese, Korean)

⑥ Fonts, with emphasis on relationship to Unicode

⑦ Constructing Culturally Adaptive Websites

⑧ Usage of Language Tags

⑨ Internationalised Domain Names

⑩ Setting up a Database for multiple Languages

⑪ Characteristics of Scripts (Chinese, Japanese, Korean, Arabic, Latin, Russian)

I do not expect the students to know any language other than English but one does need to know the characteristics of a Script in order to support it. Chinese, for example, does use the space character as a word boundary so one requires parsing of Chinese text in order to determine word boundaries.

By incorporating IT i18n into teaching of Computing one is adding not only crucial global IT skills but also extra depth, richness and interest. If we want Computing teaching in Britain to be World Class then we need to teach our students how to Code for the World.

I will finish today with another simple example of what can realised once one has awareness of IT i18n. An English sentence ends in 2 characters, a full stop and a space. A Chinese sentence ends with a single character, the Ideographic full stop which does have white space but not a space character. This property can be used to save characters in microblogs. You can find many examples of me mixing English sentences and Chinese punctuation in my twitter

André Schappo


1 Comment

by Federico Leon

There is a really nice tool to manage i18n translations in any programming language you want. Basically you define a base language and every text written in that language will be treated as a key for translation. Once you've finished your development process you upload all your keys to this tool and from it you can select all the languages you want to translate to and you can translate all the texts inside this tool. Once you've finished you need to download all the '.po' files that contains all keys already translated. As a final step you upload these files to your app's 18n folder and that's it. You have your app translated to any language you want and don't need to use any "keys" that complicate the development process since people don't know what it key means until they find it.
I attach on of these tools: as an example.

Hope this will help you in your classes. Its a nice way to make internationalization easier, faster and cleaner.

Sincerely yours,
Federico León

Post a comment