pseudolocalization 

Send to Kindle
home » snippets » i18n » pseudolocalization



See Also: cracked mode

What is Pseudolocalization?

Pseudolocalization is the process of localizing/translating from the primary language to a "fake" language. For instance, one could translate English into fake English by replaceing all the English characters with accented versions, or reversing the words, etc.

Why use Pseudolocalization?

It's primarily useful for testing localization. As a developer, you want to see how your application looks in different locales. Requiring a full translation to test is both expensive, time consuming and does not cover sufficient cases (unless you're testing every single locale.) With pseudolocalization, you can run a tool to exercise various fake translations that can reveal potential problems in translated locales. It doesn't cover all the cases either, but it can go a long way.

What's tested by Pseudolocalization?

Forms of Pseudolocalization

NOTE: You can combine multiple of these forms and in different orders to generate a few standard pseudolocales for testing your application.

NOTE: While pseudolocalization strictly works at the translation layer (producing translations for original messages) for testing, you can combine it with different styles when viewing in a testing mode (you can generate special test builds) that apply different style such as a border or background color to highlight translated messages, etc.

See also: code.google.com/pseudolocalization-tool

Pseudo locale names

You would test pseudo locales by using the locale switcher in your application to change the locale in your application's UI to pick a pseudo locale. (You could support these fake locales in just your development environment.) Or you could also have the development server automatically override your locale selection based on some debug query param to a pseudo locale. Regardless, you are now faced with having to make up some names for your pseudo locales. Here are some options:

Use the reserved namespace

For example, you could make up locale names like en-x-pseudoaccented, en-x-pseudodoubled, etc.

The single-letter subtag, x, introduces a sequence of private use subtags (RFC 5646: Tags for Identifying Languages)

This has the downside that some tools don't support private use subtags. If you need to use such tools, this is not an option.

Make up non-conflicting locale names

You could use locale names like en-pseudoaccented, en-pseudodoubled, etc. that are not recognized but are unlikely to ever conflict with real locales.