Users first, no matter where they are

L20n: the next stage of l10n for localizers

Due to the extensive amount of information on l20n, I will be splitting up the information according to audience. Part one and two will cover information useful to localizers (one will be description, two will include applicable examples) and part three and four will cover information useful to coders and L10n tool authors.

Over the last few years localizers have become gradually familiar with the l20n project. It been described as a way to improve a localizer’s ability to localize software into their native language (in this case, mozilla applications specifically) without limiting their langauge’s expressiveness or robustness due to limitations within the programming language used to develop the software. Although the project has been in open development for years, localizers tend to know or understand little of what l20n will bring to the table. As the project gradually approaches it’s first major release, the time has come to describe what l20n means for localizers, coders, and L10n tool authors.

What is l20n?

L20n is a localization framework (which is partly comprised of a pseudo-programming language) meant to transfer the ability to localize software using the fullness of any language from the developer to the localizer. L20n empowers localizers to be more independent of source language developers and have more control and flexibility in localizing software according to their native language’s demands.

More control and flexibility for localizers

One of the primary challenges localizers face is that they have to rely on an application’s programmed logic to appropriately process strings in their native language. Localizers have almost no control over how an application will handle their language’s plural, singular, and gender syntax, not to mention the challenges presented when an application concatenates strings (combination of variables containing strings) with only the source language in mind.

Currently the responsibility for resolving these challenges falls on the shoulders of the developers. While coding, they must incorporate internationalization and localizable coding practices into their applications that account for these challenges. Unfortunately, this presents a larger-than-life expectation for coders: not every coder can understand the syntactical intricacies of every single language. In addition, developer toolkits don’t always contain pre-localized materials to help them internationalize. Should a localizer encounter a L10n bug, they cannot fix it themselves without understanding how to code, and even then they risk creating bugs in the application itself. How many of you have found yourself in that same situation? This is because an application’s programming logic and its localization logic are organically connected. Enter l20n.

L20n seeks to separate these two logic sets, allowing localizers to have more control over how their language appears and operates within the application’s programming logic. Localizers will be able to establish their own contextual plural and gender-specific forms within specific strings (or even chain multiple plural forms within a single string) without causing disruptions within the application. Establishing context also changes the way that strings are concatenated within the application.

Localizing with ease

Sound complicated? It actually isn’t. To quote Staś Małolepszy, one of the L10n drivers working on the project, “In its simplest form, l20n is very basic and easy to use. People really shouldn’t be scared about using it in their projects.” According to the current plan, implementing l20n into a project should still allow localizers with limited to no technical background to localize mozilla applications through the L10n tools they’re familiar with. If anything, localizing will be simplified because of the added ability to identify and add context to source strings.

As with any tool, however, localizers interested in using the full range of functionality from l20n will need to become familiar with how it is implemented and its unique syntax.

Status update

L20n is currently still in open development, but the team is hoping to use the Gaia project as the flagship release for l20n implementation.

While it is still in development, you have the chance to provide the l20n team with valuable feedback. You can find more detailed information about l20n in the resources list below. If you have concerns, ideas, contributions, or need further explanation, please don’t hesitate to contact Staś or Gandalf via the #l20n IRC channel or the l20n Google group.

In the next installment on l20n, I’ll outline some use case examples of how l20n will streamline L10n for localizers.