summaryrefslogtreecommitdiffstats
path: root/tools/linguist/book/linguist-manager.leaf
diff options
context:
space:
mode:
Diffstat (limited to 'tools/linguist/book/linguist-manager.leaf')
-rw-r--r--tools/linguist/book/linguist-manager.leaf138
1 files changed, 138 insertions, 0 deletions
diff --git a/tools/linguist/book/linguist-manager.leaf b/tools/linguist/book/linguist-manager.leaf
new file mode 100644
index 0000000..aa99e01
--- /dev/null
+++ b/tools/linguist/book/linguist-manager.leaf
@@ -0,0 +1,138 @@
+\chapter Release Manager
+
+\index Release Manager
+
+Two tools are provided for the release manager, \l lupdate and \l
+lrelease. These tools depend on \e qmake project files. You don't
+have to use \e qmake, though.
+
+A third tool, \c qm2ts, can be used for converting Qt 2.x message
+files to \c .ts files.
+
+\section1 Qt Project Files
+
+\index .pro Files
+\index Project Files
+\index qmake!Project Files
+
+\l lupdate and \l lrelease depend on information in the application's
+\c .pro Qt project file. There must be an entry in the \c TRANSLATIONS
+section of the project file for each language that is additional to
+the native language. A typical entry looks like this:
+
+\index TRANSLATIONS!in Project Files
+
+\quotefile tt2/tt2.pro
+\skipto TRANSLATIONS
+\printline tt2_fr
+\printline tt2_nl
+
+Using a locale within the translation file name is useful for
+determining which language to load at runtime. This is explained in
+\link Programmers Chapter 4: Programmers \endlink.
+
+\index HEADERS!in Project Files
+\index SOURCES!in Project Files
+\index FORMS!in Project Files
+\index TRANSLATIONS!in Project Files
+
+An example of a complete \c .pro file with four translation source files:
+\code
+ HEADERS = main-dlg.h \
+ options-dlg.h
+ SOURCES = main-dlg.cpp \
+ options-dlg.cpp \
+ main.cpp
+ FORMS = search-dlg.ui
+ TRANSLATIONS = superapp_dk.ts \
+ superapp_fi.ts \
+ superapp_no.ts \
+ superapp_se.ts
+\endcode
+
+\index QApplication!defaultCodec()
+\index defaultCodec()!QApplication
+\index DEFAULTCODEC!in Project Files
+\index Chinese Language
+\index Japanese Language
+
+\l QTextCodec::setCodecForTr() makes it possible to choose a
+8-bit encoding for literal strings that appear within \c tr() calls.
+This is useful for applications whose source language is, for example,
+Chinese or Japanese. If no encoding is set, \c tr() uses Latin-1.
+
+If you do use the \l QTextCodec::codecForTr() mechanism in your
+application, \e {Qt Linguist} needs you to set the \c DEFAULTCODEC
+entry in the \c .pro file as well. For example:
+\code
+ DEFAULTCODEC = ISO-8859-5
+\endcode
+
+\section1 lupdate
+
+\index lupdate
+
+Usage: \c {lupdate myproject.pro}
+
+ \index Qt Designer
+
+This is a simple command line tool. \l lupdate reads a Qt \c .pro
+project file, finds the translatable strings in the specified source,
+header and \e {Qt Designer} interface files, and produces or updates
+the \c .ts translation files listed in the project file. The
+translation files are given to the translator who uses \e {Qt
+Linguist} to read the files and insert the translations.
+
+Companies that have their own translators in-house may find it useful
+to run \l lupdate regularly, perhaps monthly, as the application
+develops. This will lead to a fairly low volume of translation work
+spread evenly over the life of the project and will allow the
+translators to support a number of projects simultaneously.
+
+Companies that hire in translators as required may prefer to run \l
+lupdate only a few times in the application's life cycle, the first
+time might be just before the first test phase. This will provide the
+translator with a substantial single block of work and any bugs that
+the translator detects may easily be included with those found during
+the initial test phase. The second and any subsequent \l lupdate runs
+would probably take place during the final beta phase.
+
+\index .ts Files
+\index Translation Source Files
+\index XML
+
+The \c .ts file format is a simple human-readable XML format that can
+be used with version control systems if required.
+
+\section1 lrelease
+
+\index lrelease
+
+Usage: \c {lrelease myproject.pro}
+
+\index .qm Files
+\index Qt Message Files
+
+This is another simple command line tool. It reads a Qt \c .pro
+project file and produces the \c .qm files used by the application,
+one for each \c .ts translation source file listed in the project
+file. The \c .qm file format is a compact binary format that provides
+extremely fast lookups for translations.
+
+This tool is run whenever a release of the application is to be made,
+from initial test version through to final release version. If the \c
+.qm files are not created, e.g. because an alpha release is required
+before any translation has been undertaken, the application will run
+perfectly well using the text the programmers placed in the source
+files. Once the \c .qm files are available the application will
+detect them and use them automatically.
+
+Note that \l lrelease will only incorporate translations that are
+marked as "done". If a translation is missing, or has failed
+validation, the original text will be used instead.
+
+\section1 Missing Translations
+
+Both \l lupdate and \l lrelease may be used with \c .ts translation
+source files which are incomplete. Missing translations will be replaced
+with the native language phrases at runtime.