ini files, a good idea? – You’re Speaking my Language?

Bad Advice

Build your own, it sounds great! It is quite easy as well. And cheap (you bill $0 for your own hours, don’t you?, developing your software costs nothing 😉

Go ahead and do it!
For example, have an .ini file with localized language strings and call it from your program, something like this:

GetPrivateProfileString(L"DeleteDialog", 
          L"DeleteFileFailed", 
          L"Sorry, the delete failed", 
          translated, _countof(translated), L"German.ini");

(GetPrivateProfileString docs)

Now you call it for the Cancel button. The German translation is “Abbrechen“…. oooops, That doesn’t fit inside the Cancel button.

OK, You make the button a bit wider, it takes a few emails with your German translator to get it right, but now it looks good (mmmm, does that look weird for American customers? The button is veeeeery wide now)

Just ignore all those emails from your translator about “what do you mean with…”, “what is the context of…”
He only sees the ini file, he doesn’t get any feedback where those strings are used.

After some time, you will have a fine localized program for the German market. Probably a very frustrated translator as well.

How much did you enjoy writing all those GetPrivateProfileString calls in your code?
Now go for the French, Spanish, Italian markets…. Those are just the easy languages.

Dare I say, Chinese, Japanese, Hindi….

You Need Tools

You really need Good Language Localization Tools. No, I didn’t test Sisu with all above languages yet.
I did with German and Spanish language translation, though…

  • Sisu scans your English exe for dialogs, strings etcetera
  • You send the result to your translator
  • He translates…
    Oh boy, he can even change window sizes, the “Cancel” button mentioned earlier? No problem.
    He actually sees the dialogs and can move or resize buttons and texts… Those changes will only be visible in the German build of your program.
  • He sends back the translation
  • You import and Generate…

The result: A fine new German language .exe! Your code untouched, it is not even aware it speaks German now…

Leave a Reply