[gelöst]Problem mit qt-Linguist

Alles rund um die Programmierung mit Qt
Antworten
bpl
Beiträge: 12
Registriert: 19. Juni 2006 14:04

[gelöst]Problem mit qt-Linguist

Beitrag 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]
Zuletzt geändert von bpl am 20. Juni 2006 12:35, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Problem mit qt-Linguist

Beitrag 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?
bpl
Beiträge: 12
Registriert: 19. Juni 2006 14:04

Re: Problem mit qt-Linguist

Beitrag 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!
bpl
Beiträge: 12
Registriert: 19. Juni 2006 14:04

Gelöst!

Beitrag 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
Antworten