Title: Application in your Lingo Tracing the story
1Application in your Lingo- Tracing the story
Anand Subramanian Wipro Technologies
2The Plan
- Flashback basics
- Metamorphosis
- Creating an internationalized application
- Obtaining translatable information
- Perform translation
- Processing the translation
- Running the application
- Demo
3Why, What, Where?
- Internationalization (i18N)
- Localization (L10N)
- Translation
- One code base for the world
- English is just another language
4The Localization Journey
Build an i18N App
Extract Displayable Strings
Translate the Strings
Install and Run the Application
Build the Binary
5Building an i18N Application
- Mark your strings. That's vital.
- Existing apps
- Track down strings Eyeball the GUI, Code
- _ them.
- New apps
- GNU Toolkits to get inherent support for i18N
- UI builder tools (E.g. Glade)
GUI/String Freeze aids effective i18N-ization
6Building an i18N Application ..contd.
- Marking a String
- GNU gettext
- In the code,
- Header file inclusion for gettext wrapper
functions - Wrapping strings with library specific functions
- Before
- popup_display ("Making English just another
language") - After
- popup_display (_("Making English just another
language"))
7Kick-start the Translation Trip
- Fundas First...
- Portable Objects
- msgid lt-gt msgstr pairs
- Build tweaking for automated extraction
- autogen.sh, configure.in, Makefile.am
8The Real Action Translating
- The Aides
- Language teams
- Tools
- Linux Yudit, Kbabel, Gtranslator, Poedit, Gedit
- Windows Poedit, Yudit, Takhti(hindi)
9Build/Install binary files
- Tweaks
- autogen.sh, configure.in, Makefile.am
10Your App is Ready!
- Set the 'locale'.
- E.g.
- GDM Login screen
- Environment variable
- LANG
11Oh, By the way...
- gettext_noop() - The N_() markup
- Before ShapeData shapes "circle", "square",
"triangle", NULL - After ShapeData shapes N_("circle"),
N_("square"), N_("triangle"), NULL - Changes in main()
- bindtextdomain (GETTEXT_PACKAGE,
GEDIT_LOCALEDIR) - bind_textdomain_codeset (GETTEXT_PACKAGE,
"UTF-8") - textdomain (GETTEXT_PACKAGE)
12And also...
- Translation Fixes app's output
- Input Keymaps required
Output
Input
Application
13References
- GTP - http//developer.gnome.org/projects/gtp/
- i18N-izing GNOME apps - http//www.gnome.org/mal
colm/i18n/index.html - L10n guidelines for GNOME developers
-http//developer.gnome.org/doc/tutorials/gnome-i1
8n/developer.html - The IndLinux Project
- http//www.indlinux.org
14Summing-up
Build an i18N App (GTK, Glade)
Extract Strings (PO, xgettext, intltool)
Translate the Strings (Yudit, Poedit)
Install and Run the Application (LANG, locale)
Build the Binary (MO, msgfmt)
15Happy Translating!
Anand Subramaniananand.subra_at_wipro.com