ich hab ne weile language support integriert wie ich sehe
desto mehr sprachen ich habe desto mehr wird die binary immer größer
also momentan brauchen alle .qm datein 2 mb.
also 2 MB mehr...
und compilieren dauert immer läner wegen den sprachdateien.
hier meine lang.qrc im /lang ordner
meine /lang/langsupport.cpp:<RCC>
<qresource prefix="/lang">
<file alias="de">rsm_de.qm</file>
<file alias="en">rsm_en.qm</file>
<file alias="es">rsm_es.qm</file>
<file alias="fr">rsm_fr.qm</file>
<file alias="ru">rsm_ru.qm</file>
<file alias="af">rsm_af.qm</file>
<file alias="cn_simp">rsm_cn_simp.qm</file>
<file alias="cn_trad">rsm_cn_trad.qm</file>
<file alias="gr">rsm_gr.qm</file>
<file alias="it">rsm_it.qm</file>
<file alias="jp">rsm_jp.qm</file>
<file alias="kr">rsm_kr.qm</file>
<file alias="pl">rsm_pl.qm</file>
<file alias="pt">rsm_pt.qm</file>
<file alias="tk">rsm_tr.qm</file>
<file alias="sl">rsm_sl.qm</file>
<file alias="da">rsm_dk.qm</file>
</qresource>
</RCC>
Code: Alles auswählen
#include <QTranslator>
#include <QLocale>
#include "languagesupport.h"
/** Static list of supported languages and codes. */
QMap<QString, QString> LanguageSupport::_languages;
/** Initializes the list of available languages. */
void
LanguageSupport::initialize()
{
_languages.clear();
_languages.insert("en", "English");
_languages.insert("de", "Deutsch");
_languages.insert("af", "Afrikaans");
_languages.insert("cn_simp", "Chinese-Simple");
_languages.insert("cn_trad", "Chinese-Trad");
_languages.insert("dk", "danish");
_languages.insert("fr",
QString::fromUtf8("fran\303\247ais"));
_languages.insert("gr", "Greek");
_languages.insert("it", "Italiano");
_languages.insert("jp", "Japanese");
_languages.insert("kr", "Korean");
_languages.insert("pl", "Polish");
_languages.insert("pt", "Portuguese");
_languages.insert("ru",
QString::fromUtf8("\320\240\321\203\321\201\321\201\320\272\320\270\320\271"));
_languages.insert("es",
QString::fromUtf8("spanish"));
_languages.insert("sl", "slovenian");
_languages.insert("tr", "Turkish");
/****
_languages.insert("fi", "Suomi");
_languages.insert("zh-cn",
QString::fromUtf8("\347\256\200\344\275\223\345\255\227"));
***/
}
/** Returns the default language code for the system locale. */
QString
LanguageSupport::defaultLanguageCode()
{
QString localeName = QLocale::system().name();
QString language = localeName.mid(0, localeName.indexOf("_"));
if (language == "zh") {
language += "-" + localeName.mid(localeName.indexOf("_")+1).toLower();
}
if (!isValidLanguageCode(language)) {
language = "en";
}
return language;
}
/** Returns the language code for a given language name. */
QString
LanguageSupport::languageCode(QString languageName)
{
return _languages.key(languageName);
}
/** Returns a list of all supported language codes. (e.g., "en"). */
QStringList
LanguageSupport::languageCodes()
{
return _languages.keys();
}
/** Returns the language name for a given language code. */
QString
LanguageSupport::languageName(QString languageCode)
{
return _languages.value(languageCode);
}
/** Returns a list of all supported language names (e.g., "English"). */
QStringList
LanguageSupport::languageNames()
{
return _languages.values();
}
/** Returns a list of all supported language codes and names. */
QMap<QString, QString>
LanguageSupport::languages()
{
return _languages;
}
/** Returns true if we understand the given language code. */
bool
LanguageSupport::isValidLanguageCode(QString code)
{
return languageCodes().contains(code.toLower());
}
/** Sets the application's translator to the specified language. */
bool
LanguageSupport::translate(QString langCode)
{
if (isValidLanguageCode(langCode)) {
QTranslator *translator = new QTranslator();
if (translator->load(QString(":/lang/") + langCode.toLower())) {
QApplication::installTranslator(translator);
return true;
}
delete translator;
}
return false;
}
code abschnitte:
Code: Alles auswählen
if (translator->load(QString("lang/") + langCode.toLower())) {
QApplication::installTranslator(translator);
return true;und nicht mehr intern oder?
weil so klappts bis jetzt nicht...
ich habe per build.bat
die /lang/*.qm dateien
alle dann ins
release/lang kopiert.
nun ist die binary im release und im lang die language dateien.
was nun ist muss die .pro datein die translations nun raus?
und lang.qrc auch nicht mehr auftauchen im .pro datei?
[/quote]RESOURCES += gui/images.qrc lang/lang.qrc
TRANSLATIONS += \
lang/rsm_de.ts \
lang/rsm_en.ts \
lang/rsm_es.ts \
lang/rsm_fr.ts \
lang/rsm_af.ts \
lang/rsm_cn_simp.ts \
lang/rsm_cn_trad.ts \
lang/rsm_gr.ts \
lang/rsm_it.ts \
lang/rsm_jp.ts \
lang/rsm_kr.ts \
lang/rsm_pl.ts \
lang/rsm_pt.ts \
lang/rsm_ru.ts \
lang/rsm_tr.ts \
lang/rsm_dk.ts \
lang/rsm_sl.ts