From 60c777e650447fdf5af72afed923e52872c3a4ad Mon Sep 17 00:00:00 2001 From: Carlo Baratto Date: Wed, 2 Sep 2026 12:50:04 +0200 Subject: [PATCH] i18n date: abbreviazioni giorni localizzate (context Tide) in calendario, eventi e tooltip --- qml/js/tides.js | 6 +++--- qml/pages/CalendarPage.qml | 10 +++++++++- qml/pages/DetailPage.qml | 12 ++++++++++-- translations/harbour-tide.ts | 10 ++++++++++ translations/harbour-tide_it.ts | 10 ++++++++++ 5 files changed, 42 insertions(+), 6 deletions(-) diff --git a/qml/js/tides.js b/qml/js/tides.js index 5992537..93316e1 100644 --- a/qml/js/tides.js +++ b/qml/js/tides.js @@ -169,8 +169,8 @@ function fmtHM(t) { } // Formato data breve -function fmtDate(t) { +function fmtDate(t, dn) { var d = new Date(t); - var giorni = ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"]; - return giorni[d.getDay()] + " " + (d.getDate() < 10 ? "0" : "") + d.getDate() + "/" + ((d.getMonth() + 1) < 10 ? "0" : "") + (d.getMonth() + 1); + var days = dn || ["Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"]; + return days[d.getDay()] + " " + (d.getDate() < 10 ? "0" : "") + d.getDate() + "/" + ((d.getMonth() + 1) < 10 ? "0" : "") + (d.getMonth() + 1); } diff --git a/qml/pages/CalendarPage.qml b/qml/pages/CalendarPage.qml index e1b8d26..2c98fa3 100644 --- a/qml/pages/CalendarPage.qml +++ b/qml/pages/CalendarPage.qml @@ -8,6 +8,14 @@ Page { property var port + // abbreviazioni giorni localizzate (context unico "Tide") + property var dayNames: [ + qsTranslate("Tide", "Sun"), qsTranslate("Tide", "Mon"), + qsTranslate("Tide", "Tue"), qsTranslate("Tide", "Wed"), + qsTranslate("Tide", "Thu"), qsTranslate("Tide", "Fri"), + qsTranslate("Tide", "Sat") + ] + SilicaListView { id: list anchors.fill: parent @@ -82,7 +90,7 @@ Page { for (var g = 0; g < 30; g++) { var d = new Date(now.getFullYear(), now.getMonth(), now.getDate() + g) var ex = Tides.extrema(port, d, 1) - dayModel.append({ isDay: true, day: Tides.fmtDate(d.getTime()), + dayModel.append({ isDay: true, day: Tides.fmtDate(d.getTime(), page.dayNames), time: "", kind: "", height: "" }) for (var i = 0; i < ex.length; i++) { dayModel.append({ isDay: false, day: "", diff --git a/qml/pages/DetailPage.qml b/qml/pages/DetailPage.qml index 9206f61..3e5f500 100644 --- a/qml/pages/DetailPage.qml +++ b/qml/pages/DetailPage.qml @@ -69,7 +69,7 @@ Page { for (var i = 0; i < n; i++) { eventsModel.append({ kind: ex[i].kind, - date: Tides.fmtDate(ex[i].t), + date: Tides.fmtDate(ex[i].t, page.dayNames), time: Tides.fmtHM(ex[i].t), height: Tides.fmtH(ex[i].h, unit) }) @@ -101,6 +101,14 @@ Page { qsTr("Full moon"), qsTr("Waning gibbous"), qsTr("Last quarter"), qsTr("Waning crescent") ] + // abbreviazioni giorni localizzate (context unico "Tide") + property var dayNames: [ + qsTranslate("Tide", "Sun"), qsTranslate("Tide", "Mon"), + qsTranslate("Tide", "Tue"), qsTranslate("Tide", "Wed"), + qsTranslate("Tide", "Thu"), qsTranslate("Tide", "Fri"), + qsTranslate("Tide", "Sat") + ] + SilicaFlickable { id: flick anchors.fill: parent @@ -203,7 +211,7 @@ Page { onClicked: { var t = page.port ? Tides.tide(page.port, new Date(nowBase + (mouse.x / width) * (page.days * 86400000))) : 0 var d = new Date(nowBase + (mouse.x / width) * (page.days * 86400000)) - tip.text = Tides.fmtDate(d.getTime()) + " " + Tides.fmtHM(d.getTime()) + " → " + Tides.fmtH(t, page.unit) + tip.text = Tides.fmtDate(d.getTime(), page.dayNames) + " " + Tides.fmtHM(d.getTime()) + " → " + Tides.fmtH(t, page.unit) tip.visible = true tipTimer.restart() } diff --git a/translations/harbour-tide.ts b/translations/harbour-tide.ts index 4585c9d..03ad9dc 100644 --- a/translations/harbour-tide.ts +++ b/translations/harbour-tide.ts @@ -74,4 +74,14 @@ CalendarPage Next 30 days — high and low tides + + Tide + Sun + Mon + Tue + Wed + Thu + Fri + Sat + diff --git a/translations/harbour-tide_it.ts b/translations/harbour-tide_it.ts index dfc4bb3..61e43fc 100644 --- a/translations/harbour-tide_it.ts +++ b/translations/harbour-tide_it.ts @@ -74,4 +74,14 @@ CalendarPage Next 30 days — high and low tidesProssimi 30 giorni — alte e basse maree + + Tide + SunDom + MonLun + TueMar + WedMer + ThuGio + FriVen + SatSab +