Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Qt messagebox do czego jest tr()

Ostatnio zmodyfikowano 2015-12-11 12:32
Autor Wiadomość
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:
C/C++
QMessageBox::information( this, tr( "Raport" ), "Zalogowano poprawnie witamy w programie" );
P-141723
jankowalski25
» 2015-12-10 19:35:36
w googlach też nie mogę znaleźć rozwiązania
Frazy, które należy wpisać w wyszukiwarkę google:
Pierwszy link: Writing Source Code for Translation
P-141727
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ąć?
P-141733
Virpi
» 2015-12-11 11:03:54
Dodając do pliku projektu:
C/C++
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:

C/C++
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.
P-141749
Masterpc16
Temat założony przez niniejszego użytkownika
» 2015-12-11 12:32:01
Dzięki za odpowiedź :)
P-141755
« 1 »
  Strona 1 z 1