From 45f26f55ba439da01466fea030266ef341c73f34 Mon Sep 17 00:00:00 2001 From: Reinder Feenstra Date: Tue, 4 Jul 2023 22:21:53 +0200 Subject: [PATCH] Added neutral language file for strings that don't need translation --- client/src/main.cpp | 7 ++++--- client/src/settings/generalsettingswidget.cpp | 2 ++ server/src/main.cpp | 3 ++- shared/translations/json2lang.py | 2 +- shared/translations/neutral.json | 2 ++ 5 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 shared/translations/neutral.json diff --git a/client/src/main.cpp b/client/src/main.cpp index 4cdd8e28..114a5112 100644 --- a/client/src/main.cpp +++ b/client/src/main.cpp @@ -99,15 +99,16 @@ int main(int argc, char* argv[]) const bool logMissingStrings = !DeveloperSettings::instance().logMissingStringsDir.value().isEmpty(); - Locale* fallback = nullptr; + const auto localePath = getLocalePath(); + Locale* fallback = new Locale(localePath / "neutral.lang"); if(language != languageDefault && !DeveloperSettings::instance().dontLoadFallbackLanguage) { - fallback = new Locale(getLocalePath() / languageDefault.toStdString().append(".lang")); + fallback = new Locale(localePath / languageDefault.toStdString().append(".lang"), fallback); if(logMissingStrings) fallback->enableMissingLogging(); } - Locale::instance = new Locale(getLocalePath() / language.toStdString().append(".lang"), fallback); + Locale::instance = new Locale(localePath / language.toStdString().append(".lang"), fallback); if(logMissingStrings) const_cast(Locale::instance)->enableMissingLogging(); diff --git a/client/src/settings/generalsettingswidget.cpp b/client/src/settings/generalsettingswidget.cpp index 449b3b0d..09743772 100644 --- a/client/src/settings/generalsettingswidget.cpp +++ b/client/src/settings/generalsettingswidget.cpp @@ -54,6 +54,8 @@ GeneralSettingsWidget::GeneralSettingsWidget(QWidget* parent) while(it.hasNext()) { const QString filename = it.next(); + if(QFileInfo(filename).baseName() == "neutral") + continue; const QString label = getLanguageName(filename); if(!label.isEmpty()) { diff --git a/server/src/main.cpp b/server/src/main.cpp index 43e3cfab..39bbf5a3 100644 --- a/server/src/main.cpp +++ b/server/src/main.cpp @@ -86,7 +86,8 @@ int main(int argc, char* argv[]) } #endif - Locale::instance = new Locale(getLocalePath() / "en-us.lang"); + const auto localePath = getLocalePath(); + Locale::instance = new Locale(localePath / "en-us.lang", new Locale(localePath / "neutral.lang")); if(enableConsoleLogger) Log::enableConsoleLogger(); diff --git a/shared/translations/json2lang.py b/shared/translations/json2lang.py index 5376d55d..d5c5e033 100644 --- a/shared/translations/json2lang.py +++ b/shared/translations/json2lang.py @@ -30,7 +30,7 @@ if __name__ == "__main__": import re path = os.path.realpath(os.path.dirname(__file__)) for item in os.scandir(path): - if re.match(r'^[a-z]{2}-[a-z]{2}\.json$', item.name) is not None: + if re.match(r'^([a-z]{2}-[a-z]{2}|neutral)\.json$', item.name) is not None: filename_json = os.path.join(path, item.name) filename_lang = os.path.splitext(filename_json)[0] + '.lang' if not os.path.exists(filename_lang) or os.path.getmtime(filename_json) > os.path.getmtime(filename_lang): diff --git a/shared/translations/neutral.json b/shared/translations/neutral.json new file mode 100644 index 00000000..32960f8c --- /dev/null +++ b/shared/translations/neutral.json @@ -0,0 +1,2 @@ +[ +] \ No newline at end of file