diff --git a/source/main.cpp b/source/main.cpp index 5fa87d8..72a4277 100755 --- a/source/main.cpp +++ b/source/main.cpp @@ -3,6 +3,9 @@ #include #include #include +#include +#include +#include #include "CPP/cppmanager.h" #include "CPP/mainmanager.h" @@ -10,28 +13,47 @@ #include "CPP/pluginmanager.h" #include "CPP/qmlmanager.h" -bool loadTr(QGuiApplication &app){ - QTranslator translator; +void setFont(const QGuiApplication& app){ + + QString fontPath = "://ubuntu"; + int fontId = QFontDatabase::addApplicationFont(fontPath); + if (fontId != -1) + { + QFont font(QFontDatabase::applicationFontFamilies(fontId).at(0)); + app.setFont(font); + } +} + +bool initLocale(const QString &locale, QGuiApplication& app, QTranslator &translator){ QString defaultLocale = QLocale::system().name(); defaultLocale.truncate(defaultLocale.lastIndexOf('_')); + if(!locale.isEmpty() && translator.load(QString(":/languages/%0").arg(locale))){ + return app.installTranslator(&translator); + } + if(!translator.load(QString(":/languages/%0").arg(defaultLocale))){ return false; } - app.installTranslator(&translator); - - return true; + return app.installTranslator(&translator); } int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); + setFont(app); + + QTranslator translator; + + QString locale = ""; app.setWindowIcon(QIcon("://icon")); - loadTr(app); + if(!initLocale(locale, app, translator)){ + std::cout << "error load language : " << locale.toStdString() <res/icon.png QML/Header.qml QML/About.qml + res/ubuntu.ttf languages/en.qm diff --git a/source/res/ubuntu.ttf b/source/res/ubuntu.ttf new file mode 100644 index 0000000..45a038b Binary files /dev/null and b/source/res/ubuntu.ttf differ