|
|
|
\title Guide to the Qt Translation Tools
|
|
|
|
\granularity chapter
|
|
|
|
|
|
|
|
\chapter Introduction
|
|
|
|
|
|
|
|
Qt provides excellent support for translating applications into local
|
|
|
|
languages. This Guide explains how to use Qt's translation tools for
|
|
|
|
each of the roles involved in translating an application. The Guide
|
|
|
|
begins with a brief overview of the issues that must be considered,
|
|
|
|
followed by chapters devoted to each role and the supporting tools
|
|
|
|
provided.
|
|
|
|
|
|
|
|
\link Release... Chapter 2: Release Manager \endlink is aimed at the
|
|
|
|
person with overall responsibility for the release of the
|
|
|
|
application. They will typically coordinate the work of the software
|
|
|
|
engineers and the translator. The chapter describes the use of two
|
|
|
|
tools. The \l lupdate tool is used to synchronize source code and
|
|
|
|
translations. The \l lrelease tool is used to create runtime
|
|
|
|
translation files for use by the released application.
|
|
|
|
|
|
|
|
\link Translators Chapter 3: Translators \endlink is for translators.
|
|
|
|
It describes the use of the \e {Qt Linguist} tool. No computer
|
|
|
|
knowledge beyond the ability to start a program and use a text editor
|
|
|
|
or word processor is required.
|
|
|
|
|
|
|
|
\link Programmers Chapter 4: Programmers \endlink is for Qt
|
|
|
|
programmers. It explains how to create Qt applications that are able
|
|
|
|
to use translated text. It also provides guidance on how to help the
|
|
|
|
translator identify the context in which phrases appear. This
|
|
|
|
chapter's three short tutorials cover everything the programmer needs
|
|
|
|
to do.
|
|
|
|
|
|
|
|
\section1 Overview of the Translation Process
|
|
|
|
|
|
|
|
Most of the text that must be translated in an application program
|
|
|
|
consists of either single words or short phrases. These typically
|
|
|
|
appear as window titles, menu items, pop-up help text (balloon help),
|
|
|
|
and labels to buttons, check boxes and radio buttons.
|
|
|
|
|
|
|
|
The phrases are entered into the source code by the programmer in
|
|
|
|
their native language using a simple but special syntax to identify
|
|
|
|
that the phrases require translation. The Qt tools provide context
|
|
|
|
information for each of the phrases to help the translator, and the
|
|
|
|
programmer is able to add additional context information to phrases
|
|
|
|
when necessary. The release manager generates a set of translation
|
|
|
|
files that are produced from the source files and passes these to the
|
|
|
|
translator. The translator opens the translation files using \e {Qt
|
|
|
|
Linguist}, enters their translations and saves the results back into
|
|
|
|
the translation files, which they pass back to the release manager.
|
|
|
|
The release manager then generates fast compact versions of these
|
|
|
|
translation files ready for use by the application. The tools are
|
|
|
|
designed to be used in repeated cycles as applications change and
|
|
|
|
evolve, preserving existing translations and making it easy to
|
|
|
|
identify which new translations are required. \e {Qt Linguist} also
|
|
|
|
provides a phrase book facility to help ensure consistent
|
|
|
|
translations across multiple applications and projects.
|
|
|
|
|
|
|
|
Translators and programmers must address a number of issues because
|
|
|
|
of the subtleties and complexities of human language:
|
|
|
|
|
|
|
|
\list
|
|
|
|
\i A single phrase may need to be translated into several different
|
|
|
|
forms depending on context, e.g. \e open in English might become \e
|
|
|
|
\OEFFNEN, "open file", or \e aufbauen, "open internet connection", in
|
|
|
|
German.
|
|
|
|
\i Keyboard accelerators may need to be changed but without
|
|
|
|
introducing conflicts, e.g. "\&Quit" in English becomes "Avslutt" in
|
|
|
|
Norwegian which doesn't contain a "Q". We cannot use a letter that is
|
|
|
|
already in use -- unless we change several accelerators.
|
|
|
|
\i Phrases that contain variables, for example, "The 25 files selected will
|
|
|
|
take 63 seconds to process", where the two numbers are inserted
|
|
|
|
programmatically at runtime may need to be reworded because in a
|
|
|
|
different language the word order and therefore the placement of the
|
|
|
|
variables may have to change.
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
The Qt translation tools provide clear and simple solutions to these
|
|
|
|
issues.
|
|
|
|
|
|
|
|
\RULE
|
|
|
|
|
|
|
|
Please send comments and suggestions regarding this tutorial to the
|
|
|
|
\link mailto:doc@trolltech.com?subject=Translation_Tutorial Qt doc
|
|
|
|
team \endlink. Bugs in the tools should be sent to \link
|
|
|
|
mailto:qt-bugs@trolltech.com?subject=Translation_Tutorial
|
|
|
|
qt-bugs\endlink.
|
|
|
|
|
|
|
|
\input linguist-manager.leaf
|
|
|
|
\input linguist-translator.leaf
|
|
|
|
\input linguist-programmer.leaf
|