Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ... |
  • E-mail this story to a friend!
  • Digg
  • Reddit
  • del.icio.us
  • Twitter
  • Slashdot
  • Facebook
  • MySpace
  • Google Bookmarks
  • DotNetKicks

Localization: A Programmer’s Dirty Job

When I was in College, I was amazed that the suits (”Business People”) are so willing to pay me good money just to spew out pieces of code that would eventually end up in a crappy system somewhere. Well, that was the time when I thought that working as programmer is just about programming. Or, that was the time when I believe that majority of a programmer’s time would be spent writing code… building stuffs.

Nowadays, when people ask me about my typical day at work, I always tell them that I’m working on a Localization Project. Most often than not, the common reply is “What’s that? Does it involve programming?” Yes, it involves “programming”, if you consider replacing a bunch of strings to their localized equivalent as “programming”.

As Mike Rowe will put it…

Localization… It’s a dirty job!

Why is it a dirty job, you ask? Consider the English phrase “Preview and Spell Check”. Now let’s see how it will translate to different languages:

French: Prévision et contrôle de charme
German: Vorbetrachtung und Rechtschreibüberprüfung
Russian: ??????????????? ???????? ? ???????? ????????????


A simple 23 letter English phrase will translate into a very complex 48 letter Russian gibberish. Do you understand now why this is a dirty job? No? Alright, let me illustrate with a simple dialog box…


Now let’s try to localize this particular dialog box into Russian…


Because some languages are just so weird, a simple phrase will translate into a paragraph! And as “programmers”, its our job to resize the offending component (See last button on the left) so that the translated phrase will fit. In this particular dialog, to be able to resize the offending button, you need to:

  1. Resize the Form
  2. Move the Textbox, the command button (button5) on the right , and the group box (groupbox2) on the right
  3. Resize the groupbox (groupbox1) on the left
  4. Finally, resize the offending button

You might say “Well, that’s easy! It won’t even take me 3 minutes to do that.”. Hah, I’m being too easy on you with that example. Consider this dialog then:
Haha. Still too easy? How bout this?


And it’s a bitch when the programmer that designed the original GUI does not understand the concept of GOOD UI DESIGN PRACTICES and decided that overlapping 20 groupboxes and toggling the Visible flag during runtime is a GOOD IDEA. (Yes, I know. I’ve done this a couple of times in the past and I apologize for having committed this damnable sin!)
Now, consider the fact that we have a very very huge system that contains roughly 300+ dialog boxes and the fact that we need to ship the system in 5 different languages. Don’t get me wrong, we are using a localization tool to accomplish the task but somethings just have to done MANUALLY. It’s indeed a dirty job!

This hell right here is just ONE part of the Localization Job and it’s the EASIEST PART! Since some part of our codebase is so freakin old, when you change a small part of the code, all hell breaks loose. The system will break in 15 different places at the same time! And you know what’s great? The system is already localized that you won’t understand what the error message is saying! And with a codebase consisting of MILLION LINES of code (some from the 80’s), you’ll understand why localization is a dirty job.

Here’s the upside (YES! There is an upside), Localizing a piece of software into different languages automatically converts to sales. Its good money. And at times like this, contributing to the company’s bottom line is what separates you from being laid-off to keeping your job, even though its a dirty one. :) )

In the future, I have 2 projects lined up that involves *real* coding. But for now, I’ll have to make do.

“It’s a dirty job but someone’s gotta do it!”

*PS: I used the term “Dialog Boxes” for the non-technical readers to understand. For the geeky guys, just translate. :)

1 comment to Localization: A Programmer’s Dirty Job

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">