2016-08-04 16 views
1

Ich möchte Qt Übersetzungsdatei qt_ru.qm als Ressource in meiner Anwendung hinzufügen, QLibraryInfo::location(QLibraryInfo::TranslationsPath) gibt zurück: D:\Programming\tools\Qt\5.5\msvc2013\translations. Wenn ich versuche, eine Datei mit dem Ressourceneditor hinzuzufügen, wird darauf hingewiesen, dass sich die Datei außerhalb des Projektverzeichnisses befindet und vorschlägt, sie zu kopieren. Aber ich möchte das nicht tun. Ist es möglich, eine Qt-eingebaute Variable, die auf den Übersetzungspfad zeigt, zu ersetzen? Etwas wie:Qt Pfade im Ressourcensystem

<RCC> 
    <qresource prefix="/"> 
     <file alias="qt_ru.qm">%QtPathToTranslation%/qt_ru.qm</file> 
    </qresource> 
</RCC> 

Antwort

1

Diese Übersetzungsdatei soll zusammen mit Qt bereitgestellt werden. Sie sind nicht dazu gedacht, es den Ressourcen Ihrer Anwendung manuell hinzuzufügen. Da Sie ein dynamisch verknüpftes Build von Qt verwenden, verteilen Sie bereits viele Dateien in einer bestimmten Ordnerstruktur. Die Übersetzungen gehören daher zu dieser Bereitstellung.

+0

Um ehrlich zu sein, ich denke, ein Autor einer ursprünglichen Frage möchte benutzerdefinierte Übersetzung für seine eigene Anwendung bereitstellen, aber aus irgendwelchen Gründen Bezug auf qt_ru.qm, wie ich keine Gründe sehen, Standard-Übersetzungsdateien anpassen .. so was er Es muss eine eigene Datei bereitgestellt und diese Übersetzung installiert werden. – evilruff

+0

Ich versuche, die Bereitstellung zu minimieren, weil die Bereitstellung von Qt5-Anwendung schrecklich ist, wie viel Scheiße ich mit meiner Binärdatei kopieren muss. Also würde ich es vorziehen, Übersetzungen zu aggregieren, anstatt sie dann in "nativer" Qt-Weise zu verwenden. – Jeka

+0

@Jeka Es gibt keinen Sinn für ein solches "Verkleinern". Qt öffnet nur * eine * seiner Übersetzungsdateien, je nach Gebietsschema. Wenn Sie sie als Ressourcen im Vergleich zu einzelnen Dateien bereitstellen, sind Sie in Bezug auf den Platz praktisch leer. Wenn Sie sie alle als Ressourcen bündeln, werden sie dem Adressraum der ausführbaren Datei zugeordnet, und möglicherweise werden sie unnötigerweise von der Festplatte abgerufen, wenn der Anwendungs-Prefetch aktiv ist. ** Manchmal ist es richtig, Dinge als Dateien auf dem Dateisystem zu belassen, und das ist ein solcher Fall. ** Warum sind Sie so besorgt über die Anzahl der Dateien? Ihr Installateur sollte das für Sie erledigen. –

1

Sie wäre es besser einsetzen mit windeployqt und lassen Qt verwenden sie in ihrer „nativen“ Art und Weise.