Internationalization.

Internationalization (i18n for short) is very easy with GNOME. We use GNU gettext. You need to initialize it with a call to bindtextdomain and textdomain in your main function. After it a _() to all the strings that need translation.

You will need add your file to po/POTFILES.in. Then you can do make gnome-modulename.pot;make update-po, edit the .po file corresponding to your language and do make install. Now try your program... Wow! It's speaking in Spanish/Finnish/Latin...

Warning

_() is a macro for the function gettext. So it won't work when initializing arrays of strings or structs. You'll need use the N_() macro around the strings instead. If you want know more about it read the info documentation of GNU gettext.