iobroker.androidtv 0.2.1 → 0.2.3
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 +14 -12
- package/build/lib/states.js +711 -46
- package/build/lib/states.js.map +2 -2
- package/build/main.js +317 -37
- package/build/main.js.map +2 -2
- package/io-package.json +48 -1
- package/package.json +5 -5
package/build/main.js
CHANGED
|
@@ -39,73 +39,289 @@ const OFFLINE_GRACE_MS = 3e4;
|
|
|
39
39
|
const MESSAGES = {
|
|
40
40
|
pairingStarted: {
|
|
41
41
|
en: 'The TV now shows a 6-character code. Enter it and click "Confirm code".',
|
|
42
|
-
de: "Der TV zeigt jetzt einen 6-stelligen Code. Code eingeben und \u201ECode best\xE4tigen\u201C klicken."
|
|
42
|
+
de: "Der TV zeigt jetzt einen 6-stelligen Code. Code eingeben und \u201ECode best\xE4tigen\u201C klicken.",
|
|
43
|
+
ru: "\u0422\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0435\u0442 6-\u0437\u043D\u0430\u0447\u043D\u044B\u0439 \u043A\u043E\u0434. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0435\u0433\u043E \u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \xAB\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043A\u043E\u0434\xBB.",
|
|
44
|
+
pt: 'A TV mostra agora um c\xF3digo de 6 caracteres. Introduza-o e clique em "Confirmar c\xF3digo".',
|
|
45
|
+
nl: 'De tv toont nu een code van 6 tekens. Voer deze in en klik op "Code bevestigen".',
|
|
46
|
+
fr: "Le t\xE9l\xE9viseur affiche maintenant un code \xE0 6 caract\xE8res. Saisissez-le et cliquez sur \xAB Confirmer le code \xBB.",
|
|
47
|
+
it: 'La TV mostra ora un codice di 6 caratteri. Inseriscilo e fai clic su "Conferma codice".',
|
|
48
|
+
es: 'La TV muestra ahora un c\xF3digo de 6 caracteres. Introd\xFAzcalo y haga clic en "Confirmar c\xF3digo".',
|
|
49
|
+
pl: "Telewizor wy\u015Bwietla teraz 6-znakowy kod. Wpisz go i kliknij \u201EPotwierd\u017A kod\u201D.",
|
|
50
|
+
uk: "\u0422\u0435\u043B\u0435\u0432\u0456\u0437\u043E\u0440 \u043F\u043E\u043A\u0430\u0437\u0443\u0454 6-\u0437\u043D\u0430\u0447\u043D\u0438\u0439 \u043A\u043E\u0434. \u0412\u0432\u0435\u0434\u0456\u0442\u044C \u0439\u043E\u0433\u043E \u0442\u0430 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C \xAB\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u043A\u043E\u0434\xBB.",
|
|
51
|
+
"zh-cn": "\u7535\u89C6\u73B0\u5728\u663E\u793A\u4E00\u4E2A 6 \u4F4D\u4EE3\u7801\u3002\u8BF7\u8F93\u5165\u4EE3\u7801\u5E76\u70B9\u51FB\u201C\u786E\u8BA4\u4EE3\u7801\u201D\u3002"
|
|
43
52
|
},
|
|
44
53
|
pairingDone: {
|
|
45
54
|
en: "Pairing successful. The connection is being established.",
|
|
46
|
-
de: "Kopplung erfolgreich. Die Verbindung wird aufgebaut."
|
|
55
|
+
de: "Kopplung erfolgreich. Die Verbindung wird aufgebaut.",
|
|
56
|
+
ru: "\u0421\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E. \u0423\u0441\u0442\u0430\u043D\u0430\u0432\u043B\u0438\u0432\u0430\u0435\u0442\u0441\u044F \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435.",
|
|
57
|
+
pt: "Emparelhamento conclu\xEDdo. A liga\xE7\xE3o est\xE1 a ser estabelecida.",
|
|
58
|
+
nl: "Koppelen gelukt. De verbinding wordt opgebouwd.",
|
|
59
|
+
fr: "Appairage r\xE9ussi. La connexion est en cours d\u2019\xE9tablissement.",
|
|
60
|
+
it: "Associazione riuscita. La connessione \xE8 in corso.",
|
|
61
|
+
es: "Emparejamiento correcto. Se est\xE1 estableciendo la conexi\xF3n.",
|
|
62
|
+
pl: "Parowanie zako\u0144czone. Trwa nawi\u0105zywanie po\u0142\u0105czenia.",
|
|
63
|
+
uk: "\u0421\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043E. \u0412\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u044E\u0454\u0442\u044C\u0441\u044F \u0437\u2019\u0454\u0434\u043D\u0430\u043D\u043D\u044F.",
|
|
64
|
+
"zh-cn": "\u914D\u5BF9\u6210\u529F\uFF0C\u6B63\u5728\u5EFA\u7ACB\u8FDE\u63A5\u3002"
|
|
47
65
|
},
|
|
48
66
|
pairingDoneSave: {
|
|
49
67
|
en: "Pairing successful. Save the settings to connect to this TV.",
|
|
50
|
-
de: "Kopplung erfolgreich. Einstellungen speichern, damit die Verbindung aufgebaut wird."
|
|
68
|
+
de: "Kopplung erfolgreich. Einstellungen speichern, damit die Verbindung aufgebaut wird.",
|
|
69
|
+
ru: "\u0421\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E. \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u0442\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440\u0443.",
|
|
70
|
+
pt: "Emparelhamento conclu\xEDdo. Guarde as defini\xE7\xF5es para ligar a esta TV.",
|
|
71
|
+
nl: "Koppelen gelukt. Sla de instellingen op om met deze tv te verbinden.",
|
|
72
|
+
fr: "Appairage r\xE9ussi. Enregistrez les param\xE8tres pour vous connecter \xE0 ce t\xE9l\xE9viseur.",
|
|
73
|
+
it: "Associazione riuscita. Salva le impostazioni per connetterti a questa TV.",
|
|
74
|
+
es: "Emparejamiento correcto. Guarde los ajustes para conectarse a esta TV.",
|
|
75
|
+
pl: "Parowanie zako\u0144czone. Zapisz ustawienia, aby po\u0142\u0105czy\u0107 si\u0119 z telewizorem.",
|
|
76
|
+
uk: "\u0421\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u0432\u0438\u043A\u043E\u043D\u0430\u043D\u043E. \u0417\u0431\u0435\u0440\u0435\u0436\u0456\u0442\u044C \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F, \u0449\u043E\u0431 \u043F\u0456\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0438\u0441\u044F \u0434\u043E \u0442\u0435\u043B\u0435\u0432\u0456\u0437\u043E\u0440\u0430.",
|
|
77
|
+
"zh-cn": "\u914D\u5BF9\u6210\u529F\u3002\u8BF7\u4FDD\u5B58\u8BBE\u7F6E\u4EE5\u8FDE\u63A5\u5230\u6B64\u7535\u89C6\u3002"
|
|
78
|
+
},
|
|
79
|
+
statusConnected: {
|
|
80
|
+
en: "Connected",
|
|
81
|
+
de: "Verbunden",
|
|
82
|
+
ru: "\u041F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",
|
|
83
|
+
pt: "Conectado",
|
|
84
|
+
nl: "Verbonden",
|
|
85
|
+
fr: "Connect\xE9",
|
|
86
|
+
it: "Connesso",
|
|
87
|
+
es: "Conectado",
|
|
88
|
+
pl: "Po\u0142\u0105czono",
|
|
89
|
+
uk: "\u041F\u0456\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E",
|
|
90
|
+
"zh-cn": "\u5DF2\u8FDE\u63A5"
|
|
51
91
|
},
|
|
52
|
-
statusConnected: { en: "Connected", de: "Verbunden" },
|
|
53
92
|
statusPairing: {
|
|
54
93
|
en: "Pairing required \u2013 switch the device on and follow step 1",
|
|
55
|
-
de: "Kopplung erforderlich \u2013 Ger\xE4t einschalten und Schritt 1 ausf\xFChren"
|
|
94
|
+
de: "Kopplung erforderlich \u2013 Ger\xE4t einschalten und Schritt 1 ausf\xFChren",
|
|
95
|
+
ru: "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435 \u2013 \u0432\u043A\u043B\u044E\u0447\u0438\u0442\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 \u0448\u0430\u0433 1",
|
|
96
|
+
pt: "Emparelhamento necess\xE1rio \u2013 ligue o dispositivo e siga o passo 1",
|
|
97
|
+
nl: "Koppelen vereist \u2013 zet het apparaat aan en volg stap 1",
|
|
98
|
+
fr: "Appairage requis \u2013 allumez l\u2019appareil et suivez l\u2019\xE9tape 1",
|
|
99
|
+
it: "Associazione necessaria \u2013 accendi il dispositivo e segui il passo 1",
|
|
100
|
+
es: "Emparejamiento necesario \u2013 encienda el dispositivo y siga el paso 1",
|
|
101
|
+
pl: "Wymagane parowanie \u2013 w\u0142\u0105cz urz\u0105dzenie i wykonaj krok 1",
|
|
102
|
+
uk: "\u041F\u043E\u0442\u0440\u0456\u0431\u043D\u0435 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u2013 \u0443\u0432\u0456\u043C\u043A\u043D\u0456\u0442\u044C \u043F\u0440\u0438\u0441\u0442\u0440\u0456\u0439 \u0456 \u0432\u0438\u043A\u043E\u043D\u0430\u0439\u0442\u0435 \u043A\u0440\u043E\u043A 1",
|
|
103
|
+
"zh-cn": "\u9700\u8981\u914D\u5BF9 \u2013 \u8BF7\u6253\u5F00\u8BBE\u5907\u5E76\u6309\u7167\u7B2C 1 \u6B65\u64CD\u4F5C"
|
|
56
104
|
},
|
|
57
105
|
statusOffline: {
|
|
58
106
|
en: "Not connected \u2013 device switched off, unplugged or unreachable",
|
|
59
|
-
de: "Nicht verbunden \u2013 Ger\xE4t aus, ohne Strom oder nicht erreichbar"
|
|
107
|
+
de: "Nicht verbunden \u2013 Ger\xE4t aus, ohne Strom oder nicht erreichbar",
|
|
108
|
+
ru: "\u041D\u0435\u0442 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u2013 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043E, \u043E\u0431\u0435\u0441\u0442\u043E\u0447\u0435\u043D\u043E \u0438\u043B\u0438 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E",
|
|
109
|
+
pt: "Sem liga\xE7\xE3o \u2013 dispositivo desligado, sem corrente ou inacess\xEDvel",
|
|
110
|
+
nl: "Niet verbonden \u2013 apparaat uit, zonder stroom of onbereikbaar",
|
|
111
|
+
fr: "Non connect\xE9 \u2013 appareil \xE9teint, d\xE9branch\xE9 ou injoignable",
|
|
112
|
+
it: "Non connesso \u2013 dispositivo spento, scollegato o non raggiungibile",
|
|
113
|
+
es: "Sin conexi\xF3n \u2013 dispositivo apagado, desenchufado o inaccesible",
|
|
114
|
+
pl: "Brak po\u0142\u0105czenia \u2013 urz\u0105dzenie wy\u0142\u0105czone, bez zasilania lub nieosi\u0105galne",
|
|
115
|
+
uk: "\u041D\u0435\u043C\u0430\u0454 \u0437\u2019\u0454\u0434\u043D\u0430\u043D\u043D\u044F \u2013 \u043F\u0440\u0438\u0441\u0442\u0440\u0456\u0439 \u0432\u0438\u043C\u043A\u043D\u0435\u043D\u043E, \u0437\u043D\u0435\u0441\u0442\u0440\u0443\u043C\u043B\u0435\u043D\u043E \u0430\u0431\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439",
|
|
116
|
+
"zh-cn": "\u672A\u8FDE\u63A5 \u2013 \u8BBE\u5907\u5DF2\u5173\u95ED\u3001\u65AD\u7535\u6216\u65E0\u6CD5\u8BBF\u95EE"
|
|
60
117
|
},
|
|
61
118
|
statusAdbPending: {
|
|
62
119
|
en: 'Please confirm "Allow debugging" on the TV (tick "Always allow")',
|
|
63
|
-
de: "Bitte am Fernseher \u201EDebugging zulassen\u201C best\xE4tigen (\u201EImmer zulassen\u201C anhaken)"
|
|
120
|
+
de: "Bitte am Fernseher \u201EDebugging zulassen\u201C best\xE4tigen (\u201EImmer zulassen\u201C anhaken)",
|
|
121
|
+
ru: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \xAB\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043E\u0442\u043B\u0430\u0434\u043A\u0443\xBB \u043D\u0430 \u0442\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440\u0435 (\u043E\u0442\u043C\u0435\u0442\u044C\u0442\u0435 \xAB\u0412\u0441\u0435\u0433\u0434\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044C\xBB)",
|
|
122
|
+
pt: 'Confirme "Permitir depura\xE7\xE3o" na TV (assinale "Permitir sempre")',
|
|
123
|
+
nl: 'Bevestig "Foutopsporing toestaan" op de tv (vink "Altijd toestaan" aan)',
|
|
124
|
+
fr: "Confirmez \xAB Autoriser le d\xE9bogage \xBB sur le t\xE9l\xE9viseur (cochez \xAB Toujours autoriser \xBB)",
|
|
125
|
+
it: 'Conferma "Consenti debug" sulla TV (spunta "Consenti sempre")',
|
|
126
|
+
es: 'Confirme "Permitir depuraci\xF3n" en la TV (marque "Permitir siempre")',
|
|
127
|
+
pl: "Potwierd\u017A \u201EZezw\xF3l na debugowanie\u201D na telewizorze (zaznacz \u201EZawsze zezwalaj\u201D)",
|
|
128
|
+
uk: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \xAB\u0414\u043E\u0437\u0432\u043E\u043B\u0438\u0442\u0438 \u043D\u0430\u043B\u0430\u0433\u043E\u0434\u0436\u0435\u043D\u043D\u044F\xBB \u043D\u0430 \u0442\u0435\u043B\u0435\u0432\u0456\u0437\u043E\u0440\u0456 (\u043F\u043E\u0437\u043D\u0430\u0447\u0442\u0435 \xAB\u0417\u0430\u0432\u0436\u0434\u0438 \u0434\u043E\u0437\u0432\u043E\u043B\u044F\u0442\u0438\xBB)",
|
|
129
|
+
"zh-cn": "\u8BF7\u5728\u7535\u89C6\u4E0A\u786E\u8BA4\u201C\u5141\u8BB8\u8C03\u8BD5\u201D\uFF08\u52FE\u9009\u201C\u59CB\u7EC8\u5141\u8BB8\u201D\uFF09"
|
|
64
130
|
},
|
|
65
131
|
statusAdbOffline: {
|
|
66
132
|
en: "Not connected \u2013 device switched off or debugging not enabled",
|
|
67
|
-
de: "Nicht verbunden \u2013 Ger\xE4t aus oder Debugging am Ger\xE4t nicht eingeschaltet"
|
|
133
|
+
de: "Nicht verbunden \u2013 Ger\xE4t aus oder Debugging am Ger\xE4t nicht eingeschaltet",
|
|
134
|
+
ru: "\u041D\u0435\u0442 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u2013 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u0438\u043B\u0438 \u043E\u0442\u043B\u0430\u0434\u043A\u0430 \u043D\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430",
|
|
135
|
+
pt: "Sem liga\xE7\xE3o \u2013 dispositivo desligado ou depura\xE7\xE3o n\xE3o ativada",
|
|
136
|
+
nl: "Niet verbonden \u2013 apparaat uit of foutopsporing niet ingeschakeld",
|
|
137
|
+
fr: "Non connect\xE9 \u2013 appareil \xE9teint ou d\xE9bogage non activ\xE9",
|
|
138
|
+
it: "Non connesso \u2013 dispositivo spento o debug non attivato",
|
|
139
|
+
es: "Sin conexi\xF3n \u2013 dispositivo apagado o depuraci\xF3n no activada",
|
|
140
|
+
pl: "Brak po\u0142\u0105czenia \u2013 urz\u0105dzenie wy\u0142\u0105czone lub debugowanie nie jest w\u0142\u0105czone",
|
|
141
|
+
uk: "\u041D\u0435\u043C\u0430\u0454 \u0437\u2019\u0454\u0434\u043D\u0430\u043D\u043D\u044F \u2013 \u043F\u0440\u0438\u0441\u0442\u0440\u0456\u0439 \u0432\u0438\u043C\u043A\u043D\u0435\u043D\u043E \u0430\u0431\u043E \u043D\u0430\u043B\u0430\u0433\u043E\u0434\u0436\u0435\u043D\u043D\u044F \u043D\u0435 \u0432\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043E",
|
|
142
|
+
"zh-cn": "\u672A\u8FDE\u63A5 \u2013 \u8BBE\u5907\u5DF2\u5173\u95ED\u6216\u672A\u542F\u7528\u8C03\u8BD5"
|
|
68
143
|
},
|
|
69
144
|
statusAdbOk: {
|
|
70
145
|
en: "playback info active",
|
|
71
|
-
de: "Wiedergabe-Infos aktiv"
|
|
146
|
+
de: "Wiedergabe-Infos aktiv",
|
|
147
|
+
ru: "\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E \u0432\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0430\u043A\u0442\u0438\u0432\u043D\u044B",
|
|
148
|
+
pt: "informa\xE7\xF5es de reprodu\xE7\xE3o ativas",
|
|
149
|
+
nl: "afspeelinfo actief",
|
|
150
|
+
fr: "infos de lecture actives",
|
|
151
|
+
it: "info di riproduzione attive",
|
|
152
|
+
es: "informaci\xF3n de reproducci\xF3n activa",
|
|
153
|
+
pl: "informacje o odtwarzaniu aktywne",
|
|
154
|
+
uk: "\u0432\u0456\u0434\u043E\u043C\u043E\u0441\u0442\u0456 \u043F\u0440\u043E \u0432\u0456\u0434\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u0456",
|
|
155
|
+
"zh-cn": "\u64AD\u653E\u4FE1\u606F\u5DF2\u542F\u7528"
|
|
72
156
|
},
|
|
73
157
|
statusInfoOffline: {
|
|
74
158
|
en: "playback info not available (debugging switched on?)",
|
|
75
|
-
de: "Wiedergabe-Infos nicht verf\xFCgbar (Debugging eingeschaltet?)"
|
|
159
|
+
de: "Wiedergabe-Infos nicht verf\xFCgbar (Debugging eingeschaltet?)",
|
|
160
|
+
ru: "\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E \u0432\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B (\u043E\u0442\u043B\u0430\u0434\u043A\u0430 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0430?)",
|
|
161
|
+
pt: "informa\xE7\xF5es de reprodu\xE7\xE3o indispon\xEDveis (depura\xE7\xE3o ativada?)",
|
|
162
|
+
nl: "afspeelinfo niet beschikbaar (foutopsporing ingeschakeld?)",
|
|
163
|
+
fr: "infos de lecture indisponibles (d\xE9bogage activ\xE9 ?)",
|
|
164
|
+
it: "info di riproduzione non disponibili (debug attivato?)",
|
|
165
|
+
es: "informaci\xF3n de reproducci\xF3n no disponible (\xBFdepuraci\xF3n activada?)",
|
|
166
|
+
pl: "informacje o odtwarzaniu niedost\u0119pne (debugowanie w\u0142\u0105czone?)",
|
|
167
|
+
uk: "\u0432\u0456\u0434\u043E\u043C\u043E\u0441\u0442\u0456 \u043F\u0440\u043E \u0432\u0456\u0434\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0456 (\u043D\u0430\u043B\u0430\u0433\u043E\u0434\u0436\u0435\u043D\u043D\u044F \u0432\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043E?)",
|
|
168
|
+
"zh-cn": "\u64AD\u653E\u4FE1\u606F\u4E0D\u53EF\u7528\uFF08\u662F\u5426\u5DF2\u542F\u7528\u8C03\u8BD5\uFF1F\uFF09"
|
|
169
|
+
},
|
|
170
|
+
statusDisabled: {
|
|
171
|
+
en: "Disabled",
|
|
172
|
+
de: "Deaktiviert",
|
|
173
|
+
ru: "\u041E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u043E",
|
|
174
|
+
pt: "Desativado",
|
|
175
|
+
nl: "Uitgeschakeld",
|
|
176
|
+
fr: "D\xE9sactiv\xE9",
|
|
177
|
+
it: "Disattivato",
|
|
178
|
+
es: "Desactivado",
|
|
179
|
+
pl: "Wy\u0142\u0105czone",
|
|
180
|
+
uk: "\u0412\u0438\u043C\u043A\u043D\u0435\u043D\u043E",
|
|
181
|
+
"zh-cn": "\u5DF2\u7981\u7528"
|
|
76
182
|
},
|
|
77
|
-
statusDisabled: { en: "Disabled", de: "Deaktiviert" },
|
|
78
183
|
statusUnsaved: {
|
|
79
184
|
en: "Not saved yet \u2013 pairing already works, the connection starts after saving",
|
|
80
|
-
de: "Noch nicht gespeichert \u2013 Koppeln geht schon, die Verbindung startet nach dem Speichern"
|
|
185
|
+
de: "Noch nicht gespeichert \u2013 Koppeln geht schon, die Verbindung startet nach dem Speichern",
|
|
186
|
+
ru: "\u0415\u0449\u0451 \u043D\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u043E \u2013 \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435 \u0443\u0436\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442, \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u043D\u0430\u0447\u043D\u0451\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F",
|
|
187
|
+
pt: "Ainda n\xE3o guardado \u2013 o emparelhamento j\xE1 funciona, a liga\xE7\xE3o come\xE7a depois de guardar",
|
|
188
|
+
nl: "Nog niet opgeslagen \u2013 koppelen werkt al, de verbinding start na het opslaan",
|
|
189
|
+
fr: "Pas encore enregistr\xE9 \u2013 l\u2019appairage fonctionne d\xE9j\xE0, la connexion d\xE9marre apr\xE8s l\u2019enregistrement",
|
|
190
|
+
it: "Non ancora salvato \u2013 l\u2019associazione funziona gi\xE0, la connessione parte dopo il salvataggio",
|
|
191
|
+
es: "A\xFAn no guardado \u2013 el emparejamiento ya funciona, la conexi\xF3n empieza al guardar",
|
|
192
|
+
pl: "Jeszcze nie zapisano \u2013 parowanie ju\u017C dzia\u0142a, po\u0142\u0105czenie rozpocznie si\u0119 po zapisaniu",
|
|
193
|
+
uk: "\u0429\u0435 \u043D\u0435 \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043D\u043E \u2013 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u0432\u0436\u0435 \u043F\u0440\u0430\u0446\u044E\u0454, \u0437\u2019\u0454\u0434\u043D\u0430\u043D\u043D\u044F \u043F\u043E\u0447\u043D\u0435\u0442\u044C\u0441\u044F \u043F\u0456\u0441\u043B\u044F \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043D\u043D\u044F",
|
|
194
|
+
"zh-cn": "\u5C1A\u672A\u4FDD\u5B58 \u2013 \u5DF2\u53EF\u914D\u5BF9\uFF0C\u4FDD\u5B58\u540E\u5F00\u59CB\u8FDE\u63A5"
|
|
195
|
+
},
|
|
196
|
+
statusNoHost: {
|
|
197
|
+
en: "Enter the IP address first",
|
|
198
|
+
de: "Zuerst die IP-Adresse eintragen",
|
|
199
|
+
ru: "\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 IP-\u0430\u0434\u0440\u0435\u0441",
|
|
200
|
+
pt: "Introduza primeiro o endere\xE7o IP",
|
|
201
|
+
nl: "Voer eerst het IP-adres in",
|
|
202
|
+
fr: "Saisissez d\u2019abord l\u2019adresse IP",
|
|
203
|
+
it: "Inserisci prima l\u2019indirizzo IP",
|
|
204
|
+
es: "Introduzca primero la direcci\xF3n IP",
|
|
205
|
+
pl: "Najpierw wpisz adres IP",
|
|
206
|
+
uk: "\u0421\u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u0432\u0432\u0435\u0434\u0456\u0442\u044C IP-\u0430\u0434\u0440\u0435\u0441\u0443",
|
|
207
|
+
"zh-cn": "\u8BF7\u5148\u8F93\u5165 IP \u5730\u5740"
|
|
208
|
+
},
|
|
209
|
+
noHost: {
|
|
210
|
+
en: "Please enter the IP address of the TV.",
|
|
211
|
+
de: "Bitte die IP-Adresse des TV eingeben.",
|
|
212
|
+
ru: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 IP-\u0430\u0434\u0440\u0435\u0441 \u0442\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440\u0430.",
|
|
213
|
+
pt: "Introduza o endere\xE7o IP da TV.",
|
|
214
|
+
nl: "Voer het IP-adres van de tv in.",
|
|
215
|
+
fr: "Saisissez l\u2019adresse IP du t\xE9l\xE9viseur.",
|
|
216
|
+
it: "Inserisci l\u2019indirizzo IP della TV.",
|
|
217
|
+
es: "Introduzca la direcci\xF3n IP de la TV.",
|
|
218
|
+
pl: "Wpisz adres IP telewizora.",
|
|
219
|
+
uk: "\u0412\u0432\u0435\u0434\u0456\u0442\u044C IP-\u0430\u0434\u0440\u0435\u0441\u0443 \u0442\u0435\u043B\u0435\u0432\u0456\u0437\u043E\u0440\u0430.",
|
|
220
|
+
"zh-cn": "\u8BF7\u8F93\u5165\u7535\u89C6\u7684 IP \u5730\u5740\u3002"
|
|
81
221
|
},
|
|
82
|
-
statusNoHost: { en: "Enter the IP address first", de: "Zuerst die IP-Adresse eintragen" },
|
|
83
|
-
noHost: { en: "Please enter the IP address of the TV.", de: "Bitte die IP-Adresse des TV eingeben." },
|
|
84
222
|
noSession: {
|
|
85
223
|
en: 'No pairing in progress for this IP - click "Start pairing" first.',
|
|
86
|
-
de: "F\xFCr diese IP l\xE4uft keine Kopplung - zuerst \u201EKopplung starten\u201C klicken."
|
|
224
|
+
de: "F\xFCr diese IP l\xE4uft keine Kopplung - zuerst \u201EKopplung starten\u201C klicken.",
|
|
225
|
+
ru: "\u0414\u043B\u044F \u044D\u0442\u043E\u0433\u043E IP \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u043E \u2013 \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \xAB\u041D\u0430\u0447\u0430\u0442\u044C \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435\xBB.",
|
|
226
|
+
pt: 'N\xE3o h\xE1 emparelhamento em curso para este IP - clique primeiro em "Iniciar emparelhamento".',
|
|
227
|
+
nl: 'Geen koppeling bezig voor dit IP - klik eerst op "Koppelen starten".',
|
|
228
|
+
fr: "Aucun appairage en cours pour cette IP - cliquez d\u2019abord sur \xAB D\xE9marrer l\u2019appairage \xBB.",
|
|
229
|
+
it: 'Nessuna associazione in corso per questo IP - fai prima clic su "Avvia associazione".',
|
|
230
|
+
es: 'No hay emparejamiento en curso para esta IP - haga clic primero en "Iniciar emparejamiento".',
|
|
231
|
+
pl: "Dla tego IP nie trwa parowanie \u2013 najpierw kliknij \u201ERozpocznij parowanie\u201D.",
|
|
232
|
+
uk: "\u0414\u043B\u044F \u0446\u0456\u0454\u0457 IP \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u043D\u0435 \u0437\u0430\u043F\u0443\u0449\u0435\u043D\u043E \u2013 \u0441\u043F\u043E\u0447\u0430\u0442\u043A\u0443 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C \xAB\u041F\u043E\u0447\u0430\u0442\u0438 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F\xBB.",
|
|
233
|
+
"zh-cn": "\u6B64 IP \u6CA1\u6709\u6B63\u5728\u8FDB\u884C\u7684\u914D\u5BF9 - \u8BF7\u5148\u70B9\u51FB\u201C\u5F00\u59CB\u914D\u5BF9\u201D\u3002"
|
|
87
234
|
},
|
|
88
235
|
noCertificate: {
|
|
89
236
|
en: "Client certificate not ready yet - wait a few seconds and try again.",
|
|
90
|
-
de: "Client-Zertifikat noch nicht bereit - ein paar Sekunden warten und erneut versuchen."
|
|
237
|
+
de: "Client-Zertifikat noch nicht bereit - ein paar Sekunden warten und erneut versuchen.",
|
|
238
|
+
ru: "\u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442 \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u0435\u0449\u0451 \u043D\u0435 \u0433\u043E\u0442\u043E\u0432 \u2013 \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0435\u043A\u0443\u043D\u0434 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435.",
|
|
239
|
+
pt: "O certificado do cliente ainda n\xE3o est\xE1 pronto - aguarde alguns segundos e tente novamente.",
|
|
240
|
+
nl: "Clientcertificaat nog niet klaar - wacht enkele seconden en probeer het opnieuw.",
|
|
241
|
+
fr: "Le certificat client n\u2019est pas encore pr\xEAt - attendez quelques secondes et r\xE9essayez.",
|
|
242
|
+
it: "Il certificato client non \xE8 ancora pronto - attendi qualche secondo e riprova.",
|
|
243
|
+
es: "El certificado de cliente a\xFAn no est\xE1 listo - espere unos segundos y vuelva a intentarlo.",
|
|
244
|
+
pl: "Certyfikat klienta nie jest jeszcze gotowy \u2013 odczekaj kilka sekund i spr\xF3buj ponownie.",
|
|
245
|
+
uk: "\u0421\u0435\u0440\u0442\u0438\u0444\u0456\u043A\u0430\u0442 \u043A\u043B\u0456\u0454\u043D\u0442\u0430 \u0449\u0435 \u043D\u0435 \u0433\u043E\u0442\u043E\u0432\u0438\u0439 \u2013 \u0437\u0430\u0447\u0435\u043A\u0430\u0439\u0442\u0435 \u043A\u0456\u043B\u044C\u043A\u0430 \u0441\u0435\u043A\u0443\u043D\u0434 \u0456 \u043F\u043E\u0432\u0442\u043E\u0440\u0456\u0442\u044C.",
|
|
246
|
+
"zh-cn": "\u5BA2\u6237\u7AEF\u8BC1\u4E66\u5C1A\u672A\u5C31\u7EEA - \u8BF7\u7B49\u5F85\u51E0\u79D2\u540E\u91CD\u8BD5\u3002"
|
|
91
247
|
},
|
|
92
248
|
connect: {
|
|
93
249
|
en: 'The device cannot be reached for pairing. Check the IP address and that the device is switched on. For a Fire TV choose the device type "Amazon Fire TV" \u2013 it needs no pairing.',
|
|
94
|
-
de: "Das Ger\xE4t ist zum Koppeln nicht erreichbar. IP-Adresse pr\xFCfen und ob das Ger\xE4t eingeschaltet ist. F\xFCr einen Fire TV den Ger\xE4tetyp \u201EAmazon Fire TV\u201C w\xE4hlen \u2013 dort ist keine Kopplung n\xF6tig."
|
|
250
|
+
de: "Das Ger\xE4t ist zum Koppeln nicht erreichbar. IP-Adresse pr\xFCfen und ob das Ger\xE4t eingeschaltet ist. F\xFCr einen Fire TV den Ger\xE4tetyp \u201EAmazon Fire TV\u201C w\xE4hlen \u2013 dort ist keine Kopplung n\xF6tig.",
|
|
251
|
+
ru: "\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u0434\u043B\u044F \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u044F. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 IP-\u0430\u0434\u0440\u0435\u0441 \u0438 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043B\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E. \u0414\u043B\u044F Fire TV \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0438\u043F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \xABAmazon Fire TV\xBB \u2013 \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F.",
|
|
252
|
+
pt: 'O dispositivo n\xE3o est\xE1 acess\xEDvel para emparelhamento. Verifique o endere\xE7o IP e se o dispositivo est\xE1 ligado. Para um Fire TV escolha o tipo de dispositivo "Amazon Fire TV" \u2013 n\xE3o precisa de emparelhamento.',
|
|
253
|
+
nl: 'Het apparaat is niet bereikbaar om te koppelen. Controleer het IP-adres en of het apparaat aan staat. Kies voor een Fire TV het apparaattype "Amazon Fire TV" \u2013 koppelen is dan niet nodig.',
|
|
254
|
+
fr: "L\u2019appareil est injoignable pour l\u2019appairage. V\xE9rifiez l\u2019adresse IP et que l\u2019appareil est allum\xE9. Pour un Fire TV, choisissez le type d\u2019appareil \xAB Amazon Fire TV \xBB \u2013 aucun appairage n\u2019est n\xE9cessaire.",
|
|
255
|
+
it: 'Il dispositivo non \xE8 raggiungibile per l\u2019associazione. Controlla l\u2019indirizzo IP e che il dispositivo sia acceso. Per una Fire TV scegli il tipo di dispositivo "Amazon Fire TV" \u2013 non serve l\u2019associazione.',
|
|
256
|
+
es: 'No se puede acceder al dispositivo para emparejarlo. Compruebe la direcci\xF3n IP y que el dispositivo est\xE9 encendido. Para un Fire TV elija el tipo de dispositivo "Amazon Fire TV" \u2013 no necesita emparejamiento.',
|
|
257
|
+
pl: "Urz\u0105dzenie jest nieosi\u0105galne do parowania. Sprawd\u017A adres IP i czy urz\u0105dzenie jest w\u0142\u0105czone. Dla Fire TV wybierz typ urz\u0105dzenia \u201EAmazon Fire TV\u201D \u2013 parowanie nie jest potrzebne.",
|
|
258
|
+
uk: "\u041F\u0440\u0438\u0441\u0442\u0440\u0456\u0439 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u0434\u043B\u044F \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F. \u041F\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0443 \u0442\u0430 \u0447\u0438 \u0432\u0432\u0456\u043C\u043A\u043D\u0435\u043D\u043E \u043F\u0440\u0438\u0441\u0442\u0440\u0456\u0439. \u0414\u043B\u044F Fire TV \u0432\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0442\u0438\u043F \u043F\u0440\u0438\u0441\u0442\u0440\u043E\u044E \xABAmazon Fire TV\xBB \u2013 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u043D\u0435 \u043F\u043E\u0442\u0440\u0456\u0431\u043D\u0435.",
|
|
259
|
+
"zh-cn": "\u65E0\u6CD5\u8FDE\u63A5\u8BBE\u5907\u8FDB\u884C\u914D\u5BF9\u3002\u8BF7\u68C0\u67E5 IP \u5730\u5740\u4EE5\u53CA\u8BBE\u5907\u662F\u5426\u5DF2\u5F00\u542F\u3002Fire TV \u8BF7\u9009\u62E9\u8BBE\u5907\u7C7B\u578B\u201CAmazon Fire TV\u201D\u2013 \u65E0\u9700\u914D\u5BF9\u3002"
|
|
260
|
+
},
|
|
261
|
+
timeout: {
|
|
262
|
+
en: "The TV did not answer in time.",
|
|
263
|
+
de: "Der TV hat nicht rechtzeitig geantwortet.",
|
|
264
|
+
ru: "\u0422\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440 \u043D\u0435 \u043E\u0442\u0432\u0435\u0442\u0438\u043B \u0432\u043E\u0432\u0440\u0435\u043C\u044F.",
|
|
265
|
+
pt: "A TV n\xE3o respondeu a tempo.",
|
|
266
|
+
nl: "De tv heeft niet op tijd geantwoord.",
|
|
267
|
+
fr: "Le t\xE9l\xE9viseur n\u2019a pas r\xE9pondu \xE0 temps.",
|
|
268
|
+
it: "La TV non ha risposto in tempo.",
|
|
269
|
+
es: "La TV no respondi\xF3 a tiempo.",
|
|
270
|
+
pl: "Telewizor nie odpowiedzia\u0142 na czas.",
|
|
271
|
+
uk: "\u0422\u0435\u043B\u0435\u0432\u0456\u0437\u043E\u0440 \u043D\u0435 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0432 \u0432\u0447\u0430\u0441\u043D\u043E.",
|
|
272
|
+
"zh-cn": "\u7535\u89C6\u672A\u53CA\u65F6\u54CD\u5E94\u3002"
|
|
95
273
|
},
|
|
96
|
-
timeout: { en: "The TV did not answer in time.", de: "Der TV hat nicht rechtzeitig geantwortet." },
|
|
97
274
|
closed: {
|
|
98
275
|
en: "The TV closed the pairing (cancelled or timed out). Start again.",
|
|
99
|
-
de: "Der TV hat die Kopplung beendet (abgebrochen oder Zeit abgelaufen). Erneut starten."
|
|
276
|
+
de: "Der TV hat die Kopplung beendet (abgebrochen oder Zeit abgelaufen). Erneut starten.",
|
|
277
|
+
ru: "\u0422\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043B \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435 (\u043E\u0442\u043C\u0435\u043D\u0435\u043D\u043E \u0438\u043B\u0438 \u0438\u0441\u0442\u0435\u043A\u043B\u043E \u0432\u0440\u0435\u043C\u044F). \u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u0437\u0430\u043D\u043E\u0432\u043E.",
|
|
278
|
+
pt: "A TV terminou o emparelhamento (cancelado ou tempo esgotado). Comece novamente.",
|
|
279
|
+
nl: "De tv heeft het koppelen be\xEBindigd (geannuleerd of verlopen). Begin opnieuw.",
|
|
280
|
+
fr: "Le t\xE9l\xE9viseur a mis fin \xE0 l\u2019appairage (annul\xE9 ou d\xE9lai d\xE9pass\xE9). Recommencez.",
|
|
281
|
+
it: "La TV ha terminato l\u2019associazione (annullata o scaduta). Ricomincia.",
|
|
282
|
+
es: "La TV termin\xF3 el emparejamiento (cancelado o tiempo agotado). Vuelva a empezar.",
|
|
283
|
+
pl: "Telewizor zako\u0144czy\u0142 parowanie (anulowano lub up\u0142yn\u0105\u0142 czas). Zacznij od nowa.",
|
|
284
|
+
uk: "\u0422\u0435\u043B\u0435\u0432\u0456\u0437\u043E\u0440 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0432 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F (\u0441\u043A\u0430\u0441\u043E\u0432\u0430\u043D\u043E \u0430\u0431\u043E \u043C\u0438\u043D\u0443\u0432 \u0447\u0430\u0441). \u041F\u043E\u0447\u043D\u0456\u0442\u044C \u0437\u043D\u043E\u0432\u0443.",
|
|
285
|
+
"zh-cn": "\u7535\u89C6\u5DF2\u7ED3\u675F\u914D\u5BF9\uFF08\u5DF2\u53D6\u6D88\u6216\u8D85\u65F6\uFF09\u3002\u8BF7\u91CD\u65B0\u5F00\u59CB\u3002"
|
|
286
|
+
},
|
|
287
|
+
rejected: {
|
|
288
|
+
en: "The TV rejected the pairing.",
|
|
289
|
+
de: "Der TV hat die Kopplung abgelehnt.",
|
|
290
|
+
ru: "\u0422\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440 \u043E\u0442\u043A\u043B\u043E\u043D\u0438\u043B \u0441\u043E\u043F\u0440\u044F\u0436\u0435\u043D\u0438\u0435.",
|
|
291
|
+
pt: "A TV recusou o emparelhamento.",
|
|
292
|
+
nl: "De tv heeft het koppelen geweigerd.",
|
|
293
|
+
fr: "Le t\xE9l\xE9viseur a refus\xE9 l\u2019appairage.",
|
|
294
|
+
it: "La TV ha rifiutato l\u2019associazione.",
|
|
295
|
+
es: "La TV rechaz\xF3 el emparejamiento.",
|
|
296
|
+
pl: "Telewizor odrzuci\u0142 parowanie.",
|
|
297
|
+
uk: "\u0422\u0435\u043B\u0435\u0432\u0456\u0437\u043E\u0440 \u0432\u0456\u0434\u0445\u0438\u043B\u0438\u0432 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F.",
|
|
298
|
+
"zh-cn": "\u7535\u89C6\u62D2\u7EDD\u4E86\u914D\u5BF9\u3002"
|
|
100
299
|
},
|
|
101
|
-
rejected: { en: "The TV rejected the pairing.", de: "Der TV hat die Kopplung abgelehnt." },
|
|
102
300
|
invalidPin: {
|
|
103
301
|
en: "The code must have 6 characters (0-9, A-F).",
|
|
104
|
-
de: "Der Code muss 6 Zeichen haben (0-9, A-F)."
|
|
302
|
+
de: "Der Code muss 6 Zeichen haben (0-9, A-F).",
|
|
303
|
+
ru: "\u041A\u043E\u0434 \u0434\u043E\u043B\u0436\u0435\u043D \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C 6 \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432 (0-9, A-F).",
|
|
304
|
+
pt: "O c\xF3digo deve ter 6 caracteres (0-9, A-F).",
|
|
305
|
+
nl: "De code moet 6 tekens hebben (0-9, A-F).",
|
|
306
|
+
fr: "Le code doit comporter 6 caract\xE8res (0-9, A-F).",
|
|
307
|
+
it: "Il codice deve avere 6 caratteri (0-9, A-F).",
|
|
308
|
+
es: "El c\xF3digo debe tener 6 caracteres (0-9, A-F).",
|
|
309
|
+
pl: "Kod musi mie\u0107 6 znak\xF3w (0-9, A-F).",
|
|
310
|
+
uk: "\u041A\u043E\u0434 \u043C\u0430\u0454 \u043C\u0456\u0441\u0442\u0438\u0442\u0438 6 \u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432 (0-9, A-F).",
|
|
311
|
+
"zh-cn": "\u4EE3\u7801\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26\uFF080-9\u3001A-F\uFF09\u3002"
|
|
105
312
|
},
|
|
106
313
|
wrongPin: {
|
|
107
314
|
en: "The code does not match. Please check it and try again.",
|
|
108
|
-
de: "Der Code passt nicht. Bitte pr\xFCfen und erneut eingeben."
|
|
315
|
+
de: "Der Code passt nicht. Bitte pr\xFCfen und erneut eingeben.",
|
|
316
|
+
ru: "\u041A\u043E\u0434 \u043D\u0435 \u043F\u043E\u0434\u0445\u043E\u0434\u0438\u0442. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0435\u0433\u043E \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435.",
|
|
317
|
+
pt: "O c\xF3digo n\xE3o corresponde. Verifique-o e tente novamente.",
|
|
318
|
+
nl: "De code klopt niet. Controleer hem en probeer het opnieuw.",
|
|
319
|
+
fr: "Le code ne correspond pas. V\xE9rifiez-le et r\xE9essayez.",
|
|
320
|
+
it: "Il codice non corrisponde. Controllalo e riprova.",
|
|
321
|
+
es: "El c\xF3digo no coincide. Compru\xE9belo y vuelva a intentarlo.",
|
|
322
|
+
pl: "Kod si\u0119 nie zgadza. Sprawd\u017A go i spr\xF3buj ponownie.",
|
|
323
|
+
uk: "\u041A\u043E\u0434 \u043D\u0435 \u0437\u0431\u0456\u0433\u0430\u0454\u0442\u044C\u0441\u044F. \u041F\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 \u0439\u043E\u0433\u043E \u0442\u0430 \u043F\u043E\u0432\u0442\u043E\u0440\u0456\u0442\u044C.",
|
|
324
|
+
"zh-cn": "\u4EE3\u7801\u4E0D\u5339\u914D\u3002\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5\u3002"
|
|
109
325
|
}
|
|
110
326
|
};
|
|
111
327
|
function toId(text, forbidden) {
|
|
@@ -115,6 +331,10 @@ function toId(text, forbidden) {
|
|
|
115
331
|
return (_a = umlauts[c]) != null ? _a : c;
|
|
116
332
|
}).replace(forbidden, "_").replace(/[^A-Za-z0-9_-]+/g, "_").replace(/_+/g, "_").replace(/^_|_$/g, "");
|
|
117
333
|
}
|
|
334
|
+
function numberInRange(value, min, max, fallback) {
|
|
335
|
+
const n = Number(value);
|
|
336
|
+
return Number.isFinite(n) && n >= min && n <= max ? Math.round(n) : fallback;
|
|
337
|
+
}
|
|
118
338
|
function modeOf(config) {
|
|
119
339
|
return config.connection === "adb" || config.connection === "remote_adb" ? config.connection : "remote";
|
|
120
340
|
}
|
|
@@ -147,7 +367,8 @@ class Androidtv extends utils.Adapter {
|
|
|
147
367
|
var _a, _b, _c;
|
|
148
368
|
await this.setState("info.connection", false, true);
|
|
149
369
|
const sysConfig = await this.getForeignObjectAsync("system.config");
|
|
150
|
-
|
|
370
|
+
const language = (_a = sysConfig == null ? void 0 : sysConfig.common) == null ? void 0 : _a.language;
|
|
371
|
+
this.uiLanguage = language && language in MESSAGES.statusConnected ? language : "en";
|
|
151
372
|
await this.ensureCertificate();
|
|
152
373
|
const devices = (Array.isArray(this.config.devices) ? this.config.devices : []).filter(
|
|
153
374
|
(d) => d && typeof d.host === "string" && d.host.trim() !== ""
|
|
@@ -155,9 +376,11 @@ class Androidtv extends utils.Adapter {
|
|
|
155
376
|
const apps = (Array.isArray(this.config.apps) ? this.config.apps : []).filter(
|
|
156
377
|
(a) => a && typeof a.name === "string" && a.name.trim() !== "" && typeof a.link === "string" && a.link.trim() !== ""
|
|
157
378
|
);
|
|
379
|
+
const appIdsLower = /* @__PURE__ */ new Set();
|
|
158
380
|
for (const app of apps) {
|
|
159
381
|
const id = toId(app.name, this.FORBIDDEN_CHARS);
|
|
160
|
-
if (id && !
|
|
382
|
+
if (id && !appIdsLower.has(id.toLowerCase())) {
|
|
383
|
+
appIdsLower.add(id.toLowerCase());
|
|
161
384
|
this.appsById.set(id, app);
|
|
162
385
|
}
|
|
163
386
|
}
|
|
@@ -165,13 +388,15 @@ class Androidtv extends utils.Adapter {
|
|
|
165
388
|
await this.ensureAdbKey();
|
|
166
389
|
}
|
|
167
390
|
const usedIds = /* @__PURE__ */ new Set();
|
|
391
|
+
const usedIdsLower = /* @__PURE__ */ new Set();
|
|
168
392
|
for (const config of devices) {
|
|
169
393
|
const base = toId(config.name || config.host, this.FORBIDDEN_CHARS) || toId(config.host, this.FORBIDDEN_CHARS);
|
|
170
394
|
let id = base;
|
|
171
|
-
for (let n = 2;
|
|
395
|
+
for (let n = 2; usedIdsLower.has(id.toLowerCase()); n++) {
|
|
172
396
|
id = `${base}_${n}`;
|
|
173
397
|
}
|
|
174
398
|
usedIds.add(id);
|
|
399
|
+
usedIdsLower.add(id.toLowerCase());
|
|
175
400
|
await this.createDeviceObjects(id, config);
|
|
176
401
|
if (config.enabled === false) {
|
|
177
402
|
continue;
|
|
@@ -254,11 +479,6 @@ class Androidtv extends utils.Adapter {
|
|
|
254
479
|
}
|
|
255
480
|
}
|
|
256
481
|
async writeSecretFile(name, content) {
|
|
257
|
-
await this.setForeignObjectNotExistsAsync(this.namespace, {
|
|
258
|
-
type: "meta",
|
|
259
|
-
common: { name: "Android TV internal files", type: "meta.user" },
|
|
260
|
-
native: {}
|
|
261
|
-
});
|
|
262
482
|
await this.writeFileAsync(this.namespace, name, JSON.stringify(content));
|
|
263
483
|
}
|
|
264
484
|
// ------------------------------------------------------------------------------------------------------------
|
|
@@ -267,7 +487,7 @@ class Androidtv extends utils.Adapter {
|
|
|
267
487
|
createRuntime(id, config) {
|
|
268
488
|
var _a;
|
|
269
489
|
const mode = modeOf(config);
|
|
270
|
-
const reconnectMax =
|
|
490
|
+
const reconnectMax = numberInRange(this.config.reconnectMax, 5, 3600, DEFAULT_RECONNECT_MAX_S);
|
|
271
491
|
const runtime = {
|
|
272
492
|
id,
|
|
273
493
|
config,
|
|
@@ -296,8 +516,8 @@ class Androidtv extends utils.Adapter {
|
|
|
296
516
|
if (!this.adbKey) {
|
|
297
517
|
throw new Error("ADB key missing");
|
|
298
518
|
}
|
|
299
|
-
const pollS =
|
|
300
|
-
const port =
|
|
519
|
+
const pollS = numberInRange(this.config.adbPollInterval, 2, 300, DEFAULT_ADB_POLL_S);
|
|
520
|
+
const port = numberInRange(config.adbPort, 1, 65535, import_client.DEFAULT_ADB_PORT);
|
|
301
521
|
runtime.adb = new import_device.AdbDevice({
|
|
302
522
|
timers: this.adapterTimers,
|
|
303
523
|
host: config.host.trim(),
|
|
@@ -543,12 +763,72 @@ class Androidtv extends utils.Adapter {
|
|
|
543
763
|
native: { host: config.host, connection: mode }
|
|
544
764
|
});
|
|
545
765
|
const channels = [
|
|
546
|
-
[
|
|
547
|
-
|
|
548
|
-
|
|
766
|
+
[
|
|
767
|
+
"info",
|
|
768
|
+
{
|
|
769
|
+
en: "Information",
|
|
770
|
+
de: "Informationen",
|
|
771
|
+
ru: "\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F",
|
|
772
|
+
pt: "Informa\xE7\xE3o",
|
|
773
|
+
nl: "Informatie",
|
|
774
|
+
fr: "Informations",
|
|
775
|
+
it: "Informazioni",
|
|
776
|
+
es: "Informaci\xF3n",
|
|
777
|
+
pl: "Informacje",
|
|
778
|
+
uk: "\u0406\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F",
|
|
779
|
+
"zh-cn": "\u4FE1\u606F"
|
|
780
|
+
}
|
|
781
|
+
],
|
|
782
|
+
[
|
|
783
|
+
"keys",
|
|
784
|
+
{
|
|
785
|
+
en: "Remote keys",
|
|
786
|
+
de: "Fernbedienungstasten",
|
|
787
|
+
ru: "\u041A\u043D\u043E\u043F\u043A\u0438 \u043F\u0443\u043B\u044C\u0442\u0430",
|
|
788
|
+
pt: "Teclas do comando",
|
|
789
|
+
nl: "Afstandsbedieningstoetsen",
|
|
790
|
+
fr: "Touches de la t\xE9l\xE9commande",
|
|
791
|
+
it: "Tasti del telecomando",
|
|
792
|
+
es: "Teclas del mando",
|
|
793
|
+
pl: "Przyciski pilota",
|
|
794
|
+
uk: "\u041A\u043D\u043E\u043F\u043A\u0438 \u043F\u0443\u043B\u044C\u0442\u0430",
|
|
795
|
+
"zh-cn": "\u9065\u63A7\u6309\u952E"
|
|
796
|
+
}
|
|
797
|
+
],
|
|
798
|
+
[
|
|
799
|
+
"apps",
|
|
800
|
+
{
|
|
801
|
+
en: "App favorites",
|
|
802
|
+
de: "App-Favoriten",
|
|
803
|
+
ru: "\u0418\u0437\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F",
|
|
804
|
+
pt: "Aplicativos favoritos",
|
|
805
|
+
nl: "App-favorieten",
|
|
806
|
+
fr: "Applications favorites",
|
|
807
|
+
it: "App preferite",
|
|
808
|
+
es: "Aplicaciones favoritas",
|
|
809
|
+
pl: "Ulubione aplikacje",
|
|
810
|
+
uk: "\u0423\u043B\u044E\u0431\u043B\u0435\u043D\u0456 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043A\u0438",
|
|
811
|
+
"zh-cn": "\u6536\u85CF\u7684\u5E94\u7528"
|
|
812
|
+
}
|
|
813
|
+
]
|
|
549
814
|
];
|
|
550
815
|
if (mode !== "remote") {
|
|
551
|
-
channels.push([
|
|
816
|
+
channels.push([
|
|
817
|
+
"media",
|
|
818
|
+
{
|
|
819
|
+
en: "Media (via ADB)",
|
|
820
|
+
de: "Medien (\xFCber ADB)",
|
|
821
|
+
ru: "\u041C\u0435\u0434\u0438\u0430 (\u0447\u0435\u0440\u0435\u0437 ADB)",
|
|
822
|
+
pt: "Multim\xE9dia (via ADB)",
|
|
823
|
+
nl: "Media (via ADB)",
|
|
824
|
+
fr: "M\xE9dias (via ADB)",
|
|
825
|
+
it: "Media (tramite ADB)",
|
|
826
|
+
es: "Multimedia (v\xEDa ADB)",
|
|
827
|
+
pl: "Multimedia (przez ADB)",
|
|
828
|
+
uk: "\u041C\u0435\u0434\u0456\u0430 (\u0447\u0435\u0440\u0435\u0437 ADB)",
|
|
829
|
+
"zh-cn": "\u5A92\u4F53\uFF08\u901A\u8FC7 ADB\uFF09"
|
|
830
|
+
}
|
|
831
|
+
]);
|
|
552
832
|
}
|
|
553
833
|
for (const [channel, name] of channels) {
|
|
554
834
|
await this.extendObjectAsync(`${id}.${channel}`, { type: "channel", common: { name }, native: {} });
|