April 21, 2006

Pseudo-Translation of Strings as an Aid to Internationalization Testing

Often, during the Internationalization process, all the text strings in an application or web site are extracted into separate files (sometimes called "resource files") for translation into a target language.

One technique useful in Internationalization and Localization testing, is to pseudo-translate your text into strings that can be understood by testers, but still will indicate if any strings remain untranslated.  Often a Perl script, or other automated technique, can do the pseudo-translation for you.  After translation, rebuild the application-under-test and look at it.



Any remaining unstranslated strings then probably represent strings that were incorrectly hard-coded and were not extracted into resources files.

There are a number of techniques for doing this.  For example:

  • UPPERCASEIAN – this method translates each string to uppercase
  • Bracketed – this brackets each string with [ and ]
  • Egg Language – this places the string “egg” in front of each vowel
  • All Xes – this replaces each character in the string with X
  • Leading and Trailing Zs – this puts the string “zzz” in front and at the end of the phrase

How the phrase “All Things Quality” might be “translated” into various pseudo-locales for Internationalization testing purposes:




UPPERCASEIAN

ALL THINGS QUALITY

Bracketed

[All Things Quality]

Egg Language

eggAll Theggings Qeggueggaleggity

All Xes

XXX XXXXXX XXXXXXX

Leading and Trailing Zs

zzzAll Things Qualityzzz




How Babelfish (http://babelfish.altavista.com/) translates the phrase “All Things Quality” into various languages




Chinese (Simplified)

所有事质量

Chinese (Traditional)

所有事質量

Dutch

Al Kwaliteit van Dingen

French

Toute la Qualité De Choses

German

Alle Sache-Qualität

Greek

Όλη η ποιότητα πραγμάτων

Italian

Tutta la Qualità Di Cose

Japanese

すべての事の質

Korean

모든

Portuguese

Toda a Qualidade Das Coisas

Russian

Все Качество Вещей

Spanish

Toda la Calidad De las Cosas




And for fun, how the Dialectizer (http://rinkworks.com/dialect/) translates the phrase "All Things Quality" into various "dialects":




Redneck

All Thin's Quality

Jive

All Doodads Quality

Cockney

All Finks Quality

Elmer Fudd

Aww Dings Qwawity

Swedish Chef

Ell Theengs Qooeleety

Moron

All Diggs Kality

Pig Latin

Allyay Ingsthay Ualityqay

Hacker

all tihngz quiality



[03/23/07] An update:
It turns out that the folks at Fog Creek Software first psuedo-translated their strings into Pig Latin as they prepared to translate Fog Bugz into German.

http://www.joelonsoftware.com/items/2007/03/13b.html