diff --git a/CHANGELOG.md b/CHANGELOG.md index 47ccd52c..d1765ba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,38 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Fix gzip encoded calendar loading issue #1400. +## [2.5.0] - Unreleased + +*This release is scheduled to be released on 2018-10-01.* + +### Added +- Polish translate for "Feels" +- French translate for "Feels" +- Translations for newsfeed module +- Support for toggling news article in fullscreen +- Hungarian translation for "Feels" and "Week" +- Spanish translation for "Feels" +- Add classes instead of inline style to the message from the module Alert +- Support for events having a duration instead of an end +- Support for showing end of events through config parameters showEnd and dateEndFormat + +### Fixed +- Mixup between german and spanish translation for newsfeed. +- Fixed close dates to be absolute, if no configured in the config.js - module Calendar +- Fixed the UpdateNotification module message about new commits in the repository, so they can be correctly localized in singular and plural form. +- Fix for weatherforecast rainfall rounding [#1374](https://github.com/MichMich/MagicMirror/issues/1374) +- Fix calendar parsing issue for Midori on RasperryPi Zero w, related to issue #694. +- Fix weather city ID link in sample config +- Fixed issue with clientonly not updating with IP address and port provided on command line. + +### Updated + +- Swedish translations +- Hungarian translations for the updatenotification module +- Updated Norsk bokmål translation +- Updated Norsk nynorsk translation +- Consider multi days event as full day events + ## [2.4.1] - 2018-07-04 ### Fixed diff --git a/clientonly/index.js b/clientonly/index.js index 28a45029..957ee114 100644 --- a/clientonly/index.js +++ b/clientonly/index.js @@ -62,13 +62,13 @@ // Only start the client if a non-local server was provided if (["localhost", "127.0.0.1", "::1", "::ffff:127.0.0.1", undefined].indexOf(config.address) === -1) { getServerConfig(`http://${config.address}:${config.port}/config/`) - .then(function (config) { + .then(function (configReturn) { // Pass along the server config via an environment variable var env = Object.create(process.env); var options = { env: env }; - config.address = config.address; - config.port = config.port; - env.config = JSON.stringify(config); + configReturn.address = config.address; + configReturn.port = config.port; + env.config = JSON.stringify(configReturn); // Spawn electron application const electron = require("electron"); diff --git a/config/config.js.sample b/config/config.js.sample index a427a548..9ef8780b 100644 --- a/config/config.js.sample +++ b/config/config.js.sample @@ -59,7 +59,7 @@ var config = { position: "top_right", config: { location: "New York", - locationID: "", //ID from http://www.openweathermap.org/help/city_list.txt + locationID: "", //ID from http://bulk.openweathermap.org/sample/; unzip the gz file and find your city appid: "YOUR_OPENWEATHER_API_KEY" } }, diff --git a/modules/default/alert/alert.js b/modules/default/alert/alert.js index 85d6ef42..cc0ae302 100644 --- a/modules/default/alert/alert.js +++ b/modules/default/alert/alert.js @@ -38,13 +38,13 @@ Module.register("alert",{ if (this.config.effect == "slide") {this.config.effect = this.config.effect + "-" + this.config.position;} msg = ""; if (message.title) { - msg += "" + message.title + ""; + msg += "" + message.title + ""; } if (message.message){ if (msg != ""){ msg+= "
"; } - msg += "" + message.message + ""; + msg += "" + message.message + ""; } new NotificationFx({ @@ -63,9 +63,9 @@ Module.register("alert",{ params.imageUrl = null; image = ""; } else if (typeof params.imageFA === "undefined"){ - image = "
"; + image = "
"; } else if (typeof params.imageUrl === "undefined"){ - image = "
"; + image = "
"; } //Create overlay var overlay = document.createElement("div"); @@ -79,16 +79,16 @@ Module.register("alert",{ } //Display title and message only if they are provided in notification parameters - message =""; + var message = ""; if (params.title) { - message += "" + params.title + "" + message += "" + params.title + ""; } if (params.message) { - if (message != ""){ + if (message !== ""){ message += "
"; } - message += "" + params.message + ""; + message += "" + params.message + ""; } //Store alert in this.alerts @@ -121,16 +121,16 @@ Module.register("alert",{ setPosition: function(pos) { //Add css to body depending on the set position for notifications var sheet = document.createElement("style"); - if (pos == "center") {sheet.innerHTML = ".ns-box {margin-left: auto; margin-right: auto;text-align: center;}";} - if (pos == "right") {sheet.innerHTML = ".ns-box {margin-left: auto;text-align: right;}";} - if (pos == "left") {sheet.innerHTML = ".ns-box {margin-right: auto;text-align: left;}";} + if (pos === "center") {sheet.innerHTML = ".ns-box {margin-left: auto; margin-right: auto;text-align: center;}";} + if (pos === "right") {sheet.innerHTML = ".ns-box {margin-left: auto;text-align: right;}";} + if (pos === "left") {sheet.innerHTML = ".ns-box {margin-right: auto;text-align: left;}";} document.body.appendChild(sheet); }, notificationReceived: function(notification, payload, sender) { if (notification === "SHOW_ALERT") { if (typeof payload.type === "undefined") { payload.type = "alert"; } - if (payload.type == "alert") { + if (payload.type === "alert") { this.show_alert(payload, sender); } else if (payload.type = "notification") { this.show_notification(payload); @@ -143,7 +143,7 @@ Module.register("alert",{ this.alerts = {}; this.setPosition(this.config.position); if (this.config.welcome_message) { - if (this.config.welcome_message == true){ + if (this.config.welcome_message === true){ this.show_notification({title: this.translate("sysTitle"), message: this.translate("welcome")}); } else{ diff --git a/modules/default/alert/translations/fr.json b/modules/default/alert/translations/fr.json new file mode 100644 index 00000000..c89417f2 --- /dev/null +++ b/modules/default/alert/translations/fr.json @@ -0,0 +1,4 @@ +{ + "sysTitle": "MagicMirror Notification", + "welcome": "Bienvenue, le démarrage a été un succès!" +} diff --git a/modules/default/calendar/calendar.js b/modules/default/calendar/calendar.js index 0780fb5c..3bb5a03b 100755 --- a/modules/default/calendar/calendar.js +++ b/modules/default/calendar/calendar.js @@ -25,7 +25,9 @@ Module.register("calendar", { urgency: 7, timeFormat: "relative", dateFormat: "MMM Do", + dateEndFormat: "HH:mm", fullDayEventDateFormat: "MMM Do", + showEnd: true, getRelative: 6, fadePoint: 0.25, // Start on 1/4th of the list. hidePrivate: false, @@ -287,6 +289,10 @@ Module.register("calendar", { timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow()); } } + if(this.config.showEnd){ + timeWrapper.innerHTML += "-" ; + timeWrapper.innerHTML += this.capFirst(moment(event.endDate , "x").format(this.config.fullDayEventDateFormat)); + } } else { if (event.startDate >= new Date()) { if (event.startDate - now < 2 * oneDay) { @@ -295,8 +301,12 @@ Module.register("calendar", { // If event is within 6 hour, display 'in xxx' time format or moment.fromNow() timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow()); } else { - // Otherwise just say 'Today/Tomorrow at such-n-such time' - timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").calendar()); + if(this.config.timeFormat === "absolute") { + timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").format(this.config.dateFormat)); + } else { + // Otherwise just say 'Today/Tomorrow at such-n-such time' + timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").calendar()); + } } } else { /* Check to see if the user displays absolute or relative dates with their events @@ -325,6 +335,11 @@ Module.register("calendar", { }) ); } + if (this.config.showEnd) { + timeWrapper.innerHTML += "-"; + timeWrapper.innerHTML += this.capFirst(moment(event.endDate, "x").format(this.config.dateEndFormat)); + + } } //timeWrapper.innerHTML += ' - '+ moment(event.startDate,'x').format('lll'); //console.log(event); @@ -436,7 +451,7 @@ Module.register("calendar", { listContainsEvent: function(eventList, event){ - for(let evt of eventList){ + for(var evt of eventList){ if(evt.title === event.title && parseInt(evt.startDate) === parseInt(event.startDate)){ return true; } diff --git a/modules/default/calendar/calendarfetcher.js b/modules/default/calendar/calendarfetcher.js index 60ee8fc7..4492462b 100644 --- a/modules/default/calendar/calendarfetcher.js +++ b/modules/default/calendar/calendarfetcher.js @@ -91,6 +91,9 @@ var CalendarFetcher = function(url, reloadInterval, excludedEvents, maximumEntri var endDate; if (typeof event.end !== "undefined") { endDate = eventDate(event, "end"); + } else if(typeof event.duration !== "undefined") { + dur=moment.duration(event.duration); + endDate = startDate.clone().add(dur); } else { if (!isFacebookBirthday) { endDate = startDate; @@ -274,8 +277,7 @@ var CalendarFetcher = function(url, reloadInterval, excludedEvents, maximumEntri var start = event.start || 0; var startDate = new Date(start); var end = event.end || 0; - - if (end - start === 24 * 60 * 60 * 1000 && startDate.getHours() === 0 && startDate.getMinutes() === 0) { + if (((end - start) % (24 * 60 * 60 * 1000)) === 0 && startDate.getHours() === 0 && startDate.getMinutes() === 0) { // Is 24 hours, and starts on the middle of the night. return true; } diff --git a/modules/default/newsfeed/README.md b/modules/default/newsfeed/README.md index 6c559578..f4888ebb 100644 --- a/modules/default/newsfeed/README.md +++ b/modules/default/newsfeed/README.md @@ -41,6 +41,7 @@ MagicMirror's [notification mechanism](https://github.com/MichMich/MagicMirror/t | `ARTICLE_PREVIOUS` | Shows the previous news title (hiding the summary or previously fully displayed article) | `ARTICLE_MORE_DETAILS` | When received the _first time_, shows the corresponding description of the currently displayed news title.
The module expects that the module's configuration option `showDescription` is set to `false` (default value).

When received a _second consecutive time_, shows the full news article in an IFRAME.
This requires that the news page can be embedded in an IFRAME, e.g. doesn't have the HTTP response header [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) set to e.g. `DENY`.

When received the _next consecutive times_, reloads the page and scrolls down by `scrollLength` pixels to paginate through the article. | `ARTICLE_LESS_DETAILS` | Hides the summary or full news article and only displays the news title of the currently viewed news item. +| `ARTICLE_TOGGLE_FULL` | Toogles article in fullscreen. Note the payload of the sent notification event is ignored. diff --git a/modules/default/newsfeed/newsfeed.js b/modules/default/newsfeed/newsfeed.js index 60562248..26c3cfdc 100644 --- a/modules/default/newsfeed/newsfeed.js +++ b/modules/default/newsfeed/newsfeed.js @@ -90,7 +90,7 @@ Module.register("newsfeed",{ if (this.config.feedUrl) { wrapper.className = "small bright"; - wrapper.innerHTML = "The configuration options for the newsfeed module have changed.
Please check the documentation."; + wrapper.innerHTML = this.translate("configuration_changed"); return wrapper; } @@ -123,21 +123,21 @@ Module.register("newsfeed",{ //Remove selected tags from the beginning of rss feed items (title or description) - if (this.config.removeStartTags == "title" || this.config.removeStartTags == "both") { + if (this.config.removeStartTags === "title" || this.config.removeStartTags === "both") { for (f=0; f= this.newsItems.length) { @@ -347,7 +347,7 @@ Module.register("newsfeed",{ this.resetDescrOrFullArticleAndTimer(); Log.info(this.name + " - going from article #" + before + " to #" + this.activeItem + " (of " + this.newsItems.length + ")"); this.updateDom(100); - } else if(notification == "ARTICLE_PREVIOUS"){ + } else if(notification === "ARTICLE_PREVIOUS"){ var before = this.activeItem; this.activeItem--; if (this.activeItem < 0) { @@ -358,42 +358,52 @@ Module.register("newsfeed",{ this.updateDom(100); } // if "more details" is received the first time: show article summary, on second time show full article - else if(notification == "ARTICLE_MORE_DETAILS"){ + else if(notification === "ARTICLE_MORE_DETAILS"){ // full article is already showing, so scrolling down - if(this.config.showFullArticle == true){ + if(this.config.showFullArticle === true){ this.scrollPosition += this.config.scrollLength; window.scrollTo(0, this.scrollPosition); Log.info(this.name + " - scrolling down"); Log.info(this.name + " - ARTICLE_MORE_DETAILS, scroll position: " + this.config.scrollLength); } - // display full article else { - this.isShowingDescription = !this.isShowingDescription; - this.config.showFullArticle = !this.isShowingDescription; - // make bottom bar align to top to allow scrolling - if(this.config.showFullArticle == true){ - document.getElementsByClassName("region bottom bar")[0].style.bottom = "inherit"; - document.getElementsByClassName("region bottom bar")[0].style.top = "-90px"; - } - clearInterval(timer); - timer = null; - Log.info(this.name + " - showing " + this.isShowingDescription ? "article description" : "full article"); - this.updateDom(100); + this.showFullArticle(); } - } else if(notification == "ARTICLE_SCROLL_UP"){ - if(this.config.showFullArticle == true){ + } else if(notification === "ARTICLE_SCROLL_UP"){ + if(this.config.showFullArticle === true){ this.scrollPosition -= this.config.scrollLength; window.scrollTo(0, this.scrollPosition); Log.info(this.name + " - scrolling up"); Log.info(this.name + " - ARTICLE_SCROLL_UP, scroll position: " + this.config.scrollLength); } - } else if(notification == "ARTICLE_LESS_DETAILS"){ + } else if(notification === "ARTICLE_LESS_DETAILS"){ this.resetDescrOrFullArticleAndTimer(); Log.info(this.name + " - showing only article titles again"); this.updateDom(100); + } else if (notification === "ARTICLE_TOGGLE_FULL"){ + if (this.config.showFullArticle){ + this.activeItem++; + this.resetDescrOrFullArticleAndTimer(); + } else { + this.showFullArticle(); + } } else { Log.info(this.name + " - unknown notification, ignoring: " + notification); } }, + showFullArticle: function() { + this.isShowingDescription = !this.isShowingDescription; + this.config.showFullArticle = !this.isShowingDescription; + // make bottom bar align to top to allow scrolling + if(this.config.showFullArticle === true){ + document.getElementsByClassName("region bottom bar")[0].style.bottom = "inherit"; + document.getElementsByClassName("region bottom bar")[0].style.top = "-90px"; + } + clearInterval(timer); + timer = null; + Log.info(this.name + " - showing " + this.isShowingDescription ? "article description" : "full article"); + this.updateDom(100); + } + }); diff --git a/modules/default/newsfeed/translations/de.json b/modules/default/newsfeed/translations/de.json new file mode 100644 index 00000000..9ec3ef7b --- /dev/null +++ b/modules/default/newsfeed/translations/de.json @@ -0,0 +1,3 @@ +{ + "configuration_changed": "Die Konfigurationsoptionen für das Newsfeed-Modul haben sich geändert. \nBitte überprüfen Sie die Dokumentation." +} \ No newline at end of file diff --git a/modules/default/newsfeed/translations/en.json b/modules/default/newsfeed/translations/en.json new file mode 100644 index 00000000..23b6100d --- /dev/null +++ b/modules/default/newsfeed/translations/en.json @@ -0,0 +1,3 @@ +{ + "configuration_changed": "The configuration options for the newsfeed module have changed.\nPlease check the documentation." +} \ No newline at end of file diff --git a/modules/default/newsfeed/translations/es.json b/modules/default/newsfeed/translations/es.json new file mode 100644 index 00000000..6143f68c --- /dev/null +++ b/modules/default/newsfeed/translations/es.json @@ -0,0 +1,3 @@ +{ + "configuration_changed": "Las opciones de configuración para el módulo de suministro de noticias han cambiado. \nVerifique la documentación." +} \ No newline at end of file diff --git a/modules/default/newsfeed/translations/fr.json b/modules/default/newsfeed/translations/fr.json new file mode 100644 index 00000000..85c6b412 --- /dev/null +++ b/modules/default/newsfeed/translations/fr.json @@ -0,0 +1,3 @@ +{ + "configuration_changed": "Les options de configuration du module newsfeed ont changé. \nVeuillez consulter la documentation." +} \ No newline at end of file diff --git a/modules/default/updatenotification/updatenotification.js b/modules/default/updatenotification/updatenotification.js index b26517e5..e3e55fc5 100644 --- a/modules/default/updatenotification/updatenotification.js +++ b/modules/default/updatenotification/updatenotification.js @@ -58,8 +58,9 @@ Module.register("updatenotification", { icon.innerHTML = " "; message.appendChild(icon); - var subtextHtml = this.translate("UPDATE_INFO", { - COMMIT_COUNT: this.status.behind + " " + ((this.status.behind == 1) ? "commit" : "commits"), + var updateInfoKeyName = this.status.behind == 1 ? "UPDATE_INFO_SINGLE" : "UPDATE_INFO_MULTIPLE"; + var subtextHtml = this.translate(updateInfoKeyName, { + COMMIT_COUNT: this.status.behind, BRANCH_NAME: this.status.current }); diff --git a/modules/default/weatherforecast/weatherforecast.js b/modules/default/weatherforecast/weatherforecast.js index c06f5f5b..19e004ff 100644 --- a/modules/default/weatherforecast/weatherforecast.js +++ b/modules/default/weatherforecast/weatherforecast.js @@ -177,7 +177,7 @@ Module.register("weatherforecast",{ rainCell.innerHTML = ""; } else { if(config.units !== "imperial") { - rainCell.innerHTML = forecast.rain + " mm"; + rainCell.innerHTML = parseFloat(forecast.rain).toFixed(1) + " mm"; } else { rainCell.innerHTML = (parseFloat(forecast.rain) / 25.4).toFixed(2) + " in"; } @@ -350,7 +350,7 @@ Module.register("weatherforecast",{ icon: this.config.iconTable[forecast.weather[0].icon], maxTemp: this.roundValue(forecast.temp.max), minTemp: this.roundValue(forecast.temp.min), - rain: this.roundValue(forecast.rain) + rain: forecast.rain }; this.forecast.push(forecastData); diff --git a/package-lock.json b/package-lock.json index 6241a3d6..3376a2e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "magicmirror", - "version": "2.4.1", + "version": "2.5.0-dev", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index b220bee6..2aae05eb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "magicmirror", - "version": "2.4.1", + "version": "2.5.0-dev", "description": "The open source modular smart mirror platform.", "main": "js/electron.js", "scripts": { diff --git a/tests/configs/data/TranslationTest.json b/tests/configs/data/TranslationTest.json index 5614b23c..bbb13845 100644 --- a/tests/configs/data/TranslationTest.json +++ b/tests/configs/data/TranslationTest.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² update available.", "UPDATE_NOTIFICATION_MODULE": "Update available for MODULE_NAME module.", - "UPDATE_INFO": "The current installation is COMMIT_COUNT behind on the BRANCH_NAME branch." + "UPDATE_INFO_SINGLE": "The current installation is COMMIT_COUNT commit behind on the BRANCH_NAME branch.", + "UPDATE_INFO_MULTIPLE": "The current installation is COMMIT_COUNT commits behind on the BRANCH_NAME branch." } diff --git a/tests/configs/data/en.json b/tests/configs/data/en.json index 5614b23c..bbb13845 100644 --- a/tests/configs/data/en.json +++ b/tests/configs/data/en.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² update available.", "UPDATE_NOTIFICATION_MODULE": "Update available for MODULE_NAME module.", - "UPDATE_INFO": "The current installation is COMMIT_COUNT behind on the BRANCH_NAME branch." + "UPDATE_INFO_SINGLE": "The current installation is COMMIT_COUNT commit behind on the BRANCH_NAME branch.", + "UPDATE_INFO_MULTIPLE": "The current installation is COMMIT_COUNT commits behind on the BRANCH_NAME branch." } diff --git a/translations/af.json b/translations/af.json index 68bebc8d..c0845649 100644 --- a/translations/af.json +++ b/translations/af.json @@ -26,5 +26,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² update beskikbaar.", "UPDATE_NOTIFICATION_MODULE": "Update beskikbaar vir {MODULE_NAME} module.", - "UPDATE_INFO": "Die huidige installasie is {COMMIT_COUNT} agter op die {BRANCH_NAME} branch." + "UPDATE_INFO_SINGLE": "Die huidige installasie is {COMMIT_COUNT} commit agter op die {BRANCH_NAME} branch.", + "UPDATE_INFO_MULTIPLE": "Die huidige installasie is {COMMIT_COUNT} commits agter op die {BRANCH_NAME} branch." } diff --git a/translations/bg.json b/translations/bg.json index 705c1396..786f8643 100644 --- a/translations/bg.json +++ b/translations/bg.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "Налична актуализация за MagicMirror².", "UPDATE_NOTIFICATION_MODULE": "Налична актуализация за {MODULE_NAME} модул.", - "UPDATE_INFO": "Текущата инсталация е изостанала с {COMMIT_COUNT} къмита на клон {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "Текущата инсталация е изостанала с {COMMIT_COUNT} commit къмита на клон {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "Текущата инсталация е изостанала с {COMMIT_COUNT} commits къмита на клон {BRANCH_NAME}." } diff --git a/translations/ca.json b/translations/ca.json index 76e4ad2c..91f871ca 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² actualizació disponible.", "UPDATE_NOTIFICATION_MODULE": "Disponible una actualizació per al mòdul {MODULE_NAME}.", - "UPDATE_INFO": "La teva instal·lació actual està {COMMIT_COUNT} canvis darrere de la branca {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "La teva instal·lació actual està {COMMIT_COUNT} commit canvis darrere de la branca {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "La teva instal·lació actual està {COMMIT_COUNT} commits canvis darrere de la branca {BRANCH_NAME}." } diff --git a/translations/cs.json b/translations/cs.json index bec2e82c..6ea3ddc1 100644 --- a/translations/cs.json +++ b/translations/cs.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "Dostupná aktualizace pro MagicMirror².", "UPDATE_NOTIFICATION_MODULE": "Dostupná aktualizace pro modul {MODULE_NAME}.", - "UPDATE_INFO": "Současná instalace je na větvi {BRANCH_NAME} pozadu o {COMMIT_COUNT}." + "UPDATE_INFO_SINGLE": "Současná instalace je na větvi {BRANCH_NAME} pozadu o {COMMIT_COUNT} commit.", + "UPDATE_INFO_MULTIPLE": "Současná instalace je na větvi {BRANCH_NAME} pozadu o {COMMIT_COUNT} commits." } diff --git a/translations/cy.json b/translations/cy.json index 7ae28abb..ba5d62ea 100644 --- a/translations/cy.json +++ b/translations/cy.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² mwy diweddar yn barod.", "UPDATE_NOTIFICATION_MODULE": "Mae diweddaraiad ar gyfer y modiwl {MODULE_NAME}.", - "UPDATE_INFO": "Mae'r fersiwn bresenol {COMMIT_COUNT} commit tu ôl i'r gangen {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "Mae'r fersiwn bresenol {COMMIT_COUNT} commit tu ôl i'r gangen {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "Mae'r fersiwn bresenol {COMMIT_COUNT} commit tu ôl i'r gangen {BRANCH_NAME}." } diff --git a/translations/da.json b/translations/da.json index fe31cba4..4f4f50e7 100644 --- a/translations/da.json +++ b/translations/da.json @@ -27,5 +27,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² opdatering tilgængelig.", "UPDATE_NOTIFICATION_MODULE": "Opdatering tilgængelig for {MODULE_NAME} modulet.", - "UPDATE_INFO": "Den nuværende installation er {COMMIT_COUNT} bagud på {BRANCH_NAME} branch'en." + "UPDATE_INFO_SINGLE": "Den nuværende installation er {COMMIT_COUNT} commit bagud på {BRANCH_NAME} branch'en.", + "UPDATE_INFO_MULTIPLE": "Den nuværende installation er {COMMIT_COUNT} commits bagud på {BRANCH_NAME} branch'en." } diff --git a/translations/de.json b/translations/de.json index 050060cf..57f06cde 100644 --- a/translations/de.json +++ b/translations/de.json @@ -28,7 +28,8 @@ "UPDATE_NOTIFICATION": "Aktualisierung für MagicMirror² verfügbar.", "UPDATE_NOTIFICATION_MODULE": "Aktualisierung für das {MODULE_NAME} Modul verfügbar.", - "UPDATE_INFO": "Die aktuelle Installation ist {COMMIT_COUNT} hinter dem {BRANCH_NAME} Branch.", + "UPDATE_INFO_SINGLE": "Die aktuelle Installation ist {COMMIT_COUNT} Commit hinter dem {BRANCH_NAME} Branch.", + "UPDATE_INFO_MULTIPLE": "Die aktuelle Installation ist {COMMIT_COUNT} Commits hinter dem {BRANCH_NAME} Branch.", "FEELS": "Gefühlt" } diff --git a/translations/en.json b/translations/en.json index 1cba9a89..900bf630 100644 --- a/translations/en.json +++ b/translations/en.json @@ -28,7 +28,8 @@ "UPDATE_NOTIFICATION": "MagicMirror² update available.", "UPDATE_NOTIFICATION_MODULE": "Update available for {MODULE_NAME} module.", - "UPDATE_INFO": "The current installation is {COMMIT_COUNT} behind on the {BRANCH_NAME} branch.", + "UPDATE_INFO_SINGLE": "The current installation is {COMMIT_COUNT} commit behind on the {BRANCH_NAME} branch.", + "UPDATE_INFO_MULTIPLE": "The current installation is {COMMIT_COUNT} commits behind on the {BRANCH_NAME} branch.", "FEELS": "Feels" } diff --git a/translations/es.json b/translations/es.json index 44d08c2c..5e5fe96d 100644 --- a/translations/es.json +++ b/translations/es.json @@ -28,5 +28,8 @@ "UPDATE_NOTIFICATION": "MagicMirror² actualización disponible.", "UPDATE_NOTIFICATION_MODULE": "Disponible una actualización para el módulo {MODULE_NAME}.", - "UPDATE_INFO": "Tu actual instalación está {COMMIT_COUNT} cambios detrás de la rama {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "Tu actual instalación está {COMMIT_COUNT} commit cambios detrás de la rama {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "Tu actual instalación está {COMMIT_COUNT} commits cambios detrás de la rama {BRANCH_NAME}.", + + "FEELS": "Sensación térmica de" } diff --git a/translations/et.json b/translations/et.json index f7ad1f0e..bddd56ae 100644 --- a/translations/et.json +++ b/translations/et.json @@ -26,5 +26,6 @@ "UPDATE_NOTIFICATION": "MagicMirror²´le uuendus saadaval.", "UPDATE_NOTIFICATION_MODULE": "Uuendus saadaval {MODULE_NAME} moodulile.", - "UPDATE_INFO": "Praegune paigaldus on {COMMIT_COUNT} tagapool {BRANCH_NAME} harul." + "UPDATE_INFO_SINGLE": "Praegune paigaldus on {COMMIT_COUNT} commit tagapool {BRANCH_NAME} harul.", + "UPDATE_INFO_MULTIPLE": "Praegune paigaldus on {COMMIT_COUNT} commits tagapool {BRANCH_NAME} harul." } diff --git a/translations/fr.json b/translations/fr.json index 1f7f9f86..e2dd22e2 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -6,7 +6,7 @@ "DAYAFTERTOMORROW": "Après-demain", "RUNNING": "Se termine dans", "EMPTY": "Aucun RDV à venir.", - + "WEEK": "Semaine {weekNumber}", "N": "N", @@ -25,8 +25,11 @@ "WNW": "ONO", "NW": "NO", "NNW": "NNO", - + "UPDATE_NOTIFICATION": "Une mise à jour de MagicMirror² est disponible", "UPDATE_NOTIFICATION_MODULE": "Une mise à jour est disponible pour le module {MODULE_NAME} .", -"UPDATE_INFO": "L'installation actuelle est {COMMIT_COUNT} en retard sur la branche {BRANCH_NAME} ." + "UPDATE_INFO_SINGLE": "L'installation actuelle est {COMMIT_COUNT} commit en retard sur la branche {BRANCH_NAME} .", + "UPDATE_INFO_MULTIPLE": "L'installation actuelle est {COMMIT_COUNT} commits en retard sur la branche {BRANCH_NAME} .", + + "FEELS": "Ressenti" } diff --git a/translations/hu.json b/translations/hu.json index 6c0a1a28..e0d8b7ae 100644 --- a/translations/hu.json +++ b/translations/hu.json @@ -7,6 +7,8 @@ "RUNNING": "Vége lesz", "EMPTY": "Nincs közelgő esemény.", + "WEEK": "{weekNumber}. hét", + "N": "É", "NNE": "ÉÉK", "NE": "ÉK", @@ -24,7 +26,10 @@ "NW": "ÉNy", "NNW": "ÉÉNy", - "UPDATE_NOTIFICATION": "MagicMirror² elérhető egy frissítés!", - "UPDATE_NOTIFICATION_MODULE": "A frissítés {MODULE_NAME} modul néven érhető el.", - "UPDATE_INFO": "A jelenlegi telepítés {COMMIT_COUNT} mögött {BRANCH_NAME} ágon található." + "UPDATE_NOTIFICATION": "MagicMirror²-hoz frissítés érhető el.", + "UPDATE_NOTIFICATION_MODULE": "A {MODULE_NAME} modulhoz frissítés érhető el.", + "UPDATE_INFO_SINGLE": "A jelenlegi telepítés óta {COMMIT_COUNT} új commit jelent meg a {BRANCH_NAME} ágon.", + "UPDATE_INFO_MULTIPLE": "A jelenlegi telepítés óta {COMMIT_COUNT} új commit jelent meg a {BRANCH_NAME} ágon.", + + "FEELS": "Érzet" } diff --git a/translations/id.json b/translations/id.json index 9a4ed5d4..d6c91e5b 100644 --- a/translations/id.json +++ b/translations/id.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "Memperbarui MagicMirror² tersedia.", "UPDATE_NOTIFICATION_MODULE": "Memperbarui tersedia untuk modul {MODULE_NAME}.", - "UPDATE_INFO": "Instalasi saat ini tertinggal {COMMIT_COUNT} pada cabang {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "Instalasi saat ini tertinggal {COMMIT_COUNT} commit pada cabang {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "Instalasi saat ini tertinggal {COMMIT_COUNT} commits pada cabang {BRANCH_NAME}." } diff --git a/translations/is.json b/translations/is.json index b60c0ae4..01a3406d 100644 --- a/translations/is.json +++ b/translations/is.json @@ -26,5 +26,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² uppfærsla í boði.", "UPDATE_NOTIFICATION_MODULE": "Uppfærsla í boði fyrir {MODULE_NAME} module.", - "UPDATE_INFO": "Núverandi kerfi er {COMMIT_COUNT} á eftir {BRANCH_NAME} branchinu." + "UPDATE_INFO_SINGLE": "Núverandi kerfi er {COMMIT_COUNT} commit á eftir {BRANCH_NAME} branchinu.", + "UPDATE_INFO_MULTIPLE": "Núverandi kerfi er {COMMIT_COUNT} commits á eftir {BRANCH_NAME} branchinu." } diff --git a/translations/it.json b/translations/it.json index f903eb2e..a5eaf2f2 100644 --- a/translations/it.json +++ b/translations/it.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "E' disponibile un aggiornamento di MagicMirror².", "UPDATE_NOTIFICATION_MODULE": "E' disponibile un aggiornamento del modulo {MODULE_NAME}.", - "UPDATE_INFO": "L'installazione è {COMMIT_COUNT} indietro rispetto all'attuale branch {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "L'installazione è {COMMIT_COUNT} commit indietro rispetto all'attuale branch {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "L'installazione è {COMMIT_COUNT} commits indietro rispetto all'attuale branch {BRANCH_NAME}." } diff --git a/translations/kr.json b/translations/kr.json index 70df42f8..54ee8d20 100644 --- a/translations/kr.json +++ b/translations/kr.json @@ -26,5 +26,6 @@ "UPDATE_NOTIFICATION": "새로운 MagicMirror² 업데이트가 있습니다.", "UPDATE_NOTIFICATION_MODULE": "{MODULE_NAME} 모듈에서 사용 가능한 업데이트 입니다.", - "UPDATE_INFO": "설치할 {COMMIT_COUNT} 는 {BRANCH_NAME} 분기에 해당됩니다." + "UPDATE_INFO_SINGLE": "설치할 {COMMIT_COUNT} commit 는 {BRANCH_NAME} 분기에 해당됩니다.", + "UPDATE_INFO_MULTIPLE": "설치할 {COMMIT_COUNT} commits 는 {BRANCH_NAME} 분기에 해당됩니다." } diff --git a/translations/nb.json b/translations/nb.json index 0a0595ac..88027d89 100644 --- a/translations/nb.json +++ b/translations/nb.json @@ -28,5 +28,8 @@ "UPDATE_NOTIFICATION": "MagicMirror²-oppdatering er tilgjengelig.", "UPDATE_NOTIFICATION_MODULE": "Oppdatering tilgjengelig for modulen {MODULE_NAME}.", - "UPDATE_INFO": "Nåværende installasjon er {COMMIT_COUNT} bak {BRANCH_NAME} grenen." + "UPDATE_INFO_SINGLE": "Nåværende installasjon er {COMMIT_COUNT} commit bak {BRANCH_NAME} grenen.", + "UPDATE_INFO_MULTIPLE": "Nåværende installasjon er {COMMIT_COUNT} commits bak {BRANCH_NAME} grenen.", + + "FEELS": "Føles som" } diff --git a/translations/nl.json b/translations/nl.json index e1497d39..9a344eb3 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -26,7 +26,8 @@ "UPDATE_NOTIFICATION": "MagicMirror² update beschikbaar.", "UPDATE_NOTIFICATION_MODULE": "Update beschikbaar voor {MODULE_NAME} module.", - "UPDATE_INFO": "De huidige installatie loopt {COMMIT_COUNT} achter op de {BRANCH_NAME} branch.", + "UPDATE_INFO_SINGLE": "De huidige installatie loopt {COMMIT_COUNT} commit achter op de {BRANCH_NAME} branch.", + "UPDATE_INFO_MULTIPLE": "De huidige installatie loopt {COMMIT_COUNT} commits achter op de {BRANCH_NAME} branch.", "FEELS": "Gevoelstemperatuur" } diff --git a/translations/nn.json b/translations/nn.json index 3c33c597..1fd14548 100644 --- a/translations/nn.json +++ b/translations/nn.json @@ -26,5 +26,8 @@ "UPDATE_NOTIFICATION": "MagicMirror² oppdatering er tilgjengeleg.", "UPDATE_NOTIFICATION_MODULE": "Oppdatering tilgjengeleg for modulen {MODULE_NAME}.", - "UPDATE_INFO": "noverande installasjon er {COMMIT_COUNT} bak {BRANCH_NAME} greinen." + "UPDATE_INFO_SINGLE": "noverande installasjon er {COMMIT_COUNT} commit bak {BRANCH_NAME} greinen.", + "UPDATE_INFO_MULTIPLE": "noverande installasjon er {COMMIT_COUNT} commits bak {BRANCH_NAME} greinen.", + + "FEELS": "Kjenst som" } diff --git a/translations/pl.json b/translations/pl.json index 06473ad2..617288e9 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -28,5 +28,8 @@ "UPDATE_NOTIFICATION": "Dostępna jest aktualizacja MagicMirror².", "UPDATE_NOTIFICATION_MODULE": "Dostępna jest aktualizacja modułu {MODULE_NAME}.", - "UPDATE_INFO": "Zainstalowana wersja odbiega o {COMMIT_COUNT} commitów od gałęzi {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "Zainstalowana wersja odbiega o {COMMIT_COUNT} commitów od gałęzi {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "Zainstalowana wersja odbiega o {COMMIT_COUNT} commitów od gałęzi {BRANCH_NAME}.", + + "FEELS": "Odczuwalna" } diff --git a/translations/pt-br.json b/translations/pt-br.json index 47af03c8..898e4f1f 100644 --- a/translations/pt-br.json +++ b/translations/pt-br.json @@ -25,5 +25,6 @@ "UPDATE_NOTIFICATION": "Nova atualização para MagicMirror disponível.", "UPDATE_NOTIFICATION_MODULE": "Atualização para o módulo {MODULE_NAME} disponível.", - "UPDATE_INFO": "Sua versão atual é a {COMMIT_COUNT} dentro do seguinte branch {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "Sua versão atual é a {COMMIT_COUNT} commit dentro do seguinte branch {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "Sua versão atual é a {COMMIT_COUNT} commits dentro do seguinte branch {BRANCH_NAME}." } diff --git a/translations/pt.json b/translations/pt.json index daceb4b2..e01d028c 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -27,5 +27,6 @@ "UPDATE_NOTIFICATION": "Atualização do MagicMirror² disponível.", "UPDATE_NOTIFICATION_MODULE": "Atualização para o módulo {MODULE_NAME} disponível.", - "UPDATE_INFO": "A instalação atual está {COMMIT_COUNT} atrasada no branch {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "A instalação atual está {COMMIT_COUNT} commit atrasada no branch {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "A instalação atual está {COMMIT_COUNT} commits atrasada no branch {BRANCH_NAME}." } diff --git a/translations/ro.json b/translations/ro.json index acc7db8c..3584d69f 100644 --- a/translations/ro.json +++ b/translations/ro.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "Un update este disponibil pentru MagicMirror².", "UPDATE_NOTIFICATION_MODULE": "Un update este disponibil pentru modulul {MODULE_NAME}.", - "UPDATE_INFO": "Există {COMMIT_COUNT} commit-uri noi pe branch-ul {BRANCH_NAME}." + "UPDATE_INFO_SINGLE": "Există {COMMIT_COUNT} commit-uri noi pe branch-ul {BRANCH_NAME}.", + "UPDATE_INFO_MULTIPLE": "Există {COMMIT_COUNT} commit-uri noi pe branch-ul {BRANCH_NAME}." } diff --git a/translations/ru.json b/translations/ru.json index e4fce93e..cf2e5c5f 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -28,5 +28,6 @@ "UPDATE_NOTIFICATION": "Есть обновление для MagicMirror².", "UPDATE_NOTIFICATION_MODULE": "Есть обновление для {MODULE_NAME} модуля.", - "UPDATE_INFO": "Данная инсталляция позади {BRANCH_NAME} ветки на {COMMIT_COUNT} коммитов." + "UPDATE_INFO_SINGLE": "Данная инсталляция позади {BRANCH_NAME} commit ветки на {COMMIT_COUNT} коммитов.", + "UPDATE_INFO_MULTIPLE": "Данная инсталляция позади {BRANCH_NAME} commits ветки на {COMMIT_COUNT} коммитов." } diff --git a/translations/sv.json b/translations/sv.json index 07ca0aa1..e8f5d018 100644 --- a/translations/sv.json +++ b/translations/sv.json @@ -25,8 +25,12 @@ "WNW": "VNV", "NW": "NV", "NNW": "NNV", + "FEELS": "Känns som", "UPDATE_NOTIFICATION": "MagicMirror² uppdatering finns tillgänglig.", "UPDATE_NOTIFICATION_MODULE": "Uppdatering finns tillgänglig av {MODULE_NAME} modulen.", - "UPDATE_INFO": "Denna installation ligger {COMMIT_COUNT} steg bakom {BRANCH_NAME} grenen." + "UPDATE_INFO_SINGLE": "Denna installation ligger {COMMIT_COUNT} commit steg bakom {BRANCH_NAME} grenen.", + "UPDATE_INFO_MULTIPLE": "Denna installation ligger {COMMIT_COUNT} commits steg bakom {BRANCH_NAME} grenen.", + + "FEELS": "Känns som" } diff --git a/translations/zh-cn.json b/translations/zh-cn.json index 42ac8e65..b879edb4 100644 --- a/translations/zh-cn.json +++ b/translations/zh-cn.json @@ -26,5 +26,6 @@ "UPDATE_NOTIFICATION": "MagicMirror² 有新的更新", "UPDATE_NOTIFICATION_MODULE": "模块 {MODULE_NAME} 可更新", - "UPDATE_INFO": "当前已安装版本为 {COMMIT_COUNT} 落后于分支 {BRANCH_NAME} " + "UPDATE_INFO_SINGLE": "当前已安装版本为 {COMMIT_COUNT} commit 落后于分支 {BRANCH_NAME} ", + "UPDATE_INFO_MULTIPLE": "当前已安装版本为 {COMMIT_COUNT} commits 落后于分支 {BRANCH_NAME} " }