Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions app/gui/qt/utils/sonicpi_i18n.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ SonicPii18n::~SonicPii18n() {

QString SonicPii18n::determineUILanguage(QString lang_pref) {
QStringList available_languages = getAvailableLanguages();
//std::cout << available_languages.join("\n").toUtf8().constData() << std::endl;
QLocale locale;

if (lang_pref != "system_language") {
Expand All @@ -45,17 +44,18 @@ QString SonicPii18n::determineUILanguage(QString lang_pref) {
} else {
QStringList preferred_languages = locale.uiLanguages();
// If the setting is set to system_language...
// ...run through the list of preferred languages
// ...run through the list of preferred languages
std::cout << "[GUI] [i18n] - Looping through preferred ui languages" << std::endl;

QString l;
for (int i = 0; i < preferred_languages.length(); i += 1) {
l = preferred_languages[i];
l.replace("-", "_");

//std::cout << preferred_languages[i].toUtf8().constData() << std::endl;
if (available_languages.contains(l)) {
return l;
return l;
} else if (l == "en" || l == "C") { // Catch generic English lang codes
return "en";
}
}
}
Expand Down
15 changes: 5 additions & 10 deletions app/gui/qt/widgets/settingswidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -622,11 +622,7 @@ void SettingsWidget::updateUILanguage(int index) {
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();

// Show confirmation box
QMessageBox msgBox(this);
msgBox.setText(QString(tr("You've selected a new language: %1")).arg(new_lang));
QString info_text = (
Expand All @@ -636,7 +632,9 @@ void SettingsWidget::updateUILanguage(int index) {
);

if (lang == "system_language") {
info_text = tr("System languages found: %1").arg(sonicPii18n->getNativeLanguageNames(sonicPii18n->getSystemLanguages()).join(", ")) + "\n" + info_text;
// Determine the actual language to load
QString actual_lang = sonicPii18n->determineUILanguage(lang);
info_text = tr("System language found: %1").arg(sonicPii18n->getNativeLanguageName(actual_lang)) + "\n" + info_text;
}

msgBox.setInformativeText(info_text);
Expand Down Expand Up @@ -920,10 +918,7 @@ void SettingsWidget::settingsChanged() {
language_detail_text += "<b>Failed to load language translation. Using English (UK).</b>";
}
if (piSettings->language == "system_language") {
language_detail_text += (
tr("System languages: %1\n").arg(sonicPii18n->getNativeLanguageNames(sonicPii18n->getSystemLanguages()).join(", "))
+ tr("Current UI language: %1\n").arg(sonicPii18n->getNativeLanguageName(sonicPii18n->currentlyLoadedLanguage()))
);
language_detail_text += tr("System language: %1\n").arg(sonicPii18n->getNativeLanguageName(sonicPii18n->currentlyLoadedLanguage()));
}
language_details_label->setText(language_detail_text);

Expand Down
1 change: 1 addition & 0 deletions app/server/ruby/bin/qt-doc.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

# List of all languages with GUI translation files
@lang_names = Hash[
"ar" => "اَلْعَرَبِيَّةُ", # Arabic
"bg" => "български", # Bulgarian
"bn" => "বাংলা", # Bengali/Bangla
"bs" => "Bosanski", # Bosnian
Expand Down