ZopeMag's mascot the ZOPE fish


Article Finder
People
Issue 9 - Revision 8  /   February 7, 2005 


 
  ZopeMag Links:
Latest Issue
About the Fish
Issue 10
Issue 09
Issue 08
Issue 07
Issue 06
Issue 05
Issue 04
Issue 03
Issue 02
Issue 01
 
 
Downloads
     
  Letter from the Editor:


Interviews:
Each issue we interview important people in the Zope world.

  Joel Burton

Articles:
Throughout the quarter we cover topics of interest to Zope developers, designers, and users.

  Improving WebDAV in Zope

  Profiling Zope (Part II)

  Redesigning the portal with CPSSkins and CPSPortlets

  Zope and Flash

  Localization (Part I of II)

Product Review:
Too many Products, too little time? ZopeMag keeps you up-to-date which Zope Products are worthwhile checking out.

  Corp Calender
  BastionLedger


Book Review:
Thanks to a growing subscriber base we can now offer even more to our readers. Zope and Plone Book Reviews!

  The Definitive Guide to Plone


Guides:
This quarter we bring you a new SuperGuide. Our miniGuides and SuperGuides give you the background knowledge you need to mastering Zope.

  miniGuide to writing Zope 2 Products
 
 
Downloads
     
  URLs / Download
Products we talk about in this issues Articles and Reviews

     


Localization
- in Applications
- - - - - - - - - - - -

By Milos Prudek  | February 2, 2005



Defining localization

In this series of articles, I would like to show how collaboration between software developers, UI designers and translators is essential for successful localization, and how (and why) you should go about organizing such a team. This first article shows some common unintentional mistakes software developers tend to make.

According to wikipedia, localization is the process of translation of messages which a program presents to a user into various languages. Sounds simple enough. Newcomers to localization often use the following approach: export all strings from the finished application, send the strings to a bunch of translators who do not know each other, wait one or two months (you can do a lot of work on another project while the translators toil away), receive the translated texts, pay ridiculous sums for the translations, import and recompile, and pronto! Instant translation, right?

Wrong. Such an approach results in horribly distorted texts, sometimes outright wrong sentences and many other problems. Sadly, such an approach is quite often used in practice. It degrades the software as a whole and the result has to be thrown away or repaired, incurring expenses that equal or exceed the original price of the translation.

If you do not know any language well other than your mother tongue, you simply cannot imagine the range of problems that occur in translation. For instance, two translators can produce totally different text (different words) although the meaning stays the same. True localization requires collaboration between software developers and translators, very close and very intensive collaboration. Or, if you work for a large company, it probably employs UI developers and these UI guys and gals can act as an interface between application developers and translators.

Time flies...

And you need to have your localization ready yesterday. No time to help translators. All of your application's messages are clearly written and present no problem to a qualified professional translator... sentences like "Time flies“ are unambiguous. Or are they? Let's see:

Time flies: A "fly“ is an insect. "Time flies" are insects that travel through time without using a time machine (here "time" functions as an adjective – use of a noun as an adjective is common in English)..

Time flies: I want you to time my flies! Please measure the time it takes them to get from point A to point B! Well, okay, but what flies are we talking about? Perhaps I'm an entomologist and I'm asking you to time how long it takes my flies to get from A to B. Or I'm a baseball trainer and I want you to time how long the flies [=fly balls] hit by members of the team take to get from home-plate to some point in the field. (Here "time" functions as a verb.)

Note: You might feel that "Time flies" is as unlikely a sentence to appear in a technical text as possible. I used this short sentence purposely because of titles (column and row headings) and instructions displayed in software, which are often very short, as you will see later in this article.

Of course, the third meaning is the one most likely to be correct. But you can't be sure without contextual remarks or background information – a few explanatory words. that will not go into the translation itself but will enable the translator to choose the right vocabulary and grammar in the target language. Providing background information is expensive in terms of time required to type the information and even to discover what type of information is required. Nonetheless, background information is necessary. Let me show you what kind and what amount of context is needed with a couple of examples.

[Note: The context generally is made up not of explanatory words but lived structures that (a) our lives are full of; and (b) a translator is, should be, has to be implicitly familiar with. Recognition of this context is, for the most part, a non-verbal, intuitive matter. Nonetheless, explanatory notes can provide considerable help to the translator.]

Exporting text

A simple text export is a flat file that contains all text messages used in your program, such as prompts, database column names, descriptions, window titles. Look at this example:

resolution
number of 
number of tables
from
to
April 
image counter 
stretching center
enter new password
Do you want it to be created?
 number (where  is one of [Operator, Table, Chair])
Rocker
Process sequences
time flies

Can you guess how many of the above lines can be translated without background information ? Let's look at them one by one:

Source word Problem Solution
Resolution At least two possible meanings: 1. resolution is a decision; 2. resolution is the number of dots per square inch on a computer screen. Any reasonable dictionary lists at least 3 more meanings Add a context remark such as "number of dots on a screen“, unless the translator is without a doubt aware of the context because he knows that the text is about copmuter screens. Note that simply saying it is "computer context" is not enough. Your software could ask for the user's resolution (decision) of any issue it is facing.
number of Calculated sentence, where is a variable. The translator does not know the content of this variable. In many languages, nouns such as "table“ or "ball“ have gender (feminine, masculine or, in some languages, neuter), and words are inflected differently according to gender. The translator does not know the gender of . Therefore, he does not know how to inflect and he also cannot inflect the expression "number of“ if the target language requires this. The result is an incorrect translation. You should spell out all source sentences: number of tables, number of balls etc. and have all of them translated
number of tables The previous example's solution said this source should be OK, no context needed. Well, some languages can use a different word for table as "furniture“ and table as "list of data“, and these two words can have different gender (In German, for example, they do: "table" as furniture is masculine; "table" as a list is feminine.). Add a context remark such as "table = piece of furniture“. Always check in a dictionary if the word to be translated is a homonym.
From ... to... Standalone prepositions are impossible to translate. Period. Spell out the whole sentence, either in the source text or in context remarks
April Capitalization rules differ from language to language. In English, all month names are capitalized. In other languages, they are not. You need to specify where this word appears: in a column name, or in the middle of a sentence, since standing alone as a column name it would always be capitalized, whereas in some languages in the middle of a sentence it wouldn't.
image counter Let's say that each of these two words has only one possible meaning (which is not the case). When used together, however, it's not clear whether the two words describe "a counter that counts images“ or "a counter that looks like an image", i.e. it looks like an image rather than like text. Translation of these two cases may be different. At least they are different in my mother tongue, Czech. You need to explain the exact meaning in a context remark.
stretching center Possibly: "The center is currently being stretched“, i.e. the process of stretching is being talked about, your software says it is busy stretching the center. Or, the location of the stretching is being talked about, i.e. "The center is being stretched" (not some other location). Or, "This is the center of the stretching", i.e. it is not a center for some other operation. Or perhaps the phrase refers to "a gym where you can exercise stretching“. The fourth possible meaning is somewhat stretched (pun intended), given the context, but the first three are perfectly possible and it is improbable that they can all be translated by the same phrase in the target language. (What we have here is that in English placing two words in this manner next to each other can express a variety of different meanings, depending on the syntactic and semantic relationship between the words. In another language it is highly unlikely that these same relationships can be expressed in the same way. The translator has to know which meaning is intended in order to be able to translate the phrase correctly.)
enter new password No problem here. This is a whole sentence, no ambiguity here.
Do you want it to be created? What is to be created here? Nouns have genders in some languages, and the word "created“ needs (in some languages) to be inflected according to the gender of "it“. You need to tell the translator what "it“ is.
number (where is one of [Operator, Table, Chair]) Calculated sentence, where the programmer mandated a fixed word order: is first, "number“ is second. Unfortunately, some languages require a reversed word order or inflection or both You should spell out all source sentences: Operator number, Table number, Chair number
Process sequences Is this an order? "You must process the sequences now!“ Or is "process“ an adjective that describes the type of sequences referred to? You need to clarify this in your context remarks.
States

You can see that of all these sentences and sentence fragments, only one (perhaps) can be translated without context. All the rest require supporting documentation to be translated correctly.

It is difficult, or downright impossible, to provide perfect contextual remarks without feedback from the translator. Therefore you should provide all the context you can think of, and tell your translators that they are free to ask for more context at any time.

Writing all this supportive text is time-consuming. Alternatively, you could provide screenshots and no other explanation, but in such a case the translator would spend quite some time reading the screenshots and trying to understand the workflow (and you will need to reimburse him or her for the effort) and he can still make mistakes. It's better to provide both context and screenshots.

Perhaps the best approach is if the translator can actually use the software or website in question. You will have to budget for the time the translator will spend coming to understand the software, but you will not need to provide much context. There are disadvantages in this approach: to investigate a website thoroughly, the translator must have a good and affordable internet connection, which very often is not the case. For locally-installed software (not web-based), producers are rarely willing to provide the translator with a copy of the localized software, even when the translator specifically asks for it.

Part II of this article can be found in Issue 10 of ZopeMag


Milos Prudek: Milos Prudek has been working professionally in the IT industry since 1988. While working as an application programmer with FoxPro and Pascal, he also taught a wide range of IT subjects to different audiences. A freelance developer and writer since 1991, he established a local ISP company, which he has since expanded. He has been active in Zope development since 1998 and runs a small Web usability and Web development company Spox Design. His only passion is promoting tolerance among people.


shim
shim  ZopeMag is committed to bringing you the best in Zope Documentation. shim
shim


Home   Subscribe   FAQ   Contact   Write for us   Privacy Policy   Weekly News   PyZine   opensourcexperts.com  

Reproduction of material from any of ZopeMag's pages without prior written permission is strictly prohibited. Copyright 2003 - 2005 ZopeMag Zope/Plone hosting by Nidelven IT