Another point to remember is supporting right-to-left languages such as Arabic.
Ideally this should be as simple (in html) as adding a dir="rtl"
attribute to the <body>
tag of the page. However if not accounted for up front it can create a lot of additional work, as demonstrated by the 600 additional lines of css required to make rtl languages work in the launcher.
Compare a naive rtl interface vs an aware one (and here’s how it looks after the naive one is made aware):
So the cumulative list of considerations so far is:
- interpolation, eg ‘Have a %s day’
- plurals
- gender variations
- supplying context, eg close: is this ‘stop the program’ or is this ‘within proximity’?
- portability
- between translation libraries, ie separate concerns between phrases vs translation logic
- between platforms, eg browser vs electron vs other languages etc
- Date and numbers formats
- Currency
- Right-To-Left languages