Qt messagebox do czego jest tr()
Ostatnio zmodyfikowano 2015-12-11 12:32
Masterpc16 Temat założony przez niniejszego użytkownika |
Qt messagebox do czego jest tr() » 2015-12-10 18:52:37 Witajcie mam takie pytanko zacząłem przygodę z biblioteką qt w przykładzie użycia messagebox znalazłem taki "znacznik" tr() nie mam bladego pojęcia do czego on jest jak go usunę to tekst wyświetla się tak samo jak by był w googlach też nie mogę znaleźć rozwiązania pomożecie :) w html oznaczał on komórkę nie wiem czy to ma coś wspólnego z tym Poniżej załączam fragment kodu: QMessageBox::information( this, tr( "Raport" ), "Zalogowano poprawnie witamy w programie" );
|
|
jankowalski25 |
» 2015-12-10 19:35:36 |
|
Masterpc16 Temat założony przez niniejszego użytkownika |
» 2015-12-10 21:14:07 Nie wiem dalej jak tłumaczenie może mieć wpływ na tekst który napisałem (nazwa okna). Mógłbyś coś rozwinąć? |
|
Virpi |
» 2015-12-11 11:03:54 Dodając do pliku projektu: TRANSLATIONS += program_pl.ts TRANSLATIONS += program_en.ts
generujemy pliki z tłumaczeniami, które uwzględniają frazy ujęte w tr() lub trUtf8() itp. Następnie te pliki wczytujemy w programie QtLinguist. Pojawią się wszystkie frazy, które możemy przetłumaczyć. W tym przypadku pojawiłyby się 3 kolumny (tekst w kodzie, tekst pl i tekst en). Uzupełniamy tłumaczenia np. en i generujemy pliki *.qm za pomocą opcji "Release all". Następnie w kodzie programu możemy zrobić coś takiego: QTranslator translator; QSettings s; bool load; if( !s.contains( "language" ) || s.value( "language" ) == 1 ) load = translator.load( "program_pl" ); else load = translator.load( "program_uk" );
if( load ) a.installTranslator( & translator );
Gdy załadowanie nie udaje się, to prawdopodobnie pliki te nie zostały umieszczone w dobrej lokalizacji (podobnie jak to jest z teksturami itp.). Ważne jest też to, że ten kod należy umieścić przed utworzeniem głównego okna. Aby przetłumaczyć wszystko już w trakcie działania programu należy na każdym QWidget wykonać metodę ui->retranslateUi(...) co jest uciążliwe, więc zaleca się po prostu restart programu z załadowanym innym translatorem. |
|
Masterpc16 Temat założony przez niniejszego użytkownika |
» 2015-12-11 12:32:01 Dzięki za odpowiedź :) |
|
« 1 » |