QtBase
v6.3.1
|
The QTranslator class provides internationalization support for text output. More...
#include <qtranslator.h>
The QTranslator class provides internationalization support for text output.
\inmodule QtCore
An object of this class contains a set of translations from a source language to a target language. QTranslator provides functions to look up translations in a translation file. Translation files are created using \l{Qt Linguist}.
The most common use of QTranslator is to: load a translation file, and install it using QCoreApplication::installTranslator().
Here's an example main()
function using the QTranslator:
Note that the translator must be created before the application's widgets.
Most applications will never need to do anything else with this class. The other functions provided by this class are useful for applications that work on translator files.
Definition at line 54 of file qtranslator.h.
Constructs an empty message file object with parent parent that is not connected to any file.
Definition at line 416 of file qtranslator.cpp.
QTranslator::~QTranslator | ( | ) |
Destroys the object and frees any allocated resources.
Definition at line 425 of file qtranslator.cpp.
QString QTranslator::filePath | ( | ) | const |
Returns the path of the loaded translation file.
The file path is empty if no translation was loaded yet, the loading failed, or if the translation was not loaded from a file.
Definition at line 1151 of file qtranslator.cpp.
|
virtual |
Returns true
if this translator is empty, otherwise returns false
. This function works with stripped and unstripped translation files.
Reimplemented in QTestTranslator, and TransformTranslator.
Definition at line 1124 of file qtranslator.cpp.
QString QTranslator::language | ( | ) | const |
Returns the target language as stored in the translation file.
Definition at line 1136 of file qtranslator.cpp.
bool QTranslator::load | ( | const QLocale & | locale, |
const QString & | filename, | ||
const QString & | prefix = QString() , |
||
const QString & | directory = QString() , |
||
const QString & | suffix = QString() |
||
) |
Loads filename + prefix + \l{QLocale::uiLanguages()}{ui language name} + suffix (".qm" if the suffix is not specified), which may be an absolute file name or relative to directory. Returns true
if the translation is successfully loaded; otherwise returns false
.
The previous contents of this translator object are discarded.
If the file name does not exist, other file names are tried in the following order:
\list 1
For example, an application running in the locale with the following \l{QLocale::uiLanguages()}{ui languages} - "es", "fr-CA", "de" might call load(QLocale(), "foo", ".", "/opt/foolib", ".qm"). load() would replace '-' (dash) with '_' (underscore) in the ui language and then try to open the first existing readable file from this list:
\list 1
/opt/foolib/foo
.es.qm /opt/foolib/foo
.es /opt/foolib/foo
.fr_CA.qm /opt/foolib/foo
.fr_CA /opt/foolib/foo
.fr.qm /opt/foolib/foo
.fr /opt/foolib/foo
.de.qm /opt/foolib/foo
.de /opt/foolib/foo
.qm /opt/foolib/foo
. /opt/foolib/foo
\endlistOn operating systems where file system is case sensitive, QTranslator also tries to load a lower-cased version of the locale name.
Definition at line 759 of file qtranslator.cpp.
bool QTranslator::load | ( | const QString & | filename, |
const QString & | directory = QString() , |
||
const QString & | search_delimiters = QString() , |
||
const QString & | suffix = QString() |
||
) |
Loads filename + suffix (".qm" if the suffix is not specified), which may be an absolute file name or relative to directory. Returns true
if the translation is successfully loaded; otherwise returns false
.
If directory is not specified, the current directory is used (i.e., as \l{QDir::}{currentPath()}).
The previous contents of this translator object are discarded.
If the file name does not exist, other file names are tried in the following order:
\list 1
For example, an application running in the fr_CA locale (French-speaking Canada) might call load("foo.fr_ca", "/opt/foolib"). load() would then try to open the first existing readable file from this list:
\list 1
/opt/foolib/foo
.fr_ca.qm /opt/foolib/foo
.fr_ca /opt/foolib/foo
.fr.qm /opt/foolib/foo
.fr /opt/foolib/foo
.qm /opt/foolib/foo
\endlistUsually, it is better to use the QTranslator::load(const QLocale &, const QString &, const QString &, const QString &, const QString &) function instead, because it uses \l{QLocale::uiLanguages()} and not simply the locale name, which refers to the formatting of dates and numbers and not necessarily the UI language.
Definition at line 478 of file qtranslator.cpp.
Definition at line 783 of file qtranslator.cpp.
|
virtual |
Returns the translation for the key (context, sourceText, disambiguation). If none is found, also tries (context, sourceText, ""). If that still fails, returns a null string.
If n is not -1, it is used to choose an appropriate form for the translation (e.g. "%n file found" vs. "%n files found").
If you need to programmatically insert translations into a QTranslator, this function can be reimplemented.
Reimplemented in TransformTranslator, and QTestTranslator.
Definition at line 1113 of file qtranslator.cpp.