Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C++ - Pretypovanie v Qt

Ahoj,
jak správně píše MM.., je potřeba použít editor podporující UTF-8 (a soubor uložit jako UTF-8!) nebo použít něco z následujících řešení:

Horší řešení je použít něco jako:

const QString str = QString::fromLocal8Bit("Deň");
ui->lblPopis->setText(str);
Mnohem lepší je pak použít Qt Linguist, kde je možné veškeré řetězce vyskytující se v aplikaci přeložit do libovolného jazyka. Jen je pak nutné s aplikací dodávat i soubor *.qm a ještě před zobrazením hlavního formuláře aplikace správně načíst tento jazykový soubor. To se dělá takto:

int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
 
        /** Nacteni systemovych stringu - zobrazuji se napr. v dialogu vyberu souboru, atd. */
	QTranslator qtTranslator;
        qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
        a.installTranslator(&qtTranslator);

        /** Nacteni stringu pro aplikaci, soubor se stringy se jmenuje myapp_{locale}.qm */
        QTranslator myappTranslator;
        myappTranslator.load("myapp_" + QLocale::system().name());
        a.installTranslator(&myappTranslator);

	QMyApp w;
	w.show();
	return a.exec();
}
Soubor *.qm pro českou verzi by byl myapp_cs.qm. Ještě pozor na ty systémové řetězce - v tomto příkladě se soubor obsahující překlady hledá v instalačním adresáři Qt.

EDIT: Po přečtení vlákna vidím, že má odpověď je mimo :-D Takže to prosím ignorujte, možná někomu může přijít zajímavý ten QtLinguist, tak to nemažu.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny