Files
BetterDesk/web-nodejs/scripts/patch-public-endpoints-i18n.js
T
UNITRONIX 8579e88be4 Fix split-domain RustDesk client config for dashboard and QR (Fixes #222).
Add PUBLIC_SERVER_ID, PUBLIC_RELAY_SERVER, and PUBLIC_API_URL with Settings UI,
unified endpoint resolution across Dashboard/Keys, and fallbacks via PANEL_PUBLIC_HOST.
2026-06-27 20:45:00 +02:00

585 lines
48 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';
const fs = require('fs');
const path = require('path');
const langDir = path.join(__dirname, '..', 'lang');
const locales = fs.readdirSync(langDir).filter((f) => f.endsWith('.json'));
const dashboardPatches = {
ar: {
client_server_host_hint: 'العنوان الذي يستخدمه عملاء RustDesk للوصول إلى هذا الخادم. غيّره عندما يختلف URL اللوحة عن IP/DNS الموجه للعملاء. للنطاقات المنفصلة، اضبط الإعدادات → نقاط نهاية العملاء العامة.',
client_server_host_env_hint: 'نقاط نهاية ID والترحيل وAPI العامة مُعدّة في الإعدادات → نقاط نهاية العملاء العامة. امسحها هناك لاستخدام هذا التجاوز مجدداً.',
},
cs: {
client_server_host_hint: 'Adresa, kterou klienti RustDesk používají pro přístup k serveru. Změňte ji, když se URL panelu liší od IP/DNS pro klienty. Pro oddělené domény nastavte Nastavení → Veřejné koncové body klientů.',
client_server_host_env_hint: 'Veřejné ID, relay a API jsou nastaveny v Nastavení → Veřejné koncové body klientů. Vymažte je tam, abyste znovu mohli použít toto pole.',
},
da: {
client_server_host_hint: 'Adresse RustDesk-klienter bruger til at nå denne server. Ændr den, når panel-URL adskiller sig fra klientens IP/DNS. For adskilte domæner: Indstillinger → Offentlige klient-endpoints.',
client_server_host_env_hint: 'Offentlige ID-, relay- og API-endpoints er konfigureret under Indstillinger → Offentlige klient-endpoints. Ryd dem der for at bruge denne override igen.',
},
de: {
client_server_host_hint: 'Adresse, die RustDesk-Clients für diesen Server nutzen. Ändern, wenn die Panel-URL von der Client-IP/DNS abweicht. Für getrennte Domains: Einstellungen → Öffentliche Client-Endpunkte.',
client_server_host_env_hint: 'Öffentliche ID-, Relay- und API-Endpunkte sind unter Einstellungen → Öffentliche Client-Endpunkte konfiguriert. Dort leeren, um diese Überschreibung wieder zu nutzen.',
},
es: {
client_server_host_hint: 'Dirección que usan los clientes RustDesk para llegar a este servidor. Cámbiela cuando la URL del panel difiera de la IP/DNS del cliente. Para dominios separados: Ajustes → Endpoints públicos del cliente.',
client_server_host_env_hint: 'Los endpoints públicos de ID, relay y API están en Ajustes → Endpoints públicos del cliente. Bórrelos allí para volver a usar este campo.',
},
fi: {
client_server_host_hint: 'Osoite, jota RustDesk-asiakkaat käyttävät palvelimeen. Muuta, jos paneelin URL poikkeaa asiakkaan IP/DNS:stä. Erillisille domaineille: Asetukset → Julkiset asiakaspäätepisteet.',
client_server_host_env_hint: 'Julkinen ID-, relay- ja API-osoite on Asetukset → Julkiset asiakaspäätepisteet. Tyhjennä ne käyttääksesi tätä kenttää uudelleen.',
},
fr: {
client_server_host_hint: 'Adresse utilisée par les clients RustDesk pour joindre ce serveur. Modifiez-la si lURL du panneau diffère de lIP/DNS client. Domaines séparés : Paramètres → Points de terminaison clients publics.',
client_server_host_env_hint: 'Les points de terminaison publics ID, relais et API sont définis dans Paramètres → Points de terminaison clients publics. Effacez-les pour réutiliser ce champ.',
},
hi: {
client_server_host_hint: 'RustDesk क्लाइंट इस सर्वर तक पहुँचने के लिए जो पता उपयोग करते हैं। पैनल URL अलग हो तो बदलें। अलग डोमेन के लिए: Settings → Public client endpoints।',
client_server_host_env_hint: 'सार्वजनिक ID, relay और API Settings → Public client endpoints में सेट हैं। इस ओवरराइड के लिए वहाँ खाली करें।',
},
hu: {
client_server_host_hint: 'Cím, amit a RustDesk kliensek használnak. Módosítsa, ha a panel URL eltér a kliens IP/DNS-től. Külön domainekhez: Beállítások → Nyilvános kliens végpontok.',
client_server_host_env_hint: 'A nyilvános ID, relay és API a Beállítások → Nyilvános kliens végpontok menüben van. Törölje ott a mezőket az override újbóli használatához.',
},
id: {
client_server_host_hint: 'Alamat yang digunakan klien RustDesk untuk server ini. Ubah jika URL panel berbeda dari IP/DNS klien. Domain terpisah: Pengaturan → Endpoint klien publik.',
client_server_host_env_hint: 'Endpoint ID, relay, dan API publik dikonfigurasi di Pengaturan → Endpoint klien publik. Kosongkan di sana untuk override ini.',
},
it: {
client_server_host_hint: 'Indirizzo usato dai client RustDesk per questo server. Modificalo se lURL del pannello differisce da IP/DNS client. Domini separati: Impostazioni → Endpoint client pubblici.',
client_server_host_env_hint: 'ID, relay e API pubblici sono in Impostazioni → Endpoint client pubblici. Svuota lì per usare di nuovo questo campo.',
},
ja: {
client_server_host_hint: 'RustDesk クライアントがこのサーバーに接続するアドレス。パネル URL とクライアント向け IP/DNS が異なる場合に変更。分割ドメインは 設定 → 公開クライアントエンドポイント。',
client_server_host_env_hint: '公開 ID・リレー・API は 設定 → 公開クライアントエンドポイント で設定されています。クリアするとこの上書きが使えます。',
},
ko: {
client_server_host_hint: 'RustDesk 클라이언트가 이 서버에 접속하는 주소. 패널 URL과 클라이언트 IP/DNS가 다를 때 변경. 분리 도메인: 설정 → 공개 클라이언트 엔드포인트.',
client_server_host_env_hint: '공개 ID, relay, API는 설정 → 공개 클라이언트 엔드포인트에 구성됨. 비우면 이 재정의를 다시 사용.',
},
nb: {
client_server_host_hint: 'Adresse RustDesk-klienter bruker for denne serveren. Endre når panel-URL avviker fra klient-IP/DNS. Separate domener: Innstillinger → Offentlige klient-endepunkter.',
client_server_host_env_hint: 'Offentlige ID-, relay- og API-endepunkter er satt under Innstillinger → Offentlige klient-endepunkter. Tøm der for å bruke denne overstyringen igjen.',
},
nl: {
client_server_host_hint: 'Adres dat RustDesk-clients gebruiken voor deze server. Wijzig wanneer de panel-URL afwijkt van client-IP/DNS. Gescheiden domeinen: Instellingen → Openbare client-eindpunten.',
client_server_host_env_hint: 'Openbare ID-, relay- en API-eindpunten staan in Instellingen → Openbare client-eindpunten. Leeg daar om dit veld weer te gebruiken.',
},
pl: {
client_server_host_hint: 'Adres, pod którym klienci RustDesk łączą się z serwerem. Zmień, gdy URL panelu różni się od IP/DNS klientów. Osobne domeny: Ustawienia → Publiczne endpointy klienta.',
client_server_host_env_hint: 'Publiczne ID, relay i API są w Ustawienia → Publiczne endpointy klienta. Wyczyść tam, aby znów użyć tego pola.',
},
pt: {
client_server_host_hint: 'Endereço que os clientes RustDesk usam para este servidor. Altere quando a URL do painel difere do IP/DNS do cliente. Domínios separados: Definições → Endpoints públicos do cliente.',
client_server_host_env_hint: 'ID, relay e API públicos estão em Definições → Endpoints públicos do cliente. Limpe lá para usar este campo novamente.',
},
ro: {
client_server_host_hint: 'Adresa folosită de clienții RustDesk. Modificați când URL-ul panoului diferă de IP/DNS client. Domenii separate: Setări → Endpoint-uri publice client.',
client_server_host_env_hint: 'ID, relay și API public sunt în Setări → Endpoint-uri publice client. Goliți acolo pentru a folosi din nou acest câmp.',
},
sv: {
client_server_host_hint: 'Adress RustDesk-klienter använder för denna server. Ändra när panel-URL skiljer sig från klient-IP/DNS. Separata domäner: Inställningar → Offentliga klientändpunkter.',
client_server_host_env_hint: 'Offentliga ID-, relay- och API-ändpunkter finns under Inställningar → Offentliga klientändpunkter. Töm där för att använda detta fält igen.',
},
th: {
client_server_host_hint: 'ที่อยู่ที่ไคลเอนต์ RustDesk ใช้เชื่อมต่อเซิร์ฟเวอร์ เปลี่ยนเมื่อ URL แผงต่างจาก IP/DNS ของไคลเอนต์ โดเมนแยก: การตั้งค่า → จุดปลายทางไคลเอนต์สาธารณะ',
client_server_host_env_hint: 'ID, relay และ API สาธารณะตั้งใน การตั้งค่า → จุดปลายทางไคลเอนต์สาธารณะ ล้างที่นั่นเพื่อใช้การแทนที่นี้อีกครั้ง',
},
tr: {
client_server_host_hint: 'RustDesk istemcilerinin bu sunucuya erişmek için kullandığı adres. Panel URLsi farklıysa değiştirin. Ayrı domainler: Ayarlar → Genel istemci uç noktaları.',
client_server_host_env_hint: 'Genel ID, relay ve API Ayarlar → Genel istemci uç noktaları bölümünde. Bu alanı tekrar kullanmak için orayı temizleyin.',
},
uk: {
client_server_host_hint: 'Адреса для клієнтів RustDesk. Змініть, якщо URL панелі відрізняється від IP/DNS клієнтів. Окремі домени: Налаштування → Публічні кінцеві точки клієнта.',
client_server_host_env_hint: 'Публічні ID, relay і API налаштовані в Налаштування → Публічні кінцеві точки клієнта. Очистіть там, щоб знову використати це поле.',
},
vi: {
client_server_host_hint: 'Địa chỉ client RustDesk dùng để kết nối máy chủ. Đổi khi URL bảng điều khiển khác IP/DNS client. Tên miền tách: Cài đặt → Điểm cuối client công khai.',
client_server_host_env_hint: 'ID, relay và API công khai được cấu hình tại Cài đặt → Điểm cuối client công khai. Xóa ở đó để dùng lại trường này.',
},
zh: {
client_server_host_hint: 'RustDesk 客户端连接本服务器使用的地址。当面板 URL 与客户端 IP/DNS 不同时请修改。分离域名请配置:设置 → 公共客户端端点。',
client_server_host_env_hint: '公共 ID、中继和 API 已在 设置 → 公共客户端端点 中配置。清除后可再次使用此覆盖字段。',
},
'zh-TW': {
client_server_host_hint: 'RustDesk 用戶端連線此伺服器使用的位址。面板 URL 與用戶端 IP/DNS 不同時請變更。分離網域:設定 → 公共用戶端端點。',
client_server_host_env_hint: '公共 ID、中繼與 API 已於 設定 → 公共用戶端端點 設定。清除後可再次使用此覆寫欄位。',
},
};
const settingsPatches = {
ar: {
public_endpoints_title: 'نقاط نهاية العملاء العامة',
public_endpoints_desc: 'اسم المضيف وURL API الذي يستخدمه عملاء RustDesk للوصول إلى هذا الخادم. يُستخدم في إعداد العميل في لوحة التحكم ورمز QR وسلاسل النشر.',
public_endpoints_hint: 'اضبطها عندما يختلف اسم مضيف لوحة الويب عن خادم ID أو الترحيل أو API (proxy عكسي / DNS منفصل). اتركها فارغة للاكتشاف التلقائي.',
public_endpoints_server_id: 'خادم ID العام',
public_endpoints_server_id_placeholder: 'مثال remote.example.com',
public_endpoints_relay: 'خادم الترحيل العام',
public_endpoints_relay_placeholder: 'مثال remote.example.com (افتراضي: خادم ID)',
public_endpoints_api_url: 'URL API العام',
public_endpoints_api_url_placeholder: 'مثال https://api.example.com',
public_endpoints_api_url_hint: 'URL كامل لعملاء RustDesk لتسجيل الدخول واستدعاءات API (المنفذ 21114 افتراضياً).',
public_endpoints_save: 'حفظ نقاط النهاية',
public_endpoints_saved: 'تم حفظ نقاط نهاية العملاء العامة',
public_endpoints_invalid_host: 'اسم مضيف ID أو relay غير صالح',
public_endpoints_invalid_api_url: 'URL API غير صالح — استخدم http:// أو https://',
public_endpoints_save_title: 'حفظ نقاط نهاية العملاء العامة؟',
public_endpoints_save_confirm: 'تحديث قيم إعداد عميل RustDesk المستخدمة في لوحة التحكم؟',
},
cs: {
public_endpoints_title: 'Veřejné koncové body klientů',
public_endpoints_desc: 'Hostname a API URL pro klienty RustDesk. Používá se v konfiguraci klienta na dashboardu, QR kódech a deploy řetězcích.',
public_endpoints_hint: 'Nastavte, když se hostname konzole liší od ID/relay/API (reverse proxy / rozdělené DNS). Prázdné = auto-detekce.',
public_endpoints_server_id: 'Veřejný ID server',
public_endpoints_server_id_placeholder: 'např. remote.example.com',
public_endpoints_relay: 'Veřejný relay server',
public_endpoints_relay_placeholder: 'např. remote.example.com (výchozí: ID server)',
public_endpoints_api_url: 'Veřejná API URL',
public_endpoints_api_url_placeholder: 'např. https://api.example.com',
public_endpoints_api_url_hint: 'Plná URL pro přihlášení a API volání RustDesk klientů (výchozí port 21114).',
public_endpoints_save: 'Uložit koncové body',
public_endpoints_saved: 'Veřejné koncové body klientů uloženy',
public_endpoints_invalid_host: 'Neplatný hostname ID nebo relay serveru',
public_endpoints_invalid_api_url: 'Neplatná API URL — použijte http:// nebo https://',
public_endpoints_save_title: 'Uložit veřejné koncové body klientů?',
public_endpoints_save_confirm: 'Aktualizovat hodnoty konfigurace RustDesk klienta na dashboardu?',
},
da: {
public_endpoints_title: 'Offentlige klient-endpoints',
public_endpoints_desc: 'Værtsnavn og API-URL som RustDesk-klienter bruger. Bruges til dashboard-konfiguration, QR-koder og deploy-strenge.',
public_endpoints_hint: 'Angiv når konsolens værtsnavn adskiller sig fra ID/relay/API (reverse proxy / opdelt DNS). Tom = auto-detektion.',
public_endpoints_server_id: 'Offentlig ID-server',
public_endpoints_server_id_placeholder: 'f.eks. remote.example.com',
public_endpoints_relay: 'Offentlig relay-server',
public_endpoints_relay_placeholder: 'f.eks. remote.example.com (standard: ID-server)',
public_endpoints_api_url: 'Offentlig API-URL',
public_endpoints_api_url_placeholder: 'f.eks. https://api.example.com',
public_endpoints_api_url_hint: 'Fuld URL til RustDesk-login og API-kald (standard port 21114).',
public_endpoints_save: 'Gem endpoints',
public_endpoints_saved: 'Offentlige klient-endpoints gemt',
public_endpoints_invalid_host: 'Ugyldigt ID- eller relay-værtsnavn',
public_endpoints_invalid_api_url: 'Ugyldig API-URL — brug http:// eller https://',
public_endpoints_save_title: 'Gem offentlige klient-endpoints?',
public_endpoints_save_confirm: 'Opdatere RustDesk-klientværdier på dashboardet?',
},
de: {
public_endpoints_title: 'Öffentliche Client-Endpunkte',
public_endpoints_desc: 'Hostname und API-URL für RustDesk-Clients. Für Dashboard-Konfiguration, QR-Codes und Deploy-Strings.',
public_endpoints_hint: 'Setzen, wenn Konsolen-Hostname von ID/Relay/API abweicht (Reverse Proxy / getrenntes DNS). Leer = Auto-Erkennung.',
public_endpoints_server_id: 'Öffentlicher ID-Server',
public_endpoints_server_id_placeholder: 'z. B. remote.example.com',
public_endpoints_relay: 'Öffentlicher Relay-Server',
public_endpoints_relay_placeholder: 'z. B. remote.example.com (Standard: ID-Server)',
public_endpoints_api_url: 'Öffentliche API-URL',
public_endpoints_api_url_placeholder: 'z. B. https://api.example.com',
public_endpoints_api_url_hint: 'Vollständige URL für RustDesk-Login und API (Standardport 21114).',
public_endpoints_save: 'Endpunkte speichern',
public_endpoints_saved: 'Öffentliche Client-Endpunkte gespeichert',
public_endpoints_invalid_host: 'Ungültiger ID- oder Relay-Hostname',
public_endpoints_invalid_api_url: 'Ungültige API-URL — http:// oder https:// verwenden',
public_endpoints_save_title: 'Öffentliche Client-Endpunkte speichern?',
public_endpoints_save_confirm: 'RustDesk-Clientwerte auf dem Dashboard aktualisieren?',
},
es: {
public_endpoints_title: 'Endpoints públicos del cliente',
public_endpoints_desc: 'Hostname y URL API que usan los clientes RustDesk. Para configuración del dashboard, códigos QR y cadenas de despliegue.',
public_endpoints_hint: 'Configúrelos cuando el hostname de la consola difiera del ID/relay/API (proxy inverso / DNS separado). Vacío = autodetección.',
public_endpoints_server_id: 'Servidor ID público',
public_endpoints_server_id_placeholder: 'p. ej. remote.example.com',
public_endpoints_relay: 'Servidor relay público',
public_endpoints_relay_placeholder: 'p. ej. remote.example.com (predeterminado: ID)',
public_endpoints_api_url: 'URL API pública',
public_endpoints_api_url_placeholder: 'p. ej. https://api.example.com',
public_endpoints_api_url_hint: 'URL completa para login y API de RustDesk (puerto 21114 por defecto).',
public_endpoints_save: 'Guardar endpoints',
public_endpoints_saved: 'Endpoints públicos del cliente guardados',
public_endpoints_invalid_host: 'Hostname ID o relay no válido',
public_endpoints_invalid_api_url: 'URL API no válida — use http:// o https://',
public_endpoints_save_title: '¿Guardar endpoints públicos del cliente?',
public_endpoints_save_confirm: '¿Actualizar valores de configuración RustDesk en el dashboard?',
},
fi: {
public_endpoints_title: 'Julkiset asiakaspäätepisteet',
public_endpoints_desc: 'Isäntänimi ja API-URL, joita RustDesk-asiakkaat käyttävät. Dashboard-konfiguraatio, QR-koodit ja deploy-merkkijonot.',
public_endpoints_hint: 'Aseta, kun konsolin isäntänimi poikkeaa ID/relay/API:sta (käänteinen välityspalvelin / erillinen DNS). Tyhjä = automaattinen.',
public_endpoints_server_id: 'Julkinen ID-palvelin',
public_endpoints_server_id_placeholder: 'esim. remote.example.com',
public_endpoints_relay: 'Julkinen relay-palvelin',
public_endpoints_relay_placeholder: 'esim. remote.example.com (oletus: ID-palvelin)',
public_endpoints_api_url: 'Julkinen API-URL',
public_endpoints_api_url_placeholder: 'esim. https://api.example.com',
public_endpoints_api_url_hint: 'Täysi URL RustDesk-kirjautumiseen ja API-kutsuihin (oletusportti 21114).',
public_endpoints_save: 'Tallenna päätepisteet',
public_endpoints_saved: 'Julkiset asiakaspäätepisteet tallennettu',
public_endpoints_invalid_host: 'Virheellinen ID- tai relay-isäntänimi',
public_endpoints_invalid_api_url: 'Virheellinen API-URL — käytä http:// tai https://',
public_endpoints_save_title: 'Tallenna julkiset asiakaspäätepisteet?',
public_endpoints_save_confirm: 'Päivitä RustDesk-asiakasarvot dashboardilla?',
},
fr: {
public_endpoints_title: 'Points de terminaison clients publics',
public_endpoints_desc: 'Nom dhôte et URL API utilisés par les clients RustDesk. Configuration du tableau de bord, QR et chaînes de déploiement.',
public_endpoints_hint: 'À définir quand lhôte de la console diffère de lID/relai/API (proxy inverse / DNS séparé). Vide = détection auto.',
public_endpoints_server_id: 'Serveur ID public',
public_endpoints_server_id_placeholder: 'ex. remote.example.com',
public_endpoints_relay: 'Serveur relais public',
public_endpoints_relay_placeholder: 'ex. remote.example.com (par défaut : serveur ID)',
public_endpoints_api_url: 'URL API publique',
public_endpoints_api_url_placeholder: 'ex. https://api.example.com',
public_endpoints_api_url_hint: 'URL complète pour connexion et API RustDesk (port 21114 par défaut).',
public_endpoints_save: 'Enregistrer les points de terminaison',
public_endpoints_saved: 'Points de terminaison clients publics enregistrés',
public_endpoints_invalid_host: 'Nom dhôte ID ou relais invalide',
public_endpoints_invalid_api_url: 'URL API invalide — utilisez http:// ou https://',
public_endpoints_save_title: 'Enregistrer les points de terminaison publics ?',
public_endpoints_save_confirm: 'Mettre à jour la configuration client RustDesk du tableau de bord ?',
},
hi: {
public_endpoints_title: 'सार्वजनिक क्लाइंट एंडपॉइंट',
public_endpoints_desc: 'RustDesk क्लाइंट द्वारा उपयोग किया जाने वाला होस्टनाम और API URL। डैशबोर्ड, QR और deploy स्ट्रिंग के लिए।',
public_endpoints_hint: 'जब कंसोल होस्टनाम ID/relay/API से अलग हो (रिवर्स प्रॉक्सी)। खाली = ऑटो-डिटेक्ट।',
public_endpoints_server_id: 'सार्वजनिक ID सर्वर',
public_endpoints_server_id_placeholder: 'जैसे remote.example.com',
public_endpoints_relay: 'सार्वजनिक relay सर्वर',
public_endpoints_relay_placeholder: 'जैसे remote.example.com (डिफ़ॉल्ट: ID)',
public_endpoints_api_url: 'सार्वजनिक API URL',
public_endpoints_api_url_placeholder: 'जैसे https://api.example.com',
public_endpoints_api_url_hint: 'RustDesk लॉगिन/API के लिए पूर्ण URL (डिफ़ॉल्ट पोर्ट 21114)।',
public_endpoints_save: 'एंडपॉइंट सहेजें',
public_endpoints_saved: 'सार्वजनिक क्लाइंट एंडपॉइंट सहेजे गए',
public_endpoints_invalid_host: 'अमान्य ID या relay होस्टनाम',
public_endpoints_invalid_api_url: 'अमान्य API URL — http:// या https://',
public_endpoints_save_title: 'सार्वजनिक क्लाइंट एंडपॉइंट सहेजें?',
public_endpoints_save_confirm: 'डैशबोर्ड RustDesk कॉन्फ़िग अपडेट करें?',
},
hu: {
public_endpoints_title: 'Nyilvános kliens végpontok',
public_endpoints_desc: 'A RustDesk kliensek által használt hostname és API URL. Dashboard, QR és deploy stringekhez.',
public_endpoints_hint: 'Állítsa be, ha a konzol hostname eltér az ID/relay/API-tól (reverse proxy / külön DNS). Üres = automatikus.',
public_endpoints_server_id: 'Nyilvános ID szerver',
public_endpoints_server_id_placeholder: 'pl. remote.example.com',
public_endpoints_relay: 'Nyilvános relay szerver',
public_endpoints_relay_placeholder: 'pl. remote.example.com (alapértelmezett: ID)',
public_endpoints_api_url: 'Nyilvános API URL',
public_endpoints_api_url_placeholder: 'pl. https://api.example.com',
public_endpoints_api_url_hint: 'Teljes URL RustDesk bejelentkezéshez és API-hoz (alap port 21114).',
public_endpoints_save: 'Végpontok mentése',
public_endpoints_saved: 'Nyilvános kliens végpontok mentve',
public_endpoints_invalid_host: 'Érvénytelen ID vagy relay hostname',
public_endpoints_invalid_api_url: 'Érvénytelen API URL — http:// vagy https://',
public_endpoints_save_title: 'Nyilvános kliens végpontok mentése?',
public_endpoints_save_confirm: 'Frissíti a dashboard RustDesk beállításait?',
},
id: {
public_endpoints_title: 'Endpoint klien publik',
public_endpoints_desc: 'Hostname dan URL API untuk klien RustDesk. Digunakan di konfigurasi dashboard, QR, dan deploy string.',
public_endpoints_hint: 'Atur jika hostname konsol berbeda dari ID/relay/API (reverse proxy / DNS terpisah). Kosong = deteksi otomatis.',
public_endpoints_server_id: 'Server ID publik',
public_endpoints_server_id_placeholder: 'mis. remote.example.com',
public_endpoints_relay: 'Server relay publik',
public_endpoints_relay_placeholder: 'mis. remote.example.com (default: ID)',
public_endpoints_api_url: 'URL API publik',
public_endpoints_api_url_placeholder: 'mis. https://api.example.com',
public_endpoints_api_url_hint: 'URL lengkap untuk login dan API RustDesk (port default 21114).',
public_endpoints_save: 'Simpan endpoint',
public_endpoints_saved: 'Endpoint klien publik disimpan',
public_endpoints_invalid_host: 'Hostname ID atau relay tidak valid',
public_endpoints_invalid_api_url: 'URL API tidak valid — gunakan http:// atau https://',
public_endpoints_save_title: 'Simpan endpoint klien publik?',
public_endpoints_save_confirm: 'Perbarui konfigurasi klien RustDesk di dashboard?',
},
it: {
public_endpoints_title: 'Endpoint client pubblici',
public_endpoints_desc: 'Hostname e URL API usati dai client RustDesk. Configurazione dashboard, QR e stringhe deploy.',
public_endpoints_hint: 'Imposta quando lhostname della console differisce da ID/relay/API (reverse proxy / DNS separato). Vuoto = auto.',
public_endpoints_server_id: 'Server ID pubblico',
public_endpoints_server_id_placeholder: 'es. remote.example.com',
public_endpoints_relay: 'Server relay pubblico',
public_endpoints_relay_placeholder: 'es. remote.example.com (predefinito: ID)',
public_endpoints_api_url: 'URL API pubblica',
public_endpoints_api_url_placeholder: 'es. https://api.example.com',
public_endpoints_api_url_hint: 'URL completa per login e API RustDesk (porta 21114 predefinita).',
public_endpoints_save: 'Salva endpoint',
public_endpoints_saved: 'Endpoint client pubblici salvati',
public_endpoints_invalid_host: 'Hostname ID o relay non valido',
public_endpoints_invalid_api_url: 'URL API non valida — usare http:// o https://',
public_endpoints_save_title: 'Salvare gli endpoint client pubblici?',
public_endpoints_save_confirm: 'Aggiornare la configurazione client RustDesk nel dashboard?',
},
ja: {
public_endpoints_title: '公開クライアントエンドポイント',
public_endpoints_desc: 'RustDesk クライアントが使用するホスト名と API URL。ダッシュボード設定、QR、デプロイ文字列に使用。',
public_endpoints_hint: 'コンソールのホスト名が ID/リレー/API と異なる場合に設定(リバースプロキシ / 分割 DNS)。空欄は自動検出。',
public_endpoints_server_id: '公開 ID サーバー',
public_endpoints_server_id_placeholder: '例 remote.example.com',
public_endpoints_relay: '公開リレーサーバー',
public_endpoints_relay_placeholder: '例 remote.example.com(既定: ID サーバー)',
public_endpoints_api_url: '公開 API URL',
public_endpoints_api_url_placeholder: '例 https://api.example.com',
public_endpoints_api_url_hint: 'RustDesk ログイン/API 用の完全 URL(既定ポート 21114)。',
public_endpoints_save: 'エンドポイントを保存',
public_endpoints_saved: '公開クライアントエンドポイントを保存しました',
public_endpoints_invalid_host: 'ID またはリレーのホスト名が無効です',
public_endpoints_invalid_api_url: 'API URL が無効 — http:// または https:// を使用',
public_endpoints_save_title: '公開クライアントエンドポイントを保存しますか?',
public_endpoints_save_confirm: 'ダッシュボードの RustDesk 設定値を更新しますか?',
},
ko: {
public_endpoints_title: '공개 클라이언트 엔드포인트',
public_endpoints_desc: 'RustDesk 클라이언트가 사용하는 호스트명과 API URL. 대시보드 설정, QR, 배포 문자열에 사용.',
public_endpoints_hint: '콘솔 호스트명이 ID/relay/API와 다를 때 설정(리버스 프록시/분리 DNS). 비우면 자동 감지.',
public_endpoints_server_id: '공개 ID 서버',
public_endpoints_server_id_placeholder: '예: remote.example.com',
public_endpoints_relay: '공개 relay 서버',
public_endpoints_relay_placeholder: '예: remote.example.com(기본: ID 서버)',
public_endpoints_api_url: '공개 API URL',
public_endpoints_api_url_placeholder: '예: https://api.example.com',
public_endpoints_api_url_hint: 'RustDesk 로그인/API용 전체 URL(기본 포트 21114).',
public_endpoints_save: '엔드포인트 저장',
public_endpoints_saved: '공개 클라이언트 엔드포인트 저장됨',
public_endpoints_invalid_host: 'ID 또는 relay 호스트명이 잘못됨',
public_endpoints_invalid_api_url: 'API URL이 잘못됨 — http:// 또는 https:// 사용',
public_endpoints_save_title: '공개 클라이언트 엔드포인트를 저장할까요?',
public_endpoints_save_confirm: '대시보드 RustDesk 설정 값을 업데이트할까요?',
},
nb: {
public_endpoints_title: 'Offentlige klient-endepunkter',
public_endpoints_desc: 'Vertsnavn og API-URL RustDesk-klienter bruker. Dashboard-konfig, QR og deploy-strenger.',
public_endpoints_hint: 'Sett når konsollvertsnavn skiller seg fra ID/relay/API (reverse proxy / delt DNS). Tom = auto.',
public_endpoints_server_id: 'Offentlig ID-server',
public_endpoints_server_id_placeholder: 'f.eks. remote.example.com',
public_endpoints_relay: 'Offentlig relay-server',
public_endpoints_relay_placeholder: 'f.eks. remote.example.com (standard: ID)',
public_endpoints_api_url: 'Offentlig API-URL',
public_endpoints_api_url_placeholder: 'f.eks. https://api.example.com',
public_endpoints_api_url_hint: 'Full URL for RustDesk-innlogging og API (standard port 21114).',
public_endpoints_save: 'Lagre endepunkter',
public_endpoints_saved: 'Offentlige klient-endepunkter lagret',
public_endpoints_invalid_host: 'Ugyldig ID- eller relay-vertsnavn',
public_endpoints_invalid_api_url: 'Ugyldig API-URL — bruk http:// eller https://',
public_endpoints_save_title: 'Lagre offentlige klient-endepunkter?',
public_endpoints_save_confirm: 'Oppdatere RustDesk-klientverdier på dashboardet?',
},
nl: {
public_endpoints_title: 'Openbare client-eindpunten',
public_endpoints_desc: 'Hostnaam en API-URL voor RustDesk-clients. Dashboard-config, QR-codes en deploy-strings.',
public_endpoints_hint: 'Instellen wanneer console-hostnaam afwijkt van ID/relay/API (reverse proxy / gesplitst DNS). Leeg = auto.',
public_endpoints_server_id: 'Openbare ID-server',
public_endpoints_server_id_placeholder: 'bijv. remote.example.com',
public_endpoints_relay: 'Openbare relay-server',
public_endpoints_relay_placeholder: 'bijv. remote.example.com (standaard: ID)',
public_endpoints_api_url: 'Openbare API-URL',
public_endpoints_api_url_placeholder: 'bijv. https://api.example.com',
public_endpoints_api_url_hint: 'Volledige URL voor RustDesk-login en API (standaard poort 21114).',
public_endpoints_save: 'Eindpunten opslaan',
public_endpoints_saved: 'Openbare client-eindpunten opgeslagen',
public_endpoints_invalid_host: 'Ongeldige ID- of relay-hostnaam',
public_endpoints_invalid_api_url: 'Ongeldige API-URL — gebruik http:// of https://',
public_endpoints_save_title: 'Openbare client-eindpunten opslaan?',
public_endpoints_save_confirm: 'RustDesk-clientwaarden op het dashboard bijwerken?',
},
pl: {
public_endpoints_title: 'Publiczne endpointy klienta',
public_endpoints_desc: 'Hostname i URL API używane przez klientów RustDesk. Konfiguracja na pulpicie, kody QR i deploy string.',
public_endpoints_hint: 'Ustaw, gdy hostname konsoli różni się od ID/relay/API (reverse proxy / osobne DNS). Puste = auto-wykrywanie.',
public_endpoints_server_id: 'Publiczny serwer ID',
public_endpoints_server_id_placeholder: 'np. remote.example.com',
public_endpoints_relay: 'Publiczny serwer relay',
public_endpoints_relay_placeholder: 'np. remote.example.com (domyślnie: serwer ID)',
public_endpoints_api_url: 'Publiczny URL API',
public_endpoints_api_url_placeholder: 'np. https://api.example.com',
public_endpoints_api_url_hint: 'Pełny URL logowania i API RustDesk (domyślnie port 21114).',
public_endpoints_save: 'Zapisz endpointy',
public_endpoints_saved: 'Publiczne endpointy klienta zapisane',
public_endpoints_invalid_host: 'Nieprawidłowy hostname ID lub relay',
public_endpoints_invalid_api_url: 'Nieprawidłowy URL API — użyj http:// lub https://',
public_endpoints_save_title: 'Zapisać publiczne endpointy klienta?',
public_endpoints_save_confirm: 'Zaktualizować konfigurację klienta RustDesk na pulpicie?',
},
pt: {
public_endpoints_title: 'Endpoints públicos do cliente',
public_endpoints_desc: 'Hostname e URL API usados pelos clientes RustDesk. Configuração do dashboard, QR e strings de deploy.',
public_endpoints_hint: 'Defina quando o hostname da consola difere do ID/relay/API (proxy inverso / DNS separado). Vazio = auto.',
public_endpoints_server_id: 'Servidor ID público',
public_endpoints_server_id_placeholder: 'ex. remote.example.com',
public_endpoints_relay: 'Servidor relay público',
public_endpoints_relay_placeholder: 'ex. remote.example.com (predef.: ID)',
public_endpoints_api_url: 'URL API pública',
public_endpoints_api_url_placeholder: 'ex. https://api.example.com',
public_endpoints_api_url_hint: 'URL completa para login e API RustDesk (porta 21114 por defeito).',
public_endpoints_save: 'Guardar endpoints',
public_endpoints_saved: 'Endpoints públicos do cliente guardados',
public_endpoints_invalid_host: 'Hostname ID ou relay inválido',
public_endpoints_invalid_api_url: 'URL API inválida — use http:// ou https://',
public_endpoints_save_title: 'Guardar endpoints públicos do cliente?',
public_endpoints_save_confirm: 'Atualizar configuração RustDesk no dashboard?',
},
ro: {
public_endpoints_title: 'Endpoint-uri publice client',
public_endpoints_desc: 'Hostname și URL API folosite de clienții RustDesk. Configurare dashboard, QR și șiruri deploy.',
public_endpoints_hint: 'Setați când hostname-ul consolei diferă de ID/relay/API (proxy invers / DNS separat). Gol = auto.',
public_endpoints_server_id: 'Server ID public',
public_endpoints_server_id_placeholder: 'ex. remote.example.com',
public_endpoints_relay: 'Server relay public',
public_endpoints_relay_placeholder: 'ex. remote.example.com (implicit: ID)',
public_endpoints_api_url: 'URL API public',
public_endpoints_api_url_placeholder: 'ex. https://api.example.com',
public_endpoints_api_url_hint: 'URL complet pentru login și API RustDesk (port implicit 21114).',
public_endpoints_save: 'Salvează endpoint-urile',
public_endpoints_saved: 'Endpoint-uri publice client salvate',
public_endpoints_invalid_host: 'Hostname ID sau relay invalid',
public_endpoints_invalid_api_url: 'URL API invalid — folosiți http:// sau https://',
public_endpoints_save_title: 'Salvați endpoint-urile publice client?',
public_endpoints_save_confirm: 'Actualizați configurația client RustDesk pe dashboard?',
},
sv: {
public_endpoints_title: 'Offentliga klientändpunkter',
public_endpoints_desc: 'Värdnamn och API-URL som RustDesk-klienter använder. Dashboard-konfig, QR och deploy-strängar.',
public_endpoints_hint: 'Ange när konsolens värdnamn skiljer sig från ID/relay/API (reverse proxy / separat DNS). Tomt = auto.',
public_endpoints_server_id: 'Offentlig ID-server',
public_endpoints_server_id_placeholder: 't.ex. remote.example.com',
public_endpoints_relay: 'Offentlig relay-server',
public_endpoints_relay_placeholder: 't.ex. remote.example.com (standard: ID)',
public_endpoints_api_url: 'Offentlig API-URL',
public_endpoints_api_url_placeholder: 't.ex. https://api.example.com',
public_endpoints_api_url_hint: 'Fullständig URL för RustDesk-inloggning och API (standardport 21114).',
public_endpoints_save: 'Spara ändpunkter',
public_endpoints_saved: 'Offentliga klientändpunkter sparade',
public_endpoints_invalid_host: 'Ogiltigt ID- eller relay-värdnamn',
public_endpoints_invalid_api_url: 'Ogiltig API-URL — använd http:// eller https://',
public_endpoints_save_title: 'Spara offentliga klientändpunkter?',
public_endpoints_save_confirm: 'Uppdatera RustDesk-klientvärden på dashboarden?',
},
th: {
public_endpoints_title: 'จุดปลายทางไคลเอนต์สาธารณะ',
public_endpoints_desc: 'ชื่อโฮสต์และ URL API ที่ไคลเอนต์ RustDesk ใช้ สำหรับการตั้งค่าแดชบอร์ด QR และ deploy string',
public_endpoints_hint: 'ตั้งเมื่อชื่อโฮสต์คอนโซลต่างจาก ID/relay/API (reverse proxy / DNS แยก) ว่าง = ตรวจจับอัตโนมัติ',
public_endpoints_server_id: 'เซิร์ฟเวอร์ ID สาธารณะ',
public_endpoints_server_id_placeholder: 'เช่น remote.example.com',
public_endpoints_relay: 'เซิร์ฟเวอร์ relay สาธารณะ',
public_endpoints_relay_placeholder: 'เช่น remote.example.com (ค่าเริ่มต้น: ID)',
public_endpoints_api_url: 'URL API สาธารณะ',
public_endpoints_api_url_placeholder: 'เช่น https://api.example.com',
public_endpoints_api_url_hint: 'URL เต็มสำหรับล็อกอินและ API ของ RustDesk (พอร์ตเริ่มต้น 21114)',
public_endpoints_save: 'บันทึกจุดปลายทาง',
public_endpoints_saved: 'บันทึกจุดปลายทางไคลเอนต์สาธารณะแล้ว',
public_endpoints_invalid_host: 'ชื่อโฮสต์ ID หรือ relay ไม่ถูกต้อง',
public_endpoints_invalid_api_url: 'URL API ไม่ถูกต้อง — ใช้ http:// หรือ https://',
public_endpoints_save_title: 'บันทึกจุดปลายทางไคลเอนต์สาธารณะ?',
public_endpoints_save_confirm: 'อัปเดตค่าการตั้งค่า RustDesk บนแดชบอร์ด?',
},
tr: {
public_endpoints_title: 'Genel istemci uç noktaları',
public_endpoints_desc: 'RustDesk istemcilerinin kullandığı hostname ve API URL. Dashboard yapılandırması, QR ve deploy dizeleri.',
public_endpoints_hint: 'Konsol hostname ID/relay/API\'den farklıysa ayarlayın (ters vekil / ayrı DNS). Boş = otomatik.',
public_endpoints_server_id: 'Genel ID sunucusu',
public_endpoints_server_id_placeholder: 'örn. remote.example.com',
public_endpoints_relay: 'Genel relay sunucusu',
public_endpoints_relay_placeholder: 'örn. remote.example.com (varsayılan: ID)',
public_endpoints_api_url: 'Genel API URL',
public_endpoints_api_url_placeholder: 'örn. https://api.example.com',
public_endpoints_api_url_hint: 'RustDesk giriş/API için tam URL (varsayılan port 21114).',
public_endpoints_save: 'Uç noktaları kaydet',
public_endpoints_saved: 'Genel istemci uç noktaları kaydedildi',
public_endpoints_invalid_host: 'Geçersiz ID veya relay hostname',
public_endpoints_invalid_api_url: 'Geçersiz API URL — http:// veya https:// kullanın',
public_endpoints_save_title: 'Genel istemci uç noktaları kaydedilsin mi?',
public_endpoints_save_confirm: 'Dashboard RustDesk yapılandırma değerleri güncellensin mi?',
},
uk: {
public_endpoints_title: 'Публічні кінцеві точки клієнта',
public_endpoints_desc: 'Ім’я хоста та URL API для клієнтів RustDesk. Конфігурація панелі, QR і deploy-рядки.',
public_endpoints_hint: 'Встановіть, якщо хост консолі відрізняється від ID/relay/API (reverse proxy / окремий DNS). Порожньо = авто.',
public_endpoints_server_id: 'Публічний ID-сервер',
public_endpoints_server_id_placeholder: 'напр. remote.example.com',
public_endpoints_relay: 'Публічний relay-сервер',
public_endpoints_relay_placeholder: 'напр. remote.example.com (за замовч.: ID)',
public_endpoints_api_url: 'Публічний URL API',
public_endpoints_api_url_placeholder: 'напр. https://api.example.com',
public_endpoints_api_url_hint: 'Повний URL для входу та API RustDesk (порт за замовч. 21114).',
public_endpoints_save: 'Зберегти кінцеві точки',
public_endpoints_saved: 'Публічні кінцеві точки клієнта збережено',
public_endpoints_invalid_host: 'Недійсне ім’я хоста ID або relay',
public_endpoints_invalid_api_url: 'Недійсний URL API — використовуйте http:// або https://',
public_endpoints_save_title: 'Зберегти публічні кінцеві точки клієнта?',
public_endpoints_save_confirm: 'Оновити конфігурацію RustDesk на панелі?',
},
vi: {
public_endpoints_title: 'Điểm cuối client công khai',
public_endpoints_desc: 'Hostname và URL API mà client RustDesk dùng. Cấu hình dashboard, QR và chuỗi deploy.',
public_endpoints_hint: 'Đặt khi hostname console khác ID/relay/API (reverse proxy / DNS tách). Trống = tự động.',
public_endpoints_server_id: 'Máy chủ ID công khai',
public_endpoints_server_id_placeholder: 'vd. remote.example.com',
public_endpoints_relay: 'Máy chủ relay công khai',
public_endpoints_relay_placeholder: 'vd. remote.example.com (mặc định: ID)',
public_endpoints_api_url: 'URL API công khai',
public_endpoints_api_url_placeholder: 'vd. https://api.example.com',
public_endpoints_api_url_hint: 'URL đầy đủ cho đăng nhập và API RustDesk (cổng mặc định 21114).',
public_endpoints_save: 'Lưu điểm cuối',
public_endpoints_saved: 'Đã lưu điểm cuối client công khai',
public_endpoints_invalid_host: 'Hostname ID hoặc relay không hợp lệ',
public_endpoints_invalid_api_url: 'URL API không hợp lệ — dùng http:// hoặc https://',
public_endpoints_save_title: 'Lưu điểm cuối client công khai?',
public_endpoints_save_confirm: 'Cập nhật cấu hình client RustDesk trên dashboard?',
},
zh: {
public_endpoints_title: '公共客户端端点',
public_endpoints_desc: 'RustDesk 客户端使用的 hostname 和 API URL。用于仪表板配置、二维码和部署字符串。',
public_endpoints_hint: '当控制台 hostname 与 ID/中继/API 不同时设置(反向代理/分离 DNS)。留空则自动检测。',
public_endpoints_server_id: '公共 ID 服务器',
public_endpoints_server_id_placeholder: '例如 remote.example.com',
public_endpoints_relay: '公共中继服务器',
public_endpoints_relay_placeholder: '例如 remote.example.com(默认:ID 服务器)',
public_endpoints_api_url: '公共 API URL',
public_endpoints_api_url_placeholder: '例如 https://api.example.com',
public_endpoints_api_url_hint: 'RustDesk 登录/API 的完整 URL(默认端口 21114)。',
public_endpoints_save: '保存端点',
public_endpoints_saved: '已保存公共客户端端点',
public_endpoints_invalid_host: 'ID 或中继服务器 hostname 无效',
public_endpoints_invalid_api_url: 'API URL 无效 — 请使用 http:// 或 https://',
public_endpoints_save_title: '保存公共客户端端点?',
public_endpoints_save_confirm: '更新仪表板上的 RustDesk 客户端配置值?',
},
'zh-TW': {
public_endpoints_title: '公共用戶端端點',
public_endpoints_desc: 'RustDesk 用戶端使用的 hostname 與 API URL。用於儀表板設定、QR 與部署字串。',
public_endpoints_hint: '當控制台 hostname 與 ID/中繼/API 不同時設定(反向代理/分離 DNS)。留空則自動偵測。',
public_endpoints_server_id: '公共 ID 伺服器',
public_endpoints_server_id_placeholder: '例如 remote.example.com',
public_endpoints_relay: '公共中繼伺服器',
public_endpoints_relay_placeholder: '例如 remote.example.com(預設:ID 伺服器)',
public_endpoints_api_url: '公共 API URL',
public_endpoints_api_url_placeholder: '例如 https://api.example.com',
public_endpoints_api_url_hint: 'RustDesk 登入/API 的完整 URL(預設連接埠 21114)。',
public_endpoints_save: '儲存端點',
public_endpoints_saved: '已儲存公共用戶端端點',
public_endpoints_invalid_host: 'ID 或中繼伺服器 hostname 無效',
public_endpoints_invalid_api_url: 'API URL 無效 — 請使用 http:// 或 https://',
public_endpoints_save_title: '儲存公共用戶端端點?',
public_endpoints_save_confirm: '更新儀表板上的 RustDesk 用戶端設定值?',
},
};
for (const file of locales) {
const locale = file.replace('.json', '');
const filePath = path.join(langDir, file);
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
if (locale !== 'en') {
const dashPatch = dashboardPatches[locale];
if (dashPatch && data.dashboard) {
Object.assign(data.dashboard, dashPatch);
}
const settingsPatch = settingsPatches[locale];
if (settingsPatch && data.settings) {
Object.assign(data.settings, settingsPatch);
}
}
fs.writeFileSync(filePath, `${JSON.stringify(data, null, 2)}\n`, 'utf8');
console.log('patched', file);
}