mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 19:53:36 +00:00
Merge branch 'develop' of https://github.com/MichMich/MagicMirror into pr-calender-gzip
This commit is contained in:
commit
d3028e10d3
32
CHANGELOG.md
32
CHANGELOG.md
@ -10,6 +10,38 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
- Fix gzip encoded calendar loading issue #1400.
|
- 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
|
## [2.4.1] - 2018-07-04
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -62,13 +62,13 @@
|
|||||||
// Only start the client if a non-local server was provided
|
// 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) {
|
if (["localhost", "127.0.0.1", "::1", "::ffff:127.0.0.1", undefined].indexOf(config.address) === -1) {
|
||||||
getServerConfig(`http://${config.address}:${config.port}/config/`)
|
getServerConfig(`http://${config.address}:${config.port}/config/`)
|
||||||
.then(function (config) {
|
.then(function (configReturn) {
|
||||||
// Pass along the server config via an environment variable
|
// Pass along the server config via an environment variable
|
||||||
var env = Object.create(process.env);
|
var env = Object.create(process.env);
|
||||||
var options = { env: env };
|
var options = { env: env };
|
||||||
config.address = config.address;
|
configReturn.address = config.address;
|
||||||
config.port = config.port;
|
configReturn.port = config.port;
|
||||||
env.config = JSON.stringify(config);
|
env.config = JSON.stringify(configReturn);
|
||||||
|
|
||||||
// Spawn electron application
|
// Spawn electron application
|
||||||
const electron = require("electron");
|
const electron = require("electron");
|
||||||
|
@ -59,7 +59,7 @@ var config = {
|
|||||||
position: "top_right",
|
position: "top_right",
|
||||||
config: {
|
config: {
|
||||||
location: "New York",
|
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"
|
appid: "YOUR_OPENWEATHER_API_KEY"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -38,13 +38,13 @@ Module.register("alert",{
|
|||||||
if (this.config.effect == "slide") {this.config.effect = this.config.effect + "-" + this.config.position;}
|
if (this.config.effect == "slide") {this.config.effect = this.config.effect + "-" + this.config.position;}
|
||||||
msg = "";
|
msg = "";
|
||||||
if (message.title) {
|
if (message.title) {
|
||||||
msg += "<span class='thin' style='line-height: 35px; font-size:24px' color='#4A4A4A'>" + message.title + "</span>";
|
msg += "<span class='thin dimmed medium'>" + message.title + "</span>";
|
||||||
}
|
}
|
||||||
if (message.message){
|
if (message.message){
|
||||||
if (msg != ""){
|
if (msg != ""){
|
||||||
msg+= "<br />";
|
msg+= "<br />";
|
||||||
}
|
}
|
||||||
msg += "<span class='light' style='font-size:28px;line-height: 30px;'>" + message.message + "</span>";
|
msg += "<span class='light bright small'>" + message.message + "</span>";
|
||||||
}
|
}
|
||||||
|
|
||||||
new NotificationFx({
|
new NotificationFx({
|
||||||
@ -63,9 +63,9 @@ Module.register("alert",{
|
|||||||
params.imageUrl = null;
|
params.imageUrl = null;
|
||||||
image = "";
|
image = "";
|
||||||
} else if (typeof params.imageFA === "undefined"){
|
} else if (typeof params.imageFA === "undefined"){
|
||||||
image = "<img src='" + (params.imageUrl).toString() + "' height=" + (params.imageHeight).toString() + " style='margin-bottom: 10px;'/><br />";
|
image = "<img src='" + (params.imageUrl).toString() + "' height='" + (params.imageHeight).toString() + "' style='margin-bottom: 10px;'/><br />";
|
||||||
} else if (typeof params.imageUrl === "undefined"){
|
} else if (typeof params.imageUrl === "undefined"){
|
||||||
image = "<span class='" + "fa fa-" + params.imageFA + "' style='margin-bottom: 10px;color: #fff;font-size:" + (params.imageHeight).toString() + ";'/></span><br />";
|
image = "<span class='bright " + "fa fa-" + params.imageFA + "' style='margin-bottom: 10px;font-size:" + (params.imageHeight).toString() + ";'/></span><br />";
|
||||||
}
|
}
|
||||||
//Create overlay
|
//Create overlay
|
||||||
var overlay = document.createElement("div");
|
var overlay = document.createElement("div");
|
||||||
@ -79,16 +79,16 @@ Module.register("alert",{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Display title and message only if they are provided in notification parameters
|
//Display title and message only if they are provided in notification parameters
|
||||||
message ="";
|
var message = "";
|
||||||
if (params.title) {
|
if (params.title) {
|
||||||
message += "<span class='light' style='line-height: 35px; font-size:30px' color='#4A4A4A'>" + params.title + "</span>"
|
message += "<span class='light dimmed medium'>" + params.title + "</span>";
|
||||||
}
|
}
|
||||||
if (params.message) {
|
if (params.message) {
|
||||||
if (message != ""){
|
if (message !== ""){
|
||||||
message += "<br />";
|
message += "<br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
message += "<span class='thin' style='font-size:22px;line-height: 30px;'>" + params.message + "</span>";
|
message += "<span class='thin bright small'>" + params.message + "</span>";
|
||||||
}
|
}
|
||||||
|
|
||||||
//Store alert in this.alerts
|
//Store alert in this.alerts
|
||||||
@ -121,16 +121,16 @@ Module.register("alert",{
|
|||||||
setPosition: function(pos) {
|
setPosition: function(pos) {
|
||||||
//Add css to body depending on the set position for notifications
|
//Add css to body depending on the set position for notifications
|
||||||
var sheet = document.createElement("style");
|
var sheet = document.createElement("style");
|
||||||
if (pos == "center") {sheet.innerHTML = ".ns-box {margin-left: auto; margin-right: auto;text-align: center;}";}
|
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 === "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 === "left") {sheet.innerHTML = ".ns-box {margin-right: auto;text-align: left;}";}
|
||||||
document.body.appendChild(sheet);
|
document.body.appendChild(sheet);
|
||||||
|
|
||||||
},
|
},
|
||||||
notificationReceived: function(notification, payload, sender) {
|
notificationReceived: function(notification, payload, sender) {
|
||||||
if (notification === "SHOW_ALERT") {
|
if (notification === "SHOW_ALERT") {
|
||||||
if (typeof payload.type === "undefined") { payload.type = "alert"; }
|
if (typeof payload.type === "undefined") { payload.type = "alert"; }
|
||||||
if (payload.type == "alert") {
|
if (payload.type === "alert") {
|
||||||
this.show_alert(payload, sender);
|
this.show_alert(payload, sender);
|
||||||
} else if (payload.type = "notification") {
|
} else if (payload.type = "notification") {
|
||||||
this.show_notification(payload);
|
this.show_notification(payload);
|
||||||
@ -143,7 +143,7 @@ Module.register("alert",{
|
|||||||
this.alerts = {};
|
this.alerts = {};
|
||||||
this.setPosition(this.config.position);
|
this.setPosition(this.config.position);
|
||||||
if (this.config.welcome_message) {
|
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")});
|
this.show_notification({title: this.translate("sysTitle"), message: this.translate("welcome")});
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
4
modules/default/alert/translations/fr.json
Normal file
4
modules/default/alert/translations/fr.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"sysTitle": "MagicMirror Notification",
|
||||||
|
"welcome": "Bienvenue, le démarrage a été un succès!"
|
||||||
|
}
|
@ -25,7 +25,9 @@ Module.register("calendar", {
|
|||||||
urgency: 7,
|
urgency: 7,
|
||||||
timeFormat: "relative",
|
timeFormat: "relative",
|
||||||
dateFormat: "MMM Do",
|
dateFormat: "MMM Do",
|
||||||
|
dateEndFormat: "HH:mm",
|
||||||
fullDayEventDateFormat: "MMM Do",
|
fullDayEventDateFormat: "MMM Do",
|
||||||
|
showEnd: true,
|
||||||
getRelative: 6,
|
getRelative: 6,
|
||||||
fadePoint: 0.25, // Start on 1/4th of the list.
|
fadePoint: 0.25, // Start on 1/4th of the list.
|
||||||
hidePrivate: false,
|
hidePrivate: false,
|
||||||
@ -287,6 +289,10 @@ Module.register("calendar", {
|
|||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow());
|
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 {
|
} else {
|
||||||
if (event.startDate >= new Date()) {
|
if (event.startDate >= new Date()) {
|
||||||
if (event.startDate - now < 2 * oneDay) {
|
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()
|
// If event is within 6 hour, display 'in xxx' time format or moment.fromNow()
|
||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow());
|
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").fromNow());
|
||||||
} else {
|
} else {
|
||||||
// Otherwise just say 'Today/Tomorrow at such-n-such time'
|
if(this.config.timeFormat === "absolute") {
|
||||||
timeWrapper.innerHTML = this.capFirst(moment(event.startDate, "x").calendar());
|
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 {
|
} else {
|
||||||
/* Check to see if the user displays absolute or relative dates with their events
|
/* 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');
|
//timeWrapper.innerHTML += ' - '+ moment(event.startDate,'x').format('lll');
|
||||||
//console.log(event);
|
//console.log(event);
|
||||||
@ -436,7 +451,7 @@ Module.register("calendar", {
|
|||||||
|
|
||||||
|
|
||||||
listContainsEvent: function(eventList, event){
|
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)){
|
if(evt.title === event.title && parseInt(evt.startDate) === parseInt(event.startDate)){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -91,6 +91,9 @@ var CalendarFetcher = function(url, reloadInterval, excludedEvents, maximumEntri
|
|||||||
var endDate;
|
var endDate;
|
||||||
if (typeof event.end !== "undefined") {
|
if (typeof event.end !== "undefined") {
|
||||||
endDate = eventDate(event, "end");
|
endDate = eventDate(event, "end");
|
||||||
|
} else if(typeof event.duration !== "undefined") {
|
||||||
|
dur=moment.duration(event.duration);
|
||||||
|
endDate = startDate.clone().add(dur);
|
||||||
} else {
|
} else {
|
||||||
if (!isFacebookBirthday) {
|
if (!isFacebookBirthday) {
|
||||||
endDate = startDate;
|
endDate = startDate;
|
||||||
@ -274,8 +277,7 @@ var CalendarFetcher = function(url, reloadInterval, excludedEvents, maximumEntri
|
|||||||
var start = event.start || 0;
|
var start = event.start || 0;
|
||||||
var startDate = new Date(start);
|
var startDate = new Date(start);
|
||||||
var end = event.end || 0;
|
var end = event.end || 0;
|
||||||
|
if (((end - start) % (24 * 60 * 60 * 1000)) === 0 && startDate.getHours() === 0 && startDate.getMinutes() === 0) {
|
||||||
if (end - start === 24 * 60 * 60 * 1000 && startDate.getHours() === 0 && startDate.getMinutes() === 0) {
|
|
||||||
// Is 24 hours, and starts on the middle of the night.
|
// Is 24 hours, and starts on the middle of the night.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -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_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. <br> The module expects that the module's configuration option `showDescription` is set to `false` (default value). <br><br> When received a _second consecutive time_, shows the full news article in an IFRAME. <br> 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`.<br><br>When received the _next consecutive times_, reloads the page and scrolls down by `scrollLength` pixels to paginate through the article.
|
| `ARTICLE_MORE_DETAILS` | When received the _first time_, shows the corresponding description of the currently displayed news title. <br> The module expects that the module's configuration option `showDescription` is set to `false` (default value). <br><br> When received a _second consecutive time_, shows the full news article in an IFRAME. <br> 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`.<br><br>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_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.
|
Note the payload of the sent notification event is ignored.
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ Module.register("newsfeed",{
|
|||||||
|
|
||||||
if (this.config.feedUrl) {
|
if (this.config.feedUrl) {
|
||||||
wrapper.className = "small bright";
|
wrapper.className = "small bright";
|
||||||
wrapper.innerHTML = "The configuration options for the newsfeed module have changed.<br>Please check the documentation.";
|
wrapper.innerHTML = this.translate("configuration_changed");
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,21 +123,21 @@ Module.register("newsfeed",{
|
|||||||
|
|
||||||
//Remove selected tags from the beginning of rss feed items (title or description)
|
//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.config.startTags.length;f++) {
|
for (f=0; f<this.config.startTags.length;f++) {
|
||||||
if (this.newsItems[this.activeItem].title.slice(0,this.config.startTags[f].length) == this.config.startTags[f]) {
|
if (this.newsItems[this.activeItem].title.slice(0,this.config.startTags[f].length) === this.config.startTags[f]) {
|
||||||
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].title.slice(this.config.startTags[f].length,this.newsItems[this.activeItem].title.length);
|
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].title.slice(this.config.startTags[f].length,this.newsItems[this.activeItem].title.length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.config.removeStartTags == "description" || this.config.removeStartTags == "both") {
|
if (this.config.removeStartTags === "description" || this.config.removeStartTags === "both") {
|
||||||
|
|
||||||
if (this.isShowingDescription) {
|
if (this.isShowingDescription) {
|
||||||
for (f=0; f<this.config.startTags.length;f++) {
|
for (f=0; f<this.config.startTags.length;f++) {
|
||||||
if (this.newsItems[this.activeItem].description.slice(0,this.config.startTags[f].length) == this.config.startTags[f]) {
|
if (this.newsItems[this.activeItem].description.slice(0,this.config.startTags[f].length) === this.config.startTags[f]) {
|
||||||
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].description.slice(this.config.startTags[f].length,this.newsItems[this.activeItem].description.length);
|
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].description.slice(this.config.startTags[f].length,this.newsItems[this.activeItem].description.length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -149,14 +149,14 @@ Module.register("newsfeed",{
|
|||||||
|
|
||||||
if (this.config.removeEndTags) {
|
if (this.config.removeEndTags) {
|
||||||
for (f=0; f<this.config.endTags.length;f++) {
|
for (f=0; f<this.config.endTags.length;f++) {
|
||||||
if (this.newsItems[this.activeItem].title.slice(-this.config.endTags[f].length)==this.config.endTags[f]) {
|
if (this.newsItems[this.activeItem].title.slice(-this.config.endTags[f].length)===this.config.endTags[f]) {
|
||||||
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].title.slice(0,-this.config.endTags[f].length);
|
this.newsItems[this.activeItem].title = this.newsItems[this.activeItem].title.slice(0,-this.config.endTags[f].length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isShowingDescription) {
|
if (this.isShowingDescription) {
|
||||||
for (f=0; f<this.config.endTags.length;f++) {
|
for (f=0; f<this.config.endTags.length;f++) {
|
||||||
if (this.newsItems[this.activeItem].description.slice(-this.config.endTags[f].length)==this.config.endTags[f]) {
|
if (this.newsItems[this.activeItem].description.slice(-this.config.endTags[f].length)===this.config.endTags[f]) {
|
||||||
this.newsItems[this.activeItem].description = this.newsItems[this.activeItem].description.slice(0,-this.config.endTags[f].length);
|
this.newsItems[this.activeItem].description = this.newsItems[this.activeItem].description.slice(0,-this.config.endTags[f].length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -338,7 +338,7 @@ Module.register("newsfeed",{
|
|||||||
|
|
||||||
notificationReceived: function(notification, payload, sender) {
|
notificationReceived: function(notification, payload, sender) {
|
||||||
Log.info(this.name + " - received notification: " + notification);
|
Log.info(this.name + " - received notification: " + notification);
|
||||||
if(notification == "ARTICLE_NEXT"){
|
if(notification === "ARTICLE_NEXT"){
|
||||||
var before = this.activeItem;
|
var before = this.activeItem;
|
||||||
this.activeItem++;
|
this.activeItem++;
|
||||||
if (this.activeItem >= this.newsItems.length) {
|
if (this.activeItem >= this.newsItems.length) {
|
||||||
@ -347,7 +347,7 @@ Module.register("newsfeed",{
|
|||||||
this.resetDescrOrFullArticleAndTimer();
|
this.resetDescrOrFullArticleAndTimer();
|
||||||
Log.info(this.name + " - going from article #" + before + " to #" + this.activeItem + " (of " + this.newsItems.length + ")");
|
Log.info(this.name + " - going from article #" + before + " to #" + this.activeItem + " (of " + this.newsItems.length + ")");
|
||||||
this.updateDom(100);
|
this.updateDom(100);
|
||||||
} else if(notification == "ARTICLE_PREVIOUS"){
|
} else if(notification === "ARTICLE_PREVIOUS"){
|
||||||
var before = this.activeItem;
|
var before = this.activeItem;
|
||||||
this.activeItem--;
|
this.activeItem--;
|
||||||
if (this.activeItem < 0) {
|
if (this.activeItem < 0) {
|
||||||
@ -358,42 +358,52 @@ Module.register("newsfeed",{
|
|||||||
this.updateDom(100);
|
this.updateDom(100);
|
||||||
}
|
}
|
||||||
// if "more details" is received the first time: show article summary, on second time show full article
|
// 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
|
// full article is already showing, so scrolling down
|
||||||
if(this.config.showFullArticle == true){
|
if(this.config.showFullArticle === true){
|
||||||
this.scrollPosition += this.config.scrollLength;
|
this.scrollPosition += this.config.scrollLength;
|
||||||
window.scrollTo(0, this.scrollPosition);
|
window.scrollTo(0, this.scrollPosition);
|
||||||
Log.info(this.name + " - scrolling down");
|
Log.info(this.name + " - scrolling down");
|
||||||
Log.info(this.name + " - ARTICLE_MORE_DETAILS, scroll position: " + this.config.scrollLength);
|
Log.info(this.name + " - ARTICLE_MORE_DETAILS, scroll position: " + this.config.scrollLength);
|
||||||
}
|
}
|
||||||
// display full article
|
|
||||||
else {
|
else {
|
||||||
this.isShowingDescription = !this.isShowingDescription;
|
this.showFullArticle();
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
} else if(notification == "ARTICLE_SCROLL_UP"){
|
} else if(notification === "ARTICLE_SCROLL_UP"){
|
||||||
if(this.config.showFullArticle == true){
|
if(this.config.showFullArticle === true){
|
||||||
this.scrollPosition -= this.config.scrollLength;
|
this.scrollPosition -= this.config.scrollLength;
|
||||||
window.scrollTo(0, this.scrollPosition);
|
window.scrollTo(0, this.scrollPosition);
|
||||||
Log.info(this.name + " - scrolling up");
|
Log.info(this.name + " - scrolling up");
|
||||||
Log.info(this.name + " - ARTICLE_SCROLL_UP, scroll position: " + this.config.scrollLength);
|
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();
|
this.resetDescrOrFullArticleAndTimer();
|
||||||
Log.info(this.name + " - showing only article titles again");
|
Log.info(this.name + " - showing only article titles again");
|
||||||
this.updateDom(100);
|
this.updateDom(100);
|
||||||
|
} else if (notification === "ARTICLE_TOGGLE_FULL"){
|
||||||
|
if (this.config.showFullArticle){
|
||||||
|
this.activeItem++;
|
||||||
|
this.resetDescrOrFullArticleAndTimer();
|
||||||
|
} else {
|
||||||
|
this.showFullArticle();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.info(this.name + " - unknown notification, ignoring: " + notification);
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
3
modules/default/newsfeed/translations/de.json
Normal file
3
modules/default/newsfeed/translations/de.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"configuration_changed": "Die Konfigurationsoptionen für das Newsfeed-Modul haben sich geändert. \nBitte überprüfen Sie die Dokumentation."
|
||||||
|
}
|
3
modules/default/newsfeed/translations/en.json
Normal file
3
modules/default/newsfeed/translations/en.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"configuration_changed": "The configuration options for the newsfeed module have changed.\nPlease check the documentation."
|
||||||
|
}
|
3
modules/default/newsfeed/translations/es.json
Normal file
3
modules/default/newsfeed/translations/es.json
Normal file
@ -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."
|
||||||
|
}
|
3
modules/default/newsfeed/translations/fr.json
Normal file
3
modules/default/newsfeed/translations/fr.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"configuration_changed": "Les options de configuration du module newsfeed ont changé. \nVeuillez consulter la documentation."
|
||||||
|
}
|
@ -58,8 +58,9 @@ Module.register("updatenotification", {
|
|||||||
icon.innerHTML = " ";
|
icon.innerHTML = " ";
|
||||||
message.appendChild(icon);
|
message.appendChild(icon);
|
||||||
|
|
||||||
var subtextHtml = this.translate("UPDATE_INFO", {
|
var updateInfoKeyName = this.status.behind == 1 ? "UPDATE_INFO_SINGLE" : "UPDATE_INFO_MULTIPLE";
|
||||||
COMMIT_COUNT: this.status.behind + " " + ((this.status.behind == 1) ? "commit" : "commits"),
|
var subtextHtml = this.translate(updateInfoKeyName, {
|
||||||
|
COMMIT_COUNT: this.status.behind,
|
||||||
BRANCH_NAME: this.status.current
|
BRANCH_NAME: this.status.current
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ Module.register("weatherforecast",{
|
|||||||
rainCell.innerHTML = "";
|
rainCell.innerHTML = "";
|
||||||
} else {
|
} else {
|
||||||
if(config.units !== "imperial") {
|
if(config.units !== "imperial") {
|
||||||
rainCell.innerHTML = forecast.rain + " mm";
|
rainCell.innerHTML = parseFloat(forecast.rain).toFixed(1) + " mm";
|
||||||
} else {
|
} else {
|
||||||
rainCell.innerHTML = (parseFloat(forecast.rain) / 25.4).toFixed(2) + " in";
|
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],
|
icon: this.config.iconTable[forecast.weather[0].icon],
|
||||||
maxTemp: this.roundValue(forecast.temp.max),
|
maxTemp: this.roundValue(forecast.temp.max),
|
||||||
minTemp: this.roundValue(forecast.temp.min),
|
minTemp: this.roundValue(forecast.temp.min),
|
||||||
rain: this.roundValue(forecast.rain)
|
rain: forecast.rain
|
||||||
};
|
};
|
||||||
|
|
||||||
this.forecast.push(forecastData);
|
this.forecast.push(forecastData);
|
||||||
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "magicmirror",
|
"name": "magicmirror",
|
||||||
"version": "2.4.1",
|
"version": "2.5.0-dev",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "magicmirror",
|
"name": "magicmirror",
|
||||||
"version": "2.4.1",
|
"version": "2.5.0-dev",
|
||||||
"description": "The open source modular smart mirror platform.",
|
"description": "The open source modular smart mirror platform.",
|
||||||
"main": "js/electron.js",
|
"main": "js/electron.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Update available for MODULE_NAME module.",
|
"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."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Update available for MODULE_NAME module.",
|
"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."
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² update beskikbaar.",
|
"UPDATE_NOTIFICATION": "MagicMirror² update beskikbaar.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Update beskikbaar vir {MODULE_NAME} module.",
|
"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."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Налична актуализация за MagicMirror².",
|
"UPDATE_NOTIFICATION": "Налична актуализация за MagicMirror².",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Налична актуализация за {MODULE_NAME} модул.",
|
"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}."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² actualizació disponible.",
|
"UPDATE_NOTIFICATION": "MagicMirror² actualizació disponible.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Disponible una actualizació per al mòdul {MODULE_NAME}.",
|
"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}."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Dostupná aktualizace pro MagicMirror².",
|
"UPDATE_NOTIFICATION": "Dostupná aktualizace pro MagicMirror².",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Dostupná aktualizace pro modul {MODULE_NAME}.",
|
"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."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² mwy diweddar yn barod.",
|
"UPDATE_NOTIFICATION": "MagicMirror² mwy diweddar yn barod.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Mae diweddaraiad ar gyfer y modiwl {MODULE_NAME}.",
|
"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}."
|
||||||
}
|
}
|
||||||
|
@ -27,5 +27,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² opdatering tilgængelig.",
|
"UPDATE_NOTIFICATION": "MagicMirror² opdatering tilgængelig.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Opdatering tilgængelig for {MODULE_NAME} modulet.",
|
"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."
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Aktualisierung für MagicMirror² verfügbar.",
|
"UPDATE_NOTIFICATION": "Aktualisierung für MagicMirror² verfügbar.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Aktualisierung für das {MODULE_NAME} Modul 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"
|
"FEELS": "Gefühlt"
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
"UPDATE_NOTIFICATION": "MagicMirror² update available.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Update available for {MODULE_NAME} module.",
|
"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"
|
"FEELS": "Feels"
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,8 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² actualización disponible.",
|
"UPDATE_NOTIFICATION": "MagicMirror² actualización disponible.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Disponible una actualización para el módulo {MODULE_NAME}.",
|
"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"
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror²´le uuendus saadaval.",
|
"UPDATE_NOTIFICATION": "MagicMirror²´le uuendus saadaval.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Uuendus saadaval {MODULE_NAME} moodulile.",
|
"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."
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"DAYAFTERTOMORROW": "Après-demain",
|
"DAYAFTERTOMORROW": "Après-demain",
|
||||||
"RUNNING": "Se termine dans",
|
"RUNNING": "Se termine dans",
|
||||||
"EMPTY": "Aucun RDV à venir.",
|
"EMPTY": "Aucun RDV à venir.",
|
||||||
|
|
||||||
"WEEK": "Semaine {weekNumber}",
|
"WEEK": "Semaine {weekNumber}",
|
||||||
|
|
||||||
"N": "N",
|
"N": "N",
|
||||||
@ -25,8 +25,11 @@
|
|||||||
"WNW": "ONO",
|
"WNW": "ONO",
|
||||||
"NW": "NO",
|
"NW": "NO",
|
||||||
"NNW": "NNO",
|
"NNW": "NNO",
|
||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Une mise à jour de MagicMirror² est disponible",
|
"UPDATE_NOTIFICATION": "Une mise à jour de MagicMirror² est disponible",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Une mise à jour est disponible pour le module {MODULE_NAME} .",
|
"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"
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
"RUNNING": "Vége lesz",
|
"RUNNING": "Vége lesz",
|
||||||
"EMPTY": "Nincs közelgő esemény.",
|
"EMPTY": "Nincs közelgő esemény.",
|
||||||
|
|
||||||
|
"WEEK": "{weekNumber}. hét",
|
||||||
|
|
||||||
"N": "É",
|
"N": "É",
|
||||||
"NNE": "ÉÉK",
|
"NNE": "ÉÉK",
|
||||||
"NE": "ÉK",
|
"NE": "ÉK",
|
||||||
@ -24,7 +26,10 @@
|
|||||||
"NW": "ÉNy",
|
"NW": "ÉNy",
|
||||||
"NNW": "ÉÉNy",
|
"NNW": "ÉÉNy",
|
||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² elérhető egy frissítés!",
|
"UPDATE_NOTIFICATION": "MagicMirror²-hoz frissítés érhető el.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "A frissítés {MODULE_NAME} modul néven érhető el.",
|
"UPDATE_NOTIFICATION_MODULE": "A {MODULE_NAME} modulhoz frissítés érhető el.",
|
||||||
"UPDATE_INFO": "A jelenlegi telepítés {COMMIT_COUNT} mögött {BRANCH_NAME} ágon található."
|
"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"
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Memperbarui MagicMirror² tersedia.",
|
"UPDATE_NOTIFICATION": "Memperbarui MagicMirror² tersedia.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Memperbarui tersedia untuk modul {MODULE_NAME}.",
|
"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}."
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² uppfærsla í boði.",
|
"UPDATE_NOTIFICATION": "MagicMirror² uppfærsla í boði.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Uppfærsla í boði fyrir {MODULE_NAME} module.",
|
"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."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "E' disponibile un aggiornamento di MagicMirror².",
|
"UPDATE_NOTIFICATION": "E' disponibile un aggiornamento di MagicMirror².",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "E' disponibile un aggiornamento del modulo {MODULE_NAME}.",
|
"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}."
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "새로운 MagicMirror² 업데이트가 있습니다.",
|
"UPDATE_NOTIFICATION": "새로운 MagicMirror² 업데이트가 있습니다.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "{MODULE_NAME} 모듈에서 사용 가능한 업데이트 입니다.",
|
"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} 분기에 해당됩니다."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,8 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror²-oppdatering er tilgjengelig.",
|
"UPDATE_NOTIFICATION": "MagicMirror²-oppdatering er tilgjengelig.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Oppdatering tilgjengelig for modulen {MODULE_NAME}.",
|
"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"
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,8 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² update beschikbaar.",
|
"UPDATE_NOTIFICATION": "MagicMirror² update beschikbaar.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Update beschikbaar voor {MODULE_NAME} module.",
|
"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"
|
"FEELS": "Gevoelstemperatuur"
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,8 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² oppdatering er tilgjengeleg.",
|
"UPDATE_NOTIFICATION": "MagicMirror² oppdatering er tilgjengeleg.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Oppdatering tilgjengeleg for modulen {MODULE_NAME}.",
|
"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"
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,8 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Dostępna jest aktualizacja MagicMirror².",
|
"UPDATE_NOTIFICATION": "Dostępna jest aktualizacja MagicMirror².",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Dostępna jest aktualizacja modułu {MODULE_NAME}.",
|
"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"
|
||||||
}
|
}
|
||||||
|
@ -25,5 +25,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Nova atualização para MagicMirror disponível.",
|
"UPDATE_NOTIFICATION": "Nova atualização para MagicMirror disponível.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Atualização para o módulo {MODULE_NAME} 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}."
|
||||||
}
|
}
|
||||||
|
@ -27,5 +27,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Atualização do MagicMirror² disponível.",
|
"UPDATE_NOTIFICATION": "Atualização do MagicMirror² disponível.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Atualização para o módulo {MODULE_NAME} 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}."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Un update este disponibil pentru MagicMirror².",
|
"UPDATE_NOTIFICATION": "Un update este disponibil pentru MagicMirror².",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Un update este disponibil pentru modulul {MODULE_NAME}.",
|
"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}."
|
||||||
}
|
}
|
||||||
|
@ -28,5 +28,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "Есть обновление для MagicMirror².",
|
"UPDATE_NOTIFICATION": "Есть обновление для MagicMirror².",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Есть обновление для {MODULE_NAME} модуля.",
|
"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} коммитов."
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,12 @@
|
|||||||
"WNW": "VNV",
|
"WNW": "VNV",
|
||||||
"NW": "NV",
|
"NW": "NV",
|
||||||
"NNW": "NNV",
|
"NNW": "NNV",
|
||||||
|
"FEELS": "Känns som",
|
||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² uppdatering finns tillgänglig.",
|
"UPDATE_NOTIFICATION": "MagicMirror² uppdatering finns tillgänglig.",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "Uppdatering finns tillgänglig av {MODULE_NAME} modulen.",
|
"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"
|
||||||
}
|
}
|
||||||
|
@ -26,5 +26,6 @@
|
|||||||
|
|
||||||
"UPDATE_NOTIFICATION": "MagicMirror² 有新的更新",
|
"UPDATE_NOTIFICATION": "MagicMirror² 有新的更新",
|
||||||
"UPDATE_NOTIFICATION_MODULE": "模块 {MODULE_NAME} 可更新",
|
"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} "
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user