Hallo zusammen,
ich habe das Problem, dass QPrintDialog bei mir unter Linux grundsätzlich in englischer Sprache ausgegeben wird. Die Systemsprache steht auf deutsch und QPrintDialog::locale() ergibt auch, dass "deutsch" eingestellt ist.
Unter Windows erscheint der Dialog wie gewünscht in der Systemsprache.
Außerdem würde ich ich Sprache des Dialogs gerne einstellen können, was eigentlich z.B. mit QPrintDialog::setLocale(QLocale::French) gehen sollte ?
Sowohl unter Winows als auch unter Linux ändert sich da aber gar nix...
Woran könnte das liegen bzw. was mache ich falsch ?
Sprache von QPrintDialog
-
Flachkoepper
- Beiträge: 149
- Registriert: 11. Januar 2005 12:14
- Wohnort: Hannover
Das Problem hatte ich auch. Korrektes laden der deutschen Übersetzungen in meiner main.cpp hat geholfen:
HTH,
F.
Code: Alles auswählen
QApplication app( argc, argv );
// Lade deutsche Übersetzung aus den Resourcen:
QString translatorFileName = QLatin1String("qt_");
translatorFileName += QLocale::system().name();
QTranslator *translator = new QTranslator(&app);
if (translator->load(translatorFileName, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
app.installTranslator(translator);
F.
Hast recht, wenn man denn passenden Translator manuell installiert, dann klappts.
Das bedeutet auch, dass eigentlich alle Dialoge (z.B. auch QFileDialog) betroffen sind.
Das wäre dann aber ein ziemlich fetter Bug, der eigentlich schon längst jemandem hätte auffallen müssen ??! Daran will ich irgenwie nicht so recht glauben, zumal mir das in Bezug auf QPrintDialog schon seit mindestens Qt4.3.1 aufgefallen ist...
Wie steht's denn mit dem Ändern der Dialog-Sprachen ? Liege ich da mit setLocale(...) richtig ?
Das bedeutet auch, dass eigentlich alle Dialoge (z.B. auch QFileDialog) betroffen sind.
Das wäre dann aber ein ziemlich fetter Bug, der eigentlich schon längst jemandem hätte auffallen müssen ??! Daran will ich irgenwie nicht so recht glauben, zumal mir das in Bezug auf QPrintDialog schon seit mindestens Qt4.3.1 aufgefallen ist...
Wie steht's denn mit dem Ändern der Dialog-Sprachen ? Liege ich da mit setLocale(...) richtig ?
-
Flachkoepper
- Beiträge: 149
- Registriert: 11. Januar 2005 12:14
- Wohnort: Hannover
Mit QLocale änderst du nur die Formatierung von Zahlen und Zeichen -> Doku. Und abgesehen davon, dass ich nicht wüßte, warum man bei einzelnen Dialogen die Sprache ändern möchte, würde ich tippen, das das auch irgendwie mit installTranslator und removeTranslator gehen müsste.
Und was das grundsätzliche Problem angeht, dass unter Linux erstmal alle Dialoge in Englisch dargestellt werden und unter Windows in Deutsch, scheint auf einen Unterschied zwischen Linux und Win hinzudeuten, über den sicher irgendwer hier im Forum mehr sagen kann
Gruß,
F.
Und was das grundsätzliche Problem angeht, dass unter Linux erstmal alle Dialoge in Englisch dargestellt werden und unter Windows in Deutsch, scheint auf einen Unterschied zwischen Linux und Win hinzudeuten, über den sicher irgendwer hier im Forum mehr sagen kann
Gruß,
F.
Bist du sicher, dass sich QLocale nur auf die Formatierung von Zahlen und Zeichen bezieht ? Ich dachte das beinhaltet mehr...Mit QLocale änderst du nur die Formatierung von Zahlen und Zeichen -> Doku. Und abgesehen davon, dass ich nicht wüßte, warum man bei einzelnen Dialogen die Sprache ändern möchte, würde ich tippen, das das auch irgendwie mit installTranslator und removeTranslator gehen müsste.
Das Ändern der Dialogsprache aus dem Programm heraus ist dann sinnvoll/notwendig, wenn das Programm mehrere Sprachen unterstützt und diese vom Benutzer einstellbar ist. Wenn dieser die Programmsprache z.B. auf einem "deutschen" System auf "englisch" stellt, dann sollte es möglich sein, die Sprache z.B. des Druckdialogs ebenfalls auf englisch zu setzen.
Bei mehreren unterstützten Programmsprachen kann ich auch nicht einfach den Translator wechseln, weil mir dann meine Übersetzungen für den Rest des Programms flöten gehen.
Deshalb frag' ichUnd was das grundsätzliche Problem angeht, dass unter Linux erstmal alle Dialoge in Englisch dargestellt werden und unter Windows in Deutsch, scheint auf einen Unterschied zwischen Linux und Win hinzudeuten, über den sicher irgendwer hier im Forum mehr sagen kann
Gruss,
Frank
-
Flachkoepper
- Beiträge: 149
- Registriert: 11. Januar 2005 12:14
- Wohnort: Hannover
The QLocale class converts between numbers and their string representations in various languages.
Warum nicht einfach immer das gewünschte Translatorfile laden und gut ist? Oder wolltest du den PrintDialog auf Spanisch, den FileDialog auf polnisch etc.?Bei mehreren unterstützten Programmsprachen kann ich auch nicht einfach den Translator wechseln, weil mir dann meine Übersetzungen für den Rest des Programms flöten gehen