Seite 1 von 1

QTranslator *.ts Übersetzung in statischen Methoden ?

Verfasst: 5. November 2015 10:15
von ralfwickum
Hallo,

ich habe eine *.ts Datei mit allen meinen Übersetzungen. In nicht statischen Klassen funktioniert alles Problemlos:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE" sourcelanguage="en_GB">
<context>
    <name>MainWindow</name>
    <message>
        <location filename="MainWindow.cpp" line="60"/>
        <source>File</source>
        <translation>Datei</translation>
    </message>
</context>
</TS> 
Wenn es sich aber um eine statische Methode handelt, wovon keine Instanz erstellt wurde, funktioniert es nicht. Zum Beispiel gibt es hier in der KlasseMitStatischerMethode.cpp nur eine statische QFileDialog::getOpenFileName() Methode :

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de_DE" sourcelanguage="en_GB">
<context>
    <name>MainWindow</name>
    <message>
        <location filename="MainWindow.cpp" line="60"/>
        <source>File</source>
        <translation>Datei</translation>
    </message>

    <name></name>
    <message>
        <location filename="KlasseMitStatischerMethode.cpp" line="70"/>
        <source>Open File ...</source>
        <translation>Öffne Datei ...</translation>
    </message>

</context>
</TS> 
Wie man sieht ist der tag <Name> dort leer? Wie mache ich es richtig?

Re: QTranslator *.ts Übersetzung in statischen Methoden ?

Verfasst: 5. November 2015 17:59
von Christian81
Und wie hast Du den Text zum Übersetzen markiert? mit tr() ?

Re: QTranslator *.ts Übersetzung in statischen Methoden ?

Verfasst: 6. November 2015 11:20
von ralfwickum
Christian81 hat geschrieben:Und wie hast Du den Text zum Übersetzen markiert? mit tr() ?
Nein, bei statishcen Methoden habe ich statt des tr() das Makro QT_TR_NOOP() verwendet.

Re: QTranslator *.ts Übersetzung in statischen Methoden ?

Verfasst: 6. November 2015 15:52
von Christian81
Dann gibts auch keinen Context
Using QT_TR_NOOP() and QT_TRANSLATE_NOOP()

If you need to have translatable text completely outside a function, there are two macros to help: QT_TR_NOOP() and QT_TRANSLATE_NOOP(). These macros merely mark the text for extraction by lupdate. The macros expand to just the text (without the context).