Avec la méthode load(), on l'inconvénient suivant : The previous contents of this translator object are discarded.
Lorsque je dispose de deux fichiers .qm, l'un pour l'application principale et l'autre pour le plugin, et je dois les loader les deux dans main.cpp.
Y'a t-il une solution pourque je puisse générer un seul fichier .qm pour l'application et ses différents plugins?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "../headers/ManagementConsoleView.h"
 
#include <iostream>
 
#include <QtGui>
#include <QApplication>
#include <QTranslator>
#include <QLocale>
#include <QLibraryInfo>
#include <QDir>
 
int main(int argc, char *argv[]) {
	Q_INIT_RESOURCE(ManagementConsole);
 
	QApplication app(argc, argv);
 
	// Traduction des chaines predefinies par Qt dans notre langue
	QString locale = QLocale::system().name();
	QTranslator translator;
	translator.load(QString("qt_") + locale, QLibraryInfo::location(
			QLibraryInfo::TranslationsPath));
	app.installTranslator(&translator);
 
	//======================================================
	//la clef registre pour l'application
	//======================================================
 
	QCoreApplication::setOrganizationName("dotfoss");
	QCoreApplication::setOrganizationDomain("dotfoss.com");
	QCoreApplication::setApplicationName("UTMC");
 
	QSettings settings;
	QString LanguageFile;
	LanguageFile = settings.value("LanguageFile").toString();
	translator.load(LanguageFile);
 
	QDir dir(":/Languages/TranslationsPlugins");
	QStringList fileNames = dir.entryList(QStringList(
				"*_*.qm"), QDir::Files, QDir::Name);
	QMutableStringListIterator i(fileNames);
	while (i.hasNext()) {
		i.next();
		i.setValue(dir.filePath(i.value()));
	}
	for (int j = 0; j < fileNames.size(); j++)
		std::cout << qPrintable(fileNames.at(j)) << std::endl;
 
	QString Language;
	Language = settings.value("Language").toString();
 
	for (int i = 0; i < fileNames.size(); i++) {
		QStringList string1;
		string1.append(fileNames.at(i).split("_"));
		QStringList string2;
		string2.append(string1.value(1).split("."));
		QString string3;
		string3 = string2.value(0);
		if (Language == string3) {
			std::cout << qPrintable(fileNames.at(i)) << std::endl;
			//translator.load(QmFiles.at(i));
		}
	}
 
	app.installTranslator(&translator);
 
	ManagementConsoleView console;
	if (console.SslCheck()) {
		ConnectionView connection(&console);
		int ret = connection.exec();
		if (ret == 1) {
			console.Init();
			//console.show();
		} else
			exit(1);
	} else
		exit(1);
 
	return app.exec();
 
}