diff --git a/app/gui/qt/SonicPi.qrc b/app/gui/qt/SonicPi.qrc
index 1529c8bd26..8637160a41 100644
--- a/app/gui/qt/SonicPi.qrc
+++ b/app/gui/qt/SonicPi.qrc
@@ -190,7 +190,7 @@
lang/sonic-pi_ug.qm
lang/sonic-pi_uk.qm
lang/sonic-pi_vi.qm
- lang/sonic-pi_zh-Hans.qm
+ lang/sonic-pi_zh_Hans.qm
lang/sonic-pi_zh_HK.qm
lang/sonic-pi_zh.qm
lang/sonic-pi_zh_TW.qm
diff --git a/app/gui/qt/lang/sonic-pi_zh-Hans.ts b/app/gui/qt/lang/sonic-pi_zh_Hans.ts
similarity index 100%
rename from app/gui/qt/lang/sonic-pi_zh-Hans.ts
rename to app/gui/qt/lang/sonic-pi_zh_Hans.ts
diff --git a/app/gui/qt/main.cpp b/app/gui/qt/main.cpp
index fa57aefd3e..660de9a750 100644
--- a/app/gui/qt/main.cpp
+++ b/app/gui/qt/main.cpp
@@ -18,8 +18,6 @@
#include
#include
#include
-#include
-#include
#include
#include "mainwindow.h"
diff --git a/app/gui/qt/mainwindow.cpp b/app/gui/qt/mainwindow.cpp
index 354874ba39..436c85091c 100644
--- a/app/gui/qt/mainwindow.cpp
+++ b/app/gui/qt/mainwindow.cpp
@@ -150,7 +150,7 @@ MainWindow::MainWindow(QApplication &app, QSplashScreen* splash)
initProcess->waitForFinished();
// Throw all stdout into ~/.sonic-pi/log/gui.log
- //setupLogPathAndRedirectStdOut();
+ setupLogPathAndRedirectStdOut();
std::cout << "[GUI] - Welcome to the Sonic Pi GUI" << std::endl;
std::cout << "[GUI] - ===========================" << std::endl;
@@ -1944,39 +1944,41 @@ void MainWindow::changeSystemPreAmp(int val, int silent)
statusBar()->showMessage(tr("Updating System Volume..."), 2000);
}
+// TODO: Implement real-time language switching
void MainWindow::changeUILanguage(QString lang) {
if (lang != piSettings->language) {
- std::cout << "New language selected: " << lang.toUtf8().constData() << std::endl;
- QString old_lang = sonicPii18n->getNativeLanguageName(piSettings->language);
- QString new_lang = sonicPii18n->getNativeLanguageName(lang);
-
- // Load new language
- //QString language = sonicPii18n->determineUILanguage(lang);
- //sonicPii18n->loadTranslations(language);
- //QString title_new = tr("Updated the UI language from %s to %s").arg();
-
- QMessageBox msgBox(this);
- msgBox.setText(tr("You've selected a new language: %s").arg(new_lang));
- msgBox.setInformativeText(tr("Do you want to apply these new settings?\nApplying the new language will restart Sonic Pi."));
- QPushButton *restartButton = msgBox.addButton(tr("Apply & Restart"), QMessageBox::ActionRole);
- QPushButton *dismissButton = msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
- msgBox.setDefaultButton(restartButton);
- msgBox.setIcon(QMessageBox::Information);
- msgBox.exec();
-
- if (msgBox.clickedButton() == (QAbstractButton*)restartButton) {
- piSettings->language = lang;
- writeSettings();
- restartApp();
- //statusBar()->showMessage(tr("Updated UI language setting, please restart Sonic Pi to apply it"), 2000);
- } else if (msgBox.clickedButton() == (QAbstractButton*)dismissButton) {
- settingsWidget->updateSelectedUILanguage(piSettings->language);
- }
+ std::cout << "Current language: " << piSettings->language.toUtf8().constData() << std::endl;
+ std::cout << "New language selected: " << lang.toUtf8().constData() << std::endl;
+ QString old_lang = sonicPii18n->getNativeLanguageName(piSettings->language);
+ QString new_lang = sonicPii18n->getNativeLanguageName(lang);
+
+ // Load new language
+ //QString language = sonicPii18n->determineUILanguage(lang);
+ //sonicPii18n->loadTranslations(language);
+ //QString title_new = tr("Updated the UI language from %s to %s").arg();
+
+ QMessageBox msgBox(this);
+ msgBox.setText(QString(tr("You've selected a new language: %1")).arg(new_lang));
+ msgBox.setInformativeText(tr("Do you want to apply this language?\nApplying the new language will restart Sonic Pi."));
+ QPushButton *restartButton = msgBox.addButton(tr("Apply and Restart"), QMessageBox::ActionRole);
+ QPushButton *dismissButton = msgBox.addButton(tr("Cancel"), QMessageBox::RejectRole);
+ msgBox.setDefaultButton(restartButton);
+ msgBox.setIcon(QMessageBox::Information);
+ msgBox.exec();
+
+ if (msgBox.clickedButton() == (QAbstractButton*)restartButton) {
+ piSettings->language = lang;
+ writeSettings();
+ restartApp();
+ //statusBar()->showMessage(tr("Updated UI language setting, please restart Sonic Pi to apply it"), 2000);
+ } else if (msgBox.clickedButton() == (QAbstractButton*)dismissButton) {
+ // Don't apply the new language settings
+ settingsWidget->updateSelectedUILanguage(piSettings->language);
+ }
- // Load previously set language
- //sonicPii18n->loadTranslations(ui_language);
+ // Load previously set language
+ //sonicPii18n->loadTranslations(ui_language);
}
-
}
@@ -3916,6 +3918,8 @@ void MainWindow::updateContext(int line, int index){
}
+// TODO: Implement real-time language switching
+// This is currently unused, but put in place to aid in implementing real-time language switching in the future
void MainWindow::updateTranslatedUIText() {
// Widget titles
prefsWidget->setWindowTitle(tr("Preferences"));
diff --git a/app/gui/qt/mainwindow.h b/app/gui/qt/mainwindow.h
index dda281cd1f..18f523bbb7 100644
--- a/app/gui/qt/mainwindow.h
+++ b/app/gui/qt/mainwindow.h
@@ -296,6 +296,7 @@ class MainWindow : public QMainWindow
// void initPrefsWindow();
void initDocsWindow(QString language);
+ void addTutorialDocsTab(QString lang);
void addLangDocsTab();
void addSynthDocsTab();
void addFXDocsTab();
@@ -324,8 +325,6 @@ class MainWindow : public QMainWindow
void addUniversalCopyShortcuts(QTextEdit *te);
void updateTranslatedUIText();
- void restartApp();
-
QMenu *liveMenu, *codeMenu, *audioMenu, *displayMenu, *viewMenu, *ioMenu, *ioMidiInMenu, *ioMidiOutMenu, *ioMidiOutChannelMenu, *localIpAddressesMenu, *themeMenu, *scopeKindVisibilityMenu;
SonicPiSettings *piSettings;
diff --git a/app/gui/qt/ruby_help.tmpl b/app/gui/qt/ruby_help.tmpl
deleted file mode 100644
index f32467ad3a..0000000000
--- a/app/gui/qt/ruby_help.tmpl
+++ /dev/null
@@ -1,18 +0,0 @@
-//--
-// This file is part of Sonic Pi: http://sonic-pi.net
-// Full project source: https://github.com/samaaron/sonic-pi
-// License: https://github.com/samaaron/sonic-pi/blob/master/LICENSE.md
-//
-// Copyright 2013, 2014 by Sam Aaron (http://sam.aaron.name).
-// All rights reserved.
-//
-// Permission is granted for use, copying, modification, distribution,
-// and distribution of modified versions of this work as long as this
-// notice is included.
-//++
-
-#pragma once
-
-// AUTO-GENERATED-DOCS
-// Do not manually add any code below this comment
-// otherwise it may be removed
diff --git a/app/gui/qt/utils/lang_list.h b/app/gui/qt/utils/lang_list.h
index f3c147c870..5ce73582b0 100644
--- a/app/gui/qt/utils/lang_list.h
+++ b/app/gui/qt/utils/lang_list.h
@@ -21,14 +21,18 @@
std::map SonicPii18n::native_language_names = {
{"system_locale", ""},
{"bg", "български"},
+{"bn", "বাংলা"},
{"bs", "Bosanski/босански"},
{"ca", "Català"},
+{"ca@valencia", "Valencià"},
{"cs", "Čeština"},
{"da", "Dansk"},
{"de", "Deutsch"},
{"el", "ελληνικά"},
-{"en-GB", "English (UK)"},
-{"en-US", "English (US)"},
+{"en_AU", "English (Australian)"},
+{"en_GB", "English (UK)"},
+{"en_US", "English (US)"},
+{"eo", "Esperanto"},
{"es", "Español"},
{"et", "Eesti keel"},
{"fa", "فارسی"},
@@ -50,7 +54,7 @@ std::map SonicPii18n::native_language_names = {
{"nl", "Nederlands"},
{"pl", "Polski"},
{"pt", "Português"},
-{"pt-BR", "Português do Brasil"},
+{"pt_BR", "Português do Brasil"},
{"ro", "Română"},
{"ru", "Pусский"},
{"si", "සිංහල"},
@@ -58,14 +62,14 @@ std::map SonicPii18n::native_language_names = {
{"sl", "Slovenščina"},
{"sv", "Svenska"},
{"sw", "Kiswahili"},
-{"ti", "ไทย"},
+{"th", "ไทย"},
{"tr", "Türkçe"},
{"ug", "ئۇيغۇر تىلى"},
{"uk", "Українська"},
{"vi", "Tiếng Việt"},
-{"zh", "繁體中文"},
-{"zh-Hans", "简体中文"},
-{"zh-Hk", "廣東話"},
-{"zh-TW", "臺灣華語"}
+{"zh", "简体中文"},
+{"zh_Hans", "简体中文"},
+{"zh_HK", "廣東話"},
+{"zh_TW", "臺灣華語"}
};
#endif
diff --git a/app/gui/qt/utils/sonic_pi_i18n.cpp b/app/gui/qt/utils/sonic_pi_i18n.cpp
index 7cfc5bc043..76d1a62a17 100644
--- a/app/gui/qt/utils/sonic_pi_i18n.cpp
+++ b/app/gui/qt/utils/sonic_pi_i18n.cpp
@@ -2,9 +2,7 @@
#include
#include
#include
-#include
#include
-#include
#include
#include
@@ -16,11 +14,29 @@
SonicPii18n::SonicPii18n(QString rootpath) {
this->root_path = rootpath;
this->available_languages = findAvailableLanguages();
+ // Set to true unless we can't load the system language
+ this->system_language_available = true;
+
+ // // Print all Qt's language codes for debugging
+ // QList allLocales = QLocale::matchingLocales(
+ // QLocale::AnyLanguage,
+ // QLocale::AnyScript,
+ // QLocale::AnyCountry);
+ // QStringList iso639LanguageCodes;
+ //
+ // for(const QLocale &locale : allLocales) {
+ // iso639LanguageCodes << locale.name();
+ // }
+ //
+ // std::cout << iso639LanguageCodes.join("\n").toUtf8().constData() << std::endl;
+}
+
+SonicPii18n::~SonicPii18n() {
}
QString SonicPii18n::determineUILanguage(QString lang_pref) {
QStringList available_languages = getAvailableLanguages();
- std::cout << available_languages.join("\n").toUtf8().constData() << '\n';
+ std::cout << available_languages.join("\n").toUtf8().constData() << std::endl;
QLocale locale;
if (lang_pref != "system_locale") {
@@ -34,7 +50,7 @@ QString SonicPii18n::determineUILanguage(QString lang_pref) {
general_name.truncate(general_name.lastIndexOf('-'));
if (available_languages.contains(general_name)) {
- return lang_pref;
+ return general_name;
}
} else {
QStringList preferred_languages = locale.uiLanguages();
@@ -42,14 +58,20 @@ QString SonicPii18n::determineUILanguage(QString lang_pref) {
// ...run through the list of preferred languages
std::cout << "Looping through preferred ui languages" << std::endl;
+ QString l;
for (int i = 0; i < preferred_languages.length(); i += 1) {
- if (available_languages.contains(preferred_languages[i])) {
- return lang_pref;
+ l = preferred_languages[i];
+ l.replace("-", "_");
+
+ std::cout << preferred_languages[i].toUtf8().constData() << std::endl;
+ if (available_languages.contains(l)) {
+ return l;
}
}
}
- // Fallback to English
+ // Fpreferred_languages[i]preferred_languages[i]preferred_languages[i]allback to English
+ this->system_language_available = false;
return "en";
}
@@ -65,12 +87,16 @@ QStringList SonicPii18n::findAvailableLanguages() {
for (int i = 0; i < fileNames.size(); ++i) {
// get locale extracted by filename
QString locale;
- locale = fileNames[i]; // "TranslationExample_de.qm"
- locale.truncate(locale.lastIndexOf('.')); // "TranslationExample_de"
- locale.remove(0, locale.lastIndexOf("sonic-pi_") + 9); // "de"
+ locale = fileNames[i]; // "sonic-pi_pt_BR.qm"
+ locale.truncate(locale.lastIndexOf('.')); // "sonic-pi_pt_BR"
+ locale.remove(0, locale.lastIndexOf("sonic-pi_") + 9); // "pt_BR"
+ //locale.replace("_", "-"); // Replace underscores with dashes so it matches the language codes e.g: "pt-BR"
std::cout << locale.toUtf8().constData() << '\n';
languages << locale;
}
+ // Add the source language
+ languages << "en_GB";
+ languages.sort();
return languages;
}
@@ -99,25 +125,29 @@ bool SonicPii18n::loadTranslations(QString lang) {
}
QStringList SonicPii18n::getAvailableLanguages() {
- return self->available_languages;
+ return this->available_languages;
}
-static std::map SonicPii18n::getLanguageNameList() {
- return self->native_language_names;
+std::map SonicPii18n::getNativeLanguageNameList() {
+ return native_language_names;
}
-static QString SonicPii18n::getNativeLanguageName(QString lang) {
- if (native_language_names.contains(lang))
- return self->native_language_names[lang];
- else if (lang == "system_locale") {
- return tr("System language")
+QString SonicPii18n::getNativeLanguageName(QString lang) {
+ std::map::iterator it = native_language_names.find(lang);
+ if(it != native_language_names.end()) {
+ // language found
+ return native_language_names[lang];
+ } else if (lang == "system_locale") {
+ return tr("System language");
} else {
+ std::cout << "Warning: Predefined language name not found'" << lang.toUtf8().constData() << "'" << std::endl;
// Try using QLocale to find the native language name
QLocale locale(lang);
- if (locale.language != QLanguage::C) {
+ QString name = locale.nativeLanguageName();
+ if (name != "C" && name != "") {
return locale.nativeLanguageName();
} else {
- std::cout << "Warning: Invalid language code '" << lang.toUtf8().constData() << "'" << std:endl;
+ std::cout << "Warning: Invalid language code '" << lang.toUtf8().constData() << "'" << std::endl;
return lang;
}
}
diff --git a/app/gui/qt/utils/sonic_pi_i18n.h b/app/gui/qt/utils/sonic_pi_i18n.h
index 0477baf4e8..4e03f94bdc 100644
--- a/app/gui/qt/utils/sonic_pi_i18n.h
+++ b/app/gui/qt/utils/sonic_pi_i18n.h
@@ -20,13 +20,16 @@
class SonicPii18n : public QObject {
public:
SonicPii18n(QString rootpath);
+ ~SonicPii18n();
public slots:
QString determineUILanguage(QString lang_pref);
QStringList getAvailableLanguages();
- static std::map getLanguageNameList();
- static QString getNativeLanguageName(QString lang);
+ std::map getNativeLanguageNameList();
+ QString getNativeLanguageName(QString lang);
bool loadTranslations(QString lang);
+
+ bool system_language_available;
private:
QString root_path;
@@ -36,7 +39,5 @@ public slots:
static std::map native_language_names;
QStringList findAvailableLanguages();
-
-
};
#endif
diff --git a/app/gui/qt/widgets/settingswidget.cpp b/app/gui/qt/widgets/settingswidget.cpp
index 18caf08be4..8e38af0339 100644
--- a/app/gui/qt/widgets/settingswidget.cpp
+++ b/app/gui/qt/widgets/settingswidget.cpp
@@ -27,6 +27,7 @@ SettingsWidget::SettingsWidget(int port, bool i18n, SonicPiSettings *piSettings,
this->sonicPii18n = sonicPii18n;
this->localeNames = sonicPii18n->getNativeLanguageNameList();
this->available_languages = sonicPii18n->getAvailableLanguages();
+ available_languages.prepend("system_locale");
server_osc_cues_port = port;
prefTabs = new QTabWidget();
@@ -49,7 +50,7 @@ SettingsWidget::SettingsWidget(int port, bool i18n, SonicPiSettings *piSettings,
QGroupBox *update_prefs_box = createUpdatePrefsTab();
prefTabs->addTab(update_prefs_box, tr("Updates"));
- if (!i18n) {
+ if (!sonicPii18n->system_language_available) {
QGroupBox *translation_box = new QGroupBox("Translation");
QVBoxLayout *translation_box_layout = new QVBoxLayout;
QLabel *go_translate = new QLabel;
@@ -59,7 +60,7 @@ SettingsWidget::SettingsWidget(int port, bool i18n, SonicPiSettings *piSettings,
QLocale::languageToString(QLocale::system().language()) +
" yet.
" +
"We rely on crowdsourcing to help create and maintain translations.
" +
- "" +
+ "" +
"Please consider helping to translate Sonic Pi to your language. "
);
go_translate->setTextFormat(Qt::RichText);
@@ -388,6 +389,11 @@ QGroupBox* SettingsWidget::createEditorPrefsTab() {
language_option_label->setText(tr("UI & Tutorial Language (Requires a restart to take effect)"));
language_option_label->setToolTip(tr("Change the language of the UI & Tutorial (Requires a restart to take effect)"));
+ language_info_label = new QLabel;
+ language_info_label->setText(tr("Translations have been generously provided by volunteers"));
+
+ language_option_label->setText(tr("UI & Tutorial Language (Requires a restart to take effect)"));
+
QVBoxLayout *language_box_layout = new QVBoxLayout;
language_box_layout->addWidget(language_combo);
language_box_layout->addWidget(language_option_label);
@@ -398,7 +404,7 @@ QGroupBox* SettingsWidget::createEditorPrefsTab() {
gridEditorPrefs->addWidget(editor_look_feel_box, 0, 1);
gridEditorPrefs->addWidget(automation_box, 1, 1);
gridEditorPrefs->addWidget(debug_box, 1, 0);
- gridEditorPrefs->addWidget(language_box, 2, 0);
+ gridEditorPrefs->addWidget(language_box, 2, 0, 1, 2);
editor_box->setLayout(gridEditorPrefs);
return editor_box;
@@ -538,6 +544,7 @@ void SettingsWidget::toggleScope( QWidget* qw ) {
void SettingsWidget::updateUILanguage(int index) {
QString lang = available_languages[index];
+ std::cout << "Changed language to " << lang.toUtf8().constData() << std::endl;
emit uiLanguageChanged(lang);
}
@@ -763,7 +770,7 @@ void SettingsWidget::settingsChanged() {
}
void SettingsWidget::connectAll() {
- connect(language_combo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateSettings()));
+ //connect(language_combo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateSettings()));
connect(language_combo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUILanguage(int)));
connect(mixer_invert_stereo, SIGNAL(clicked()), this, SLOT(updateSettings()));
connect(mixer_force_mono, SIGNAL(clicked()), this, SLOT(updateSettings()));
@@ -849,22 +856,15 @@ void SettingsWidget::add_language_combo_box_entries(QComboBox* combo) {
std::cout << "[Debug] Adding language " << language.toUtf8().data() << " to the combo box" << std::endl;
if (language != "system_locale") {
// Add the language's name to the combo box
- combo->addItem(localeNames[language]);
+ combo->addItem(sonicPii18n->getNativeLanguageName(language));
} else {
combo->addItem(tr("Use system language"));
}
}
}
-
-//
-//
-//
-//
-//
-
-
-
+// TODO: Implement real-time language switching
+// This is currently unused, but put in place aid implementing real-time language switching in the future
void SettingsWidget::updateTranslatedUIText() {
/**
* IO Tab
diff --git a/app/gui/qt/widgets/settingswidget.h b/app/gui/qt/widgets/settingswidget.h
index 2b282b6c6c..8acac55430 100644
--- a/app/gui/qt/widgets/settingswidget.h
+++ b/app/gui/qt/widgets/settingswidget.h
@@ -24,7 +24,7 @@ class SettingsWidget : public QWidget
Q_OBJECT
public:
- SettingsWidget(int server_osc_cues_port, bool i18n, SonicPiSettings *piSettings, SonicPii18n *sonicPii18n, QWidget *parent = 0);
+ SettingsWidget(int server_osc_cues_port, bool i18n, SonicPiSettings *piSettings, SonicPii18n *sonicPii18n, QWidget *parent = nullptr);
~SettingsWidget();
void updateVersionInfo( QString info_string, QString visit, bool sonic_pi_net_visible, bool check_now_visible);
@@ -37,8 +37,6 @@ class SettingsWidget : public QWidget
QSize sizeHint() const;
- void updateTranslatedUIText();
-
private slots:
void updateUILanguage(int index);
void update_mixer_invert_stereo();
diff --git a/app/server/ruby/bin/qt-doc.rb b/app/server/ruby/bin/qt-doc.rb
index dde57044e7..e6b403c531 100644
--- a/app/server/ruby/bin/qt-doc.rb
+++ b/app/server/ruby/bin/qt-doc.rb
@@ -27,38 +27,23 @@
require 'active_support/inflector'
-
include SonicPi::Util
-# Clear all the folders
-FileUtils::rm_rf "#{qt_gui_path}/help/"
-FileUtils::mkdir "#{qt_gui_path}/help/"
-
-FileUtils::rm_rf "#{qt_gui_path}/info/"
-FileUtils::mkdir "#{qt_gui_path}/info/"
-
-FileUtils::rm_rf "#{qt_gui_path}/book/"
-FileUtils::mkdir "#{qt_gui_path}/book/"
-
-# Copy images for tutorial
-FileUtils::cp_r("#{etc_path}/doc/images", "#{qt_gui_path}/help/")
-
# List of all languages with GUI translation files
-# Commented out languages currently have no translated strings
@lang_names = Hash[
"bg" => "български", # Bulgarian
- #"bn" => "বাংলা", # Bengali/Bangla
+ "bn" => "বাংলা", # Bengali/Bangla
"bs" => "Bosanski/босански", # Bosnian
"ca" => "Català", # Catalan
- #"ca@valencia" => "Valencià", # Valencian
+ "ca@valencia" => "Valencià", # Valencian
"cs" => "Čeština", # Czech
"da" => "Dansk", # Danish
"de" => "Deutsch", # German
"el" => "ελληνικά", # Greek
- #"en-AU" => "English (Australian)", # English (Australian)
- "en-GB" => "English (UK)", # English (UK) - default language
- "en-US" => "English (US)", # English (US)
- #"eo" => "Esperanto", # Esperanto
+ "en_AU" => "English (Australian)", # English (Australian)
+ "en_GB" => "English (UK)", # English (UK) - default language
+ "en_US" => "English (US)", # English (US)
+ "eo" => "Esperanto", # Esperanto
"es" => "Español", # Spanish
"et" => "Eesti keel", # Estonian
"fa" => "فارسی", # Persian
@@ -80,7 +65,7 @@
"nl" => "Nederlands", # Dutch (Netherlands)
"pl" => "Polski", # Polish
"pt" => "Português", # Portuguese
- "pt-BR" => "Português do Brasil", # Brazilian Portuguese
+ "pt_BR" => "Português do Brasil", # Brazilian Portuguese
"ro" => "Română", # Romanian
"ru" => "Pусский", # Russian
"si" => "සිංහල", # Sinhala/Sinhalese
@@ -88,17 +73,30 @@
"sl" => "Slovenščina",#/Slovenski Jezik", # Slovenian
"sv" => "Svenska", # Swedish
"sw" => "Kiswahili", # Swahili
- "ti" => "ไทย", # Thai
+ "th" => "ไทย", # Thai
"tr" => "Türkçe", # Turkish
"ug" => "ئۇيغۇر تىلى", # Uyghur
"uk" => "Українська", # Ukranian
"vi" => "Tiếng Việt", # Vietnamese
- "zh" => "繁體中文", # Mandarin Chinese (Traditional)
- "zh-Hans" => "简体中文", # Mandarin Chinese (Simplified)
- "zh-Hk" => "廣東話", # Cantonese
- "zh-TW" => "臺灣華語" # Taiwanese Mandarin
+ "zh" => "简体中文", # Mandarin Chinese (Simplified)
+ "zh_Hans" => "简体中文", # Mandarin Chinese (Simplified)
+ "zh_HK" => "廣東話", # Mandarin Chinese (Traditional, Hong Kong)
+ "zh_TW" => "臺灣華語" # Mandarin Chinese (Traditional, Taiwan)
]
+# Clear all the folders
+FileUtils::rm_rf "#{qt_gui_path}/help/"
+FileUtils::mkdir "#{qt_gui_path}/help/"
+
+FileUtils::rm_rf "#{qt_gui_path}/info/"
+FileUtils::mkdir "#{qt_gui_path}/info/"
+
+FileUtils::rm_rf "#{qt_gui_path}/book/"
+FileUtils::mkdir "#{qt_gui_path}/book/"
+
+# Copy images for tutorial
+FileUtils::cp_r("#{etc_path}/doc/images", "#{qt_gui_path}/help/")
+
#docs = []
@filenames = []
@count = 0
@@ -529,7 +527,6 @@ def generate_ui_lang_names
f << " \n\n"
end
-
###
# Generate info pages
###
@@ -560,4 +557,5 @@ def generate_ui_lang_names
end
+
generate_ui_lang_names()