Jost Oliver Zetzsche

Tool Kit * Translating Software Development Formats: The "Flat File View"


By Jost Oliver Zetzsche. Submitted on January 6, 2006

About the author: Jost Zetzsche is an ATA-certified English-to-German translator and a localization and translation consultant. He co-founded International Writers' Group on the Oregon coast and sends out a free, biweekly technical newsletter for translators (see www.internationalwriters.com/toolkit).



There is a large variety of software development formats, and the most logical distinction between different categories can be broken down as follows:

  • binary files, i.e., files that cannot be opened and edited with a text editor, and
  • flat files, i.e., text-based files that can be opened and edited with a text editor.

Binary files include traditional formats such as .exe, .dll, or .ocx files. To translate these files, you will either

  • need a specific software localization tool that allows the direct translation and necessary strings as well as further language-specific development work and testing (for further information on processing binary file formats, see my article in an earlier version of the Tool Kit or in my ebook at www.internationalwriters.com/toolbox), OR
  • need to "decompile" these files with a development tool into numerous individual flat files (and later "recompile" the binary file again).

Many software developers view the decompile/recompile process as outdated, but others don't and chances are that you will at some point receive decompiled RC files to translate.

A section in an RC file could look like this:

CAPTION "Publish Web Pages"
FONT 8, "MS Sans Serif"
BEGIN
    LTEXT           "Static",IDC_FILE_EXIST_STATIC,34,19,279,24
    PUSHBUTTON      "&No",IDC_NO_BUTTON,150,48,48,14
    DEFPUSHBUTTON   "&Yes",IDOK,24,48,48,14
    PUSHBUTTON      "Yes &All",IDC_YES_ALL_BUTTON,87,48,48,14
    PUSHBUTTON      "N&o All",IDC_NO_ALL_BUTTON,213,48,48,14
    PUSHBUTTON      "Cancel",IDCANCEL,276,48,48,14
END

The syntax is not too hard to understand from the translator's point of view—most everything in quotation marks needs to be translated (but not things like the font information or "Static") and the ampersand sign marks that the following letter is a "hotkey" that you can access with an Alt key combination in the software. Though it would be possible to translate RC files in a text editor, it's not advisable because a) you'll most likely overlook text that needs to be translated, b) you'll tend to overwrite code where that should not happen, and c) there is just no reason to not use your translation memory for this. In fact, software files are rarely translated on their own. Typically they are translated as a precursor to accompanying documentation—documentation that will be using references to the translated software over and over again—which is an ideal scenario for the use of translation memory technology!

All of the above-mentioned localization tools as well as many translation memory tools support the translation of RC files, including Déjà Vu, SDLX, Star Transit, across, and TRADOS. (By the way, while the translation of RC files in TRADOS before version 7 used to be rather tedious, it can now be done directly in the TagEditor which even offers certain RC-specific quality control features, including check for duplicate hotkeys.)

Here's a tip for the translation of RC files: Because RC files use the quotation mark as a functional character, it requires a duplicated quotation mark ("") for every linguistic quotation mark ("Click on ""Next"" to continue"). Some computer-assisted translation tools take that into consideration—others may not. If you're not sure, you can also use 'single' quotes which you do not need to double.

Many newer programming languages do not use a compiled format for their resource files. Often this takes the form of XML-based formats (for instance, the .resx example of .NET applications—I'll cover those in a later newsletter) that are more or less supported by all major translation environment tools, while in other instances still other formats are used.

Java applications typically use the so-called Java Properties files (.properties).
The structure of Properties files is relatively simple: typically everything that follows an equal sign needs to be translated, everything that is preceded by a hash mark (#) is to be excluded, and the translatable strings can contain some HTML-based tags.
Java Properties files are supported by most localization tools as well as SDLX, OmegaT, TRADOS, and Déjà Vu.

If you're not sure what format a certain software file is in (the extensions are always a first indication of what the file type could be, but they will often fail you with software files), open it in a text editor and study the structure of the file. If translatables are enclosed in quotation marks, try to process the file as an RC file (or, if available, you can also test it with the C++ filter). If the translatables are preceded by an equal sign, try to process them with the Properties filter. All of these files are text-based, so this will not damage the files and very often you will find that you "get lucky," even though the file at hand may not be one or the other.

Another emerging text-based software standard are GNU gettext PO and POT files. These are the translatable language resource files used in the free GNU gettext concept for translating software and documentation. GNU gettext is the de-facto standard in many open source projects, and it works with a large variety of programming languages. PO files are typically translated or pretranslated files, whereas POT files are the translatable templates.

Aside from the internal tools that gettext offers (see www.gnu.org/software/gettext), Déjà Vu seems to be the only translation environment tool that handles these files seamlessly.


© International Writers' Group. Excerpt from the Tool Kit Newsletter, a biweekly newsletter for people in the translation industry who want to get more out of their computers. For more information see www.internationalwriters.com/toolkit
Recommend this article: stumbleupon|digg|del.icio.us|reddit|facebook


Back

© ANVICA Software Development 2002—2009. All rights reserved.