iobroker.sbfspot 4.1.7 → 4.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +34 -34
- package/.github/ISSUE_TEMPLATE/BugReport.md +36 -36
- package/.github/ISSUE_TEMPLATE/Enhancement.md +19 -19
- package/.github/dependabot.yml +13 -13
- package/.github/workflows/npmpublish.yml +30 -30
- package/.github/workflows/test-and-release.yml +81 -79
- package/.releaseconfig.json +3 -0
- package/LICENSE +20 -20
- package/README.md +141 -121
- package/admin/index.html +175 -175
- package/admin/index_m.html +261 -261
- package/admin/words.js +24 -24
- package/docs/en/install_arm.md +64 -64
- package/io-package.json +161 -96
- package/lib/tools.js +99 -99
- package/main.js +1144 -1144
- package/package.json +13 -11
- package/widgets/sbfspot/lib/js/flot/jquery.canvaswrapper.js +549 -549
- package/widgets/sbfspot/lib/js/flot/jquery.colorhelpers.js +199 -199
- package/widgets/sbfspot/lib/js/flot/jquery.flot.axislabels.js +212 -212
- package/widgets/sbfspot/lib/js/flot/jquery.flot.browser.js +98 -98
- package/widgets/sbfspot/lib/js/flot/jquery.flot.categories.js +202 -202
- package/widgets/sbfspot/lib/js/flot/jquery.flot.composeImages.js +330 -330
- package/widgets/sbfspot/lib/js/flot/jquery.flot.crosshair.js +202 -202
- package/widgets/sbfspot/lib/js/flot/jquery.flot.drawSeries.js +662 -662
- package/widgets/sbfspot/lib/js/flot/jquery.flot.errorbars.js +375 -375
- package/widgets/sbfspot/lib/js/flot/jquery.flot.fillbetween.js +254 -254
- package/widgets/sbfspot/lib/js/flot/jquery.flot.flatdata.js +47 -47
- package/widgets/sbfspot/lib/js/flot/jquery.flot.hover.js +361 -361
- package/widgets/sbfspot/lib/js/flot/jquery.flot.image.js +249 -249
- package/widgets/sbfspot/lib/js/flot/jquery.flot.js +2953 -2953
- package/widgets/sbfspot/lib/js/flot/jquery.flot.legend.js +437 -437
- package/widgets/sbfspot/lib/js/flot/jquery.flot.logaxis.js +298 -298
- package/widgets/sbfspot/lib/js/flot/jquery.flot.navigate.js +834 -834
- package/widgets/sbfspot/lib/js/flot/jquery.flot.pie.js +794 -794
- package/widgets/sbfspot/lib/js/flot/jquery.flot.resize.js +60 -60
- package/widgets/sbfspot/lib/js/flot/jquery.flot.saturated.js +43 -43
- package/widgets/sbfspot/lib/js/flot/jquery.flot.selection.js +527 -527
- package/widgets/sbfspot/lib/js/flot/jquery.flot.stack.js +220 -220
- package/widgets/sbfspot/lib/js/flot/jquery.flot.symbol.js +98 -98
- package/widgets/sbfspot/lib/js/flot/jquery.flot.threshold.js +143 -143
- package/widgets/sbfspot/lib/js/flot/jquery.flot.time.js +586 -586
- package/widgets/sbfspot/lib/js/flot/jquery.flot.touch.js +320 -320
- package/widgets/sbfspot/lib/js/flot/jquery.flot.touchNavigate.js +360 -360
- package/widgets/sbfspot/lib/js/flot/jquery.flot.uiConstants.js +10 -10
- package/widgets/sbfspot/lib/js/flot/jquery.js +9473 -9473
- package/widgets/sbfspot/lib/js/lib/globalize.culture.en-US.js +33 -33
- package/widgets/sbfspot/lib/js/lib/globalize.js +1601 -1601
- package/widgets/sbfspot/lib/js/lib/jquery.event.drag.js +145 -145
- package/widgets/sbfspot/lib/js/lib/jquery.mousewheel.js +86 -86
- package/widgets/sbfspot.html +1597 -1597
- package/.project +0 -17
- package/.settings/.jsdtscope +0 -7
- package/.settings/org.eclipse.wst.jsdt.ui.superType.container +0 -1
- package/.settings/org.eclipse.wst.jsdt.ui.superType.name +0 -1
- package/admin/sbfspot_alt.png +0 -0
- package/bin/Microsoft.NodejsTools.WebRole.dll +0 -0
- package/lib/SMA_Bluetooth.js +0 -27
- package/main_neu.js +0 -1056
- package/obj/Debug/sbfspot.njsproj.CoreCompileInputs.cache +0 -1
- package/obj/Debug/sbfspot.njsproj.FileListAbsolute.txt +0 -3
- package/obj/Debug/sbfspot.njsprojAssemblyReference.cache +0 -0
- package/package_neu.json +0 -41
- package/readme.txt +0 -4
- package/sbfspot.njsproj +0 -185
- package/todo.txt +0 -24
- package/typings/globals/node/index.d.ts +0 -4209
- package/typings/globals/node/typings.json +0 -8
- package/typings/index.d.ts +0 -1
package/admin/index_m.html
CHANGED
|
@@ -1,261 +1,261 @@
|
|
|
1
|
-
<html>
|
|
2
|
-
|
|
3
|
-
<head>
|
|
4
|
-
|
|
5
|
-
<link rel="stylesheet" type="text/css" href="../../css/adapter.css" />
|
|
6
|
-
<link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
|
|
7
|
-
|
|
8
|
-
<script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
|
|
9
|
-
<script type="text/javascript" src="../../socket.io/socket.io.js"></script>
|
|
10
|
-
|
|
11
|
-
<script type="text/javascript" src="../../js/translate.js"></script>
|
|
12
|
-
<script type="text/javascript" src="../../lib/js/materialize.js"></script>
|
|
13
|
-
<script type="text/javascript" src="../../js/adapter-settings.js"></script>
|
|
14
|
-
<script type="text/javascript" src="words.js"></script>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<script type="text/javascript">
|
|
21
|
-
|
|
22
|
-
function showHideSettings() {
|
|
23
|
-
|
|
24
|
-
var $type = $('#databasetype');
|
|
25
|
-
|
|
26
|
-
if ($type.prop('value') == "mySQL") {
|
|
27
|
-
$('.col-mysql-ip').show();
|
|
28
|
-
$('.col-mysql-ip-descr').show();
|
|
29
|
-
$('.col-mysql-port').hide();
|
|
30
|
-
$('.col-mysql-port-descr').hide();
|
|
31
|
-
$('.col-mysql-user').show();
|
|
32
|
-
$('.col-mysql-password').show();
|
|
33
|
-
$('.col-mysql-name').show();
|
|
34
|
-
$('.col-mysql-path').hide();
|
|
35
|
-
$('.col-mysql-path-descr').hide();
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
else if ($type.prop('value') == "MariaDB") {
|
|
39
|
-
$('.col-mysql-ip').show();
|
|
40
|
-
$('.col-mysql-ip-descr').show();
|
|
41
|
-
$('.col-mysql-port').show();
|
|
42
|
-
$('.col-mysql-port-descr').show();
|
|
43
|
-
$('.col-mysql-user').show();
|
|
44
|
-
$('.col-mysql-password').show();
|
|
45
|
-
$('.col-mysql-name').show();
|
|
46
|
-
$('.col-mysql-path').hide();
|
|
47
|
-
$('.col-mysql-path-descr').hide();
|
|
48
|
-
}
|
|
49
|
-
else if ($type.prop('value') == "sqlite") {
|
|
50
|
-
$('.col-mysql-ip').hide();
|
|
51
|
-
$('.col-mysql-ip-descr').hide();
|
|
52
|
-
$('.col-mysql-port').hide();
|
|
53
|
-
$('.col-mysql-port-descr').hide();
|
|
54
|
-
$('.col-mysql-user').hide();
|
|
55
|
-
$('.col-mysql-password').hide();
|
|
56
|
-
$('.col-mysql-name').hide();
|
|
57
|
-
$('.col-mysql-path').show();
|
|
58
|
-
$('.col-mysql-path-descr').show();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
function CheckSettings(settings, onChange) {
|
|
63
|
-
console.log("start checksettings");
|
|
64
|
-
//just to be compatible with older versions...
|
|
65
|
-
if (typeof settings['databasetype'] == 'undefined') {
|
|
66
|
-
onChange(true);
|
|
67
|
-
$("#databasetype").attr("checked", true);
|
|
68
|
-
$('#databasetype.value').prop('checked', settings['databasetype']).change(function () {
|
|
69
|
-
onChange();
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// the function loadSettings has to exist ...
|
|
75
|
-
function load(settings, onChange) {
|
|
76
|
-
|
|
77
|
-
if (!settings) return;
|
|
78
|
-
|
|
79
|
-
// example: select elements with id=key and class=value and insert value
|
|
80
|
-
for (var key in settings) {
|
|
81
|
-
// example: select elements with id=key and class=value and insert value
|
|
82
|
-
if ($('#' + key + '.value').attr('type') == 'checkbox') {
|
|
83
|
-
$('#' + key + '.value').prop('checked', settings[key]).change(function () {
|
|
84
|
-
showHideSettings();
|
|
85
|
-
onChange();
|
|
86
|
-
});
|
|
87
|
-
} else {
|
|
88
|
-
$('#' + key + '.value').val(settings[key]).change(function () {
|
|
89
|
-
showHideSettings();
|
|
90
|
-
onChange();
|
|
91
|
-
}).keyup(function () {
|
|
92
|
-
$(this).trigger('change');
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
// Signal to admin, that no changes yet
|
|
101
|
-
onChange(false);
|
|
102
|
-
showHideSettings();
|
|
103
|
-
|
|
104
|
-
CheckSettings(settings, onChange);
|
|
105
|
-
M.updateTextFields();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
// ... and the function save has to exist.
|
|
110
|
-
// you have to make sure the callback is called with the settings object as first param!
|
|
111
|
-
function save(callback) {
|
|
112
|
-
var obj = {};
|
|
113
|
-
$('.value').each(function () {
|
|
114
|
-
var $this = $(this);
|
|
115
|
-
|
|
116
|
-
var id = $this.attr('id');
|
|
117
|
-
|
|
118
|
-
if ($this.attr('type') === 'checkbox') {
|
|
119
|
-
obj[$this.attr('id')] = $this.prop('checked');
|
|
120
|
-
} else {
|
|
121
|
-
obj[$this.attr('id')] = $this.val();
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
callback(obj);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
</script>
|
|
131
|
-
|
|
132
|
-
<style>
|
|
133
|
-
.adapter-body {
|
|
134
|
-
overflow: hidden !important;
|
|
135
|
-
}
|
|
136
|
-
</style>
|
|
137
|
-
</head>
|
|
138
|
-
<body>
|
|
139
|
-
<!-- you have to put your config page in a div with id adapter-container -->
|
|
140
|
-
<div class="m adapter-container">
|
|
141
|
-
|
|
142
|
-
<div class="row">
|
|
143
|
-
<div class="col s12">
|
|
144
|
-
<ul class="tabs">
|
|
145
|
-
<li class="tab col s2"><a href="#tab-main" class="translate active">Main settings</a></li>
|
|
146
|
-
<li class="tab col s2 le-settings"><a href="#tab-mysql" class="translate">mySQL / MariaDB</a></li>
|
|
147
|
-
<li class="tab col s2 le-settings"><a href="#tab-sqlite" class="translate">SQLITE</a></li>
|
|
148
|
-
</ul>
|
|
149
|
-
</div>
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
<!-- main - settings -->
|
|
153
|
-
<div id="tab-main" class="col s12 page">
|
|
154
|
-
<div class="row">
|
|
155
|
-
<div class="col s6 m4 l2">
|
|
156
|
-
<img src="sbfspot.png" class="logo">
|
|
157
|
-
</div>
|
|
158
|
-
</div>
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
<div class="row">
|
|
162
|
-
<div class="col s6 ">
|
|
163
|
-
<span class="translate">Attention</span>
|
|
164
|
-
</div>
|
|
165
|
-
</div>
|
|
166
|
-
|
|
167
|
-
<div class="row">
|
|
168
|
-
<form class="col s6 ">
|
|
169
|
-
<div class="row">
|
|
170
|
-
<label class="translate">install_date</label>
|
|
171
|
-
<input type="text" id="install_date" class="value" />
|
|
172
|
-
|
|
173
|
-
</div>
|
|
174
|
-
</form>
|
|
175
|
-
|
|
176
|
-
<div class="col s6">
|
|
177
|
-
<span class="translate">install_date_desc</span>
|
|
178
|
-
</div>
|
|
179
|
-
</div>
|
|
180
|
-
|
|
181
|
-
<div class="row">
|
|
182
|
-
<div class="input-field col s6">
|
|
183
|
-
<select id="databasetype" class="value">
|
|
184
|
-
<option value="mySQL" class="translate">mySQL</option>
|
|
185
|
-
<option value="MariaDB" class="translate">MariaDB</option>
|
|
186
|
-
<option value="sqlite" class="translate">sqlite</option>
|
|
187
|
-
</select>
|
|
188
|
-
<label for="databasetype" class="translate">type_of_DB</label>
|
|
189
|
-
</div>
|
|
190
|
-
</div>
|
|
191
|
-
|
|
192
|
-
<div class="row">
|
|
193
|
-
<div class="input-field col s6">
|
|
194
|
-
<input type="checkbox" id="GetDataOnlyWhenDaylight" class="value" />
|
|
195
|
-
<label for="GetDataOnlyWhenDaylight" class="translate">GetDataOnlyWhenDaylight</label>
|
|
196
|
-
</div>
|
|
197
|
-
</div>
|
|
198
|
-
|
|
199
|
-
</div>
|
|
200
|
-
|
|
201
|
-
<!-- settings for mySQL / MariaDB -->
|
|
202
|
-
<div id="tab-mysql" class="col s12 page-mysql" >
|
|
203
|
-
<div class="row">
|
|
204
|
-
<div class="input-field col s6 col-mysql-ip">
|
|
205
|
-
<input type="text" id="sbfspotIP" class="value" />
|
|
206
|
-
<label for="sbfspotIP" class="translate">sbfspot_DB_IP</label>
|
|
207
|
-
</div>
|
|
208
|
-
<div class="col s6 m8 l5 col-mysql-ip-descr">
|
|
209
|
-
<span class="translate">sbfspot_DB_IP_descr</span>
|
|
210
|
-
</div>
|
|
211
|
-
</div>
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
<div class="row">
|
|
215
|
-
<div class="input-field col s6 col-mysql-port">
|
|
216
|
-
<input type="number" id="sbfspotPort" class="value" />
|
|
217
|
-
<label for="sbfspotPort" class="translate">sbfspot_DB_port</label>
|
|
218
|
-
|
|
219
|
-
</div>
|
|
220
|
-
<div class="col s6 col-mysql-port-descr">
|
|
221
|
-
<span class="translate">sbfspot_DB_port_descr</span>
|
|
222
|
-
</div>
|
|
223
|
-
</div>
|
|
224
|
-
<div class="row">
|
|
225
|
-
<div class="input-field col s6 col-mysql-user">
|
|
226
|
-
<input type="text" id="sbfspotUser" class="value" />
|
|
227
|
-
<label for="sbfspotUser" class="translate">sbfspot_DB_user</label>
|
|
228
|
-
</div>
|
|
229
|
-
|
|
230
|
-
<div class="input-field col s6 col-mysql-password">
|
|
231
|
-
<input type="text" id="sbfspotPassword" class="value" />
|
|
232
|
-
<label for="sbfspotPassword" class="translate">sbfspot_DB_password</label>
|
|
233
|
-
</div>
|
|
234
|
-
</div>
|
|
235
|
-
<div class="row">
|
|
236
|
-
<div class="input-field col s6 col-mysql-name">
|
|
237
|
-
<input type="text" id="sbfspotDatabasename" class="value" />
|
|
238
|
-
<label for="sbfspotDatabasename" class="translate">sbfspot_DB_databasename</label>
|
|
239
|
-
</div>
|
|
240
|
-
</div>
|
|
241
|
-
</div>
|
|
242
|
-
|
|
243
|
-
<!-- settings for sqlite -->
|
|
244
|
-
<div id="tab-sqlite" class="col s12 page-sqlite">
|
|
245
|
-
|
|
246
|
-
<div class="row">
|
|
247
|
-
|
|
248
|
-
<div class="input-field col s6 col-mysql-path">
|
|
249
|
-
<input type="text" id="sqlite_path" class="value" />
|
|
250
|
-
<label for="sqlite_path" class="translate">path_to_DB_file</label>
|
|
251
|
-
</div>
|
|
252
|
-
<div class="col s6 m8 l5 col-mysql-path-descr">
|
|
253
|
-
<span class="translate">path_to_DB_file_descr</span>
|
|
254
|
-
</div>
|
|
255
|
-
</div>
|
|
256
|
-
|
|
257
|
-
</div>
|
|
258
|
-
</div>
|
|
259
|
-
</div>
|
|
260
|
-
</body>
|
|
261
|
-
</html>
|
|
1
|
+
<html>
|
|
2
|
+
|
|
3
|
+
<head>
|
|
4
|
+
|
|
5
|
+
<link rel="stylesheet" type="text/css" href="../../css/adapter.css" />
|
|
6
|
+
<link rel="stylesheet" type="text/css" href="../../lib/css/materialize.css">
|
|
7
|
+
|
|
8
|
+
<script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script>
|
|
9
|
+
<script type="text/javascript" src="../../socket.io/socket.io.js"></script>
|
|
10
|
+
|
|
11
|
+
<script type="text/javascript" src="../../js/translate.js"></script>
|
|
12
|
+
<script type="text/javascript" src="../../lib/js/materialize.js"></script>
|
|
13
|
+
<script type="text/javascript" src="../../js/adapter-settings.js"></script>
|
|
14
|
+
<script type="text/javascript" src="words.js"></script>
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
<script type="text/javascript">
|
|
21
|
+
|
|
22
|
+
function showHideSettings() {
|
|
23
|
+
|
|
24
|
+
var $type = $('#databasetype');
|
|
25
|
+
|
|
26
|
+
if ($type.prop('value') == "mySQL") {
|
|
27
|
+
$('.col-mysql-ip').show();
|
|
28
|
+
$('.col-mysql-ip-descr').show();
|
|
29
|
+
$('.col-mysql-port').hide();
|
|
30
|
+
$('.col-mysql-port-descr').hide();
|
|
31
|
+
$('.col-mysql-user').show();
|
|
32
|
+
$('.col-mysql-password').show();
|
|
33
|
+
$('.col-mysql-name').show();
|
|
34
|
+
$('.col-mysql-path').hide();
|
|
35
|
+
$('.col-mysql-path-descr').hide();
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
else if ($type.prop('value') == "MariaDB") {
|
|
39
|
+
$('.col-mysql-ip').show();
|
|
40
|
+
$('.col-mysql-ip-descr').show();
|
|
41
|
+
$('.col-mysql-port').show();
|
|
42
|
+
$('.col-mysql-port-descr').show();
|
|
43
|
+
$('.col-mysql-user').show();
|
|
44
|
+
$('.col-mysql-password').show();
|
|
45
|
+
$('.col-mysql-name').show();
|
|
46
|
+
$('.col-mysql-path').hide();
|
|
47
|
+
$('.col-mysql-path-descr').hide();
|
|
48
|
+
}
|
|
49
|
+
else if ($type.prop('value') == "sqlite") {
|
|
50
|
+
$('.col-mysql-ip').hide();
|
|
51
|
+
$('.col-mysql-ip-descr').hide();
|
|
52
|
+
$('.col-mysql-port').hide();
|
|
53
|
+
$('.col-mysql-port-descr').hide();
|
|
54
|
+
$('.col-mysql-user').hide();
|
|
55
|
+
$('.col-mysql-password').hide();
|
|
56
|
+
$('.col-mysql-name').hide();
|
|
57
|
+
$('.col-mysql-path').show();
|
|
58
|
+
$('.col-mysql-path-descr').show();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function CheckSettings(settings, onChange) {
|
|
63
|
+
console.log("start checksettings");
|
|
64
|
+
//just to be compatible with older versions...
|
|
65
|
+
if (typeof settings['databasetype'] == 'undefined') {
|
|
66
|
+
onChange(true);
|
|
67
|
+
$("#databasetype").attr("checked", true);
|
|
68
|
+
$('#databasetype.value').prop('checked', settings['databasetype']).change(function () {
|
|
69
|
+
onChange();
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// the function loadSettings has to exist ...
|
|
75
|
+
function load(settings, onChange) {
|
|
76
|
+
|
|
77
|
+
if (!settings) return;
|
|
78
|
+
|
|
79
|
+
// example: select elements with id=key and class=value and insert value
|
|
80
|
+
for (var key in settings) {
|
|
81
|
+
// example: select elements with id=key and class=value and insert value
|
|
82
|
+
if ($('#' + key + '.value').attr('type') == 'checkbox') {
|
|
83
|
+
$('#' + key + '.value').prop('checked', settings[key]).change(function () {
|
|
84
|
+
showHideSettings();
|
|
85
|
+
onChange();
|
|
86
|
+
});
|
|
87
|
+
} else {
|
|
88
|
+
$('#' + key + '.value').val(settings[key]).change(function () {
|
|
89
|
+
showHideSettings();
|
|
90
|
+
onChange();
|
|
91
|
+
}).keyup(function () {
|
|
92
|
+
$(this).trigger('change');
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
// Signal to admin, that no changes yet
|
|
101
|
+
onChange(false);
|
|
102
|
+
showHideSettings();
|
|
103
|
+
|
|
104
|
+
CheckSettings(settings, onChange);
|
|
105
|
+
M.updateTextFields();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
// ... and the function save has to exist.
|
|
110
|
+
// you have to make sure the callback is called with the settings object as first param!
|
|
111
|
+
function save(callback) {
|
|
112
|
+
var obj = {};
|
|
113
|
+
$('.value').each(function () {
|
|
114
|
+
var $this = $(this);
|
|
115
|
+
|
|
116
|
+
var id = $this.attr('id');
|
|
117
|
+
|
|
118
|
+
if ($this.attr('type') === 'checkbox') {
|
|
119
|
+
obj[$this.attr('id')] = $this.prop('checked');
|
|
120
|
+
} else {
|
|
121
|
+
obj[$this.attr('id')] = $this.val();
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
callback(obj);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
</script>
|
|
131
|
+
|
|
132
|
+
<style>
|
|
133
|
+
.adapter-body {
|
|
134
|
+
overflow: hidden !important;
|
|
135
|
+
}
|
|
136
|
+
</style>
|
|
137
|
+
</head>
|
|
138
|
+
<body>
|
|
139
|
+
<!-- you have to put your config page in a div with id adapter-container -->
|
|
140
|
+
<div class="m adapter-container">
|
|
141
|
+
|
|
142
|
+
<div class="row">
|
|
143
|
+
<div class="col s12">
|
|
144
|
+
<ul class="tabs">
|
|
145
|
+
<li class="tab col s2"><a href="#tab-main" class="translate active">Main settings</a></li>
|
|
146
|
+
<li class="tab col s2 le-settings"><a href="#tab-mysql" class="translate">mySQL / MariaDB</a></li>
|
|
147
|
+
<li class="tab col s2 le-settings"><a href="#tab-sqlite" class="translate">SQLITE</a></li>
|
|
148
|
+
</ul>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
<!-- main - settings -->
|
|
153
|
+
<div id="tab-main" class="col s12 page">
|
|
154
|
+
<div class="row">
|
|
155
|
+
<div class="col s6 m4 l2">
|
|
156
|
+
<img src="sbfspot.png" class="logo">
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
<div class="row">
|
|
162
|
+
<div class="col s6 ">
|
|
163
|
+
<span class="translate">Attention</span>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<div class="row">
|
|
168
|
+
<form class="col s6 ">
|
|
169
|
+
<div class="row">
|
|
170
|
+
<label class="translate">install_date</label>
|
|
171
|
+
<input type="text" id="install_date" class="value" />
|
|
172
|
+
|
|
173
|
+
</div>
|
|
174
|
+
</form>
|
|
175
|
+
|
|
176
|
+
<div class="col s6">
|
|
177
|
+
<span class="translate">install_date_desc</span>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<div class="row">
|
|
182
|
+
<div class="input-field col s6">
|
|
183
|
+
<select id="databasetype" class="value">
|
|
184
|
+
<option value="mySQL" class="translate">mySQL</option>
|
|
185
|
+
<option value="MariaDB" class="translate">MariaDB</option>
|
|
186
|
+
<option value="sqlite" class="translate">sqlite</option>
|
|
187
|
+
</select>
|
|
188
|
+
<label for="databasetype" class="translate">type_of_DB</label>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
|
|
192
|
+
<div class="row">
|
|
193
|
+
<div class="input-field col s6">
|
|
194
|
+
<input type="checkbox" id="GetDataOnlyWhenDaylight" class="value" />
|
|
195
|
+
<label for="GetDataOnlyWhenDaylight" class="translate">GetDataOnlyWhenDaylight</label>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
|
|
199
|
+
</div>
|
|
200
|
+
|
|
201
|
+
<!-- settings for mySQL / MariaDB -->
|
|
202
|
+
<div id="tab-mysql" class="col s12 page-mysql" >
|
|
203
|
+
<div class="row">
|
|
204
|
+
<div class="input-field col s6 col-mysql-ip">
|
|
205
|
+
<input type="text" id="sbfspotIP" class="value" />
|
|
206
|
+
<label for="sbfspotIP" class="translate">sbfspot_DB_IP</label>
|
|
207
|
+
</div>
|
|
208
|
+
<div class="col s6 m8 l5 col-mysql-ip-descr">
|
|
209
|
+
<span class="translate">sbfspot_DB_IP_descr</span>
|
|
210
|
+
</div>
|
|
211
|
+
</div>
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
<div class="row">
|
|
215
|
+
<div class="input-field col s6 col-mysql-port">
|
|
216
|
+
<input type="number" id="sbfspotPort" class="value" />
|
|
217
|
+
<label for="sbfspotPort" class="translate">sbfspot_DB_port</label>
|
|
218
|
+
|
|
219
|
+
</div>
|
|
220
|
+
<div class="col s6 col-mysql-port-descr">
|
|
221
|
+
<span class="translate">sbfspot_DB_port_descr</span>
|
|
222
|
+
</div>
|
|
223
|
+
</div>
|
|
224
|
+
<div class="row">
|
|
225
|
+
<div class="input-field col s6 col-mysql-user">
|
|
226
|
+
<input type="text" id="sbfspotUser" class="value" />
|
|
227
|
+
<label for="sbfspotUser" class="translate">sbfspot_DB_user</label>
|
|
228
|
+
</div>
|
|
229
|
+
|
|
230
|
+
<div class="input-field col s6 col-mysql-password">
|
|
231
|
+
<input type="text" id="sbfspotPassword" class="value" />
|
|
232
|
+
<label for="sbfspotPassword" class="translate">sbfspot_DB_password</label>
|
|
233
|
+
</div>
|
|
234
|
+
</div>
|
|
235
|
+
<div class="row">
|
|
236
|
+
<div class="input-field col s6 col-mysql-name">
|
|
237
|
+
<input type="text" id="sbfspotDatabasename" class="value" />
|
|
238
|
+
<label for="sbfspotDatabasename" class="translate">sbfspot_DB_databasename</label>
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
|
|
243
|
+
<!-- settings for sqlite -->
|
|
244
|
+
<div id="tab-sqlite" class="col s12 page-sqlite">
|
|
245
|
+
|
|
246
|
+
<div class="row">
|
|
247
|
+
|
|
248
|
+
<div class="input-field col s6 col-mysql-path">
|
|
249
|
+
<input type="text" id="sqlite_path" class="value" />
|
|
250
|
+
<label for="sqlite_path" class="translate">path_to_DB_file</label>
|
|
251
|
+
</div>
|
|
252
|
+
<div class="col s6 m8 l5 col-mysql-path-descr">
|
|
253
|
+
<span class="translate">path_to_DB_file_descr</span>
|
|
254
|
+
</div>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
</div>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
260
|
+
</body>
|
|
261
|
+
</html>
|
package/admin/words.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/*global systemDictionary:true */
|
|
2
|
-
/*
|
|
3
|
-
+===================== DO NOT MODIFY ======================+
|
|
4
|
-
| This file was generated by translate-adapter, please use |
|
|
5
|
-
| `translate-adapter adminLanguages2words` to update it. |
|
|
6
|
-
+===================== DO NOT MODIFY ======================+
|
|
7
|
-
*/
|
|
1
|
+
/*global systemDictionary:true */
|
|
2
|
+
/*
|
|
3
|
+
+===================== DO NOT MODIFY ======================+
|
|
4
|
+
| This file was generated by translate-adapter, please use |
|
|
5
|
+
| `translate-adapter adminLanguages2words` to update it. |
|
|
6
|
+
+===================== DO NOT MODIFY ======================+
|
|
7
|
+
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
systemDictionary = {
|
|
11
|
-
"Attention": { "en": "adapter, sbfspot and database should run on the same system", "de": "adapter, sbfspot und database sollten auf demselben system laufen", "ru": "адаптер, sbfspot и база данных должны работать в одной системе", "pt": "adaptador, sbfspot e banco de dados devem ser executados no mesmo sistema", "nl": "adapter, sbfspot en database moeten op hetzelfde systeem worden uitgevoerd", "fr": "L'adaptateur, sbfspot et la base de données doivent fonctionner sur le même système", "it": "adattatore, sbfspot e database dovrebbero essere eseguiti sullo stesso sistema", "es": "adaptador, sbfspot y base de datos deben ejecutarse en el mismo sistema", "pl": "adapter, sbfspot i baza danych powinny działać w tym samym systemie", "uk": "адаптер, sbfspot і база даних повинні працювати в одній системі", "zh-cn": "适配器,sbfspot和数据库应在同一系统上运行"},
|
|
12
|
-
"GetDataOnlyWhenDaylight": { "en": "get data only when daylight", "de": "Daten nur bei Tageslicht abrufen", "ru": "получать данные только при дневном свете", "pt": "obtenha dados somente quando a luz do dia", "nl": "krijg alleen gegevens bij daglicht", "fr": "obtenir des données uniquement lorsque la lumière du jour", "it": "ottenere i dati solo alla luce del giorno", "es": "obtener datos solo cuando la luz del día", "pl": "odbieraj dane tylko przy świetle dziennym", "uk": "отримувати дані тільки вдень", "zh-cn": "仅在白天时获取数据"},
|
|
13
|
-
"install_date": { "en": "install date PV-System", "de": "Installationsdatum PV-Anlage", "ru": "дата установки PV-система", "pt": "data de instalação PV-System", "nl": "installeer datum PV-systeem", "fr": "date d'installation PV-System", "it": "installare data PV-System", "es": "fecha de instalación PV-System", "pl": "data instalacji PV-System", "uk": "дата встановлення PV-системи", "zh-cn": "安装日期PV-System"},
|
|
14
|
-
"install_date_desc": { "en": "used for calculation of history in vis widget", "de": "verwendet für die Berechnung der Geschichte in vis Widget", "ru": "используется для расчета истории в виджетах", "pt": "usado para calcular o histórico no vis widget", "nl": "gebruikt voor de berekening van de geschiedenis in vis widget", "fr": "utilisé pour le calcul de l'histoire dans vis widget", "it": "utilizzato per il calcolo della cronologia nel widget vis", "es": "utilizado para el cálculo de la historia en el widget vis", "pl": "służy do obliczania historii w widgecie vis", "uk": "використовується для обчислення історії у віджеті vis", "zh-cn": "用于计算vis小部件中的历史记录"},
|
|
15
|
-
"path_to_DB_file": { "en": "path to sqlite database file", "de": "Pfad zur SQLite-Datenbankdatei", "ru": "путь к файлу базы данных sqlite", "pt": "caminho para o arquivo de banco de dados sqlite", "nl": "pad naar sqlite databasebestand", "fr": "chemin vers le fichier de base de données sqlite", "it": "percorso per il file di database sqlite", "es": "ruta al archivo de base de datos sqlite", "pl": "ścieżka do pliku bazy danych sqlite", "uk": "шлях до файлу бази даних sqlite", "zh-cn": "sqlite数据库文件的路径"},
|
|
16
|
-
"path_to_DB_file_descr": { "en": "enter the complete path incl. database file name e.g. /home/pi/sbfspot/smadata/SBFspot.db", "de": "geben Sie den kompletten Pfad inkl. Datenbankdateiname z.B. /home/pi/sbfspot/smadata/SBFspot.db", "ru": "введите полный путь, включая. имя файла базы данных, например. /home/pi/sbfspot/smadata/SBFspot.db", "pt": "insira o caminho completo incl. nome do arquivo do banco de dados, e. /home/pi/sbfspot/smadata/SBFspot.db", "nl": "vul het complete pad in incl. databasebestandsnaam, b.v. /home/pi/sbfspot/smadata/SBFspot.db", "fr": "entrez le chemin complet incl. nom de fichier de base de données, par ex. /home/pi/sbfspot/smadata/SBFspot.db", "it": "inserisci il percorso completo incl. nome del file di database, ad es. /home/pi/sbfspot/smadata/SBFspot.db", "es": "ingrese la ruta completa incl. nombre de archivo de base de datos, p. /home/pi/sbfspot/smadata/SBFspot.db", "pl": "wprowadź pełną ścieżkę włącznie nazwa pliku bazy danych, np. /home/pi/sbfspot/smadata/SBFspot.db", "uk": "введіть повний шлях, вкл. назва файлу бази даних, напр. /home/pi/sbfspot/smadata/SBFspot.db", "zh-cn": "输入完整的路径,包括"},
|
|
17
|
-
"sbfspot_DB_IP": { "en": "database IP", "de": "Datenbank-IP", "ru": "IP-адрес", "pt": "banco de dadosL", "nl": "database IP", "fr": "base de données IP", "it": "IP del databaseL", "es": "base de datos IP", "pl": "IP bazy danych", "uk": "IP бази даних", "zh-cn": "数据库IP"},
|
|
18
|
-
"sbfspot_DB_IP_descr": { "en": "you can use 'localhost' as IP", "de": "Sie können \"localhost\" als IP verwenden", "ru": "вы можете использовать «localhost» в качестве IP-адреса", "pt": "você pode usar 'localhost' como IP", "nl": "u kunt 'localhost' als IP gebruiken", "fr": "vous pouvez utiliser 'localhost' comme adresse IP", "it": "puoi usare 'localhost' come IP", "es": "puedes usar 'localhost' como IP", "pl": "możesz użyć \"localhost\" jako IP", "uk": "ви можете використовувати 'localhost' як IP", "zh-cn": "您可以使用“本地主机”作为IP"},
|
|
19
|
-
"sbfspot_DB_databasename": { "en": "database name", "de": "Datenbank-Name", "ru": "Имя базы данных", "pt": "Nome do banco de dados", "nl": "databasenaam", "fr": "Nom de la base de données", "it": "nome del database", "es": "nombre de la base de datos", "pl": "nazwa bazy danych", "uk": "ім'я бази даних", "zh-cn": "数据库名称"},
|
|
20
|
-
"sbfspot_DB_password": { "en": "database password", "de": "Datenbankkennwort", "ru": "пароль базы данных", "pt": "senha do banco de dados", "nl": "database wachtwoord", "fr": "Mot de passe de base de données", "it": "password del database", "es": "contraseña de la base de datos", "pl": "Hasło bazy danychL", "uk": "пароль бази даних", "zh-cn": "数据库密码"},
|
|
21
|
-
"sbfspot_DB_port": { "en": "database port", "de": "Datenbankport", "ru": "Порт базы данных", "pt": "Porta da base de dados", "nl": "MariaDB databasepoort", "fr": "Port de base de données", "it": "Porta del database", "es": "Puerto de base de datos", "pl": "Port bazy danych", "uk": "порт бази даних", "zh-cn": "数据库端口"},
|
|
22
|
-
"sbfspot_DB_port_descr": { "en": "default 3306", "de": "Standard 3306", "ru": "по умолчанию 3306", "pt": "padrão 3306", "nl": "standaard 3306", "fr": "par défaut 3306", "it": "predefinito 3306", "es": "predeterminado 3306", "pl": "domyślnie 3306", "uk": "за замовчуванням 3306", "zh-cn": "默认值3306"},
|
|
23
|
-
"sbfspot_DB_user": { "en": "database user", "de": "Benutzer der Datenbank", "ru": "Пользователь базы данных ", "pt": "usuário do banco de dados", "nl": "mySQL-databasegebruiker", "fr": "utilisateur de base de données", "it": "utente del database", "es": "usuario de la base de datos", "pl": "użytkownik bazy danych", "uk": "користувач бази даних", "zh-cn": "数据库用户"},
|
|
24
|
-
"sbfspot_adapter_settings": { "en": "sbfspot adapter settings", "de": "sbfspot Adapter Einstellungen", "ru": "Настройки адаптера sbfspot", "pt": "Configurações do adaptador sbfspot", "nl": "sbfspot-adapterinstellingen", "fr": "Paramètres de l'adaptateur sbfspot", "it": "impostazioni dell'adattatore sbfspot", "es": "Configuración del adaptador sbfspot", "pl": "Ustawienia adaptera sbfspot", "uk": "налаштування адаптера sbfspot", "zh-cn": "sbfspot适配器设置"},
|
|
25
|
-
"type_of_DB": { "en": "type of database", "de": "Type der Datenbank", "ru": "тип базы данных", "pt": "tipo de banco de dados", "nl": "type database", "fr": "type de base de données", "it": "tipo di database", "es": "tipo de base de datos", "pl": "typ bazy danych", "uk": "тип бази даних", "zh-cn": "数据库类型"},
|
|
9
|
+
|
|
10
|
+
systemDictionary = {
|
|
11
|
+
"Attention": { "en": "adapter, sbfspot and database should run on the same system", "de": "adapter, sbfspot und database sollten auf demselben system laufen", "ru": "адаптер, sbfspot и база данных должны работать в одной системе", "pt": "adaptador, sbfspot e banco de dados devem ser executados no mesmo sistema", "nl": "adapter, sbfspot en database moeten op hetzelfde systeem worden uitgevoerd", "fr": "L'adaptateur, sbfspot et la base de données doivent fonctionner sur le même système", "it": "adattatore, sbfspot e database dovrebbero essere eseguiti sullo stesso sistema", "es": "adaptador, sbfspot y base de datos deben ejecutarse en el mismo sistema", "pl": "adapter, sbfspot i baza danych powinny działać w tym samym systemie", "uk": "адаптер, sbfspot і база даних повинні працювати в одній системі", "zh-cn": "适配器,sbfspot和数据库应在同一系统上运行"},
|
|
12
|
+
"GetDataOnlyWhenDaylight": { "en": "get data only when daylight", "de": "Daten nur bei Tageslicht abrufen", "ru": "получать данные только при дневном свете", "pt": "obtenha dados somente quando a luz do dia", "nl": "krijg alleen gegevens bij daglicht", "fr": "obtenir des données uniquement lorsque la lumière du jour", "it": "ottenere i dati solo alla luce del giorno", "es": "obtener datos solo cuando la luz del día", "pl": "odbieraj dane tylko przy świetle dziennym", "uk": "отримувати дані тільки вдень", "zh-cn": "仅在白天时获取数据"},
|
|
13
|
+
"install_date": { "en": "install date PV-System", "de": "Installationsdatum PV-Anlage", "ru": "дата установки PV-система", "pt": "data de instalação PV-System", "nl": "installeer datum PV-systeem", "fr": "date d'installation PV-System", "it": "installare data PV-System", "es": "fecha de instalación PV-System", "pl": "data instalacji PV-System", "uk": "дата встановлення PV-системи", "zh-cn": "安装日期PV-System"},
|
|
14
|
+
"install_date_desc": { "en": "used for calculation of history in vis widget", "de": "verwendet für die Berechnung der Geschichte in vis Widget", "ru": "используется для расчета истории в виджетах", "pt": "usado para calcular o histórico no vis widget", "nl": "gebruikt voor de berekening van de geschiedenis in vis widget", "fr": "utilisé pour le calcul de l'histoire dans vis widget", "it": "utilizzato per il calcolo della cronologia nel widget vis", "es": "utilizado para el cálculo de la historia en el widget vis", "pl": "służy do obliczania historii w widgecie vis", "uk": "використовується для обчислення історії у віджеті vis", "zh-cn": "用于计算vis小部件中的历史记录"},
|
|
15
|
+
"path_to_DB_file": { "en": "path to sqlite database file", "de": "Pfad zur SQLite-Datenbankdatei", "ru": "путь к файлу базы данных sqlite", "pt": "caminho para o arquivo de banco de dados sqlite", "nl": "pad naar sqlite databasebestand", "fr": "chemin vers le fichier de base de données sqlite", "it": "percorso per il file di database sqlite", "es": "ruta al archivo de base de datos sqlite", "pl": "ścieżka do pliku bazy danych sqlite", "uk": "шлях до файлу бази даних sqlite", "zh-cn": "sqlite数据库文件的路径"},
|
|
16
|
+
"path_to_DB_file_descr": { "en": "enter the complete path incl. database file name e.g. /home/pi/sbfspot/smadata/SBFspot.db", "de": "geben Sie den kompletten Pfad inkl. Datenbankdateiname z.B. /home/pi/sbfspot/smadata/SBFspot.db", "ru": "введите полный путь, включая. имя файла базы данных, например. /home/pi/sbfspot/smadata/SBFspot.db", "pt": "insira o caminho completo incl. nome do arquivo do banco de dados, e. /home/pi/sbfspot/smadata/SBFspot.db", "nl": "vul het complete pad in incl. databasebestandsnaam, b.v. /home/pi/sbfspot/smadata/SBFspot.db", "fr": "entrez le chemin complet incl. nom de fichier de base de données, par ex. /home/pi/sbfspot/smadata/SBFspot.db", "it": "inserisci il percorso completo incl. nome del file di database, ad es. /home/pi/sbfspot/smadata/SBFspot.db", "es": "ingrese la ruta completa incl. nombre de archivo de base de datos, p. /home/pi/sbfspot/smadata/SBFspot.db", "pl": "wprowadź pełną ścieżkę włącznie nazwa pliku bazy danych, np. /home/pi/sbfspot/smadata/SBFspot.db", "uk": "введіть повний шлях, вкл. назва файлу бази даних, напр. /home/pi/sbfspot/smadata/SBFspot.db", "zh-cn": "输入完整的路径,包括"},
|
|
17
|
+
"sbfspot_DB_IP": { "en": "database IP", "de": "Datenbank-IP", "ru": "IP-адрес", "pt": "banco de dadosL", "nl": "database IP", "fr": "base de données IP", "it": "IP del databaseL", "es": "base de datos IP", "pl": "IP bazy danych", "uk": "IP бази даних", "zh-cn": "数据库IP"},
|
|
18
|
+
"sbfspot_DB_IP_descr": { "en": "you can use 'localhost' as IP", "de": "Sie können \"localhost\" als IP verwenden", "ru": "вы можете использовать «localhost» в качестве IP-адреса", "pt": "você pode usar 'localhost' como IP", "nl": "u kunt 'localhost' als IP gebruiken", "fr": "vous pouvez utiliser 'localhost' comme adresse IP", "it": "puoi usare 'localhost' come IP", "es": "puedes usar 'localhost' como IP", "pl": "możesz użyć \"localhost\" jako IP", "uk": "ви можете використовувати 'localhost' як IP", "zh-cn": "您可以使用“本地主机”作为IP"},
|
|
19
|
+
"sbfspot_DB_databasename": { "en": "database name", "de": "Datenbank-Name", "ru": "Имя базы данных", "pt": "Nome do banco de dados", "nl": "databasenaam", "fr": "Nom de la base de données", "it": "nome del database", "es": "nombre de la base de datos", "pl": "nazwa bazy danych", "uk": "ім'я бази даних", "zh-cn": "数据库名称"},
|
|
20
|
+
"sbfspot_DB_password": { "en": "database password", "de": "Datenbankkennwort", "ru": "пароль базы данных", "pt": "senha do banco de dados", "nl": "database wachtwoord", "fr": "Mot de passe de base de données", "it": "password del database", "es": "contraseña de la base de datos", "pl": "Hasło bazy danychL", "uk": "пароль бази даних", "zh-cn": "数据库密码"},
|
|
21
|
+
"sbfspot_DB_port": { "en": "database port", "de": "Datenbankport", "ru": "Порт базы данных", "pt": "Porta da base de dados", "nl": "MariaDB databasepoort", "fr": "Port de base de données", "it": "Porta del database", "es": "Puerto de base de datos", "pl": "Port bazy danych", "uk": "порт бази даних", "zh-cn": "数据库端口"},
|
|
22
|
+
"sbfspot_DB_port_descr": { "en": "default 3306", "de": "Standard 3306", "ru": "по умолчанию 3306", "pt": "padrão 3306", "nl": "standaard 3306", "fr": "par défaut 3306", "it": "predefinito 3306", "es": "predeterminado 3306", "pl": "domyślnie 3306", "uk": "за замовчуванням 3306", "zh-cn": "默认值3306"},
|
|
23
|
+
"sbfspot_DB_user": { "en": "database user", "de": "Benutzer der Datenbank", "ru": "Пользователь базы данных ", "pt": "usuário do banco de dados", "nl": "mySQL-databasegebruiker", "fr": "utilisateur de base de données", "it": "utente del database", "es": "usuario de la base de datos", "pl": "użytkownik bazy danych", "uk": "користувач бази даних", "zh-cn": "数据库用户"},
|
|
24
|
+
"sbfspot_adapter_settings": { "en": "sbfspot adapter settings", "de": "sbfspot Adapter Einstellungen", "ru": "Настройки адаптера sbfspot", "pt": "Configurações do adaptador sbfspot", "nl": "sbfspot-adapterinstellingen", "fr": "Paramètres de l'adaptateur sbfspot", "it": "impostazioni dell'adattatore sbfspot", "es": "Configuración del adaptador sbfspot", "pl": "Ustawienia adaptera sbfspot", "uk": "налаштування адаптера sbfspot", "zh-cn": "sbfspot适配器设置"},
|
|
25
|
+
"type_of_DB": { "en": "type of database", "de": "Type der Datenbank", "ru": "тип базы данных", "pt": "tipo de banco de dados", "nl": "type database", "fr": "type de base de données", "it": "tipo di database", "es": "tipo de base de datos", "pl": "typ bazy danych", "uk": "тип бази даних", "zh-cn": "数据库类型"},
|
|
26
26
|
};
|