iobroker.shoppingroute 0.3.3 → 0.3.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/README.md +15 -7
- package/README_DE.md +16 -12
- package/admin/jsonConfig.json +83 -218
- package/build/lib/alexa-direct.js +201 -1
- package/build/lib/config-tools.js +102 -1
- package/build/lib/direct-sort-lifecycle.js +72 -1
- package/build/lib/market-plan.js +141 -1
- package/build/lib/metrics.js +44 -1
- package/build/lib/model.js +3 -1
- package/build/lib/parser.js +274 -1
- package/build/lib/prefix-sort.js +325 -1
- package/build/lib/review-tools.js +21 -0
- package/build/lib/sorter.js +157 -1
- package/build/lib/state-change.js +7 -0
- package/build/lib/statistics.js +53 -1
- package/build/main.js +1133 -1
- package/io-package.json +17 -48
- package/package.json +6 -8
- package/admin/custom/.vite/manifest.json +0 -74
- package/admin/custom/markets/.vite/manifest.json +0 -74
- package/admin/custom/productGroups/.vite/manifest.json +0 -74
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
**Current version: 0.3.
|
|
5
|
+
**Current version: 0.3.4**
|
|
6
6
|
|
|
7
|
-
ShoppingRoute sorts Alexa shopping-list entries by market, product group and each store's individual walking route. It assigns visible two-digit keys such as `20> Bananas` and `40>
|
|
7
|
+
ShoppingRoute sorts Alexa shopping-list entries by market, product group and each store's individual walking route. It assigns visible two-digit keys such as `20> Bananas` and `40> ═════ ALDI ═════`; managed lists must therefore be set to **A–Z** in the Alexa app. ShoppingRoute reuses the local Alexa2 authentication for direct item updates, deletes and batch creates, while Alexa2 list states remain the external change trigger.
|
|
8
8
|
|
|
9
9
|
## User guide / Bedienungsanleitung
|
|
10
10
|
|
|
@@ -16,7 +16,7 @@ ShoppingRoute sorts Alexa shopping-list entries by market, product group and eac
|
|
|
16
16
|
- multiple Alexa lists with per-list priority markets
|
|
17
17
|
- global, per-list and temporary market priorities
|
|
18
18
|
- market aliases and common market-name variants
|
|
19
|
-
- optional automatically managed market headings such as
|
|
19
|
+
- optional automatically managed market headings such as `═════ ALDI ═════`
|
|
20
20
|
- optional cross-market consolidation using a minimum-item threshold; explicit market requests are never moved
|
|
21
21
|
- configurable product groups and store-specific routes
|
|
22
22
|
- product catalogue with aliases, preferred and available markets
|
|
@@ -28,11 +28,10 @@ ShoppingRoute sorts Alexa shopping-list entries by market, product group and eac
|
|
|
28
28
|
- sorting preview before writes
|
|
29
29
|
- incremental `00>`–`99>` prefix sorting with gap-preserving inserts and suffix-only rebuilds
|
|
30
30
|
- direct Amazon responses plus one final list read as write confirmation
|
|
31
|
-
- API
|
|
31
|
+
- API Safe Mode with configurable write-rate limiting
|
|
32
32
|
- local-only shopping statistics
|
|
33
33
|
- configuration backup/restore
|
|
34
34
|
- shareable market-route profiles
|
|
35
|
-
- npm beta version check
|
|
36
35
|
- privacy-safe diagnostic/feedback report
|
|
37
36
|
- Alexa2/alexa-remote2 direct-session diagnostics
|
|
38
37
|
- Dry Run safety mode
|
|
@@ -41,6 +40,15 @@ See `README_DE.md` for the detailed German documentation.
|
|
|
41
40
|
|
|
42
41
|
## Changelog
|
|
43
42
|
|
|
43
|
+
### 0.3.4 (2026-08-14)
|
|
44
|
+
|
|
45
|
+
- Added Admin 8 compatibility for all custom Admin components and set the minimum Admin version to 8.0.0.
|
|
46
|
+
- Improved logging with an optional sort-summary message and made market headings clearer (`═════ MARKET ═════`).
|
|
47
|
+
- Fixed the review queue’s “Accept all” action and now process foreign Alexa2 states only when their values are acknowledged.
|
|
48
|
+
- Removed obsolete timing/API configuration options and the internal npm version check.
|
|
49
|
+
- Removed code obfuscation and obsolete package-preparation paths.
|
|
50
|
+
- Completed repository-review compatibility cleanup, including English runtime log/state texts and bounded `maxWritesPerMinute` handling.
|
|
51
|
+
|
|
44
52
|
### 0.3.3 (2026-08-13)
|
|
45
53
|
|
|
46
54
|
- New direct `00>`–`99>` prefix sorting for Alexa lists configured to A–Z.
|
|
@@ -62,7 +70,7 @@ See `README_DE.md` for the detailed German documentation.
|
|
|
62
70
|
|
|
63
71
|
### 0.3.0 (2026-08-10)
|
|
64
72
|
|
|
65
|
-
- Added optional market headings (now formatted as
|
|
73
|
+
- Added optional market headings (now formatted as `═════ MARKET ═════`).
|
|
66
74
|
- A heading stays active until the last real item for that market is completed and is then deleted completely instead of remaining among completed items.
|
|
67
75
|
- Added configurable minimum-items-per-market consolidation for flexible articles.
|
|
68
76
|
- Explicit market phrases always remain assigned to the requested market.
|
|
@@ -72,7 +80,7 @@ See `README_DE.md` for the detailed German documentation.
|
|
|
72
80
|
|
|
73
81
|
- First stable release of ShoppingRoute.
|
|
74
82
|
- Completed Admin translations for all supported ioBroker languages and fixed the walking-route market help text.
|
|
75
|
-
- Added protected stable publishing through GitHub Actions
|
|
83
|
+
- Added protected stable publishing through GitHub Actions and npm Trusted Publishing/OIDC.
|
|
76
84
|
- Verified `updateListItem` compatibility with Alexa2 3.28.3 and alexa-remote2 8.1.0 without local modifications to foreign modules.
|
|
77
85
|
|
|
78
86
|
### 0.2.0-beta.12 (2026-08-09)
|
package/README_DE.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
**Aktuelle Version: 0.3.
|
|
5
|
+
**Aktuelle Version: 0.3.4**
|
|
6
6
|
|
|
7
|
-
ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe und dem individuellen Laufweg durch den jeweiligen Markt. Dazu vergibt es sichtbare zweistellige Schlüssel wie `20> Bananen` und `40>
|
|
7
|
+
ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe und dem individuellen Laufweg durch den jeweiligen Markt. Dazu vergibt es sichtbare zweistellige Schlüssel wie `20> Bananen` und `40> ═════ ALDI ═════`; verwaltete Listen müssen deshalb in der Alexa-App auf **A–Z** stehen. ShoppingRoute übernimmt lokal die Alexa2-Authentifizierung für direkte Updates, Deletes und Batch-Creates; Alexa2-Listenstates bleiben die Triggerquelle für externe Änderungen.
|
|
8
8
|
|
|
9
9
|
## Bedienungsanleitung / User guide
|
|
10
10
|
|
|
@@ -16,7 +16,7 @@ ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe u
|
|
|
16
16
|
- mehrere Alexa-Einkaufslisten mit eigenem Prioritätsmarkt
|
|
17
17
|
- globale, listenbezogene und temporäre Marktpriorität
|
|
18
18
|
- Markt-Aliase und automatische Erkennung häufiger Marktvarianten
|
|
19
|
-
- optionale, automatisch verwaltete Marktüberschriften wie
|
|
19
|
+
- optionale, automatisch verwaltete Marktüberschriften wie `═════ ALDI ═════`
|
|
20
20
|
- optionale marktübergreifende Zusammenlegung anhand einer Mindestanzahl von Artikeln pro zusätzlichem Markt; explizite Marktangaben bleiben unverändert
|
|
21
21
|
- frei pflegbare Produktgruppen und marktbezogene Laufwege
|
|
22
22
|
- Laufweg nach Tabellenreihenfolge; Reihenfolgen werden automatisch neu nummeriert
|
|
@@ -30,11 +30,10 @@ ShoppingRoute sortiert Alexa-Einkaufslisteneinträge nach Markt, Produktgruppe u
|
|
|
30
30
|
- Sortiervorschau vor Alexa-Schreibzugriffen
|
|
31
31
|
- inkrementelle Präfixsortierung `00>`–`99>` mit Lückenerhalt und Suffix-Fallback
|
|
32
32
|
- direkte Amazon-Antworten plus ein abschließender Listenabruf als Bestätigung
|
|
33
|
-
- API-Schonmodus mit
|
|
33
|
+
- API-Schonmodus mit konfigurierbarem Schreibzugriffs-Limit
|
|
34
34
|
- lokale Einkaufsstatistik ohne Cloud-Telemetrie
|
|
35
35
|
- Konfigurations-Export/Import
|
|
36
36
|
- exportierbare/importierbare Marktprofile zum Teilen von Laufwegen
|
|
37
|
-
- npm-Beta-Versionsprüfung im Adapter
|
|
38
37
|
- datenschutzfreundlicher Diagnose-/Feedbackbericht
|
|
39
38
|
- Alexa2/alexa-remote2-Diagnose der direkten Sitzung
|
|
40
39
|
- Dry-Run für sichere Tests
|
|
@@ -62,21 +61,26 @@ Anschließend kann 0.3.0 flexible Artikel marktübergreifend zusammenlegen, wenn
|
|
|
62
61
|
- `info.sortTransaction` – lokales Wiederherstellungsjournal einer laufenden Sortierung; im Normalzustand `{}`
|
|
63
62
|
- `info.configExport` – komplette Konfigurationssicherung
|
|
64
63
|
- `info.marketProfiles` – teilbare Marktprofile
|
|
65
|
-
- `info.versionInstalled
|
|
64
|
+
- `info.versionInstalled` – installierte Adapterversion
|
|
66
65
|
- `info.feedbackReport` – bereinigter Diagnose-/Feedbackbericht ohne Einkaufsinhalte
|
|
67
66
|
- `control.temporaryPriorityMarket` – temporärer Markt für den aktuellen Einkauf
|
|
68
67
|
- `control.importConfigJson` – Konfiguration importieren
|
|
69
68
|
- `control.marketProfileImport` – Marktprofil importieren
|
|
70
69
|
|
|
71
|
-
##
|
|
70
|
+
## Lizenz
|
|
72
71
|
|
|
73
|
-
|
|
72
|
+
ShoppingRoute wird unter der **MIT-Lizenz** veröffentlicht. Frühere bereits veröffentlichte Versionen bleiben unter der jeweils damals gültigen Lizenz.
|
|
74
73
|
|
|
75
|
-
##
|
|
74
|
+
## Changelog
|
|
76
75
|
|
|
77
|
-
|
|
76
|
+
### 0.3.4 (2026-08-14)
|
|
78
77
|
|
|
79
|
-
|
|
78
|
+
- Admin-8-Kompatibilität für alle benutzerdefinierten Admin-Komponenten ergänzt und die Admin-Mindestversion auf 8.0.0 gesetzt.
|
|
79
|
+
- Logging mit optionaler Sortier-Abschlussmeldung verbessert und Marktüberschriften deutlicher gestaltet (`═════ MARKT ═════`).
|
|
80
|
+
- Prüflisten-Funktion „Alle auf Übernehmen stellen“ repariert; fremde Alexa2-States werden nur noch bei bestätigten Werten verarbeitet.
|
|
81
|
+
- Veraltete Timing-/API-Konfigurationsoptionen und die interne npm-Versionsprüfung entfernt.
|
|
82
|
+
- Code-Obfuscation und überholte Paketvorbereitungswege entfernt.
|
|
83
|
+
- Repository-Review- und Kompatibilitätsbereinigung abgeschlossen, einschließlich englischer Runtime-Log-/State-Texte und begrenzter `maxWritesPerMinute`-Verarbeitung.
|
|
80
84
|
|
|
81
85
|
### 0.3.3 (2026-08-13)
|
|
82
86
|
|
|
@@ -99,7 +103,7 @@ ShoppingRoute wird ab dieser Version unter der **MIT-Lizenz** veröffentlicht. F
|
|
|
99
103
|
|
|
100
104
|
### 0.3.0 (2026-08-10)
|
|
101
105
|
|
|
102
|
-
- Optionale Marktüberschriften ergänzt (jetziges Format:
|
|
106
|
+
- Optionale Marktüberschriften ergänzt (jetziges Format: `═════ MARKT ═════`).
|
|
103
107
|
- Überschriften bleiben aktiv, solange mindestens ein echter Artikel des Marktes offen ist, und werden danach vollständig gelöscht statt unter erledigten Artikeln stehen zu bleiben.
|
|
104
108
|
- Marktübergreifende Zusammenlegung anhand einer konfigurierbaren Mindestanzahl ergänzt.
|
|
105
109
|
- Explizite Marktangaben bleiben von der Zusammenlegung ausnahmslos unberührt.
|
package/admin/jsonConfig.json
CHANGED
|
@@ -5,11 +5,10 @@
|
|
|
5
5
|
"type": "panel",
|
|
6
6
|
"label": "ui.items.general.label",
|
|
7
7
|
"items": {
|
|
8
|
-
"
|
|
8
|
+
"safetyWarning": {
|
|
9
9
|
"type": "infoBox",
|
|
10
|
-
"text": "ui.items.general.items.
|
|
10
|
+
"text": "ui.items.general.items.safetywarning.text",
|
|
11
11
|
"boxType": "warning",
|
|
12
|
-
"closeable": false,
|
|
13
12
|
"iconPosition": "middle",
|
|
14
13
|
"xs": 12,
|
|
15
14
|
"sm": 12,
|
|
@@ -83,6 +82,16 @@
|
|
|
83
82
|
"lg": 6,
|
|
84
83
|
"xl": 6
|
|
85
84
|
},
|
|
85
|
+
"logSortSummary": {
|
|
86
|
+
"type": "checkbox",
|
|
87
|
+
"label": "ui.items.general.items.logsortsummary.label",
|
|
88
|
+
"newLine": true,
|
|
89
|
+
"xs": 12,
|
|
90
|
+
"sm": 12,
|
|
91
|
+
"md": 6,
|
|
92
|
+
"lg": 6,
|
|
93
|
+
"xl": 6
|
|
94
|
+
},
|
|
86
95
|
"marketSectionDivider": {
|
|
87
96
|
"type": "divider",
|
|
88
97
|
"newLine": true,
|
|
@@ -189,7 +198,7 @@
|
|
|
189
198
|
"lg": 6,
|
|
190
199
|
"xl": 6
|
|
191
200
|
},
|
|
192
|
-
"
|
|
201
|
+
"apiDivider": {
|
|
193
202
|
"type": "divider",
|
|
194
203
|
"newLine": true,
|
|
195
204
|
"xs": 12,
|
|
@@ -198,9 +207,9 @@
|
|
|
198
207
|
"lg": 12,
|
|
199
208
|
"xl": 12
|
|
200
209
|
},
|
|
201
|
-
"
|
|
210
|
+
"apiSectionTitle": {
|
|
202
211
|
"type": "header",
|
|
203
|
-
"text": "ui.items.general.items.
|
|
212
|
+
"text": "ui.items.general.items.apisectiontitle.text",
|
|
204
213
|
"size": 3,
|
|
205
214
|
"newLine": true,
|
|
206
215
|
"xs": 12,
|
|
@@ -209,42 +218,11 @@
|
|
|
209
218
|
"lg": 12,
|
|
210
219
|
"xl": 12
|
|
211
220
|
},
|
|
212
|
-
"
|
|
213
|
-
"type": "
|
|
214
|
-
"
|
|
215
|
-
"
|
|
216
|
-
"
|
|
217
|
-
"newLine": true,
|
|
218
|
-
"xs": 12,
|
|
219
|
-
"sm": 12,
|
|
220
|
-
"md": 6,
|
|
221
|
-
"lg": 6,
|
|
222
|
-
"xl": 6
|
|
223
|
-
},
|
|
224
|
-
"writePauseMs": {
|
|
225
|
-
"type": "number",
|
|
226
|
-
"label": "ui.items.general.items.writepausems.label",
|
|
227
|
-
"min": 250,
|
|
228
|
-
"max": 10000,
|
|
229
|
-
"xs": 12,
|
|
230
|
-
"sm": 12,
|
|
231
|
-
"md": 6,
|
|
232
|
-
"lg": 6,
|
|
233
|
-
"xl": 6
|
|
234
|
-
},
|
|
235
|
-
"apiDivider": {
|
|
236
|
-
"type": "divider",
|
|
237
|
-
"newLine": true,
|
|
238
|
-
"xs": 12,
|
|
239
|
-
"sm": 12,
|
|
240
|
-
"md": 12,
|
|
241
|
-
"lg": 12,
|
|
242
|
-
"xl": 12
|
|
243
|
-
},
|
|
244
|
-
"apiSectionTitle": {
|
|
245
|
-
"type": "header",
|
|
246
|
-
"text": "ui.items.general.items.apisectiontitle.text",
|
|
247
|
-
"size": 3,
|
|
221
|
+
"apiWarning": {
|
|
222
|
+
"type": "infoBox",
|
|
223
|
+
"text": "ui.items.general.items.apiwarning.text",
|
|
224
|
+
"boxType": "warning",
|
|
225
|
+
"iconPosition": "middle",
|
|
248
226
|
"newLine": true,
|
|
249
227
|
"xs": 12,
|
|
250
228
|
"sm": 12,
|
|
@@ -288,52 +266,6 @@
|
|
|
288
266
|
"md": 6,
|
|
289
267
|
"lg": 6,
|
|
290
268
|
"xl": 6
|
|
291
|
-
},
|
|
292
|
-
"batchSize": {
|
|
293
|
-
"type": "number",
|
|
294
|
-
"label": "ui.items.general.items.batchsize.label",
|
|
295
|
-
"min": 1,
|
|
296
|
-
"max": 100,
|
|
297
|
-
"newLine": true,
|
|
298
|
-
"xs": 12,
|
|
299
|
-
"sm": 12,
|
|
300
|
-
"md": 6,
|
|
301
|
-
"lg": 6,
|
|
302
|
-
"xl": 6
|
|
303
|
-
},
|
|
304
|
-
"batchPauseMs": {
|
|
305
|
-
"type": "number",
|
|
306
|
-
"label": "ui.items.general.items.batchpausems.label",
|
|
307
|
-
"min": 0,
|
|
308
|
-
"max": 60000,
|
|
309
|
-
"xs": 12,
|
|
310
|
-
"sm": 12,
|
|
311
|
-
"md": 6,
|
|
312
|
-
"lg": 6,
|
|
313
|
-
"xl": 6
|
|
314
|
-
},
|
|
315
|
-
"maxWriteRetries": {
|
|
316
|
-
"type": "number",
|
|
317
|
-
"label": "ui.items.general.items.maxwriteretries.label",
|
|
318
|
-
"min": 0,
|
|
319
|
-
"max": 5,
|
|
320
|
-
"newLine": true,
|
|
321
|
-
"xs": 12,
|
|
322
|
-
"sm": 12,
|
|
323
|
-
"md": 6,
|
|
324
|
-
"lg": 6,
|
|
325
|
-
"xl": 6
|
|
326
|
-
},
|
|
327
|
-
"retryBaseMs": {
|
|
328
|
-
"type": "number",
|
|
329
|
-
"label": "ui.items.general.items.retrybasems.label",
|
|
330
|
-
"min": 250,
|
|
331
|
-
"max": 30000,
|
|
332
|
-
"xs": 12,
|
|
333
|
-
"sm": 12,
|
|
334
|
-
"md": 6,
|
|
335
|
-
"lg": 6,
|
|
336
|
-
"xl": 6
|
|
337
269
|
}
|
|
338
270
|
}
|
|
339
271
|
},
|
|
@@ -416,7 +348,7 @@
|
|
|
416
348
|
"type": "custom",
|
|
417
349
|
"url": "custom/markets/marketsEditor.js",
|
|
418
350
|
"name": "ShoppingRouteMarketsSet/Components/MarketsEditor",
|
|
419
|
-
"
|
|
351
|
+
"guiApi": 2,
|
|
420
352
|
"i18n": false,
|
|
421
353
|
"xs": 12,
|
|
422
354
|
"sm": 12,
|
|
@@ -471,7 +403,7 @@
|
|
|
471
403
|
"type": "custom",
|
|
472
404
|
"url": "custom/productGroups/productGroupsEditor.js",
|
|
473
405
|
"name": "ShoppingRouteProductGroupsSet/Components/ProductGroupsEditor",
|
|
474
|
-
"
|
|
406
|
+
"guiApi": 2,
|
|
475
407
|
"i18n": false,
|
|
476
408
|
"xs": 12,
|
|
477
409
|
"sm": 12,
|
|
@@ -516,7 +448,7 @@
|
|
|
516
448
|
"type": "custom",
|
|
517
449
|
"url": "custom/routeEditor.js",
|
|
518
450
|
"name": "ShoppingRouteAdminSet/Components/RouteEditor",
|
|
519
|
-
"
|
|
451
|
+
"guiApi": 2,
|
|
520
452
|
"i18n": false,
|
|
521
453
|
"xs": 12,
|
|
522
454
|
"sm": 12,
|
|
@@ -630,7 +562,6 @@
|
|
|
630
562
|
"defaultSendTo": "normalizeMarketSelection",
|
|
631
563
|
"manual": false,
|
|
632
564
|
"multiple": true,
|
|
633
|
-
"showAllValues": true,
|
|
634
565
|
"noTranslation": true,
|
|
635
566
|
"jsonData": "{\"markets\":${JSON.stringify(globalData.markets || [])},\"value\":${JSON.stringify(data.availableMarkets == null ? '' : data.availableMarkets)}}",
|
|
636
567
|
"title": "ui.items.productstab.items.products.items.4.title",
|
|
@@ -740,7 +671,6 @@
|
|
|
740
671
|
"defaultSendTo": "normalizeMarketSelection",
|
|
741
672
|
"manual": false,
|
|
742
673
|
"multiple": true,
|
|
743
|
-
"showAllValues": true,
|
|
744
674
|
"noTranslation": true,
|
|
745
675
|
"jsonData": "{\"markets\":${JSON.stringify(globalData.markets || [])},\"value\":${JSON.stringify(data.availableMarkets == null ? '' : data.availableMarkets)}}",
|
|
746
676
|
"title": "ui.items.productstab.items.products.items.4.title",
|
|
@@ -858,18 +788,18 @@
|
|
|
858
788
|
"uk": "Загальні",
|
|
859
789
|
"zh-cn": "常规"
|
|
860
790
|
},
|
|
861
|
-
"ui.items.general.items.
|
|
862
|
-
"en": "Safety notice: Start with Dry Run enabled. Normal shopping items are still sorted only by redistributing their visible texts. If market headings are enabled, ShoppingRoute creates and deletes only its own
|
|
863
|
-
"de": "Sicherheitshinweis: Zuerst mit Dry-Run testen. Normale Einkaufsartikel werden weiterhin nur durch Umverteilen ihrer sichtbaren Texte sortiert. Bei aktivierten Marktüberschriften legt und löscht ShoppingRoute über Alexa2 ausschließlich eigene Einträge im Format
|
|
864
|
-
"ru": "Примечание по безопасности: сначала используйте пробный режим. Обычные товары по-прежнему сортируются только перераспределением видимых текстов. При включённых заголовках ShoppingRoute через Alexa2 создаёт и удаляет только собственные строки
|
|
865
|
-
"pt": "Aviso de segurança: comece com o modo de simulação. Os itens normais continuam sendo ordenados apenas redistribuindo seus textos visíveis. Com cabeçalhos ativados, o ShoppingRoute cria e exclui via Alexa2 apenas suas próprias entradas
|
|
866
|
-
"nl": "Veiligheidsadvies: begin met de proefmodus. Normale boodschappen worden nog steeds alleen gesorteerd door zichtbare teksten te herverdelen. Met winkelkoppen ingeschakeld maakt en verwijdert ShoppingRoute via Alexa2 uitsluitend eigen
|
|
867
|
-
"fr": "Consigne de sécurité : commencez en mode simulation. Les articles normaux restent triés uniquement par redistribution de leurs textes visibles. Si les en-têtes sont activés, ShoppingRoute crée et supprime via Alexa2 uniquement ses propres entrées
|
|
868
|
-
"it": "Avviso di sicurezza: iniziare con Dry Run. Gli articoli normali vengono ancora ordinati solo ridistribuendo i testi visibili. Con le intestazioni attive, ShoppingRoute crea ed elimina tramite Alexa2 esclusivamente le proprie voci
|
|
869
|
-
"es": "Aviso de seguridad: comience con Dry Run. Los artículos normales siguen ordenándose solo redistribuyendo sus textos visibles. Con encabezados activados, ShoppingRoute crea y elimina mediante Alexa2 únicamente sus propias entradas
|
|
870
|
-
"pl": "Informacja bezpieczeństwa: zacznij od trybu testowego. Zwykłe artykuły nadal są sortowane wyłącznie przez rozdzielanie widocznych tekstów. Po włączeniu nagłówków ShoppingRoute przez Alexa2 tworzy i usuwa wyłącznie własne wpisy
|
|
871
|
-
"uk": "Примітка з безпеки: спочатку використовуйте Dry Run. Звичайні товари й надалі сортуються лише перерозподілом видимих текстів. Якщо заголовки ввімкнено, ShoppingRoute через Alexa2 створює та видаляє лише власні записи
|
|
872
|
-
"zh-cn": "安全提示:请先使用试运行。普通购物项仍只通过重新分配可见文本来排序。启用商店标题后,ShoppingRoute 仅通过 Alexa2 创建和删除自己的
|
|
791
|
+
"ui.items.general.items.safetywarning.text": {
|
|
792
|
+
"en": "Safety notice: Start with Dry Run enabled. Normal shopping items are still sorted only by redistributing their visible texts. If market headings are enabled, ShoppingRoute creates and deletes only its own ═════ MARKET ═════ heading entries through Alexa2.",
|
|
793
|
+
"de": "Sicherheitshinweis: Zuerst mit Dry-Run testen. Normale Einkaufsartikel werden weiterhin nur durch Umverteilen ihrer sichtbaren Texte sortiert. Bei aktivierten Marktüberschriften legt und löscht ShoppingRoute über Alexa2 ausschließlich eigene Einträge im Format ═════ MARKT ═════.",
|
|
794
|
+
"ru": "Примечание по безопасности: сначала используйте пробный режим. Обычные товары по-прежнему сортируются только перераспределением видимых текстов. При включённых заголовках ShoppingRoute через Alexa2 создаёт и удаляет только собственные строки ═════ МАГАЗИН ═════.",
|
|
795
|
+
"pt": "Aviso de segurança: comece com o modo de simulação. Os itens normais continuam sendo ordenados apenas redistribuindo seus textos visíveis. Com cabeçalhos ativados, o ShoppingRoute cria e exclui via Alexa2 apenas suas próprias entradas ═════ MERCADO ═════.",
|
|
796
|
+
"nl": "Veiligheidsadvies: begin met de proefmodus. Normale boodschappen worden nog steeds alleen gesorteerd door zichtbare teksten te herverdelen. Met winkelkoppen ingeschakeld maakt en verwijdert ShoppingRoute via Alexa2 uitsluitend eigen ═════ WINKEL ═════ regels.",
|
|
797
|
+
"fr": "Consigne de sécurité : commencez en mode simulation. Les articles normaux restent triés uniquement par redistribution de leurs textes visibles. Si les en-têtes sont activés, ShoppingRoute crée et supprime via Alexa2 uniquement ses propres entrées ═════ MAGASIN ═════.",
|
|
798
|
+
"it": "Avviso di sicurezza: iniziare con Dry Run. Gli articoli normali vengono ancora ordinati solo ridistribuendo i testi visibili. Con le intestazioni attive, ShoppingRoute crea ed elimina tramite Alexa2 esclusivamente le proprie voci ═════ NEGOZIO ═════.",
|
|
799
|
+
"es": "Aviso de seguridad: comience con Dry Run. Los artículos normales siguen ordenándose solo redistribuyendo sus textos visibles. Con encabezados activados, ShoppingRoute crea y elimina mediante Alexa2 únicamente sus propias entradas ═════ TIENDA ═════.",
|
|
800
|
+
"pl": "Informacja bezpieczeństwa: zacznij od trybu testowego. Zwykłe artykuły nadal są sortowane wyłącznie przez rozdzielanie widocznych tekstów. Po włączeniu nagłówków ShoppingRoute przez Alexa2 tworzy i usuwa wyłącznie własne wpisy ═════ SKLEP ═════.",
|
|
801
|
+
"uk": "Примітка з безпеки: спочатку використовуйте Dry Run. Звичайні товари й надалі сортуються лише перерозподілом видимих текстів. Якщо заголовки ввімкнено, ShoppingRoute через Alexa2 створює та видаляє лише власні записи ═════ МАГАЗИН ═════.",
|
|
802
|
+
"zh-cn": "安全提示:请先使用试运行。普通购物项仍只通过重新分配可见文本来排序。启用商店标题后,ShoppingRoute 仅通过 Alexa2 创建和删除自己的 ═════ 商店 ═════ 标题条目。"
|
|
873
803
|
},
|
|
874
804
|
"ui.items.general.items.basicsectiontitle.text": {
|
|
875
805
|
"en": "Basic settings",
|
|
@@ -897,19 +827,6 @@
|
|
|
897
827
|
"uk": "Призначення магазинів",
|
|
898
828
|
"zh-cn": "商店分配"
|
|
899
829
|
},
|
|
900
|
-
"ui.items.general.items.timingsectiontitle.text": {
|
|
901
|
-
"en": "Processing timing",
|
|
902
|
-
"de": "Verarbeitungszeiten",
|
|
903
|
-
"ru": "Временные параметры обработки",
|
|
904
|
-
"pt": "Tempos de processamento",
|
|
905
|
-
"nl": "Verwerkingstijden",
|
|
906
|
-
"fr": "Temporisation du traitement",
|
|
907
|
-
"it": "Tempi di elaborazione",
|
|
908
|
-
"es": "Tiempos de procesamiento",
|
|
909
|
-
"pl": "Czasy przetwarzania",
|
|
910
|
-
"uk": "Часові параметри обробки",
|
|
911
|
-
"zh-cn": "处理时序"
|
|
912
|
-
},
|
|
913
830
|
"ui.items.general.items.alexainstance.label": {
|
|
914
831
|
"en": "Alexa2 instance",
|
|
915
832
|
"de": "Alexa2-Instanz",
|
|
@@ -1014,6 +931,19 @@
|
|
|
1014
931
|
"uk": "Автоматично пропонувати псевдоніми",
|
|
1015
932
|
"zh-cn": "自动建议别名"
|
|
1016
933
|
},
|
|
934
|
+
"ui.items.general.items.logsortsummary.label": {
|
|
935
|
+
"en": "Show completion message after a sorting run in the log",
|
|
936
|
+
"de": "Abschlussmeldung nach Sortierlauf im Log anzeigen",
|
|
937
|
+
"ru": "Показывать в журнале сообщение о завершении сортировки",
|
|
938
|
+
"pt": "Mostrar no log a mensagem de conclusão após uma ordenação",
|
|
939
|
+
"nl": "Voltooiingsmelding na een sorteerrun in het logboek tonen",
|
|
940
|
+
"fr": "Afficher dans le journal le message de fin après un tri",
|
|
941
|
+
"it": "Mostra nel log il messaggio di completamento dopo un ordinamento",
|
|
942
|
+
"es": "Mostrar en el registro el mensaje de finalización tras una ordenación",
|
|
943
|
+
"pl": "Pokazuj w dzienniku komunikat o zakończeniu sortowania",
|
|
944
|
+
"uk": "Показувати в журналі повідомлення про завершення сортування",
|
|
945
|
+
"zh-cn": "排序运行后在日志中显示完成消息"
|
|
946
|
+
},
|
|
1017
947
|
"ui.items.general.items.fallbackmarket.label": {
|
|
1018
948
|
"en": "Fallback market",
|
|
1019
949
|
"de": "Fallback-Markt",
|
|
@@ -1079,32 +1009,6 @@
|
|
|
1079
1009
|
"uk": "Магазин для поточної покупки",
|
|
1080
1010
|
"zh-cn": "当前购物商店"
|
|
1081
1011
|
},
|
|
1082
|
-
"ui.items.general.items.debouncems.label": {
|
|
1083
|
-
"en": "Collect list changes for (ms)",
|
|
1084
|
-
"de": "Listenänderungen sammeln für (ms)",
|
|
1085
|
-
"ru": "Собирать изменения списка в течение (мс)",
|
|
1086
|
-
"pt": "Agrupar alterações da lista por (ms)",
|
|
1087
|
-
"nl": "Lijstwijzigingen verzamelen gedurende (ms)",
|
|
1088
|
-
"fr": "Regrouper les modifications de liste pendant (ms)",
|
|
1089
|
-
"it": "Raccogli le modifiche della lista per (ms)",
|
|
1090
|
-
"es": "Agrupar cambios de la lista durante (ms)",
|
|
1091
|
-
"pl": "Zbieraj zmiany listy przez (ms)",
|
|
1092
|
-
"uk": "Збирати зміни списку протягом (мс)",
|
|
1093
|
-
"zh-cn": "收集列表更改时长(毫秒)"
|
|
1094
|
-
},
|
|
1095
|
-
"ui.items.general.items.writepausems.label": {
|
|
1096
|
-
"en": "Pause between Alexa value writes (ms)",
|
|
1097
|
-
"de": "Pause zwischen Alexa-value-Schreibzugriffen (ms)",
|
|
1098
|
-
"ru": "Пауза между записями значений Alexa (мс)",
|
|
1099
|
-
"pt": "Pausa entre gravações de valores Alexa (ms)",
|
|
1100
|
-
"nl": "Pauze tussen Alexa-value-schrijfbewerkingen (ms)",
|
|
1101
|
-
"fr": "Pause entre les écritures de valeurs Alexa (ms)",
|
|
1102
|
-
"it": "Pausa tra le scritture dei valori Alexa (ms)",
|
|
1103
|
-
"es": "Pausa entre escrituras de valores de Alexa (ms)",
|
|
1104
|
-
"pl": "Przerwa między zapisami wartości Alexa (ms)",
|
|
1105
|
-
"uk": "Пауза між записами значень Alexa (мс)",
|
|
1106
|
-
"zh-cn": "Alexa 值写入之间的暂停(毫秒)"
|
|
1107
|
-
},
|
|
1108
1012
|
"ui.items.general.items.apisectiontitle.text": {
|
|
1109
1013
|
"en": "API protection",
|
|
1110
1014
|
"de": "API-Schutz",
|
|
@@ -1118,18 +1022,31 @@
|
|
|
1118
1022
|
"uk": "Захист API",
|
|
1119
1023
|
"zh-cn": "API 保护"
|
|
1120
1024
|
},
|
|
1025
|
+
"ui.items.general.items.apiwarning.text": {
|
|
1026
|
+
"en": "Only change these settings if you know what you are doing.",
|
|
1027
|
+
"de": "Änderungen nur vornehmen, wenn Sie wissen, was Sie tun.",
|
|
1028
|
+
"ru": "Изменяйте эти настройки только в том случае, если понимаете последствия.",
|
|
1029
|
+
"pt": "Altere estas configurações apenas se souber o que está fazendo.",
|
|
1030
|
+
"nl": "Wijzig deze instellingen alleen als u weet wat u doet.",
|
|
1031
|
+
"fr": "Ne modifiez ces paramètres que si vous savez ce que vous faites.",
|
|
1032
|
+
"it": "Modificare queste impostazioni solo se si sa cosa si sta facendo.",
|
|
1033
|
+
"es": "Cambie estos ajustes únicamente si sabe lo que está haciendo.",
|
|
1034
|
+
"pl": "Zmieniaj te ustawienia tylko wtedy, gdy wiesz, co robisz.",
|
|
1035
|
+
"uk": "Змінюйте ці налаштування лише тоді, коли розумієте наслідки.",
|
|
1036
|
+
"zh-cn": "仅在您清楚自己所做操作时更改这些设置。"
|
|
1037
|
+
},
|
|
1121
1038
|
"ui.items.general.items.apihelp.text": {
|
|
1122
|
-
"en": "API Safe Mode limits Alexa write frequency
|
|
1123
|
-
"de": "Der API-Schonmodus begrenzt Alexa-Schreibzugriffe,
|
|
1124
|
-
"ru": "Безопасный режим API ограничивает частоту записей Alexa,
|
|
1125
|
-
"pt": "O Modo Seguro da API limita a frequência de gravações na Alexa
|
|
1126
|
-
"nl": "De veilige API-modus beperkt de frequentie van Alexa-schrijfbewerkingen
|
|
1127
|
-
"fr": "Le mode sécurisé de l’API limite la fréquence des écritures Alexa
|
|
1128
|
-
"it": "La modalità sicura API limita la frequenza delle scritture Alexa
|
|
1129
|
-
"es": "El modo seguro de la API limita la frecuencia de escrituras en Alexa
|
|
1130
|
-
"pl": "Tryb bezpieczny API ogranicza częstotliwość zapisów Alexa,
|
|
1131
|
-
"uk": "Безпечний режим API обмежує частоту записів Alexa,
|
|
1132
|
-
"zh-cn": "API 安全模式会限制 Alexa
|
|
1039
|
+
"en": "API Safe Mode limits direct Alexa write frequency to avoid unnecessary request bursts. ShoppingRoute does not poll Amazon.",
|
|
1040
|
+
"de": "Der API-Schonmodus begrenzt direkte Alexa-Schreibzugriffe, um unnötige Zugriffsspitzen zu vermeiden. ShoppingRoute pollt Amazon nicht.",
|
|
1041
|
+
"ru": "Безопасный режим API ограничивает частоту прямых записей Alexa, чтобы избежать ненужных всплесков запросов. ShoppingRoute не опрашивает Amazon.",
|
|
1042
|
+
"pt": "O Modo Seguro da API limita a frequência de gravações diretas na Alexa para evitar picos desnecessários de solicitações. O ShoppingRoute não consulta a Amazon continuamente.",
|
|
1043
|
+
"nl": "De veilige API-modus beperkt de frequentie van directe Alexa-schrijfbewerkingen om onnodige verzoekpieken te voorkomen. ShoppingRoute pollt Amazon niet.",
|
|
1044
|
+
"fr": "Le mode sécurisé de l’API limite la fréquence des écritures directes Alexa afin d’éviter les pics de requêtes inutiles. ShoppingRoute n’interroge pas Amazon en continu.",
|
|
1045
|
+
"it": "La modalità sicura API limita la frequenza delle scritture dirette Alexa per evitare picchi di richieste non necessari. ShoppingRoute non effettua polling di Amazon.",
|
|
1046
|
+
"es": "El modo seguro de la API limita la frecuencia de escrituras directas en Alexa para evitar picos de solicitudes innecesarios. ShoppingRoute no sondea Amazon.",
|
|
1047
|
+
"pl": "Tryb bezpieczny API ogranicza częstotliwość bezpośrednich zapisów Alexa, aby uniknąć niepotrzebnych skoków liczby żądań. ShoppingRoute nie odpytuje Amazon.",
|
|
1048
|
+
"uk": "Безпечний режим API обмежує частоту прямих записів Alexa, щоб уникнути зайвих сплесків запитів. ShoppingRoute не опитує Amazon.",
|
|
1049
|
+
"zh-cn": "API 安全模式会限制 Alexa 直接写入频率,以避免不必要的请求峰值。ShoppingRoute 不会轮询 Amazon。"
|
|
1133
1050
|
},
|
|
1134
1051
|
"ui.items.general.items.apisafemode.label": {
|
|
1135
1052
|
"en": "Enable API Safe Mode",
|
|
@@ -1157,58 +1074,6 @@
|
|
|
1157
1074
|
"uk": "Максимум записів за хвилину",
|
|
1158
1075
|
"zh-cn": "每分钟最大写入次数"
|
|
1159
1076
|
},
|
|
1160
|
-
"ui.items.general.items.batchsize.label": {
|
|
1161
|
-
"en": "Writes per batch",
|
|
1162
|
-
"de": "Schreibzugriffe pro Block",
|
|
1163
|
-
"ru": "Записей в пакете",
|
|
1164
|
-
"pt": "Gravações por lote",
|
|
1165
|
-
"nl": "Schrijfbewerkingen per batch",
|
|
1166
|
-
"fr": "Écritures par lot",
|
|
1167
|
-
"it": "Scritture per blocco",
|
|
1168
|
-
"es": "Escrituras por lote",
|
|
1169
|
-
"pl": "Liczba zapisów w partii",
|
|
1170
|
-
"uk": "Записів у пакеті",
|
|
1171
|
-
"zh-cn": "每批写入次数"
|
|
1172
|
-
},
|
|
1173
|
-
"ui.items.general.items.batchpausems.label": {
|
|
1174
|
-
"en": "Pause between batches (ms)",
|
|
1175
|
-
"de": "Pause zwischen Blöcken (ms)",
|
|
1176
|
-
"ru": "Пауза между пакетами (мс)",
|
|
1177
|
-
"pt": "Pausa entre lotes (ms)",
|
|
1178
|
-
"nl": "Pauze tussen batches (ms)",
|
|
1179
|
-
"fr": "Pause entre les lots (ms)",
|
|
1180
|
-
"it": "Pausa tra i blocchi (ms)",
|
|
1181
|
-
"es": "Pausa entre lotes (ms)",
|
|
1182
|
-
"pl": "Przerwa między partiami (ms)",
|
|
1183
|
-
"uk": "Пауза між пакетами (мс)",
|
|
1184
|
-
"zh-cn": "批次之间的暂停(毫秒)"
|
|
1185
|
-
},
|
|
1186
|
-
"ui.items.general.items.maxwriteretries.label": {
|
|
1187
|
-
"en": "Maximum retries",
|
|
1188
|
-
"de": "Maximale Wiederholungen",
|
|
1189
|
-
"ru": "Максимум повторных попыток",
|
|
1190
|
-
"pt": "Máximo de tentativas",
|
|
1191
|
-
"nl": "Maximaal aantal nieuwe pogingen",
|
|
1192
|
-
"fr": "Nombre maximal de nouvelles tentatives",
|
|
1193
|
-
"it": "Numero massimo di tentativi",
|
|
1194
|
-
"es": "Máximo de reintentos",
|
|
1195
|
-
"pl": "Maksymalna liczba ponowień",
|
|
1196
|
-
"uk": "Максимум повторних спроб",
|
|
1197
|
-
"zh-cn": "最大重试次数"
|
|
1198
|
-
},
|
|
1199
|
-
"ui.items.general.items.retrybasems.label": {
|
|
1200
|
-
"en": "Retry base delay (ms)",
|
|
1201
|
-
"de": "Grundpause für Wiederholungen (ms)",
|
|
1202
|
-
"ru": "Базовая задержка повтора (мс)",
|
|
1203
|
-
"pt": "Atraso base para nova tentativa (ms)",
|
|
1204
|
-
"nl": "Basisvertraging voor nieuwe poging (ms)",
|
|
1205
|
-
"fr": "Délai de base avant nouvelle tentative (ms)",
|
|
1206
|
-
"it": "Ritardo base per i tentativi (ms)",
|
|
1207
|
-
"es": "Retardo base para reintentos (ms)",
|
|
1208
|
-
"pl": "Bazowe opóźnienie ponowienia (ms)",
|
|
1209
|
-
"uk": "Базова затримка повтору (мс)",
|
|
1210
|
-
"zh-cn": "重试基础延迟(毫秒)"
|
|
1211
|
-
},
|
|
1212
1077
|
"ui.items.liststab.label": {
|
|
1213
1078
|
"en": "Lists",
|
|
1214
1079
|
"de": "Listen",
|
|
@@ -1691,17 +1556,17 @@
|
|
|
1691
1556
|
"zh-cn": "Alexa 列表中的商店标题"
|
|
1692
1557
|
},
|
|
1693
1558
|
"ui.items.general.items.marketheaders.help": {
|
|
1694
|
-
"en": "Adds entries such as
|
|
1695
|
-
"de": "Fügt Einträge wie
|
|
1696
|
-
"ru": "Добавляет строки вида
|
|
1697
|
-
"pt": "Adiciona entradas como
|
|
1698
|
-
"nl": "Voegt regels zoals
|
|
1699
|
-
"fr": "Ajoute des entrées comme
|
|
1700
|
-
"it": "Aggiunge voci come
|
|
1701
|
-
"es": "Añade entradas como
|
|
1702
|
-
"pl": "Dodaje wpisy takie jak
|
|
1703
|
-
"uk": "Додає записи на кшталт
|
|
1704
|
-
"zh-cn": "添加类似
|
|
1559
|
+
"en": "Adds entries such as ═════ ALDI ═════. A heading remains active while at least one real item for that market is open and is deleted completely when the market is no longer needed.",
|
|
1560
|
+
"de": "Fügt Einträge wie ═════ ALDI ═════ ein. Eine Überschrift bleibt aktiv, solange mindestens ein echter Artikel dieses Marktes offen ist, und wird vollständig gelöscht, sobald der Markt nicht mehr benötigt wird.",
|
|
1561
|
+
"ru": "Добавляет строки вида ═════ ALDI ═════. Заголовок остаётся активным, пока открыт хотя бы один настоящий товар этого магазина, и полностью удаляется, когда магазин больше не нужен.",
|
|
1562
|
+
"pt": "Adiciona entradas como ═════ ALDI ═════. O cabeçalho permanece ativo enquanto houver pelo menos um item real aberto nesse mercado e é excluído por completo quando o mercado deixa de ser necessário.",
|
|
1563
|
+
"nl": "Voegt regels zoals ═════ ALDI ═════ toe. De kop blijft actief zolang minstens één echt artikel voor die winkel openstaat en wordt volledig verwijderd zodra de winkel niet meer nodig is.",
|
|
1564
|
+
"fr": "Ajoute des entrées comme ═════ ALDI ═════. L’en-tête reste actif tant qu’au moins un article réel de ce magasin est ouvert et est entièrement supprimé lorsque le magasin n’est plus nécessaire.",
|
|
1565
|
+
"it": "Aggiunge voci come ═════ ALDI ═════. L’intestazione resta attiva finché almeno un articolo reale del negozio è aperto e viene eliminata completamente quando il negozio non serve più.",
|
|
1566
|
+
"es": "Añade entradas como ═════ ALDI ═════. El encabezado permanece activo mientras quede al menos un artículo real abierto de esa tienda y se elimina por completo cuando la tienda ya no es necesaria.",
|
|
1567
|
+
"pl": "Dodaje wpisy takie jak ═════ ALDI ═════. Nagłówek pozostaje aktywny, dopóki co najmniej jeden rzeczywisty artykuł tego sklepu jest otwarty, a gdy sklep nie jest już potrzebny, zostaje całkowicie usunięty.",
|
|
1568
|
+
"uk": "Додає записи на кшталт ═════ ALDI ═════. Заголовок залишається активним, доки відкритий хоча б один справжній товар цього магазину, і повністю видаляється, коли магазин більше не потрібен.",
|
|
1569
|
+
"zh-cn": "添加类似 ═════ ALDI ═════ 的条目。只要该商店还有至少一个真实商品未完成,标题就保持有效;不再需要该商店时,标题会被彻底删除。"
|
|
1705
1570
|
},
|
|
1706
1571
|
"ui.items.general.items.minitemspermarket.label": {
|
|
1707
1572
|
"en": "Minimum items per additional market",
|