Exemplo n.º 1
0
void MythTranslation::load(const QString &module_name)
{
    d.Init();

    // unload any previous version
    unload(module_name);

    // install translator
    QString lang = d.m_language.toLower();

    if (d.m_language.isEmpty())
    {
        lang = "en_us";
    }

    if (lang == "en")
    {
        gCoreContext->SetSetting("Language", "en_US");
        gCoreContext->SaveSetting("Language", "en_US");
        lang = "en_us";
    }

    QTranslator *trans = new QTranslator(0);
    if (trans->load(GetTranslationsDir() + module_name
                    + "_" + lang + ".qm", "."))
    {
        LOG(VB_GENERAL, LOG_INFO,
            QString("Loading %1 translation for module %2")
                .arg(lang).arg(module_name));
        qApp->installTranslator(trans);
        d.m_translators[module_name] = trans;
    }
    else
    {
        LOG(VB_GENERAL, LOG_ERR, QString("Error Loading %1 translation for "
                                        "module %2").arg(lang)
                                        .arg(module_name));
    }
}
Exemplo n.º 2
0
QMap<QString, QString> MythTranslation::getLanguages(void)
{
    QMap<QString, QString> langs;

    QDir translationDir(GetTranslationsDir());
    translationDir.setNameFilters(QStringList("mythfrontend_*.qm"));
    translationDir.setFilter(QDir::Files);
    QFileInfoList translationFiles = translationDir.entryInfoList();
    QFileInfoList::const_iterator it;
    for (it = translationFiles.constBegin(); it != translationFiles.constEnd();
         ++it)
    {
        // We write the names incorrectly as all lowercase, so fix this before
        // sending to QLocale
        QString languageCode = (*it).baseName().section('_', 1, 1);
        QString countryCode = (*it).baseName().section('_', 2, 2);
        if (!countryCode.isEmpty())
            languageCode = QString("%1_%2").arg(languageCode)
                                           .arg(countryCode.toUpper());

        MythLocale locale(languageCode);
        QString language = locale.GetNativeLanguage();
        if (language.isEmpty())
            language = locale.GetLanguage(); // Fall back to English

        if (!countryCode.isEmpty())
        {
            QString country = locale.GetNativeCountry();
            if (country.isEmpty())
                country = locale.GetCountry(); // Fall back to English

            language.append(QString(" (%1)").arg(country));
        }

        langs[languageCode] = language;
    }

    return langs;
}
Exemplo n.º 3
0
QString FindTranslation(const QString &translation)
{
    return GetTranslationsDir()
           + "mythfrontend_" + translation.toLower() + ".qm";
}