mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-08 05:06:17 +00:00
translations: initialize water type strings at run time
The water type strings were static and therefore passed through gettextFromC::tr() before main(). One would hope to get a warning in such a case, but this is not the case. Therefore, use the QT_TRANSLATE_NOOP macro to register the strings in Qt's translation system and translate the list when needed. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
9ee85c0802
commit
9d3b15bf9c
3 changed files with 24 additions and 11 deletions
|
@ -626,16 +626,34 @@ QString get_salinity_string(int salinity)
|
||||||
return QStringLiteral("%L1%2").arg(salinity / 10.0).arg(gettextFromC::tr("g/ℓ"));
|
return QStringLiteral("%L1%2").arg(salinity / 10.0).arg(gettextFromC::tr("g/ℓ"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// the water types need to match the watertypes enum
|
||||||
|
static const char *waterTypes[] = {
|
||||||
|
QT_TRANSLATE_NOOP("gettextFromC", "Fresh"),
|
||||||
|
QT_TRANSLATE_NOOP("gettextFromC", "Brackish"),
|
||||||
|
QT_TRANSLATE_NOOP("gettextFromC", "EN13319"),
|
||||||
|
QT_TRANSLATE_NOOP("gettextFromC", "Salt"),
|
||||||
|
QT_TRANSLATE_NOOP("gettextFromC", "Use DC")
|
||||||
|
};
|
||||||
|
|
||||||
QString get_water_type_string(int salinity)
|
QString get_water_type_string(int salinity)
|
||||||
{
|
{
|
||||||
if (salinity < 10050)
|
if (salinity < 10050)
|
||||||
return waterTypes[FRESHWATER];
|
return gettextFromC::tr(waterTypes[FRESHWATER]);
|
||||||
else if (salinity < 10190)
|
else if (salinity < 10190)
|
||||||
return waterTypes[BRACKISHWATER];
|
return gettextFromC::tr(waterTypes[BRACKISHWATER]);
|
||||||
else if (salinity < 10210)
|
else if (salinity < 10210)
|
||||||
return waterTypes[EN13319WATER];
|
return gettextFromC::tr(waterTypes[EN13319WATER]);
|
||||||
else
|
else
|
||||||
return waterTypes[SALTWATER];
|
return gettextFromC::tr(waterTypes[SALTWATER]);
|
||||||
|
}
|
||||||
|
|
||||||
|
QStringList getWaterTypesAsString()
|
||||||
|
{
|
||||||
|
QStringList res;
|
||||||
|
res.reserve(std::end(waterTypes) - std::begin(waterTypes)); // Waiting for C++17's std::size()
|
||||||
|
for (const char *t: waterTypes)
|
||||||
|
res.push_back(gettextFromC::tr(t));
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString getSubsurfaceDataPath(QString folderToFind)
|
QString getSubsurfaceDataPath(QString folderToFind)
|
||||||
|
@ -1178,11 +1196,6 @@ QString localFilePath(const QString &originalFilename)
|
||||||
return localFilenameOf.value(originalFilename, originalFilename);
|
return localFilenameOf.value(originalFilename, originalFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
// the water types need to match the watertypes enum
|
|
||||||
const QStringList waterTypes = {
|
|
||||||
gettextFromC::tr("Fresh"), gettextFromC::tr("Brackish"), gettextFromC::tr("EN13319"), gettextFromC::tr("Salt"), gettextFromC::tr("Use DC")
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: Apparently Qt has no simple way of listing the supported video
|
// TODO: Apparently Qt has no simple way of listing the supported video
|
||||||
// codecs? Do we have to query them by hand using QMediaPlayer::hasSupport()?
|
// codecs? Do we have to query them by hand using QMediaPlayer::hasSupport()?
|
||||||
const QStringList videoExtensionsList = {
|
const QStringList videoExtensionsList = {
|
||||||
|
|
|
@ -38,7 +38,7 @@ int getCloudURL(QString &filename);
|
||||||
bool parseGpsText(const QString &gps_text, double *latitude, double *longitude);
|
bool parseGpsText(const QString &gps_text, double *latitude, double *longitude);
|
||||||
void init_proxy();
|
void init_proxy();
|
||||||
QString getUUID();
|
QString getUUID();
|
||||||
extern const QStringList waterTypes;
|
QStringList getWaterTypesAsString();
|
||||||
extern const QStringList videoExtensionsList;
|
extern const QStringList videoExtensionsList;
|
||||||
QStringList mediaExtensionFilters();
|
QStringList mediaExtensionFilters();
|
||||||
QStringList imageExtensionFilters();
|
QStringList imageExtensionFilters();
|
||||||
|
|
|
@ -27,7 +27,7 @@ TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(ne
|
||||||
QStringList atmPressTypes { "mbar", get_depth_unit() ,tr("Use DC")};
|
QStringList atmPressTypes { "mbar", get_depth_unit() ,tr("Use DC")};
|
||||||
ui->atmPressType->insertItems(0, atmPressTypes);
|
ui->atmPressType->insertItems(0, atmPressTypes);
|
||||||
pressTypeIndex = 0;
|
pressTypeIndex = 0;
|
||||||
ui->waterTypeCombo->insertItems(0, waterTypes);
|
ui->waterTypeCombo->insertItems(0, getWaterTypesAsString());
|
||||||
|
|
||||||
// This needs to be the same order as enum dive_comp_type in dive.h!
|
// This needs to be the same order as enum dive_comp_type in dive.h!
|
||||||
QStringList types;
|
QStringList types;
|
||||||
|
|
Loading…
Add table
Reference in a new issue