Hallo zusammen,
ich habe folgendes Problem: Mein Programm lädt aus einer Datenbank eine Liste von Begriffen, die dem Benutzer in einer Liste bzw. einem LineEdit angezeigt werden. Alle Begriffe sind auf Deutsch in der Datenbank eingetragen. Jetzt soll das Programm um die Sprache Englisch erweitert werden. Die Sprachauswahl funktioniert soweit auch. Es werden auch alle GUI Elemente übersetzt. Die Frage ist aber, wie ich diesen Begriffe aus der Datenbank übersetzen kann ? Gibt es eine Möglichkeit das Programm dazu zu bringen, dass immer, bevor ein QString in einem LineEdit angezeigt wird, in die Sprachdatei nach einer Übersetzung zu schauen ? Bzw. wenn ich die Begriffe in einem ListWidget anzeige und die Sprache wechsel, dass auch diese Begriffe dann übersetzt werden ?
Grüße
tuxing
Online-Übersetzung von Eingaben
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Online-Übersetzung von Eingaben
QObject::tr() und co sind hier gefragt.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Online-Übersetzung von Eingaben
aber dann stünde in meinem Textfeld sowas beispielsweise:
Die Variable my_string_from_database kann jetzt Beispielsweise die Werte "rot", "grün" und "blau" haben. Aber wenn ich die tr Funktion verwende, kennt der QtLinguist, mit dem ich die Übersetzungen ja erzeugen könnte, die Variablen dennoch nicht. Ich habe mir deshalb einen eigenen Übersetzer für solche Fälle implementiert. Funktioniert prima.
Oder gibt es dennoch eine Möglichkeit die translate Funktionen von Qt zu verwenden ?
Danke schonmal für den ersten Hinweis.
Grüße
Code: Alles auswählen
label.setText(my_string_from_database);
Oder gibt es dennoch eine Möglichkeit die translate Funktionen von Qt zu verwenden ?
Danke schonmal für den ersten Hinweis.
Grüße
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Online-Übersetzung von Eingaben
Man muss dem Linguist natürlich die Texte geben. Lesen hilft: http://qt-project.org/doc/qt-4.8/intern ... ation.html
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Online-Übersetzung von Eingaben
hm .. ok ich hätte mir zwar eher konstruktive Anregungen gewünscht, aber danke. Den Artikel hatte ich vorher schon gelesen. Was dort interessant ist, ist folgende Codefragment:
Allerdings ist das für meinen Anwendungsfall absoluter quatsch. Ich müsste sämtliche meiner Vokabeln hier angeben und dann noch nach der richtigen jeweils suchen. Genau das habe ich in meinem eigenen Übersetzer ja getan. In dem Punkt kann ich mir den Linguist dann auch sparen. Ich entnehme der eher spärlichen Antwort also mal, dass es nicht möglich ist dem Linguist einfach eine Art Wörterbuch beizubringen, sodass mit der tr-Funktion dann beliebige Wörter übersetzt werden können.
Dennoch danke.
Code: Alles auswählen
QString FriendlyConversation::greeting(int type)
{
static const char *greeting_strings[] = {
QT_TR_NOOP("Hello"),
QT_TR_NOOP("Goodbye")
};
return tr(greeting_strings[type]);
}
Dennoch danke.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Online-Übersetzung von Eingaben
Ob Du die zu übersetzenden Texte extra irgendwo angibst oder als QT_TR_NOOP und dann einfach mittels tr() & linguist übersetzt und extra noch etwas hand-made programmierst - da würde ich doch eher auf linguist setzen. Aber ist deine Sache.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung