IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

la méthode load() de QTranslator


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut la méthode load() de QTranslator
    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();
     
    }

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    En faite il y as remplacement uniquement des partie en commun dans les qm.
    Donc si le qm de ton appli et le qm de tes plugin n'ont aucune traduction commune, tu ne devrais pas avoir de problème.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    J'ai des parties communes entre l'application et ses différents plugins.
    Lorsque j'essaye de charger mon plugin avec la langue par défaut, rien n'est affiché.
    Que dois-je faire?

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    Comment devrais-je créer un seul .ts pour l'application principale et ses plugins sans avoirs recours à copier coller et remplacer les textes des balises file location.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/04/2010, 22h42
  2. Utiliser la méthode .load
    Par kahoerre dans le forum Excel
    Réponses: 7
    Dernier message: 11/03/2010, 17h22
  3. méthodes load et main
    Par new_wave dans le forum VB.NET
    Réponses: 11
    Dernier message: 20/05/2009, 22h40
  4. appel de la méthode load
    Par new_wave dans le forum VB.NET
    Réponses: 1
    Dernier message: 17/05/2009, 20h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo