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>
This commit is contained in:
Dirk Hohndel 2017-06-22 03:38:09 -07:00
parent 6e785a7bfc
commit ba2b5d8505
4 changed files with 38 additions and 23 deletions

View file

@ -40,32 +40,27 @@ void init_qt_late()
QString uiLang = uiLanguage(&loc); QString uiLang = uiLanguage(&loc);
QLocale::setDefault(loc); QLocale::setDefault(loc);
// we don't have translations for English - if we don't check for this qtTranslator = new QTranslator;
// Qt will proceed to load the second language in preference order - not what we want QString translationLocation;
// 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;
#if defined(Q_OS_ANDROID) #if defined(Q_OS_ANDROID)
translationLocation = QLatin1Literal("assets:/translations"); translationLocation = QLatin1Literal("assets:/translations");
#elif defined(Q_OS_IOS) #elif defined(Q_OS_IOS)
translationLocation = QLatin1Literal(":/translations/"); translationLocation = QLatin1Literal(":/translations/");
#else #else
translationLocation = QLibraryInfo::location(QLibraryInfo::TranslationsPath); translationLocation = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
#endif #endif
if (qtTranslator->load(loc, "qt", "_", translationLocation)) { if (qtTranslator->load(loc, "qt", "_", translationLocation)) {
application->installTranslator(qtTranslator); application->installTranslator(qtTranslator);
} else { } else {
qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << translationLocation; qDebug() << "can't find Qt localization for locale" << uiLang << "searching in" << translationLocation;
} }
ssrfTranslator = new QTranslator; ssrfTranslator = new QTranslator;
if (ssrfTranslator->load(loc, "subsurface", "_") || if (ssrfTranslator->load(loc, "subsurface", "_") ||
ssrfTranslator->load(loc, "subsurface", "_", translationLocation) || ssrfTranslator->load(loc, "subsurface", "_", translationLocation) ||
ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) || ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("translations")) ||
ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) { ssrfTranslator->load(loc, "subsurface", "_", getSubsurfaceDataPath("../translations"))) {
application->installTranslator(ssrfTranslator); application->installTranslator(ssrfTranslator);
} else { } else {
qDebug() << "can't find Subsurface localization for locale" << uiLang; qDebug() << "can't find Subsurface localization for locale" << uiLang;
}
} }
} }

View file

@ -6,6 +6,7 @@
<file>translations/subsurface_de_CH.qm</file> <file>translations/subsurface_de_CH.qm</file>
<file>translations/subsurface_de_DE.qm</file> <file>translations/subsurface_de_DE.qm</file>
<file>translations/subsurface_en_GB.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_es_ES.qm</file>
<file>translations/subsurface_et_EE.qm</file> <file>translations/subsurface_et_EE.qm</file>
<file>translations/subsurface_fi_FI.qm</file> <file>translations/subsurface_fi_FI.qm</file>

View file

@ -13,6 +13,7 @@ set(TRANSLATION_FILES
subsurface_de_DE.ts subsurface_de_DE.ts
subsurface_el_GR.ts subsurface_el_GR.ts
subsurface_en_GB.ts subsurface_en_GB.ts
subsurface_en_US.ts
subsurface_es_ES.ts subsurface_es_ES.ts
subsurface_et_EE.ts subsurface_et_EE.ts
subsurface_fi_FI.ts subsurface_fi_FI.ts

View file

@ -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>