Seite 1 von 1

[gelöst]Problem mit qt-Linguist

Verfasst: 19. Juni 2006 15:12
von bpl
Hallo,
ich habe folgendes Problem. Ich habe mit Lupdate XXX.pro meine Language-Files erstellt. Diese habe ich editiert und mit Lrelease die Runtimervers. erstellt. Jedoch werden keine Änderungen in meinem Programm angezeigt.
Wäre sehr nett wenn mir einer helfen könnte, hier mein Code der Main-Datei:

Code: Alles auswählen

#include <qapplication.h>
#include <qtranslator.h>
#include <qstring.h>
#include "awr_lng_pre_check.h"
#include "mainform.h"

int main( int argc, char ** argv )
{
    QString Language;
	QApplication a( argc, argv );

	bool file_exist = chkConfigFile(); //if awr_config.cfg exist = true
	
	if (file_exist)
	{
		Language = GetLanguage();
		if (Language == "German")
		{
			QTranslator translator( 0 );
			translator.load( "rxml_gr.qm", "." );
			a.installTranslator( &translator );
		}
		else
		{
			if (Language == "English")
			{
				QTranslator translator( 0 );
				translator.load( "rxml_en", "." );
				a.installTranslator( &translator );
			}
			else
			{
				QTranslator translator( 0 );
				translator.load( "rxml_en", "." );
				a.installTranslator( &translator );
			}
		}

	}

	mainForm m;
    a.setMainWidget( &m );
    m.show();
	//mainForm *w = new mainForm;
	//w->show();
    //a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );;
    return a.exec();
}
Mit hilfe einer Temp Variable habe ich festgestellt das der translator die Datei ach findet!

Die Projektdatei:

Code: Alles auswählen

unix {
  UI_DIR = .ui
  MOC_DIR = .moc
  OBJECTS_DIR = .obj
}

TRANSLATIONS    = rxml_gr.ts \
		  rxml_en.ts
TEMPLATE	= app
LANGUAGE	= C++

CONFIG	+= qt warn_on release


HEADERS	+= awr_remote_xml.h
SOURCES	+= main.cpp
FORMS	= mainform.ui
IMAGES	= images/searchfind \
	images/exit.png \
	images/filenew.png \
	images/open.png \
	images/appicon.png \
	images/filesave.png \
	images/listview.png \
	images/undo.png \
	images/deutsche_fl.png \
	images/engl_flag.png

Wie schon erwähnt, wäre sehr dankbar wenn mir jemand helfen könnte, da ich keine Ideen mehr habe, was ich noch ändern kann, damit es endlich läuft.

mfg
Plies[/code]

Re: Problem mit qt-Linguist

Verfasst: 19. Juni 2006 16:12
von macman
bpl hat geschrieben:

Code: Alles auswählen

			translator.load( "rxml_gr.qm", "." );
Kleiner Tipp: http://www.loc.gov/standards/iso639-2/langcodes.html

bpl hat geschrieben:Mit hilfe einer Temp Variable habe ich festgestellt das der translator die Datei ach findet!
Was meinst Du damit? translator.load gibt true zurück?

Re: Problem mit qt-Linguist

Verfasst: 19. Juni 2006 16:16
von bpl
macman hat geschrieben:
bpl hat geschrieben:

Code: Alles auswählen

			translator.load( "rxml_gr.qm", "." );
Kleiner Tipp: http://www.loc.gov/standards/iso639-2/langcodes.html

bpl hat geschrieben:Mit hilfe einer Temp Variable habe ich festgestellt das der translator die Datei ach findet!
Was meinst Du damit? translator.load gibt true zurück?
Exakt! Wenn ich bool temp = translator.load..... benutze ist temp == true!

Gelöst!

Verfasst: 20. Juni 2006 12:35
von bpl
Problem gelöst!!!

Für all die, die dasselbe Problem haben, so würde es funktionieren:

Code: Alles auswählen

 QString Language;
    QApplication a( argc, argv );
	QTranslator translator( 0 );

    bool file_exist = chkConfigFile(); //if awr_config.cfg exist = true
	
    if (file_exist)
    {
	Language = GetLanguage();
	if (Language == "German")
	{
	    bool temp = translator.load( QString("rxml_de"), "." );
	    a.installTranslator( &translator );
	}
	else
	{
	    if (Language == "English")
	    {
		bool temp = translator.load(QString("rxml_en"), "." );
		a.installTranslator( &translator );
	    }
	    else
	    {
		translator.load(QString("rxml_en"), "." );
		a.installTranslator( &translator );
	    }
	}
	
    }
    else //Load Default Language - File == English
    {
	translator.load(QString("rxml_en"), "." );
	a.installTranslator( &translator );
    }
    
    mainForm *m = new mainForm;
    a.setMainWidget(m );
    m->show();
    //mainForm *w = new mainForm;
    //w->show();
    //a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );;
    return a.exec();

translator sollte doch als Klassenvariable deklariert werden, sonst ist diese beim erstellen der MainForm nicht mehr bekannt!

mfg