Initial commit

This commit is contained in:
2018-09-22 00:10:53 +08:00
commit 5a308ad8ba
22 changed files with 2479 additions and 0 deletions

217
admin/blockly.js Normal file
View File

@@ -0,0 +1,217 @@
'use strict';
goog.provide('Blockly.JavaScript.Sendto');
goog.require('Blockly.JavaScript');
/// --- SendTo pushover --------------------------------------------------
Blockly.Words['pushover'] = {'en': 'pushover', 'de': 'pushover', 'ru': 'pushover'};
Blockly.Words['pushover_message'] = {'en': 'message', 'de': 'Meldung', 'ru': 'сообщение'};
Blockly.Words['pushover_title'] = {'en': 'title (optional)', 'de': 'Betreff (optional)', 'ru': 'заголовок (не обяз.)'};
Blockly.Words['pushover_sound'] = {'en': 'sound', 'de': 'Klang', 'ru': 'звук'};
Blockly.Words['pushover_priority'] = {'en': 'priority', 'de': 'Priorität', 'ru': 'приоритет'};
Blockly.Words['pushover_url'] = {'en': 'URL (optional)', 'de': 'URL (optional)', 'ru': 'URL (не обяз.)'};
Blockly.Words['pushover_url_title'] = {'en': 'URL title (optional)', 'de': 'URL Betreff (optional)', 'ru': 'заголовок для URL (не обяз.)'};
Blockly.Words['pushover_device'] = {'en': 'device ID (optional)', 'de': 'Gerät ID (optional)', 'ru': 'ID устройства (не обяз.)'};
Blockly.Words['pushover_timestamp'] = {'en': 'time in ms (optional)', 'de': 'Zeit in ms (optional)', 'ru': 'время в мс (не обяз.)'};
Blockly.Words['pushover_normal'] = {'en': 'default', 'de': 'Normal', 'ru': 'по умолчанию'};
Blockly.Words['pushover_high'] = {'en': 'high priority', 'de': 'Hohe Priorität', 'ru': 'приоритетное'};
Blockly.Words['pushover_quiet'] = {'en': 'quiet', 'de': 'Leise', 'ru': 'тихое'};
Blockly.Words['pushover_confirmation'] = {'en': 'with confirmation', 'de': 'Mit Bestätigung', 'ru': 'с подтверждением'};
Blockly.Words['pushover_sound_default'] = {'en': 'default', 'de': 'normal', 'ru': 'по умолчанию'};
Blockly.Words['pushover_sound_pushover'] = {'en': 'pushover', 'de': 'pushover', 'ru': 'pushover'};
Blockly.Words['pushover_sound_bike'] = {'en': 'bike', 'de': 'bike', 'ru': 'bike'};
Blockly.Words['pushover_sound_bugle'] = {'en': 'bugle', 'de': 'bugle', 'ru': 'bugle'};
Blockly.Words['pushover_sound_cashregister'] = {'en': 'cashregister', 'de': 'cashregister', 'ru': 'cashregister'};
Blockly.Words['pushover_sound_classical'] = {'en': 'classical', 'de': 'classical', 'ru': 'classical'};
Blockly.Words['pushover_sound_cosmic'] = {'en': 'cosmic', 'de': 'cosmic', 'ru': 'cosmic'};
Blockly.Words['pushover_sound_falling'] = {'en': 'falling', 'de': 'falling', 'ru': 'falling'};
Blockly.Words['pushover_sound_gamelan'] = {'en': 'gamelan', 'de': 'gamelan', 'ru': 'gamelan'};
Blockly.Words['pushover_sound_incoming'] = {'en': 'incoming', 'de': 'incoming', 'ru': 'incoming'};
Blockly.Words['pushover_sound_intermission'] = {'en': 'intermission', 'de': 'intermission', 'ru': 'intermission'};
Blockly.Words['pushover_sound_magic'] = {'en': 'magic', 'de': 'magic', 'ru': 'magic'};
Blockly.Words['pushover_sound_mechanical'] = {'en': 'mechanical', 'de': 'mechanical', 'ru': 'mechanical'};
Blockly.Words['pushover_sound_pianobar'] = {'en': 'pianobar', 'de': 'pianobar', 'ru': 'pianobar'};
Blockly.Words['pushover_sound_siren'] = {'en': 'siren', 'de': 'siren', 'ru': 'siren'};
Blockly.Words['pushover_sound_spacealarm'] = {'en': 'spacealarm', 'de': 'spacealarm', 'ru': 'spacealarm'};
Blockly.Words['pushover_sound_tugboat'] = {'en': 'tugboat', 'de': 'tugboat', 'ru': 'tugboat'};
Blockly.Words['pushover_sound_alien'] = {'en': 'alien', 'de': 'alien', 'ru': 'alien'};
Blockly.Words['pushover_sound_climb'] = {'en': 'climb', 'de': 'climb', 'ru': 'climb'};
Blockly.Words['pushover_sound_persistent'] = {'en': 'persistent', 'de': 'persistent', 'ru': 'persistent'};
Blockly.Words['pushover_sound_echo'] = {'en': 'echo', 'de': 'echo', 'ru': 'echo'};
Blockly.Words['pushover_sound_updown'] = {'en': 'updown', 'de': 'updown', 'ru': 'updown'};
Blockly.Words['pushover_sound_none'] = {'en': 'none', 'de': 'keins', 'ru': 'без звука'};
Blockly.Words['pushover_log'] = {'en': 'log level', 'de': 'Loglevel', 'ru': 'Протокол'};
Blockly.Words['pushover_log_none'] = {'en': 'none', 'de': 'keins', 'ru': 'нет'};
Blockly.Words['pushover_log_info'] = {'en': 'info', 'de': 'info', 'ru': 'инфо'};
Blockly.Words['pushover_log_debug'] = {'en': 'debug', 'de': 'debug', 'ru': 'debug'};
Blockly.Words['pushover_log_warn'] = {'en': 'warning', 'de': 'warning', 'ru': 'warning'};
Blockly.Words['pushover_log_error'] = {'en': 'error', 'de': 'error', 'ru': 'ошибка'};
Blockly.Words['pushover_anyInstance'] = {'en': 'all instances', 'de': 'Alle Instanzen', 'ru': 'На все драйвера'};
Blockly.Words['pushover_tooltip'] = {'en': 'Send message to pushover', 'de': 'Sende eine Meldung über Telegram', 'ru': 'Послать сообщение через Pushover'};
Blockly.Words['pushover_help'] = {'en': 'https://github.com/ioBroker/ioBroker.pushover/blob/master/README.md', 'de': 'https://github.com/ioBroker/ioBroker.pushover/blob/master/README.md', 'ru': 'https://github.com/ioBroker/ioBroker.pushover/blob/master/README.md'};
Blockly.Sendto.blocks['pushover'] =
'<block type="pushover">'
+ ' <value name="INSTANCE">'
+ ' </value>'
+ ' <value name="MESSAGE">'
+ ' <shadow type="text">'
+ ' <field name="TEXT">text</field>'
+ ' </shadow>'
+ ' </value>'
+ ' <value name="TITLE">'
+ ' </value>'
+ ' <value name="SOUND">'
+ ' </value>'
+ ' <value name="PRIORITY">'
+ ' </value>'
+ ' <value name="URL">'
+ ' </value>'
+ ' <value name="URL_TITLE">'
+ ' </value>'
+ ' <value name="DEVICE">'
+ ' </value>'
+ ' <value name="TIMESTAMP">'
+ ' </value>'
+ ' <value name="LOG">'
+ ' </value>'
+ '</block>';
Blockly.Blocks['pushover'] = {
init: function() {
this.appendDummyInput('INSTANCE')
.appendField(Blockly.Words['pushover'][systemLang])
.appendField(new Blockly.FieldDropdown([[Blockly.Words['pushover_anyInstance'][systemLang], ""], ["pushover.0", ".0"], ["pushover.1", ".1"], ["pushover.2", ".2"], ["pushover.3", ".3"], ["pushover.4", ".4"]]), "INSTANCE");
this.appendValueInput('MESSAGE')
.appendField(Blockly.Words['pushover_message'][systemLang]);
this.appendDummyInput('SOUND')
.appendField(Blockly.Words['pushover_sound'][systemLang])
.appendField(new Blockly.FieldDropdown([
[Blockly.Words['pushover_sound_default'][systemLang], ""],
[Blockly.Words['pushover_sound_pushover'][systemLang], "pushover"],
[Blockly.Words['pushover_sound_bike'][systemLang], "bike"],
[Blockly.Words['pushover_sound_bugle'][systemLang], "bugle"],
[Blockly.Words['pushover_sound_cashregister'][systemLang], "cashregister"],
[Blockly.Words['pushover_sound_classical'][systemLang], "classical"],
[Blockly.Words['pushover_sound_cosmic'][systemLang], "cosmic"],
[Blockly.Words['pushover_sound_falling'][systemLang], "falling"],
[Blockly.Words['pushover_sound_gamelan'][systemLang], "gamelan"],
[Blockly.Words['pushover_sound_incoming'][systemLang], "incoming"],
[Blockly.Words['pushover_sound_intermission'][systemLang], "intermission"],
[Blockly.Words['pushover_sound_magic'][systemLang], "magic"],
[Blockly.Words['pushover_sound_mechanical'][systemLang], "mechanical"],
[Blockly.Words['pushover_sound_pianobar'][systemLang], "pianobar"],
[Blockly.Words['pushover_sound_siren'][systemLang], "siren"],
[Blockly.Words['pushover_sound_spacealarm'][systemLang], "spacealarm"],
[Blockly.Words['pushover_sound_tugboat'][systemLang], "tugboat"],
[Blockly.Words['pushover_sound_alien'][systemLang], "alien"],
[Blockly.Words['pushover_sound_climb'][systemLang], "climb"],
[Blockly.Words['pushover_sound_persistent'][systemLang], "persistent"],
[Blockly.Words['pushover_sound_echo'][systemLang], "echo"],
[Blockly.Words['pushover_sound_updown'][systemLang], "updown"],
[Blockly.Words['pushover_sound_none'][systemLang], "none"]
]), 'SOUND');
this.appendDummyInput('PRIORITY')
.appendField(Blockly.Words['pushover_priority'][systemLang])
.appendField(new Blockly.FieldDropdown([
[Blockly.Words['pushover_normal'][systemLang], "0"],
[Blockly.Words['pushover_high'][systemLang], "1"],
[Blockly.Words['pushover_quiet'][systemLang], "-1"],
[Blockly.Words['pushover_confirmation'][systemLang], "2"]
]), 'PRIORITY');
var input = this.appendValueInput('TITLE')
.setCheck('String')
.appendField(Blockly.Words['pushover_title'][systemLang]);
if (input.connection) input.connection._optional = true;
input = this.appendValueInput("URL")
.setCheck('String')
.appendField(Blockly.Words['pushover_url'][systemLang]);
if (input.connection) input.connection._optional = true;
input = this.appendValueInput('URL_TITLE')
.setCheck('String')
.appendField(Blockly.Words['pushover_url_title'][systemLang]);
if (input.connection) input.connection._optional = true;
input = this.appendValueInput('DEVICE')
.setCheck('String')
.appendField(Blockly.Words['pushover_device'][systemLang]);
if (input.connection) input.connection._optional = true;
input = this.appendValueInput('TIMESTAMP')
.setCheck('Date')
.appendField(Blockly.Words['pushover_timestamp'][systemLang]);
if (input.connection) input.connection._optional = true;
this.appendDummyInput('LOG')
.appendField(Blockly.Words['pushover_log'][systemLang])
.appendField(new Blockly.FieldDropdown([
[Blockly.Words['pushover_log_none'][systemLang], ''],
[Blockly.Words['pushover_log_info'][systemLang], 'log'],
[Blockly.Words['pushover_log_debug'][systemLang], 'debug'],
[Blockly.Words['pushover_log_warn'][systemLang], 'warn'],
[Blockly.Words['pushover_log_error'][systemLang], 'error']
]), 'LOG');
this.setInputsInline(false);
this.setPreviousStatement(true, null);
this.setNextStatement(true, null);
this.setColour(Blockly.Sendto.HUE);
this.setTooltip(Blockly.Words['pushover_tooltip'][systemLang]);
this.setHelpUrl(Blockly.Words['pushover_help'][systemLang]);
}
};
Blockly.JavaScript['pushover'] = function(block) {
var dropdown_instance = block.getFieldValue('INSTANCE');
var logLevel = block.getFieldValue('LOG');
var message = Blockly.JavaScript.valueToCode(block, 'MESSAGE', Blockly.JavaScript.ORDER_ATOMIC);
var text = '{\n';
text += ' message: ' + message + ',\n';
text += ' sound: "' + block.getFieldValue('SOUND') + '",\n';
var value = parseInt(block.getFieldValue('PRIORITY'), 10);
if (value) text += ' priority: ' + value + ',\n';
if (value === 2) {
text += ' retry: 60,\n';
text += ' expire: 3600,\n';
}
value = Blockly.JavaScript.valueToCode(block, 'URL', Blockly.JavaScript.ORDER_ATOMIC);
if (value) text += ' url: ' + value + ',\n';
value = Blockly.JavaScript.valueToCode(block, 'URL_TITLE', Blockly.JavaScript.ORDER_ATOMIC);
if (value) text += ' url_title: ' + value + ',\n';
value = Blockly.JavaScript.valueToCode(block, 'TITLE', Blockly.JavaScript.ORDER_ATOMIC);
if (value) text += ' title: ' + value + ',\n';
value = Blockly.JavaScript.valueToCode(block, 'DEVICE', Blockly.JavaScript.ORDER_ATOMIC);
if (value) text += ' device: ' + value + ',\n';
value = Blockly.JavaScript.valueToCode(block, 'TIMESTAMP', Blockly.JavaScript.ORDER_ATOMIC);
if (value) text += ' timestamp: ' + value + ',\n';
text = text.substring(0, text.length - 2);
text += '\n';
text += '}';
var logText;
if (logLevel) {
logText = 'console.' + logLevel + '("pushover: " + ' + message + ');\n'
} else {
logText = '';
}
return 'sendTo("pushover' + dropdown_instance + '", "send", ' + text + ');\n' + logText;
};

168
admin/index.html Normal file
View File

@@ -0,0 +1,168 @@
<html>
<head>
<!-- these 4 files always have to be included -->
<link rel="stylesheet" type="text/css" href="../../lib/css/themes/jquery-ui/redmond/jquery-ui.min.css"/>
<script type="text/javascript" src="../../lib/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="../../socket.io/socket.io.js"></script>
<script type="text/javascript" src="../../lib/js/jquery-ui-1.10.3.full.min.js"></script>
<!-- these two file always have to be included -->
<link rel="stylesheet" type="text/css" href="../../css/adapter.css"/>
<script type="text/javascript" src="../../js/translate.js"></script>
<script type="text/javascript" src="../../js/adapter-settings.js"></script>
<script src="words.js"></script>
<!-- you have to define 2 functions in the global scope: -->
<script type="text/javascript">
var rooms = [];
var roomsSelect = "";
var devices = [];
var processed = 1000;
var isStarted = null;
// the function loadSettings has to exist ...
function load(settings, onChange) {
for (var key in settings) {
if ($('#' + key + '.value').attr('type') === 'checkbox') {
$('#' + key + '.value').prop('checked', settings[key]).on('change', function() {
onChange();
});
} else {
$('#' + key + '.value').val(settings[key]).on('change', function() {
changed = true;
$('#save').button("enable");
}).on('keyup', function() {
onChange();
});
}
}
onChange(false);
$('#test').button().click(test);
}
function test() {
//var newValue = JSON.stringify(getSettings());
if (!common.enabled) {
showMessage('Enable first the adapter to test notification.');
return;
}
if (changed) {
showMessage('First save the settings');
return;
}
sendTo('pushover.' + instance, 'send', 'This is test notification!');
showMessage('Check the log or your pushover app!');
}
function saveHelper(obj, id, value) {
var ids = id.split('_');
if (ids.length === 1) {
obj[id] = value;
} else if (ids.length === 2) {
if (!obj[ids[0]]) obj[ids[0]] = {};
obj[ids[0]][ids[1]] = value;
} else if (ids.length === 3) {
if (ids[2] == "pass") {
value = encrypt("Zgfr56gFe87jJOM", value);
}
if (!obj[ids[0]]) obj[ids[0]] = {};
if (!obj[ids[0]][ids[1]]) obj[ids[0]][ids[1]] = {};
obj[ids[0]][ids[1]][ids[2]] = value;
}
return obj;
}
function getSettings() {
var obj = {};
$('.value').each(function () {
var $this = $(this);
var id = $this.attr('id');
if ($this.attr('type') === 'checkbox') {
obj = saveHelper(obj, id, $this.prop('checked'))
} else {
obj = saveHelper(obj, id, $this.val())
}
});
return obj;
}
function save(callback) {
callback(getSettings());
}
</script>
</head>
<body>
<!-- you have to put your config page in a div with id adapter-container -->
<div id="adapter-container">
<table><tr>
<td><img src="pushover.png"></td>
<td style="padding-top: 20px;padding-left: 10px"><h3 class="translate">Pushover adapter settings</h3></td>
</tr></table>
<h4 class="translate">Pushover settings</h4>
<table>
<tr>
<td class="translate">Group Key:</td>
<td><input id="user" type="text" size="50" class="value"/></td>
<td class="translate">Group Key of Delivery Group</td>
</tr>
<tr>
<td class="translate">Token:</td>
<td><input id="token" type="text" size="50" class="value"/></td>
<td class="translate">API Token/Key of Application</td>
</tr>
<tr><td colspan="3"><br><h4 class="translate">Notification settings</h4></td></tr>
<tr>
<td class="translate">Title:</td>
<td><input id="title" type="text" size="50" class="value"/></td>
<td></td>
</tr>
<tr>
<td class="translate">Sound:</td>
<td><select id="sound" class="value">
<option value=""> default </option>
<option value="pushover"> pushover </option>
<option value="bike"> bike </option>
<option value="bugle"> bugle</option>
<option value="cashregister"> cashregister </option>
<option value="classical"> classical </option>
<option value="cosmic"> cosmic </option>
<option value="falling"> falling</option>
<option value="gamelan"> gamelan </option>
<option value="incoming"> incoming </option>
<option value="intermission"> intermission </option>
<option value="magic"> magic </option>
<option value="mechanical"> mechanical </option>
<option value="pianobar"> pianobar </option>
<option value="siren"> siren</option>
<option value="spacealarm"> spacealarm </option>
<option value="tugboat"> tugboat </option>
<option value="alien"> alien</option>
<option value="climb"> climb </option>
<option value="persistent"> persistent </option>
<option value="echo"> echo</option>
<option value="updown"> updown </option>
<option value="none"> none</option>
</select></td>
<td></td>
</tr>
<tr>
<td class="translate">Priority:</td>
<td><select id="priority" class="value">
<option value="-1" class="translate">quiet</option>
<option value="0" class="translate">default</option>
<option value="1" class="translate">high-priority</option>
<!--option value="2">require confirmation</option-->
</select></td>
<td></td>
</tr>
</table>
<button id="test" class="translate">Test</button>
</div>
</body>
</html>

183
admin/index_m.html Normal file
View File

@@ -0,0 +1,183 @@
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
<link rel="stylesheet" type="text/css" href="../../css/adapter.css"/>
<script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="../../socket.io/socket.io.js"></script>
<script type="text/javascript" src="../../lib/js/ace-1.2.0/ace.js"></script>
<!-- these files always have to be included -->
<script type="text/javascript" src="../../js/translate.js"></script>
<script type="text/javascript" src="../../lib/js/materialize.js"></script>
<script type="text/javascript" src="../../js/adapter-settings.js"></script>
<script type="text/javascript" src="words.js"></script>
<!-- you have to define 2 functions in the global scope: -->
<script type="text/javascript">
// the function loadSettings has to exist ...
function load(settings, onChange) {
for (var key in settings) {
if (!settings.hasOwnProperty(key)) continue;
var $value = $('#' + key + '.value');
if ($value.attr('type') === 'checkbox') {
$value.prop('checked', settings[key]).on('change', function() {
onChange();
});
} else {
$value.val(settings[key]).on('change', function() {
changed = true;
$('#save').button("enable");
}).on('keyup', function() {
onChange();
});
}
}
onChange(false);
$('#test').click(test);
}
function test() {
//var newValue = JSON.stringify(getSettings());
if (!common.enabled) {
showMessage('Enable first the adapter to test notification.');
return;
}
if (changed) {
showMessage('First save the settings');
return;
}
sendTo('pushover.' + instance, 'send', 'This is test notification!');
showMessage('Check the log or your pushover app!');
}
function saveHelper(obj, id, value) {
var ids = id.split('_');
if (ids.length === 1) {
obj[id] = value;
} else if (ids.length === 2) {
if (!obj[ids[0]]) obj[ids[0]] = {};
obj[ids[0]][ids[1]] = value;
} else if (ids.length === 3) {
if (ids[2] === 'pass') {
value = encrypt("Zgfr56gFe87jJOM", value);
}
if (!obj[ids[0]]) obj[ids[0]] = {};
if (!obj[ids[0]][ids[1]]) obj[ids[0]][ids[1]] = {};
obj[ids[0]][ids[1]][ids[2]] = value;
}
return obj;
}
function getSettings() {
var obj = {};
$('.value').each(function () {
var $this = $(this);
var id = $this.attr('id');
if ($this.attr('type') === 'checkbox') {
obj = saveHelper(obj, id, $this.prop('checked'))
} else {
obj = saveHelper(obj, id, $this.val())
}
});
return obj;
}
function save(callback) {
callback(getSettings());
}
</script>
</head>
<body>
<!-- you have to put your config page in a div with id adapter-container -->
<div id="adapter-container">
<div class="m adapter-container">
<div class="row">
<div class="col s12">
<ul class="tabs">
<li class="tab col s4"><a href="#tab-main" class="translate active">Pushover settings</a></li>
<li class="tab col s4"><a href="#tab-notification" class="translate">Notification settings</a></li>
</ul>
</div>
<div id="tab-main" class="col s12 page">
<div class="row">
<div class="col s6 m4 l2">
<img src="pushover.png" class="logo">
</div>
</div>
<div class="row">
<div class="input-field col s12 m6 l4 xl3">
<input id="user" type="text" size="50" class="value"/>
<label for="user" class="translate">Group Key</label>
<span class="translate">Group Key of Delivery Group</span>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6 l4 xl3">
<input id="token" type="text" size="50" class="value"/>
<label for="token" class="translate">Token:</label>
<span class="translate">API Token/Key of Application</span>
</div>
</div>
</div>
<div id="tab-notification" class="col s12 page">
<div class="row">
<div class="input-field col s12 m6 l4 xl3">
<input id="title" type="text" size="50" class="value"/>
<label for="title" class="translate">Title</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6 l4 xl3">
<select id="sound" class="value">
<option value=""> default </option>
<option value="pushover"> pushover </option>
<option value="bike"> bike </option>
<option value="bugle"> bugle</option>
<option value="cashregister"> cashregister </option>
<option value="classical"> classical </option>
<option value="cosmic"> cosmic </option>
<option value="falling"> falling</option>
<option value="gamelan"> gamelan </option>
<option value="incoming"> incoming </option>
<option value="intermission"> intermission </option>
<option value="magic"> magic </option>
<option value="mechanical"> mechanical </option>
<option value="pianobar"> pianobar </option>
<option value="siren"> siren</option>
<option value="spacealarm"> spacealarm </option>
<option value="tugboat"> tugboat </option>
<option value="alien"> alien</option>
<option value="climb"> climb </option>
<option value="persistent"> persistent </option>
<option value="echo"> echo</option>
<option value="updown"> updown </option>
<option value="none"> none</option>
</select>
<label for="sound" class="translate">Sound</label>
</div>
</div>
<div class="row">
<div class="input-field col s12 m6 l4 xl3">
<select id="priority" class="value">
<option value="-1" class="translate">quiet</option>
<option value="0" class="translate">default</option>
<option value="1" class="translate">high-priority</option>
<!--option value="2">require confirmation</option-->
</select>
<label for="priority" class="translate">Priority</label>
</div>
</div>
<div class="row">
<div class="col s4">
<a id="test" class="waves-effect waves-light btn"><i class="material-icons left">notifications_active</i><span class="translate">Test</span></a>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

BIN
admin/pushover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

23
admin/words.js Normal file
View File

@@ -0,0 +1,23 @@
// DO NOT EDIT THIS FILE!!! IT WILL BE AUTOMATICALLY GENERATED FROM src/i18n
/*global systemDictionary:true */
'use strict';
systemDictionary = {
"Pushover adapter settings": { "en": "Pushover adapter settings", "de": "Pushover Adaptereinstellungen", "ru": "Настройки адаптера Pushover", "pt": "Configurações do adaptador pushover", "nl": "Pushover adapter-instellingen", "fr": "Paramètres de l'adaptateur de pushover", "it": "Impostazioni dell'adattatore pushover", "es": "Configuración del adaptador Pushover", "pl": "Ustawienia adaptera pushover"},
"Pushover settings": { "en": "Pushover settings", "de": "Pushover Einstellungen", "ru": "Настройки Pushover", "pt": "Configurações pushover", "nl": "Pushover instellingen", "fr": "Paramètres de pushover", "it": "Impostazioni pushover", "es": "Configuración de Pushover", "pl": "Ustawienia pushover"},
"Group Key": { "en": "Group Key", "de": "Gruppentaste", "ru": "Ключ группы", "pt": "Chave de grupo", "nl": "Groepssleutel", "fr": "Clé de groupe", "it": "Chiave di gruppo", "es": "Clave grupal", "pl": "Klucz grupowy"},
"Token": { "en": "Token", "de": "Zeichen", "ru": "знак", "pt": "Símbolo", "nl": "blijk", "fr": "Jeton", "it": "Gettone", "es": "Simbólico", "pl": "Znak"},
"Title": { "en": "Title", "de": "Titel", "ru": "заглавие", "pt": "Título", "nl": "Titel", "fr": "Titre", "it": "Titolo", "es": "Título", "pl": "Tytuł"},
"Sound": { "en": "Sound", "de": "Klingen", "ru": "звук", "pt": "Som", "nl": "Geluid", "fr": "Du son", "it": "Suono", "es": "Sonar", "pl": "Dźwięk"},
"Priority": { "en": "Priority", "de": "Priorität", "ru": "приоритет", "pt": "Prioridade", "nl": "Prioriteit", "fr": "Priorité", "it": "Priorità", "es": "Prioridad", "pl": "Priorytet"},
"Test": { "en": "Test", "de": "Prüfung", "ru": "Тест", "pt": "Teste", "nl": "Test", "fr": "Tester", "it": "Test", "es": "Prueba", "pl": "Test"},
"Notification settings": { "en": "Notification settings", "de": "Benachrichtigungseinstellungen", "ru": "Настройки уведомлений", "pt": "Configurações de notificação", "nl": "Notificatie instellingen", "fr": "Paramètres de notification", "it": "Impostazioni di notifica", "es": "Configuración de las notificaciones", "pl": "Ustawienia powiadomień"},
"Group Key of Delivery Group": { "en": "Group Key of Delivery Group", "de": "Gruppenschlüssel der Liefergruppe", "ru": "Групповой ключ группы доставки", "pt": "Chave de Grupo do Grupo de Entrega", "nl": "Groepssleutel van leveringsgroep", "fr": "Group Key of Delivery Group", "it": "Gruppo chiave del gruppo di consegna", "es": "Grupo clave del grupo de entrega", "pl": "Klucz grupowy grupy dostaw"},
"API Token/Key of Application": { "en": "API Token/Key of Application", "de": "API Token / Schlüssel der Anwendung", "ru": "API-токен / ключ приложения", "pt": "Token da API / chave de aplicação", "nl": "API-token / sleutel van de applicatie", "fr": "API Token / clé d'application", "it": "Token API / Chiave di applicazione", "es": "Token API / Clave de aplicación", "pl": "Token API / klucz aplikacji"},
"quiet": { "en": "quiet", "de": "ruhig", "ru": "тихо", "pt": "quieto", "nl": "rustig", "fr": "silencieux", "it": "silenzioso", "es": "tranquilo", "pl": "cichy"},
"default": { "en": "default", "de": "Standard", "ru": "по умолчанию", "pt": "padrão", "nl": "standaard", "fr": "défaut", "it": "predefinito", "es": "defecto", "pl": "domyślna"},
"high-priority": { "en": "high-priority", "de": "hohe Priorität", "ru": "высокий приоритет", "pt": "prioridade máxima", "nl": "hoge prioriteit", "fr": "haute priorité", "it": "priorità alta", "es": "alta prioridad", "pl": "wysoki priorytet"},
"Enable first the adapter to test notification.": {"en": "Enable first the adapter to test notification.", "de": "Aktivieren Sie zuerst den Adapter, um die Benachrichtigung zu testen.", "ru": "Включите сначала адаптер для проверки уведомления.", "pt": "Ative primeiro o adaptador para testar a notificação.", "nl": "Schakel eerst de adapter in om de melding te testen.", "fr": "Activez d'abord l'adaptateur pour tester la notification.", "it": "Abilitare prima l'adattatore per verificare la notifica.", "es": "Primero habilite el adaptador para probar la notificación.", "pl": "Najpierw włącz adapter, aby przetestować powiadomienie."},
"First save the settings": { "en": "First save the settings", "de": "Speichern Sie zuerst die Einstellungen", "ru": "Сначала сохраните настройки", "pt": "Primeiro salve as configurações", "nl": "Sla eerst de instellingen op", "fr": "Commencez par enregistrer les paramètres", "it": "Prima salva le impostazioni", "es": "Primero guarde la configuración", "pl": "Najpierw zapisz ustawienia"},
"Check the log or your pushover app!": { "en": "Check the log or your pushover app!", "de": "Überprüfen Sie das Protokoll oder Ihre Pushover-App!", "ru": "Проверьте журнал или приложение pushover!", "pt": "Verifique o log ou o seu aplicativo pushover!", "nl": "Controleer het logboek of je pushover-app!", "fr": "Consultez le journal ou votre application pushover!", "it": "Controlla il registro o la tua app pushover!", "es": "¡Comprueba el registro o tu aplicación de pushover!", "pl": "Sprawdź dziennik lub swoją aplikację pushover!"}
};