summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2017-06-22 03:38:09 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-06-22 04:19:23 -0700
commitba2b5d85059c8f08e1e3b0f92f274e80e7b81a39 (patch)
treeeca51df63d7fb9e6014ded4a2e0125e55e8cb5b0
parent6e785a7bfc40bb6bf8780728c1a818abcac83c0e (diff)
downloadsubsurface-ba2b5d85059c8f08e1e3b0f92f274e80e7b81a39.tar.gz
Add en_US translation for plurals
This way in the en_US locale we no longer get shown the odd "dive(s)" and instead get correct singular and plural forms. Most of the patch is just a reindentation as it removes the if clause that used to do the special case of NOT loading a translation for the en_US case. Right now we start with a trivial en_US translation file. My guess is that this will be overwritten once we do the next round of "new strings, new translations". Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--core/qt-init.cpp41
-rw-r--r--packaging/ios/Subsurface-mobile/translations.qrc1
-rw-r--r--translations/CMakeLists.txt1
-rw-r--r--translations/subsurface_en_US.ts18
4 files changed, 38 insertions, 23 deletions
diff --git a/core/qt-init.cpp b/core/qt-init.cpp
index 9eebd8421..1e74e9b07 100644
--- a/core/qt-init.cpp
+++ b/core/qt-init.cpp
@@ -40,32 +40,27 @@ void init_qt_late()
QString uiLang = uiLanguage(&loc);
QLocale::setDefault(loc);
- // we don't have translations for English - if we don't check for this
- // Qt will proceed to load the second language in preference order - not what we want
- // on Linux this tends to be en-US, but on the Mac it's just en
- if (!uiLang.startsWith("en") || uiLang.startsWith("en-GB")) {
- qtTranslator = new QTranslator;
- QString translationLocation;
+ qtTranslator = new QTranslator;
+ QString translationLocation;
#if defined(Q_OS_ANDROID)
- translationLocation = QLatin1Literal("assets:/translations");
+ translationLocation = QLatin1Literal("assets:/translations");
#elif defined(Q_OS_IOS)
- translationLocation = QLatin1Literal(":/translations/");
+ translationLocation = QLatin1Literal(":/translations/");
#else
- translationLocation = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ translationLocation = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
#endif
- if (qtTranslator->load(loc, "qt", "_", translationLocation)) {
- application->installTranslator(qtTranslator);
- } else {
- qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << translationLocation;
- }
- ssrfTranslator = new QTranslator;
- if (ssrfTranslator->load(loc, "subsurface", "_") ||
- ssrfTranslator->load(loc, "subsurface", "_", translationLocation) ||
- ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) ||
- ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) {
- application->installTranslator(ssrfTranslator);
- } else {
- qDebug() << "can't find Subsurface localization for locale" << uiLang;
- }
+ if (qtTranslator->load(loc, "qt", "_", translationLocation)) {
+ application->installTranslator(qtTranslator);
+ } else {
+ qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << translationLocation;
+ }
+ ssrfTranslator = new QTranslator;
+ if (ssrfTranslator->load(loc, "subsurface", "_") ||
+ ssrfTranslator->load(loc, "subsurface", "_", translationLocation) ||
+ ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) ||
+ ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) {
+ application->installTranslator(ssrfTranslator);
+ } else {
+ qDebug() << "can't find Subsurface localization for locale" << uiLang;
}
}
diff --git a/packaging/ios/Subsurface-mobile/translations.qrc b/packaging/ios/Subsurface-mobile/translations.qrc
index 7a6bade70..43f841814 100644
--- a/packaging/ios/Subsurface-mobile/translations.qrc
+++ b/packaging/ios/Subsurface-mobile/translations.qrc
@@ -6,6 +6,7 @@
<file>translations/subsurface_de_CH.qm</file>
<file>translations/subsurface_de_DE.qm</file>
<file>translations/subsurface_en_GB.qm</file>
+ <file>translations/subsurface_en_US.qm</file>
<file>translations/subsurface_es_ES.qm</file>
<file>translations/subsurface_et_EE.qm</file>
<file>translations/subsurface_fi_FI.qm</file>
diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt
index effa9812f..64a1e6bed 100644
--- a/translations/CMakeLists.txt
+++ b/translations/CMakeLists.txt
@@ -13,6 +13,7 @@ set(TRANSLATION_FILES
subsurface_de_DE.ts
subsurface_el_GR.ts
subsurface_en_GB.ts
+ subsurface_en_US.ts
subsurface_es_ES.ts
subsurface_et_EE.ts
subsurface_fi_FI.ts
diff --git a/translations/subsurface_en_US.ts b/translations/subsurface_en_US.ts
new file mode 100644
index 000000000..d859792c3
--- /dev/null
+++ b/translations/subsurface_en_US.ts
@@ -0,0 +1,18 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="en_US" version="2.1">
+<context>
+ <name>LocationFilterDelegate</name>
+ <message numerus="yes">
+ <location filename="../desktop-widgets/modeldelegates.cpp" line="504"/>
+ <source>, %n dive(s) here)</source>
+ <translation><numerusform>, %n dive here)</numerusform><numerusform>, %n dives here)</numerusform></translation>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message numerus="yes">
+ <location filename="../core/qthelper.cpp" line="997"/>
+ <source>(%n dive(s))</source>
+ <translation><numerusform>(%n dive)</numerusform><numerusform>(%n dives)</numerusform></translation>
+ </message>
+</context>
+</TS>