Hallo!
Ich habe mal eine Frage:
Kann man es mit dem Linguist / Translator hinbekommen, dass man in einem laufenden Programm auf einen Button klickt und dann die GUI komplett in einer anderen Sprache dargestellt wird?
Aus den Dokumentationen lese ich bis jetzt nur raus, dass man erst die Translate-Dateien erstellt und dann quasi zwei verschiedene Programme erstellt, eben eins in Sprache1 und das andere in Sprache2.
Eigentlich möchte ich aber die Sprache zur Laufzeit hin und her wechseln können!
Sprache im laufenden Programm änderbar?
-
bassjupp2oo8
- Beiträge: 47
- Registriert: 17. Juli 2008 09:45
-
bassjupp2oo8
- Beiträge: 47
- Registriert: 17. Juli 2008 09:45
Danke für die schnelle Antwort. Das beruhigt mich ja schon mal.
Habe auch ein Beispielprogramm mit Übersetzung komplett hinbekommen.
Aber ich nutze nicht den Qt Designer (falls du das mit dem ui. meinst).
Es gibt also ein HauptWidget, das auch alle anderen (Unter-)Seiten (eigene Klassen) erstellt und aufruft.
Wem kann ich den Aufruf retranslate(this) geben? Dem HauptWidget?
Wird das Widget/die ganze Anwendung dann auch neu gezeichnet (damit dann auf den Buttons die neue Bezeichnung steht?)
Habe auch ein Beispielprogramm mit Übersetzung komplett hinbekommen.
Aber ich nutze nicht den Qt Designer (falls du das mit dem ui. meinst).
Es gibt also ein HauptWidget, das auch alle anderen (Unter-)Seiten (eigene Klassen) erstellt und aufruft.
Wem kann ich den Aufruf retranslate(this) geben? Dem HauptWidget?
Wird das Widget/die ganze Anwendung dann auch neu gezeichnet (damit dann auf den Buttons die neue Bezeichnung steht?)
Das ui. bezog sich auf eine im Designer erstellte Oberfläche.
Ich denke du müsstest dir selber eine Methode schreiben die die Texte der Buttons und Co neu setzt.
z.B.:
Es wird dann der jeweilige Text aus dem Transator in das Widget gesetzt.
Was anderes weiß ich leider nicht.
Ich denke du müsstest dir selber eine Methode schreiben die die Texte der Buttons und Co neu setzt.
z.B.:
Code: Alles auswählen
void CMy::changeLanguage()
{
btn->setText(tr("Button"));
...
}
Was anderes weiß ich leider nicht.
-
bassjupp2oo8
- Beiträge: 47
- Registriert: 17. Juli 2008 09:45
hm. das wäre bei einem großen Projekt natürlich seeehr umfangreich!
Aber mal sehen...
Ich probiere das grad im kleinen Beispielprogramm aus.
Dazu noch eine "Anfängerfrage". Ich erstelle ja in main.cpp den Translator mit QTranslator translator;
dann translator.load(...) usw.
aber wenn der Translator nun etwas neues laden soll (zB nach einem ButtonClick), dann passiert das ja in einer meiner Klassen. Von dort aus habe ich aber keinen Zugriff auf den translator. Wie kann man das lösen?
Könnte man in main.cpp einen Slot bauen, der das dann ausführt? Oder darf man so was in einer main datei nicht?
Aber mal sehen...
Ich probiere das grad im kleinen Beispielprogramm aus.
Dazu noch eine "Anfängerfrage". Ich erstelle ja in main.cpp den Translator mit QTranslator translator;
dann translator.load(...) usw.
aber wenn der Translator nun etwas neues laden soll (zB nach einem ButtonClick), dann passiert das ja in einer meiner Klassen. Von dort aus habe ich aber keinen Zugriff auf den translator. Wie kann man das lösen?
Könnte man in main.cpp einen Slot bauen, der das dann ausführt? Oder darf man so was in einer main datei nicht?
-
bassjupp2oo8
- Beiträge: 47
- Registriert: 17. Juli 2008 09:45
-
bassjupp2oo8
- Beiträge: 47
- Registriert: 17. Juli 2008 09:45