Dynamische Sprachumstellung

Alles rund um die Programmierung mit Qt
Antworten
Tyrdal
Beiträge: 28
Registriert: 12. Juni 2009 12:45

Dynamische Sprachumstellung

Beitrag von Tyrdal »

Ich kapier die Doku nicht. Man kann laut ihr mehrere Translatoren installieren und bei jedem Installationsvorgange würde ein LanguageChange Event gesendet. Stellt sich mir die Frage wie kann ich jetzt zwischen den verschiedenen Translatoren umschalten?
Mani99
Beiträge: 244
Registriert: 15. April 2009 10:46
Wohnort: München

Beitrag von Mani99 »

Du lädst einfach die richtige sprachdatei, hier anhand der doku die die auf dem system eingestellt ist.

Code: Alles auswählen

     QTranslator qtTranslator;
     qtTranslator.load("deine_sprach_datei_" + QLocale::system().name(),
             QLibraryInfo::location(QLibraryInfo::TranslationsPath));
     app.installTranslator(&qtTranslator);
Strahlex
Beiträge: 158
Registriert: 23. Dezember 2008 15:49
Wohnort: Österreich

Beitrag von Strahlex »

Nicht vergessen das du bei einem dynamischen Sprachwechsel die komplette GUI neu übersetzen musst (retranslateUi() mit ui. Datei oder händisch bei zur Laufzeit erstellten Widgets)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

retranslateUI ist aber nur eine Funktion die nur vom uic bereitgestellt wird.
Strahlex
Beiträge: 158
Registriert: 23. Dezember 2008 15:49
Wohnort: Österreich

Beitrag von Strahlex »

Hab ich doch geschrieben oder hab ich mich schlecht ausgedrückt? Hab natürlich gemeint das man zur Laufzeit erstellte Widgets händisch (in einer selbst erstellten Funktion) neu übersetzen muss.
Tyrdal
Beiträge: 28
Registriert: 12. Juni 2009 12:45

Beitrag von Tyrdal »

Ok, inzwischen funktioniert es, aber die Doku ist in dem Punkt echt schlecht. Erstens der Punkt mit mehereren Translatoren lade, da hab ich gedacht ich lad erst alle Sprachen und schalte dann zwischen denen um. Das zweite ist, das ich das erste Laden und Installieren unbedingt in der main Funktion machen muß, sonst funktionierts nirgendwo.
Antworten