Added agent translations.
Ylian Saint-Hilaire committed
Dec 15, 2020 at 13:29 UTC
a19bf5146ac3767d757f479dbe739d46e9ec626e
3 files changed
+475
-2
agents/agent-translations.json
new
+263
@@ -0,0 +1,263 @@
1
+{
2
+ "en": {
3
+ "agent": "Agent",
4
+ "agentVersion": "New Agent Version",
5
+ "group": "Device Group",
6
+ "url": "Server URL",
7
+ "meshName": "Mesh Name",
8
+ "meshId": "Mesh Identifier",
9
+ "serverId": "Server Identifier",
10
+ "setup": "Setup",
11
+ "update": "Update",
12
+ "install": "Install",
13
+ "uninstall": "Uninstall",
14
+ "connect": "Connect",
15
+ "disconnect": "Disconnect",
16
+ "cancel": "Cancel",
17
+ "pressok": "Press OK to disconnect",
18
+ "elevation": "Elevated permissions is required to install/uninstall the agent.",
19
+ "sudo": "Please try again with sudo.",
20
+ "ctrlc": "Press Ctrl-C to exit.",
21
+ "commands": "You can run the text version from the command line with the following command(s)",
22
+ "graphicalerror": "The graphical version of this installer canot run on this system",
23
+ "zenity": "Try installing/updating Zenity, and run again",
24
+ "status": [
25
+ "NOT INSTALLED",
26
+ "RUNNING",
27
+ "NOT RUNNING"
28
+ ],
29
+ "statusDescription": "Current Agent Status",
30
+ "description": "Click the buttons below to install or uninstall the mesh agent. When installed, this software runs in the background allowing this computer to be managed and controlled by a remote administrator."
31
+ },
32
+ "cs": {
33
+ "agent": "Agent",
34
+ "group": "Skupina zařízení",
35
+ "install": "Instalace",
36
+ "uninstall": "Odinstalace",
37
+ "connect": "Připojit",
38
+ "disconnect": "Odpojit",
39
+ "cancel": "Storno"
40
+ },
41
+ "de": {
42
+ "agent": "Agent",
43
+ "group": "Gerätegruppe",
44
+ "install": "Installieren",
45
+ "uninstall": "Deinstallation",
46
+ "connect": "Verbinden",
47
+ "disconnect": "Trennen",
48
+ "cancel": "Abbrechen"
49
+ },
50
+ "es": {
51
+ "agent": "Agente",
52
+ "group": "Grupo de Dispositivos",
53
+ "install": "Instalar",
54
+ "uninstall": "Desinstalar",
55
+ "connect": "Conectar",
56
+ "disconnect": "Desconectar",
57
+ "cancel": "Cancelar"
58
+ },
59
+ "fi": {
60
+ "agent": "Agentti",
61
+ "group": "Laiteryhmä",
62
+ "install": "Asenna",
63
+ "uninstall": "Asennuksen poistaminen",
64
+ "connect": "Yhdistä",
65
+ "disconnect": "Katkaise yhteys",
66
+ "cancel": "Peruuta"
67
+ },
68
+ "fr": {
69
+ "agent": "Agent",
70
+ "group": "Groupe d'appareils",
71
+ "setup": "Configuration",
72
+ "install": "Installer",
73
+ "uninstall": "Désinstaller",
74
+ "connect": "Se connecter",
75
+ "disconnect": "Déconnecter",
76
+ "cancel": "Annuler"
77
+ },
78
+ "hi": {
79
+ "agent": "एजेंट",
80
+ "group": "डिवाइस समूह",
81
+ "install": "इंस्टॉल",
82
+ "uninstall": "स्थापना रद्द करें",
83
+ "connect": "जुडिये",
84
+ "disconnect": "डिस्कनेक्ट",
85
+ "cancel": "रद्द करना"
86
+ },
87
+ "ja": {
88
+ "agent": "エージェント",
89
+ "group": "デバイスグループ",
90
+ "install": "インストール",
91
+ "uninstall": "アンインストール",
92
+ "connect": "つなぐ",
93
+ "disconnect": "切断する",
94
+ "cancel": "キャンセル"
95
+ },
96
+ "ko": {
97
+ "agent": "에이전트",
98
+ "agentVersion": "새에이전트 버전",
99
+ "group": "장치 그룹",
100
+ "url": "서버의 위치",
101
+ "meshName": "메시의 이름",
102
+ "meshId": "메시의 식별자",
103
+ "serverId": "서버의 식별자",
104
+ "setup": "설정하다",
105
+ "update": "개조하다",
106
+ "install": "설치",
107
+ "uninstall": "설치 제거",
108
+ "connect": "연결",
109
+ "disconnect": "연결 해제",
110
+ "cancel": "취소",
111
+ "pressok": "연결을 끊으려면 \"OK\"를 누르십시오",
112
+ "elevation": "관리자 권한은 에이전트 제거 / 설치하는 데 필요",
113
+ "sudo": "\"sudo\"로 다시 시도하십시오",
114
+ "ctrlc": "종료하려면 \"Ctrl-C\"를 누르십시오.",
115
+ "commands": "다음 명령을 사용하여 콘솔에서 텍스트 버전을 실행할 수 있습니다",
116
+ "graphicalerror": "이 프로그램의 그래픽 버전이 시스템에서 실행할 수 없습니다",
117
+ "zenity": "\"Zenity\"를 설치 또는 업데이트하고 다시 시도하십시오",
118
+ "status": [
119
+ "없다",
120
+ "운영",
121
+ "중지됨"
122
+ ],
123
+ "statusDescription": "에이전트 상태",
124
+ "description": "메시 에이전트를 설치 또는 제거하려면 아래 버튼을 클릭하십시오. 이 프로그램은 설치하면 백그라운드에서 실행되므로 원격 관리자가이 컴퓨터를 관리하고 제어 할 수 있습니다."
125
+ },
126
+ "nl": {
127
+ "agent": "Agent",
128
+ "group": "Apparaat groep",
129
+ "setup": "Setup",
130
+ "install": "Installeren",
131
+ "uninstall": "Deïnstallatie",
132
+ "connect": "Verbinden",
133
+ "disconnect": "Verbreken",
134
+ "cancel": "Annuleren"
135
+ },
136
+ "pt": {
137
+ "agent": "Agente",
138
+ "group": "Grupo de dispositivos",
139
+ "install": "Instalar",
140
+ "uninstall": "Desinstalar",
141
+ "connect": "Conectar",
142
+ "disconnect": "Desconectar",
143
+ "cancel": "Cancelar"
144
+ },
145
+ "ru": {
146
+ "agent": "Агент",
147
+ "group": "Группа устройства",
148
+ "install": "Установка",
149
+ "uninstall": "Удаление",
150
+ "connect": "Подключиться",
151
+ "disconnect": "Разъединить",
152
+ "cancel": "Отмена"
153
+ },
154
+ "tr": {
155
+ "agent": "Ajan",
156
+ "group": "Cihaz Grubu",
157
+ "install": "Yüklemek",
158
+ "uninstall": "Kaldır",
159
+ "connect": "Bağlan",
160
+ "disconnect": "Bağlantıyı kes",
161
+ "cancel": "İptal etmek"
162
+ },
163
+ "zh-chs": {
164
+ "agent": "代理",
165
+ "group": "设备组",
166
+ "install": "安装",
167
+ "uninstall": "卸载",
168
+ "connect": "连接",
169
+ "disconnect": "断线",
170
+ "cancel": "取消"
171
+ },
172
+ "zh-cht": {
173
+ "agent": "代理",
174
+ "group": "裝置群",
175
+ "install": "安裝",
176
+ "uninstall": "卸載",
177
+ "connect": "連接",
178
+ "disconnect": "斷線",
179
+ "cancel": "取消"
180
+ },
181
+ "xloc": {
182
+ "agent": [
183
+ "agent-translations.json"
184
+ ],
185
+ "agentVersion": [
186
+ "agent-translations.json"
187
+ ],
188
+ "group": [
189
+ "agent-translations.json"
190
+ ],
191
+ "url": [
192
+ "agent-translations.json"
193
+ ],
194
+ "meshName": [
195
+ "agent-translations.json"
196
+ ],
197
+ "meshId": [
198
+ "agent-translations.json"
199
+ ],
200
+ "serverId": [
201
+ "agent-translations.json"
202
+ ],
203
+ "setup": [
204
+ "agent-translations.json"
205
+ ],
206
+ "update": [
207
+ "agent-translations.json"
208
+ ],
209
+ "install": [
210
+ "agent-translations.json"
211
+ ],
212
+ "uninstall": [
213
+ "agent-translations.json"
214
+ ],
215
+ "connect": [
216
+ "agent-translations.json"
217
+ ],
218
+ "disconnect": [
219
+ "agent-translations.json"
220
+ ],
221
+ "cancel": [
222
+ "agent-translations.json"
223
+ ],
224
+ "pressok": [
225
+ "agent-translations.json"
226
+ ],
227
+ "elevation": [
228
+ "agent-translations.json"
229
+ ],
230
+ "sudo": [
231
+ "agent-translations.json"
232
+ ],
233
+ "ctrlc": [
234
+ "agent-translations.json"
235
+ ],
236
+ "commands": [
237
+ "agent-translations.json"
238
+ ],
239
+ "graphicalerror": [
240
+ "agent-translations.json"
241
+ ],
242
+ "zenity": [
243
+ "agent-translations.json"
244
+ ],
245
+ "status": [
246
+ [
247
+ "agent-translations.json"
248
+ ],
249
+ [
250
+ "agent-translations.json"
251
+ ],
252
+ [
253
+ "agent-translations.json"
254
+ ]
255
+ ],
256
+ "statusDescription": [
257
+ "agent-translations.json"
258
+ ],
259
+ "description": [
260
+ "agent-translations.json"
261
+ ]
262
+ }
263
+}
\ No newline at end of file
translate/translate.js
+74
-1
@@ -49,7 +49,8 @@ var meshCentralSourceFiles = [
49
"../emails/account-login.txt",
50
"../emails/account-reset.txt",
51
"../emails/mesh-invite.txt",
52
- "../emails/sms-messages.txt"
52
+ "../emails/sms-messages.txt",
53
+ '../agents/agent-translations.json'
54
];
55
56
var minifyMeshCentralSourceFiles = [
@@ -577,6 +578,9 @@ function translate(lang, langFile, sources, createSubDir) {
578
// Single threaded translation
579
translateSingleThreaded(lang, langFile, sources, createSubDir);
580
}
581
+
582
+ // Translate any JSON files
583
+ for (var i = 0; i < sources.length; i++) { if (sources[i].endsWith('.json')) { translateAllInJson(lang, langFile, sources[i]); } }
584
}
585
586
function translateSingleThreaded(lang, langFile, sources, createSubDir) {
@@ -627,6 +631,7 @@ function extract(langFile, sources) {
631
for (var i = 0; i < sources.length; i++) {
632
if (sources[i].endsWith('.html') || sources[i].endsWith('.htm') || sources[i].endsWith('.handlebars')) { extractFromHtml(sources[i]); }
633
else if (sources[i].endsWith('.txt')) { extractFromTxt(sources[i]); }
634
+ else if (sources[i].endsWith('.json')) { extractFromJson(sources[i]); }
635
}
636
var count = 0, output = [];
637
for (var i in sourceStrings) {
@@ -653,6 +658,28 @@ function extractFromTxt(file) {
658
}
659
}
660
661
+function extractFromJson(file) {
662
+ log("Processing JSON: " + path.basename(file));
663
+ var json = JSON.parse(fs.readFileSync(file).toString());
664
+ var name = path.basename(file);
665
+ if (json.en == null) return;
666
+ for (var i in json.en) {
667
+ if (typeof json.en[i] == 'string') {
668
+ const str = json.en[i]
669
+ if (sourceStrings[str] == null) {
670
+ sourceStrings[str] = { en: str, xloc: [name] };
671
+ } else { if (sourceStrings[str].xloc == null) { sourceStrings[str].xloc = []; } sourceStrings[str].xloc.push(name); }
672
+ } else if (Array.isArray(json.en[i])) {
673
+ for (var k in json.en[i]) {
674
+ if (typeof json.en[i][k] == 'string') {
675
+ const str = json.en[i][k];
676
+ if (sourceStrings[str] == null) { sourceStrings[str] = { en: str, xloc: [name] }; } else { if (sourceStrings[str].xloc == null) { sourceStrings[str].xloc = []; } sourceStrings[str].xloc.push(name); }
677
+ }
678
+ }
679
+ }
680
+ }
681
+}
682
+
683
function extractFromHtml(file) {
684
var data = fs.readFileSync(file);
685
var { JSDOM } = jsdom;
@@ -753,7 +780,53 @@ function translateFromTxt(lang, file, createSubDir) {
780
fs.writeFileSync(outname, out, { flag: 'w+' });
781
}
782
783
+function translateAllInJson(xlang, langFile, file) {
784
+ log("Translating JSON (" + ((xlang == null)?'All':xlang) + "): " + path.basename(file));
785
+
786
+ // Load the language file
787
+ var langFileData = null;
788
+ try { langFileData = JSON.parse(fs.readFileSync(langFile)); } catch (ex) { console.log(ex); }
789
+ if ((langFileData == null) || (langFileData.strings == null)) { log("Invalid language file."); process.exit(); return; }
790
+ var languages = [];
791
792
+ // Build translation table, simple source->target for the given language.
793
+ var xtranslationTable = {};
794
+ for (var i in langFileData.strings) {
795
+ var entry = langFileData.strings[i];
796
+ for (var lang in entry) {
797
+ if (lang == 'en') continue;
798
+ if ((xlang != null) && (lang != xlang)) continue;
799
+ if (languages.indexOf(lang) == -1) { languages.push(lang); xtranslationTable[lang] = {}; }
800
+ if ((entry['en'] != null) && (entry[lang] != null)) { xtranslationTable[lang][entry['en']] = entry[lang]; }
801
+ }
802
+ }
803
+
804
+ // Load and translate
805
+ var json = JSON.parse(fs.readFileSync(file).toString());
806
+ if (json.en != null) {
807
+ for (var j in languages) {
808
+ var lang = languages[j];
809
+ for (var i in json.en) {
810
+ if ((typeof json.en[i] == 'string') && (xtranslationTable[lang][json.en[i]] != null)) {
811
+ // Translate a string
812
+ if (json[lang] == null) { json[lang] = {}; }
813
+ json[lang][i] = xtranslationTable[lang][json.en[i]];
814
+ } else if (Array.isArray(json.en[i])) {
815
+ // Translate an array of strings
816
+ var r = [], translateCount = 0;
817
+ for (var k in json.en[i]) {
818
+ var str = json.en[i][k];
819
+ if (xtranslationTable[lang][str] != null) { r.push(xtranslationTable[lang][str]); translateCount++; } else { r.push(str); }
820
+ }
821
+ if (translateCount > 0) { json[lang][i] = r; }
822
+ }
823
+ }
824
+ }
825
+ }
826
+
827
+ // Save the results
828
+ fs.writeFileSync(file, JSON.stringify(json, null, 2), { flag: 'w+' });
829
+}
830
831
function translateFromHtml(lang, file, createSubDir) {
832
var data = fs.readFileSync(file);
translate/translate.json
+138
-1
@@ -4062,6 +4062,7 @@
4062
"zh-chs": "代理",
4063
"zh-cht": "代理",
4064
"xloc": [
4065
+ "agent-translations.json",
4066
"default-mobile.handlebars->9->203",
4067
"default-mobile.handlebars->9->228",
4068
"default-mobile.handlebars->9->250",
@@ -6602,6 +6603,7 @@
6603
"zh-chs": "取消",
6604
"zh-cht": "取消",
6605
"xloc": [
6606
+ "agent-translations.json",
6607
"default-mobile.handlebars->9->82",
6608
"default-mobile.handlebars->dialog->idx_dlgButtonBar",
6609
"default.handlebars->29->1327",
@@ -7780,6 +7782,13 @@
7782
"default.handlebars->29->1278"
7783
]
7784
},
7785
+ {
7786
+ "en": "Click the buttons below to install or uninstall the mesh agent. When installed, this software runs in the background allowing this computer to be managed and controlled by a remote administrator.",
7787
+ "ko": "메시 에이전트를 설치 또는 제거하려면 아래 버튼을 클릭하십시오. 이 프로그램은 설치하면 백그라운드에서 실행되므로 원격 관리자가이 컴퓨터를 관리하고 제어 할 수 있습니다.",
7788
+ "xloc": [
7789
+ "agent-translations.json"
7790
+ ]
7791
+ },
7792
{
7793
"cs": "Klikněte pro zobrazení aktuálních upozornění",
7794
"de": "Hier klicken, um aktuelle Benachrichtigungen anzuzeigen",
@@ -8686,6 +8695,7 @@
8695
"zh-chs": "连接",
8696
"zh-cht": "連接",
8697
"xloc": [
8698
+ "agent-translations.json",
8699
"default-mobile.handlebars->9->301",
8700
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3",
8701
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->3",
@@ -10084,6 +10094,13 @@
10094
"desktop.handlebars->p11->deskarea0->deskarea4->3->deskkeys->19"
10095
]
10096
},
10097
+ {
10098
+ "en": "Current Agent Status",
10099
+ "ko": "에이전트 상태",
10100
+ "xloc": [
10101
+ "agent-translations.json"
10102
+ ]
10103
+ },
10104
{
10105
"cs": "Nainstalovaná verze",
10106
"de": "Aktuelle Version",
@@ -11266,6 +11283,7 @@
11283
"zh-chs": "设备组",
11284
"zh-cht": "裝置群",
11285
"xloc": [
11286
+ "agent-translations.json",
11287
"default.handlebars->29->1454",
11288
"default.handlebars->29->1457",
11289
"default.handlebars->29->1458",
@@ -12111,6 +12129,7 @@
12129
"zh-chs": "断线",
12130
"zh-cht": "斷線",
12131
"xloc": [
12132
+ "agent-translations.json",
12133
"default-mobile.handlebars->9->302",
12134
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3",
12135
"default.handlebars->29->1367",
@@ -13809,6 +13828,13 @@
13828
"default.handlebars->29->447"
13829
]
13830
},
13831
+ {
13832
+ "en": "Elevated permissions is required to install/uninstall the agent.",
13833
+ "ko": "관리자 권한은 에이전트 제거 / 설치하는 데 필요",
13834
+ "xloc": [
13835
+ "agent-translations.json"
13836
+ ]
13837
+ },
13838
{
13839
"cs": "E-mail",
13840
"de": "E-Mail",
@@ -18160,7 +18186,10 @@
18186
"ru": "Установка",
18187
"tr": "Yüklemek",
18188
"zh-chs": "安装",
18163
- "zh-cht": "安裝"
18189
+ "zh-cht": "安裝",
18190
+ "xloc": [
18191
+ "agent-translations.json"
18192
+ ]
18193
},
18194
{
18195
"cs": "Nainstalujte si <a href=\\\"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2\\\" rel=\\\"noreferrer noopener\\\" target=_blank>Google Authenticator</a> nebo kompatibilní aplikaci a naskenujte kód, použijte <a href=\\\"{0}\\\" rel=\\\"noreferrer noopener\\\" target=_blank> tento odkaz</a> nebo vložte tajemství. Pak vložte aktuální 6 číselný token pro aktivaci 2-faktorového přihlašování.",
@@ -22914,6 +22943,20 @@
22943
"default.handlebars->29->1473"
22944
]
22945
},
22946
+ {
22947
+ "en": "Mesh Identifier",
22948
+ "ko": "메시의 식별자",
22949
+ "xloc": [
22950
+ "agent-translations.json"
22951
+ ]
22952
+ },
22953
+ {
22954
+ "en": "Mesh Name",
22955
+ "ko": "메시의 이름",
22956
+ "xloc": [
22957
+ "agent-translations.json"
22958
+ ]
22959
+ },
22960
{
22961
"cs": "Mesh předávání (relay)",
22962
"de": "Netzrelais",
@@ -24168,6 +24211,20 @@
24211
"default.handlebars->29->1062"
24212
]
24213
},
24214
+ {
24215
+ "en": "NOT INSTALLED",
24216
+ "ko": "없다",
24217
+ "xloc": [
24218
+ "agent-translations.json"
24219
+ ]
24220
+ },
24221
+ {
24222
+ "en": "NOT RUNNING",
24223
+ "ko": "중지됨",
24224
+ "xloc": [
24225
+ "agent-translations.json"
24226
+ ]
24227
+ },
24228
{
24229
"cs": "Přejděte na níže uvedenou adresu URL, udělejte přístup a zkopírujte kód tokenu zpět.",
24230
"de": "Nagivieren Sie auf die unten stehende URL, gewähren Sie Zugriff und kopieren Sie den Token-Code zurück.",
@@ -24451,6 +24508,13 @@
24508
"default.handlebars->container->column_l->p4->3->1->0->3->3"
24509
]
24510
},
24511
+ {
24512
+ "en": "New Agent Version",
24513
+ "ko": "새에이전트 버전",
24514
+ "xloc": [
24515
+ "agent-translations.json"
24516
+ ]
24517
+ },
24518
{
24519
"cs": "Nová skupina zařízení",
24520
"de": "Neue Gerätegruppe",
@@ -27620,6 +27684,13 @@
27684
"terms.handlebars->container->column_l->3"
27685
]
27686
},
27687
+ {
27688
+ "en": "Please try again with sudo.",
27689
+ "ko": "\"sudo\"로 다시 시도하십시오",
27690
+ "xloc": [
27691
+ "agent-translations.json"
27692
+ ]
27693
+ },
27694
{
27695
"cs": "Počkejte pár minut než dojde k ověření.",
27696
"de": "Bitte warten Sie einige Minuten, um die Bestätigung zu erhalten.",
@@ -28065,6 +28136,20 @@
28136
"default.handlebars->29->2060"
28137
]
28138
},
28139
+ {
28140
+ "en": "Press Ctrl-C to exit.",
28141
+ "ko": "종료하려면 \"Ctrl-C\"를 누르십시오.",
28142
+ "xloc": [
28143
+ "agent-translations.json"
28144
+ ]
28145
+ },
28146
+ {
28147
+ "en": "Press OK to disconnect",
28148
+ "ko": "연결을 끊으려면 \"OK\"를 누르십시오",
28149
+ "xloc": [
28150
+ "agent-translations.json"
28151
+ ]
28152
+ },
28153
{
28154
"cs": "Pro pokračování/pozastavení stiskněte [mezerník].",
28155
"de": "Für Abspielen/Pause [Leertaste] drücken,",
@@ -28658,6 +28743,13 @@
28743
"default.handlebars->29->2124"
28744
]
28745
},
28746
+ {
28747
+ "en": "RUNNING",
28748
+ "ko": "운영",
28749
+ "xloc": [
28750
+ "agent-translations.json"
28751
+ ]
28752
+ },
28753
{
28754
"en": "Randomize password",
28755
"fr": "Randomiser le mot de passe",
@@ -32329,6 +32421,13 @@
32421
"default.handlebars->29->710"
32422
]
32423
},
32424
+ {
32425
+ "en": "Server Identifier",
32426
+ "ko": "서버의 식별자",
32427
+ "xloc": [
32428
+ "agent-translations.json"
32429
+ ]
32430
+ },
32431
{
32432
"cs": "Oprávnění serveru",
32433
"de": "Server-Berechtigungen",
@@ -32470,6 +32569,13 @@
32569
"default.handlebars->29->2145"
32570
]
32571
},
32572
+ {
32573
+ "en": "Server URL",
32574
+ "ko": "서버의 위치",
32575
+ "xloc": [
32576
+ "agent-translations.json"
32577
+ ]
32578
+ },
32579
{
32580
"en": "Server Under Maintenance",
32581
"nl": "Onderhoud aan de server",
@@ -32904,7 +33010,9 @@
33010
"en": "Setup",
33011
"nl": "Setup",
33012
"fr": "Configuration",
33013
+ "ko": "설정하다",
33014
"xloc": [
33015
+ "agent-translations.json",
33016
"default.handlebars->29->1385",
33017
"default.handlebars->29->285"
33018
]
@@ -35956,6 +36064,13 @@
36064
"terms.handlebars->container->column_l->7"
36065
]
36066
},
36067
+ {
36068
+ "en": "The graphical version of this installer canot run on this system",
36069
+ "ko": "이 프로그램의 그래픽 버전이 시스템에서 실행할 수 없습니다",
36070
+ "xloc": [
36071
+ "agent-translations.json"
36072
+ ]
36073
+ },
36074
{
36075
"cs": "Název skupiny zařízení, do které tento počítač patří",
36076
"de": "Der Name der Gerätegruppe zu der dieser Rechner gehört",
@@ -37169,6 +37284,13 @@
37284
"default.handlebars->29->134"
37285
]
37286
},
37287
+ {
37288
+ "en": "Try installing/updating Zenity, and run again",
37289
+ "ko": "\"Zenity\"를 설치 또는 업데이트하고 다시 시도하십시오",
37290
+ "xloc": [
37291
+ "agent-translations.json"
37292
+ ]
37293
+ },
37294
{
37295
"cs": "Tsonga",
37296
"de": "Tsonga",
@@ -37613,6 +37735,7 @@
37735
"zh-chs": "卸载",
37736
"zh-cht": "卸載",
37737
"xloc": [
37738
+ "agent-translations.json",
37739
"default-mobile.handlebars->9->458",
37740
"default.handlebars->29->1515",
37741
"default.handlebars->29->694",
@@ -37987,6 +38110,13 @@
38110
"default.handlebars->29->2154"
38111
]
38112
},
38113
+ {
38114
+ "en": "Update",
38115
+ "ko": "개조하다",
38116
+ "xloc": [
38117
+ "agent-translations.json"
38118
+ ]
38119
+ },
38120
{
38121
"cs": "Nahrát",
38122
"de": "Hochladen",
@@ -40777,6 +40907,13 @@
40907
"default.handlebars->29->132"
40908
]
40909
},
40910
+ {
40911
+ "en": "You can run the text version from the command line with the following command(s)",
40912
+ "ko": "다음 명령을 사용하여 콘솔에서 텍스트 버전을 실행할 수 있습니다",
40913
+ "xloc": [
40914
+ "agent-translations.json"
40915
+ ]
40916
+ },
40917
{
40918
"cs": "Můžete nastavit MeshCentral tak, aby automaticky odesílal zálohu serveru na Disk Google. Začněte zadáním desktopového Google API ClientID a ClientSecret pro váš účet.",
40919
"de": "Sie können MeshCentral so einrichten, dass automatisch eine Serversicherung an Google Drive gesendet wird. Geben Sie zunächst eine Desktop-Google API-Client-ID und ClientSecret für Ihr Konto ein.",