Developing software for the world
Here at PaperCut we develop software that’s used in every region of the world. Most of our customers are in USA, Canada, UK, Australia, Brazil and China. However there are thousands of customers in more exotic locations. We have customers located throughout the depths of Africa, the middle east, the channel islands, and even a small tropical island.
Developing software for the world represents unique challenges. The most obvious challenge is ensuring that every facet of the application is translatable. PaperCut is already translated into over 15 languages which shows that we’ve done this bit right. You also need to make sure that you are 100% Unicode aware so that you can handle all characters, like Chinese, Japanese, Korean, Russian, etc. Again, PaperCut handles all this with ease.
But occasionally we encounter a problem or unexpected behaviour that only affects users in a particular region in the world. A few weeks ago we had one of these problems. In this case the user was reporting a problem where they were unable to run any PaperCut reports. We obtained debug logs that showed the error details, but even with this information we could not explain the problem. In the end it was the customer that helped find the problem. They reported that if they changed their “language” to “English” the reports worked, and if they changed the locale to “Turkish” the reports failed. Aha!! With that information we reproduced the problem.
I won’t go into all the gory technical details, but it turns out that the problem was that in Turkish the letter “i” when converted to uppercase becomes “İ” (unicode character 0x0130) which is an “I” with a dot above it. Some of our code has assumed that if you uppercased “i” it would become “I”, and when this didn’t occur the report failed to run.
As they say, you learn something every day. And we did! We learned that when dealing with text in different locales around the world … assume nothing.
We’ve now fixed this problem and this fix is now available in our 9.3 release. And with this release PaperCut is available to another large group of users. Prior to this Turkish users needed to run PaperCut under an English/US locale.
Now all we need is a Turkish translation. 🙂 If you’d like to help translate PaperCut into Turkish (or any other language!!!) then let us know. We’d really appreciate your help.