Anyone who develops software for a global market will soon encounter these traps. This year, Chinese New Year fell on the twelfth of February. Most people know that in the USA this is written as 2/12/2021, that’s February not December, whereas other parts of the world write this as 12/2/2021. So, to avoid confusion, we need to know the culture in which the user is working.
My most memorable encounter was with a system which worked perfectly until it was deployed in Turkey. The customer complained that the system did not recognize Istanbul. I tried it and it worked for me, but still they insisted it was wrong. Eventually I tracked it down to a comparison between the city name stored in the database and what the user was entering. We logged the user's entry, and I tried the comparison… It didn't work. What could be going on here? Then I noticed what seemed to be a speck of dust on my computer screen, which I scratched, but it didn't go away! I had discovered the Turkish capital "I..." WITH A DOT ON TOP. In the Turkish language there are two capital I’s, one dotted and one not, and every Turk would know that Istanbul needs the one with the diacritic mark.
I have mentioned dates already, but countries write them in many different ways. For instance, 12/2/2021 in UK is written as 12.2.2021 in Europe... But not everywhere. For instance, in Czech Republic and Slovakia its written 12. 2. 2021 with extra spaces, but that’s not likely to confuse if you’re lazy and get it wrong. However, there can be a more serious difference. In Europe currency numbers are written with the decimal place denoted by comma and the thousands separated by dot. The reverse is true in the UK. So, 1,000.00 GBP and 1.000,00 EUR are the correct forms. But surely, you think, there can be no confusion with the thousand separators, because currencies are two decimal places? Wrong! In Bahrain 1,000.000 BHD is one thousand Bahraini Dinar. There are THREE decimal places because the BHD is so big. One BHD is more than 2 EURO and Bahrainis habitually use three decimal places. So, 1.000 is one thousand Euro and one Bahraini Dinar, conversely, 1,000 is one thousand BHD and 1 Euro. Now these are BIG mistakes to make.
Then there is written language. Our first attempt at translation was the "Bayan" which means "Declaration" in Arabic. Our system had been in use for two years before someone mentioned we had a wrong translation. We had "mother of importer" instead of "origin of import." "Why didn't you tell us?” “Because we thought it was funny, so we preferred to laugh at you instead."
Finally, I will mention the customer who complained that our system did not include the country "UK." In fact, the country is indeed United Kingdom, but the ISO two letter standard is "GB", so we have "GB" not "UK." This is confusing because Great Britain is made up of the three countries England, Scotland, and Wales, and does not include Northern Ireland, but the code "GB" is all three. The Republic of Ireland is, of course, a separate country (two letter code "IE"). In practice these terms are used loosely, and most customers will want to find, for example, Belfast in "Ireland,” when they mean, in fact, the Island of Ireland not its country which is "United Kingdom" coded as "GB."
So, if your system is to work across many cultures, you had better know the culture and requirements of the user is who is currently looking at the system and adapt accordingly. This is a "hygiene" factor. Customers will probably not be the least interested in any of this until they see it as being wrong, and then they do, it’s seen as a glaring mistake. So we must avoid it!