diff --git a/apps/worldclock/ChangeLog b/apps/worldclock/ChangeLog index 216ae40de..137d53151 100644 --- a/apps/worldclock/ChangeLog +++ b/apps/worldclock/ChangeLog @@ -6,3 +6,4 @@ Fix rendering of single extra timezone on Bangle.js 2 0.06: Minor code improvements 0.07: Minor code improvements +0.08: Add internationalisation of dates \ No newline at end of file diff --git a/apps/worldclock/app.js b/apps/worldclock/app.js index 81ca7c37d..4207566ec 100644 --- a/apps/worldclock/app.js +++ b/apps/worldclock/app.js @@ -79,10 +79,6 @@ function queueDraw() { }, 60000 - (Date.now() % 60000)); } -function doublenum(x) { - return x < 10 ? "0" + x : "" + x; -} - function getCurrentTimeFromOffset(dt, offset) { return new Date(dt.getTime() + offset * 60 * 60 * 1000); } @@ -90,7 +86,6 @@ function getCurrentTimeFromOffset(dt, offset) { function draw() { // get date var d = new Date(); - var da = d.toString().split(" "); // default draw styles g.reset(); @@ -99,17 +94,17 @@ function draw() { g.setFontAlign(0, 0); // draw time - var time = da[4].substr(0, 5).split(":"); - var hours = time[0], - minutes = time[1]; - + var time = require("locale").time(d, 1); g.setFont(font, primaryTimeFontSize); - g.drawString(`${hours}:${minutes}`, xyCenter, yposTime, true); - // draw Day, name of month, Date - var date = [da[0], da[1], da[2]].join(" "); + const fontHeight = g.getFontHeight(); + g.clearRect(0, yposTime - fontHeight / 2, g.getWidth(), yposTime + fontHeight / 2); + g.drawString(`${time}`, xyCenter, yposTime, true); + var month = require("locale").month(d, 1); + var dayweek = require("locale").dow(d, 1) + var day = d.getDate(); + var date = [dayweek, month, day].join(" "); g.setFont(font, primaryDateFontSize); - g.drawString(date, xyCenter, yposDate, true); // set gmt to UTC+0 @@ -118,13 +113,12 @@ function draw() { // Loop through offset(s) and render offsets.forEach((offset, index) => { const dx = getCurrentTimeFromOffset(gmt, offset[OFFSET_HOURS]); - hours = doublenum(dx.getHours()); - minutes = doublenum(dx.getMinutes()); + var time = require("locale").time(dx, 1); if (offsets.length === 1) { // For a single secondary timezone, draw it bigger and drop time zone to second line g.setFont(font, secondaryTimeFontSize); - g.drawString(`${hours}:${minutes}`, xyCenter, yposTime2, true); + g.drawString(time, xyCenter, yposTime2, true); g.setFont(font, secondaryTimeZoneFontSize); g.drawString(offset[OFFSET_TIME_ZONE], xyCenter, yposTime2 + 30, true); @@ -142,7 +136,7 @@ function draw() { true ); g.setFontAlign(1, 0); - g.drawString(`${hours}:${minutes}`, xcol2, yposWorld + index * 15, true); + g.drawString(time, xcol2, yposWorld + index * 15, true); } }); diff --git a/apps/worldclock/metadata.json b/apps/worldclock/metadata.json index 5b9605447..587c105af 100644 --- a/apps/worldclock/metadata.json +++ b/apps/worldclock/metadata.json @@ -2,7 +2,7 @@ "id": "worldclock", "name": "World Clock - 4 time zones", "shortName": "World Clock", - "version": "0.07", + "version": "0.08", "description": "Current time zone plus up to four others", "icon": "app.png", "screenshots": [{"url":"screenshot_world.png"}],