Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QTranslator Class Reference

\inmodule QtCore More...

#include <qtranslator.h>

+ Inheritance diagram for QTranslator:
+ Collaboration diagram for QTranslator:

Public Member Functions

 QTranslator (QObject *parent=nullptr)
 Constructs an empty message file object with parent parent that is not connected to any file.
 
 ~QTranslator ()
 Destroys the object and frees any allocated resources.
 
virtual QString translate (const char *context, const char *sourceText, const char *disambiguation=nullptr, int n=-1) const
 Returns the translation for the key (context, sourceText, disambiguation).
 
virtual bool isEmpty () const
 Returns true if this translator is empty, otherwise returns false.
 
QString language () const
 
QString filePath () const
 
bool 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.
 
bool load (const QLocale &locale, const QString &filename, const QString &prefix=QString(), const QString &directory=QString(), const QString &suffix=QString())
 
bool load (const uchar *data, int len, const QString &directory=QString())
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

\inmodule QtCore

The QTranslator class provides internationalization support for text output.

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:

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTranslator translator;
// look up e.g. :/i18n/myapp_de.qm
if (translator.load(QLocale(), "myapp"_L1, "_"_L1, ":/i18n"_L1))
QPushButton hello(QCoreApplication::translate("main", "Hello world!"));
hello.resize(100, 30);
hello.show();
return app.exec();
}

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 18 of file qtranslator.h.

Constructor & Destructor Documentation

◆ QTranslator()

QTranslator::QTranslator ( QObject * parent = nullptr)
explicit

Constructs an empty message file object with parent parent that is not connected to any file.

Definition at line 383 of file qtranslator.cpp.

Referenced by ProxyTranslator::setLanguage().

+ Here is the caller graph for this function:

◆ ~QTranslator()

QTranslator::~QTranslator ( )

Destroys the object and frees any allocated resources.

Definition at line 392 of file qtranslator.cpp.

References d, QCoreApplication::instance(), and QCoreApplication::removeTranslator().

+ Here is the call graph for this function:

Member Function Documentation

◆ filePath()

QString QTranslator::filePath ( ) const
Since
5.15

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 1121 of file qtranslator.cpp.

References d.

◆ isEmpty()

bool QTranslator::isEmpty ( ) const
virtual

Returns true if this translator is empty, otherwise returns false.

This function works with stripped and unstripped translation files.

Reimplemented in ProxyTranslator.

Definition at line 1094 of file qtranslator.cpp.

References d.

◆ language()

QString QTranslator::language ( ) const
Since
5.15

Returns the target language as stored in the translation file.

Definition at line 1106 of file qtranslator.cpp.

References d.

◆ load() [1/3]

bool QTranslator::load ( const QLocale & locale,
const QString & filename,
const QString & prefix = QString(),
const QString & directory = QString(),
const QString & suffix = QString() )
Since
4.8

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

  • File name without suffix appended.
  • File name with ui language part after a "_" character stripped and suffix.
  • File name with ui language part stripped without suffix appended.
  • File name with ui language part stripped further, etc. \endlist

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 \endlist

On operating systems where file system is case sensitive, QTranslator also tries to load a lower-cased version of the locale name.

Definition at line 729 of file qtranslator.cpp.

References d, directory, and find_translation().

+ Here is the call graph for this function:

◆ load() [2/3]

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

  • File name without suffix appended.
  • File name with text after a character in search_delimiters stripped ("_." is the default for search_delimiters if it is an empty string) and suffix.
  • File name stripped without suffix appended.
  • File name stripped further, etc. \endlist

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 \endlist

Usually, 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 445 of file qtranslator.cpp.

References d, directory, dotQmLiteral(), QString::endsWith(), i, QString::isNull(), isRelative(), QString::lastIndexOf(), QStringLiteral, and QString::size().

+ Here is the call graph for this function:

◆ load() [3/3]

bool QTranslator::load ( const uchar * data,
int len,
const QString & directory = QString() )

Definition at line 753 of file qtranslator.cpp.

References d, directory, magic, and MagicLength.

◆ translate()

QString QTranslator::translate ( const char * context,
const char * sourceText,
const char * disambiguation = nullptr,
int n = -1 ) const
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.

Note
Incomplete translations may result in unexpected behavior: If no translation for (context, sourceText, "") is provided, the method might in this case actually return a translation for a different disambiguation.

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.

See also
load()

Reimplemented in ProxyTranslator.

Definition at line 1083 of file qtranslator.cpp.

References context, and d.


The documentation for this class was generated from the following files: