increase translate timeout to 5 minutes and show errors too #7515
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Dec 24, 2025 at 15:37 UTC
204cd3bd1c651eae025a04579fbe8acb7bac880c
3 files changed
+12
-23
public/translator.htm
+5
-1
@@ -662,7 +662,11 @@
662
try { x = JSON.parse(this.responseText); } catch (ex) { }
663
if ((x == null) || (x.response == null)) { messagebox("Server Translation", "ERROR: Unable to parse server response."); return; }
664
if (x.response == 'ok') {
665
- messagebox("Server Translation", "Server translation initiated, this will take a minute or two. Once done, you can refresh the MeshCentral web pages to see the changes.<br /><br />When ready, please mail the file \"meshcentral-data/translate.json\" to <a href=\"mailto:ylianst@gmail.com\">ylianst@gmail.com</a> for inclusion on the official build.");
665
+ var text = "The server translation process is now running.<br />Please allow up to 5 minutes for completion.<br /><br />";
666
+ text += "If this is your <b>first translation</b>,<br />Please restart your MeshCentral server after the 5 minutes.<br /></br />";
667
+ text += "If you are <b>updating a translation</b>,<br />Please refresh your MeshCentral web browser tabs after the 5 minutes.<br /><br />";
668
+ text += "To submit your work, please email the generated <b>translate.json</b> file (located in <code>meshcentral-data/</code>) to one of the developers.";
669
+ messagebox("Server Translation", text);
670
} else {
671
messagebox("Server Translation", "ERROR: " + x.response);
672
}
translate/translate.json
+3
-18
@@ -14805,7 +14805,7 @@
14805
"zh-cht": "大寫字母",
14806
"xloc": [
14807
"default.handlebars->container->column_l->p11->7->p11capslock",
14808
- "default3.handlebars->container->column_l->p11->7->p11capslock"
14808
+ "default3.handlebars->container->column_l->p11->p11title->p11KeyboardLights->p11capslock"
14809
]
14810
},
14811
{
@@ -35075,7 +35075,6 @@
35075
"hr": "Prva veza agenta",
35076
"it": "Prima connessione dell'agente",
35077
"ja": "最初のエージェント接続",
35078
- "ja-jp": "最初のエージェント接続",
35078
"ko": "첫 번째 에이전트 연결",
35079
"nl": "Eerste agentverbinding",
35080
"pl": "Pierwsze połączenie agenta",
@@ -35113,7 +35112,6 @@
35112
"hr": "Sučelje fiksne širine",
35113
"it": "Interfaccia a larghezza fissa",
35114
"ja": "固定幅インターフェイス",
35116
- "ja-jp": "固定幅インターフェイス",
35115
"ko": "고정 폭 인터페이스",
35116
"nl": "Interface met vaste breedte",
35117
"pl": "Interfejs o stałej szerokości",
@@ -35148,7 +35146,6 @@
35146
"hu": "Fix szélességű interfész",
35147
"it": "Interfaccia a larghezza fissa",
35148
"ja": "固定幅インターフェイス",
35151
- "ja-jp": "固定幅インターフェイス",
35149
"ko": "고정 폭 인터페이스",
35150
"nl": "Interface met vaste breedte",
35151
"pl": "Interfejs o stałej szerokości",
@@ -47459,7 +47456,6 @@
47456
"hr": "Sučelje lijeve trake",
47457
"it": "Interfaccia della barra sinistra",
47458
"ja": "左バーインターフェイス",
47462
- "ja-jp": "左側のバーインターフェイス",
47459
"ko": "왼쪽 바 인터페이스",
47460
"nl": "Linkerbalkinterface",
47461
"pl": "Interfejs z lewym pasem menu",
@@ -47692,7 +47688,6 @@
47688
"hu": "Bal oldali sáv",
47689
"it": "Interfaccia della barra sinistra",
47690
"ja": "左バーインターフェイス",
47695
- "ja-jp": "左側のバーインターフェイス",
47691
"ko": "왼쪽 바 인터페이스",
47692
"nl": "Linkerbalk interface",
47693
"pl": "Interfejs z lewym pasem menu",
@@ -50067,7 +50062,6 @@
50062
"hr": "Stvoren token za prijavu",
50063
"it": "Token di accesso creato",
50064
"ja": "ログイントークンが作成されました",
50070
- "ja-jp": "ログイントークンが作成されました",
50065
"ko": "로그인 토큰이 생성되었습니다.",
50066
"nl": "Inlogtoken aangemaakt",
50067
"pl": "Utworzono token logowania",
@@ -55275,7 +55269,7 @@
55269
"zh-cht": "NUM",
55270
"xloc": [
55271
"default.handlebars->container->column_l->p11->7->p11numlock",
55278
- "default3.handlebars->container->column_l->p11->7->p11numlock"
55272
+ "default3.handlebars->container->column_l->p11->p11title->p11KeyboardLights->p11numlock"
55273
]
55274
},
55275
{
@@ -71649,7 +71643,7 @@
71643
"zh-cht": "滾動",
71644
"xloc": [
71645
"default.handlebars->container->column_l->p11->7->p11scrolllock",
71652
- "default3.handlebars->container->column_l->p11->7->p11scrolllock"
71646
+ "default3.handlebars->container->column_l->p11->p11title->p11KeyboardLights->p11scrolllock"
71647
]
71648
},
71649
{
@@ -84769,7 +84763,6 @@
84763
"hr": "Uključi tamni način rada",
84764
"it": "Attiva la modalità oscura",
84765
"ja": "ダークモードの切り替え",
84772
- "ja-jp": "ダークモードの切り替え",
84766
"ko": "다크 모드 전환",
84767
"nl": "Schakel de donkere modus in",
84768
"pl": "Przełącz tryb ciemny",
@@ -84845,7 +84838,6 @@
84838
"hr": "Uključi/isključi traku podnožja",
84839
"it": "Attiva/disattiva la barra del piè di pagina",
84840
"ja": "フッターバーの切り替え",
84848
- "ja-jp": "フッターバーの切り替え",
84841
"ko": "바닥 글 바 전환",
84842
"nl": "Schakel de voettekstbalk in",
84843
"pl": "Przełącznik stopki",
@@ -84878,7 +84870,6 @@
84870
"hr": "Uključi/isključi svjetlosni način",
84871
"it": "Attiva la modalità luce",
84872
"ja": "ライトモードの切り替え",
84881
- "ja-jp": "ライトモードの切り替え",
84873
"ko": "조명 모드 전환",
84874
"nl": "Schakel de lichtmodus in",
84875
"pl": "Przełącz tryb światła",
@@ -84911,7 +84902,6 @@
84902
"hr": "Uključi/isključi moderno korisničko sučelje",
84903
"it": "Attiva/disattiva l'interfaccia utente moderna",
84904
"ja": "モダンな UI を切り替え",
84914
- "ja-jp": "モダンな UI を切り替え",
84905
"ko": "최신 UI 전환",
84906
"nl": "Schakel moderne gebruikersinterface in",
84907
"pl": "Przełącz nowoczesny interfejs użytkownika",
@@ -85069,7 +85059,6 @@
85059
"hu": "Lábléc váltása",
85060
"it": "Attiva/disattiva la barra del piè di pagina",
85061
"ja": "フッターバーの切り替え",
85072
- "ja-jp": "フッターバーの切り替え",
85062
"ko": "바닥 글 바 전환",
85063
"nl": "Schakel de voettekstbalk in",
85064
"pl": "Przełącznik stopki",
@@ -85466,7 +85455,6 @@
85455
"hr": "Sučelje gornje trake",
85456
"it": "Interfaccia della barra superiore",
85457
"ja": "トップバーインターフェイス",
85469
- "ja-jp": "トップバーインターフェイス",
85458
"ko": "상단 바 인터페이스",
85459
"nl": "Boven werkbalk interface",
85460
"pl": "Interfejs z górnym paskiem menu",
@@ -85501,7 +85489,6 @@
85489
"hu": "Felső sáv",
85490
"it": "Interfaccia della barra superiore",
85491
"ja": "トップバーインターフェース",
85504
- "ja-jp": "トップバーインターフェイス",
85492
"ko": "상단 바 인터페이스",
85493
"nl": "Boven werkbalk interface",
85494
"pl": "Interfejs z górnym paskiem menu",
@@ -86390,7 +86377,6 @@
86377
"hr": "Postavke korisničkog sučelja",
86378
"it": "Impostazioni dell'interfaccia utente",
86379
"ja": "UI設定",
86393
- "ja-jp": "UI設定",
86380
"ko": "UI 설정",
86381
"nl": "UI-instellingen",
86382
"pl": "Ustawienia interfejsu użytkownika",
@@ -91793,7 +91779,6 @@
91779
"hr": "Napon",
91780
"it": "Voltaggio",
91781
"ja": "電圧",
91796
- "ja-jp": "電圧",
91782
"ko": "전압",
91783
"nl": "Spanning",
91784
"pl": "Woltaż",
webserver.js
+4
-4
@@ -4096,11 +4096,11 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
4096
res.send(JSON.stringify({ response: 'ok' }));
4097
console.log('Started server translation...');
4098
obj.pendingTranslation = true;
4099
- require('child_process').exec('node translate.js translateall \"' + translateFile + '\"', { maxBuffer: 512000, timeout: 120000, cwd: obj.path.join(__dirname, 'translate') }, function (error, stdout, stderr) {
4099
+ require('child_process').exec('node translate.js translateall \"' + translateFile + '\"', { maxBuffer: 512000, timeout: 300000, cwd: obj.path.join(__dirname, 'translate') }, function (error, stdout, stderr) {
4100
delete obj.pendingTranslation;
4101
- //console.log('error', error);
4102
- //console.log('stdout', stdout);
4103
- //console.log('stderr', stderr);
4101
+ if (error) { console.log('Server translation error', error); }
4102
+ // console.log('stdout', stdout);
4103
+ if (stderr) { console.log('Server translation stderr', stderr); }
4104
//console.log('Server restart...'); // Perform a server restart
4105
//process.exit(0);
4106
console.log('Server translation completed.');