2016-12-15 1 views
0

Welche Chancen habe ich bei der Suche nach allen QStrings, die einen tr() - translate Aufruf in einer sehr alten und sehr großen Anwendung verpassen?Qt: Erkennung eines nicht übersetzten QString (nicht von einem tr())

Ich dachte etwas wie ... machen Sie eine spezielle .ts-Datei für das Debuggen nur verwenden und ein statisches Präfix zu allen Übersetzungen hinzufügen. Setzen Sie dann Qt in eine Art Debug-Modus und listen Sie alle QString auf qDebug oder was auch immer auf - mit der Möglichkeit, nach allem zu filtern, dem das statische Präfix aus der Debug-Übersetzungsdatei fehlt. Ist das möglich?

Oder: Gibt es eine bessere Möglichkeit, unübersetzte QString-Vorkommen zu finden? Dank

Antwort

2

Für ein großes altes Projekt, das ist wahrscheinlich eine Menge Arbeit, aber eine Möglichkeit ist unten:

Zuerst sehen here, Sie wollen, dass diese:

QT_NO_CAST_FROM_ASCII deaktiviert die automatische Konvertierungen von C-String Literale und Zeiger auf Unicode.

für Ihr Projekt definieren, und dann können Sie nicht C Stringliterale schreiben, wo QString erwartet wird. Dann werden Sie wahrscheinlich eine Reihe von Build-Fehlern bekommen, die Sie beheben, indem Sie eine explizite Konvertierung durchführen, indem Sie tr verwenden, wo Sie wollen.

Danach, oder vielleicht vor, die zweimal durch gleiche Strings zu vermeiden gehen, finde-in-Dateien (Strg + Umschalt + F in Qt Creator) für reguläre Ausdrücke wie QString.*", und überprüfen Sie sie alle für Notwendigkeit von tr .

Verwandte Themen