| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /**
- * Copyright (c) 2011-2018 by Andrew Mustun. All rights reserved.
- *
- * This file is part of the QCAD project.
- *
- * QCAD is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * QCAD is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with QCAD.
- */
- include("scripts/EAction.js");
- include("scripts/WidgetFactory.js");
- function LanguagePreferences(guiAction) {
- //EAction.call(this, guiAction);
- }
- LanguagePreferences.prototype = {}; //new EAction();
- LanguagePreferences.localLanguageName = [];
- LanguagePreferences.localLanguageName["cs"] = "Čeština";
- LanguagePreferences.localLanguageName["da"] = "Dansk";
- LanguagePreferences.localLanguageName["de"] = "Deutsch";
- LanguagePreferences.localLanguageName["de_DE"] = "Deutsch";
- LanguagePreferences.localLanguageName["en"] = "English";
- LanguagePreferences.localLanguageName["en_US"] = "English";
- LanguagePreferences.localLanguageName["es"] = "Español";
- LanguagePreferences.localLanguageName["fi"] = "Suomi";
- LanguagePreferences.localLanguageName["fr"] = "Français";
- LanguagePreferences.localLanguageName["hu"] = "Magyar";
- LanguagePreferences.localLanguageName["hr"] = "Hrvatski";
- LanguagePreferences.localLanguageName["it"] = "Italiano";
- LanguagePreferences.localLanguageName["ja"] = "日本語";
- LanguagePreferences.localLanguageName["ko"] = "한국어";
- LanguagePreferences.localLanguageName["lt"] = "Lietuvių kalba";
- LanguagePreferences.localLanguageName["nb"] = "Norsk";
- LanguagePreferences.localLanguageName["nl"] = "Nederlands";
- LanguagePreferences.localLanguageName["pl"] = "Polski";
- LanguagePreferences.localLanguageName["pt"] = "Português";
- LanguagePreferences.localLanguageName["pt_BR"] = "Português Brasileiro";
- LanguagePreferences.localLanguageName["ru"] = "ру́сский язы́к";
- LanguagePreferences.localLanguageName["sk"] = "Slovenčina";
- LanguagePreferences.localLanguageName["sl"] = "Slovenščina";
- LanguagePreferences.localLanguageName["sv"] = "Svenska";
- LanguagePreferences.localLanguageName["tr"] = "Türkçe";
- LanguagePreferences.localLanguageName["uk"] = "Українська";
- LanguagePreferences.localLanguageName["zh_TW"] = "繁體中文";
- LanguagePreferences.localLanguageName["zh"] = "简体中文";
- LanguagePreferences.localLanguageName["zh_CN"] = "简体中文";
- LanguagePreferences.getPreferencesCategory = function() {
- return [qsTr("Language Settings"), qsTr("Language")];
- };
- LanguagePreferences.initPreferences = function(pageWidget, calledByPrefDialog, document) {
- // var loc = new QLocale(QLocale.German);
- var language = pageWidget.findChild("UiLanguage");
- // language.addItem("English", "en");
- var codes = LanguagePreferences.getLanguages();
- for (var i = 0; i < codes.length; ++i) {
- var code = codes[i];
- language.addItem(LanguagePreferences.codeToString(code), code);
- }
- language.model().sort(0);
-
- // if (RSettings.getQtVersion() >= 0x060000) {
- // language.currentTextChanged.connect(this, function(text) {
- // RSettings.setValue("LibraryBrowser/RebuildDatabase", true);
- // });
- // }
- // else {
- // language["currentIndexChanged(QString)"].connect(this, function(text) {
- // RSettings.setValue("LibraryBrowser/RebuildDatabase", true);
- // });
- // }
-
- // var contents = pageWidget.findChild("LanguagePage");
- // WidgetFactory.restoreState(pageWidget);
- // var code = RSettings.getLocale();
- // var i = cbLanguage.findText(this.codeToString(code));
- // if (i == -1) {
- // var locale = new QLocale(code);
- // var lang = QLocale.languageToString(locale.language());
- // i = cbLanguage.findText(lang);
- // }
- // if (i > -1) {
- // cbLanguage.setCurrentIndex(i);
- // }
- };
- LanguagePreferences.codeToString = function(code) {
- var locale = new QLocale(code);
- var lang = locale.language();
- var langStrEn = QLocale.languageToString(lang);
- var langStrNational = LanguagePreferences.localLanguageName[code];
- var country = QLocale.countryToString(locale.country());
- var ret = "";
- if (!isNull(langStrNational)) {
- ret += langStrNational + " / ";
- }
- ret += langStrEn;
- if (code.indexOf("_")!==-1) {
- ret += " (" + country + ")";
- }
- return ret;
- };
- LanguagePreferences.getLanguages = function(dirName) {
- if (isNull(dirName)) {
- dirName = "ts";
- }
- var codes = [];
-
- var dir = new QDir(dirName);
- var sortFlags = makeQDirSortFlags(QDir.NoSort);
- /*
- var dirFilter = new QDir.Filters(QDir.NoDotAndDotDot, QDir.Readable,
- QDir.Dirs);
- var dirs = dir.entryInfoList(dirFilter, sortFlags);
-
- for (var i = 0; i < dirs.length; ++i) {
- codes = codes.concat(LanguagePreferences.getLanguages(dirs[i].absoluteFilePath()));
- }
- */
-
- var fileFilter = makeQDirFilters(QDir.Readable, QDir.Files);
- var files = dir.entryInfoList(["*.qm"], fileFilter, sortFlags);
- for (var j = 0; j < files.length; ++j) {
- var fileName = files[j].baseName();
- var code = fileName.match(/(?:(?:_(..))(?:_(..)))$|(?:_(..)$)/, "g");
- if (code===null || code.length!==4) {
- continue;
- }
- if (!isNull(code[3])) {
- code = code[3];
- }
- else {
- code = code[1] + "_" + code[2];
- }
- //qDebug("code: ", code);
- codes.push(code);
- }
- return codes.unique();
- };
|