mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Hack around a translation issue
I cannot figure out how to get the hemisphere letters translated correctly in qthelper.cpp. Short term hack for now - someone who understands how this is supposed to work really needs to take a look. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
6763b93619
commit
0a6c16f35a
3 changed files with 36 additions and 24 deletions
|
@ -1110,3 +1110,8 @@ void MainTab::updateGpsCoordinates(const struct dive *dive)
|
|||
ui.coordinates->clear();
|
||||
}
|
||||
}
|
||||
|
||||
QString MainTab::trHemisphere(const char *orig)
|
||||
{
|
||||
return tr(orig);
|
||||
}
|
||||
|
|
|
@ -96,6 +96,7 @@ slots:
|
|||
void enableEdition(EditMode newEditMode = NONE);
|
||||
void toggleTriggeredColumn();
|
||||
void updateTextLabels(bool showUnits = true);
|
||||
QString trHemisphere(const char *orig);
|
||||
|
||||
private:
|
||||
Ui::MainTab ui;
|
||||
|
|
54
qthelper.cpp
54
qthelper.cpp
|
@ -6,6 +6,7 @@
|
|||
#include <QDebug>
|
||||
#include <QSettings>
|
||||
#include <libxslt/documents.h>
|
||||
#include "mainwindow.h"
|
||||
|
||||
#define tr(_arg) QObject::tr(_arg)
|
||||
|
||||
|
@ -119,6 +120,11 @@ bool parseGpsText(const QString &gps_text, double *latitude, double *longitude)
|
|||
} gpsStyle = ISO6709D;
|
||||
int eastWest = 4;
|
||||
int northSouth = 1;
|
||||
QString trHemisphere[4];
|
||||
trHemisphere[0] = MainWindow::instance()->information()->trHemisphere("N");
|
||||
trHemisphere[1] = MainWindow::instance()->information()->trHemisphere("S");
|
||||
trHemisphere[2] = MainWindow::instance()->information()->trHemisphere("E");
|
||||
trHemisphere[3] = MainWindow::instance()->information()->trHemisphere("W");
|
||||
QString regExp;
|
||||
/* an empty string is interpreted as 0.0,0.0 and therefore "no gps location" */
|
||||
if (gps_text.trimmed() == "") {
|
||||
|
@ -136,39 +142,39 @@ bool parseGpsText(const QString &gps_text, double *latitude, double *longitude)
|
|||
gpsStyle = ISO6709D;
|
||||
regExp = QString("(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([NS%1%2])"
|
||||
"\\s*(\\d+)[" UTF8_DEGREE "\\s](\\d+)[\'\\s](\\d+)([,\\.](\\d+))?[\"\\s]([EW%3%4])")
|
||||
.arg(tr("N"))
|
||||
.arg(tr("S"))
|
||||
.arg(tr("E"))
|
||||
.arg(tr("W"));
|
||||
.arg(trHemisphere[0])
|
||||
.arg(trHemisphere[1])
|
||||
.arg(trHemisphere[2])
|
||||
.arg(trHemisphere[3]);
|
||||
} else if (gps_text.count(QChar('"')) == 2) {
|
||||
gpsStyle = SECONDS;
|
||||
regExp = QString("\\s*([NS%1%2])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)[\'\\s]+(\\d+)([,\\.](\\d+))?[^EW%3%4]*"
|
||||
"([EW%5%6])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)[\'\\s]+(\\d+)([,\\.](\\d+))?")
|
||||
.arg(tr("N"))
|
||||
.arg(tr("S"))
|
||||
.arg(tr("E"))
|
||||
.arg(tr("W"))
|
||||
.arg(tr("E"))
|
||||
.arg(tr("W"));
|
||||
.arg(trHemisphere[0])
|
||||
.arg(trHemisphere[1])
|
||||
.arg(trHemisphere[2])
|
||||
.arg(trHemisphere[3])
|
||||
.arg(trHemisphere[2])
|
||||
.arg(trHemisphere[3]);
|
||||
} else if (gps_text.count(QChar('\'')) == 2) {
|
||||
gpsStyle = MINUTES;
|
||||
regExp = QString("\\s*([NS%1%2])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)([,\\.](\\d+))?[^EW%3%4]*"
|
||||
"([EW%5%6])\\s*(\\d+)[" UTF8_DEGREE "\\s]+(\\d+)([,\\.](\\d+))?")
|
||||
.arg(tr("N"))
|
||||
.arg(tr("S"))
|
||||
.arg(tr("E"))
|
||||
.arg(tr("W"))
|
||||
.arg(tr("E"))
|
||||
.arg(tr("W"));
|
||||
.arg(trHemisphere[0])
|
||||
.arg(trHemisphere[1])
|
||||
.arg(trHemisphere[2])
|
||||
.arg(trHemisphere[3])
|
||||
.arg(trHemisphere[2])
|
||||
.arg(trHemisphere[3]);
|
||||
} else {
|
||||
gpsStyle = DECIMAL;
|
||||
regExp = QString("\\s*([-NS%1%2]?)\\s*(\\d+)[,\\.](\\d+)[^-EW%3%4\\d]*([-EW%5%6]?)\\s*(\\d+)[,\\.](\\d+)")
|
||||
.arg(tr("N"))
|
||||
.arg(tr("S"))
|
||||
.arg(tr("E"))
|
||||
.arg(tr("W"))
|
||||
.arg(tr("E"))
|
||||
.arg(tr("W"));
|
||||
.arg(trHemisphere[0])
|
||||
.arg(trHemisphere[1])
|
||||
.arg(trHemisphere[2])
|
||||
.arg(trHemisphere[3])
|
||||
.arg(trHemisphere[2])
|
||||
.arg(trHemisphere[3]);
|
||||
}
|
||||
QRegExp r(regExp);
|
||||
if (r.indexIn(gps_text) != -1) {
|
||||
|
@ -201,9 +207,9 @@ bool parseGpsText(const QString &gps_text, double *latitude, double *longitude)
|
|||
*longitude = (r.cap(5) + QString(".") + r.cap(6)).toDouble();
|
||||
break;
|
||||
}
|
||||
if (r.cap(northSouth) == "S" || r.cap(northSouth) == tr("S") || r.cap(northSouth) == "-")
|
||||
if (r.cap(northSouth) == "S" || r.cap(northSouth) == trHemisphere[1] || r.cap(northSouth) == "-")
|
||||
*latitude *= -1.0;
|
||||
if (r.cap(eastWest) == "W" || r.cap(eastWest) == tr("W") || r.cap(eastWest) == "-")
|
||||
if (r.cap(eastWest) == "W" || r.cap(eastWest) == trHemisphere[3] || r.cap(eastWest) == "-")
|
||||
*longitude *= -1.0;
|
||||
// qDebug("%s -> %8.5f / %8.5f", gps_text.toLocal8Bit().data(), *latitude, *longitude);
|
||||
return true;
|
||||
|
|
Loading…
Add table
Reference in a new issue