Files
BetterDesk/web-nodejs/scripts/patch-settings-ui-i18n.js
T
UNITRONIX cff7176ac1 feat(i18n): add UI and confirmation messages for multiple languages
Enhanced localization files for various languages (ar, cs, da, de, en, es, fi, hi, hu, id, it, ja, ko, nb, nl, pl, pt) by adding new UI elements and confirmation prompts. This update improves user experience by providing consistent messaging across different languages for settings search, connection strategies, and user authentication options.
2026-06-20 23:56:00 +02:00

153 lines
7.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env node
'use strict';
/**
* One-shot patch: add settings.ui.* and settings.confirm.* to all locale files.
* Run: node scripts/patch-settings-ui-i18n.js
*/
const fs = require('fs');
const path = require('path');
const langDir = path.join(__dirname, '..', 'lang');
const enPath = path.join(langDir, 'en.json');
const en = JSON.parse(fs.readFileSync(enPath, 'utf8'));
const ui = en.settings.ui;
const confirm = en.settings.confirm;
const translations = {
pl: {
ui: {
search_placeholder: 'Szukaj w ustawieniach…',
search_results: '{count} pasujących sekcji',
auth_sub_enrollment: 'Rejestracja',
auth_sub_ldap: 'LDAP / AD',
auth_sub_oidc: 'OIDC / SSO',
branding_rdclient: 'RdClient',
connection_p2p_hint: 'Najpierw połączenie P2P; przełączenie na relay, gdy P2P nie działa.',
connection_relay_hint: 'Cały ruch klientów przez serwer relay.'
},
confirm: {
connection_mode_title: 'Zapisać strategię połączenia?',
connection_mode: 'Zastosować nową strategię połączenia dla klientów RustDesk?',
connection_restart_title: 'Zapisać i zrestartować serwer?',
connection_restart: 'Zapisać ustawienia połączenia i zrestartować serwer BetterDesk? Aktywne sesje mogą się na chwilę rozłączyć.',
enrollment_mode_title: 'Zmienić tryb rejestracji?',
enrollment_mode: 'Przełączyć rejestrację na „{mode}”? Wpływa na sposób rejestracji nowych klientów RustDesk.',
ldap_enable_title: 'Włączyć LDAP?',
ldap_enable: 'Włączyć logowanie LDAP / Active Directory? Użytkownicy konsoli mogą uwierzytelniać się w katalogu.',
ldap_save_title: 'Zapisać ustawienia LDAP?',
ldap_save: 'Zapisać konfigurację LDAP? Błędne ustawienia mogą zablokować logowanie przez katalog.',
oidc_enable_title: 'Włączyć SSO?',
oidc_enable: 'Włączyć logowanie OIDC / SSO? Użytkownicy mogą logować się przez dostawcę tożsamości.',
oidc_save_title: 'Zapisać ustawienia SSO?',
oidc_save: 'Zapisać konfigurację OIDC / SSO? Błędne ustawienia mogą zablokować logowanie SSO.',
smtp_save_title: 'Zapisać ustawienia SMTP?',
smtp_save: 'Zapisać konfigurację SMTP? Alerty i powiadomienia będą wysyłane przez ten serwer poczty.',
backup_restore_title: 'Przywrócić kopię zapasową?',
backup_restore: 'Przywrócić z tego pliku kopii? Wybrane dane zostaną zastąpione.',
tutorials_reset_title: 'Resetować samouczki?',
tutorials_reset: 'Resetować postęp wszystkich samouczków? Wskazówki pojawią się ponownie na każdej stronie.',
advanced_save_title: 'Zapisać plik konfiguracji?',
advanced_restart_after_title: 'Zrestartować usługę?',
advanced_restart_title: 'Zrestartować usługę?',
advanced_discard_title: 'Odrzucić zmiany?'
}
},
de: {
ui: {
search_placeholder: 'Einstellungen durchsuchen…',
search_results: '{count} passende Bereiche',
auth_sub_enrollment: 'Registrierung',
auth_sub_ldap: 'LDAP / AD',
auth_sub_oidc: 'OIDC / SSO',
branding_rdclient: 'RdClient',
connection_p2p_hint: 'Zuerst direkte P2P-Verbindung; Relay bei P2P-Fehler.',
connection_relay_hint: 'Gesamten Client-Traffic über den Relay-Server leiten.'
},
confirm: {
connection_mode_title: 'Verbindungsstrategie speichern?',
connection_mode: 'Neue Verbindungsstrategie für RustDesk-Clients anwenden?',
connection_restart_title: 'Speichern und Server neu starten?',
connection_restart: 'Verbindungseinstellungen speichern und BetterDesk-Server neu starten? Aktive Sitzungen können kurz getrennt werden.',
enrollment_mode_title: 'Registrierungsmodus ändern?',
enrollment_mode: 'Registrierung auf „{mode}“ umschalten? Betrifft die Registrierung neuer RustDesk-Clients.',
ldap_enable_title: 'LDAP aktivieren?',
ldap_enable: 'LDAP-/Active-Directory-Anmeldung aktivieren?',
ldap_save_title: 'LDAP-Einstellungen speichern?',
ldap_save: 'LDAP-Konfiguration speichern? Falsche Einstellungen können die Anmeldung blockieren.',
oidc_enable_title: 'SSO aktivieren?',
oidc_enable: 'OIDC-/SSO-Anmeldung aktivieren?',
oidc_save_title: 'SSO-Einstellungen speichern?',
oidc_save: 'OIDC-/SSO-Konfiguration speichern?',
smtp_save_title: 'SMTP-Einstellungen speichern?',
smtp_save: 'SMTP-Konfiguration speichern? Warnungen nutzen diesen Mailserver.',
backup_restore_title: 'Backup wiederherstellen?',
backup_restore: 'Aus dieser Backup-Datei wiederherstellen? Ausgewählte Daten werden überschrieben.',
tutorials_reset_title: 'Tutorials zurücksetzen?',
tutorials_reset: 'Gesamten Tutorial-Fortschritt zurücksetzen?',
advanced_save_title: 'Konfigurationsdatei speichern?',
advanced_restart_after_title: 'Dienst neu starten?',
advanced_restart_title: 'Dienst neu starten?',
advanced_discard_title: 'Änderungen verwerfen?'
}
},
fr: {
ui: {
search_placeholder: 'Rechercher dans les paramètres…',
search_results: '{count} sections correspondantes',
auth_sub_enrollment: 'Enregistrement',
auth_sub_ldap: 'LDAP / AD',
auth_sub_oidc: 'OIDC / SSO',
branding_rdclient: 'RdClient',
connection_p2p_hint: 'Connexion P2P directe en priorité ; relais si P2P échoue.',
connection_relay_hint: 'Tout le trafic client via le serveur relais.'
},
confirm: {
connection_mode_title: 'Enregistrer la stratégie de connexion ?',
connection_mode: 'Appliquer la nouvelle stratégie pour les clients RustDesk ?',
connection_restart_title: 'Enregistrer et redémarrer le serveur ?',
connection_restart: 'Enregistrer et redémarrer le serveur BetterDesk ? Les sessions actives peuvent être coupées brièvement.',
enrollment_mode_title: 'Changer le mode denregistrement ?',
enrollment_mode: 'Passer lenregistrement à « {mode} » ? Cela affecte linscription des nouveaux clients RustDesk.',
ldap_enable_title: 'Activer LDAP ?',
ldap_enable: 'Activer la connexion LDAP / Active Directory ?',
ldap_save_title: 'Enregistrer les paramètres LDAP ?',
ldap_save: 'Enregistrer la configuration LDAP ? Des erreurs peuvent bloquer la connexion.',
oidc_enable_title: 'Activer le SSO ?',
oidc_enable: 'Activer la connexion OIDC / SSO ?',
oidc_save_title: 'Enregistrer les paramètres SSO ?',
oidc_save: 'Enregistrer la configuration OIDC / SSO ?',
smtp_save_title: 'Enregistrer les paramètres SMTP ?',
smtp_save: 'Enregistrer la configuration SMTP ? Les alertes utiliseront ce serveur mail.',
backup_restore_title: 'Restaurer la sauvegarde ?',
backup_restore: 'Restaurer depuis ce fichier ? Les données sélectionnées seront remplacées.',
tutorials_reset_title: 'Réinitialiser les tutoriels ?',
tutorials_reset: 'Réinitialiser la progression de tous les tutoriels ?',
advanced_save_title: 'Enregistrer le fichier de configuration ?',
advanced_restart_after_title: 'Redémarrer le service ?',
advanced_restart_title: 'Redémarrer le service ?',
advanced_discard_title: 'Abandonner les modifications ?'
}
}
};
const files = fs.readdirSync(langDir).filter((f) => f.endsWith('.json') && f !== 'en.json');
for (const file of files) {
const locale = file.replace('.json', '');
const filePath = path.join(langDir, file);
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
if (!data.settings) continue;
const pack = translations[locale] || { ui: ui, confirm: confirm };
data.settings.ui = { ...ui, ...(pack.ui || {}) };
data.settings.confirm = { ...confirm, ...(pack.confirm || {}) };
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', 'utf8');
console.log('Patched', file);
}
console.log('Done.');