feat(xray/dns): align DNS settings with Xray docs + UI polish
- DNS server modal: rename expectIPs -> expectedIPs (per docs); add per-server tag, clientIP, serveStale, serveExpiredTTL, timeoutMs; flip skipFallback default to false; hydration still accepts legacy expectIPs for back-compat. - DNS tab: add hosts editor (domain -> IP/array), serveStale + serveExpiredTTL controls, "Use Preset" button bringing back the legacy preset gallery (Google / Cloudflare / AdGuard + Family variants — fixed AdGuard Family IPs that were wrong in legacy), and a "Delete All" button to wipe the server list at once. - i18n: add 15 new dns.* keys across all 13 locales. - Frontend-wide formatter pass on Vue components (whitespace and attribute layout only, no behavior changes). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "استخدام ملف hosts من نظام مثبت",
|
||||
"usePreset": "استخدام النموذج",
|
||||
"dnsPresetTitle": "قوالب DNS",
|
||||
"dnsPresetFamily": "العائلي"
|
||||
"dnsPresetFamily": "العائلي",
|
||||
"serveStale": "تقديم النتائج المنتهية",
|
||||
"serveStaleDesc": "إرجاع نتائج الكاش المنتهية الصلاحية أثناء التحديث في الخلفية",
|
||||
"serveExpiredTTL": "مدة صلاحية النتائج المنتهية",
|
||||
"serveExpiredTTLDesc": "مدة صلاحية إدخالات الكاش المنتهية بالثواني؛ 0 = لا تنتهي أبدًا",
|
||||
"timeoutMs": "المهلة (مللي ثانية)",
|
||||
"skipFallback": "تخطي الاحتياطي",
|
||||
"finalQuery": "الاستعلام النهائي",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "إضافة Host",
|
||||
"hostsEmpty": "لم يتم تعريف أي Host",
|
||||
"hostsDomain": "النطاق (مثل domain:example.com)",
|
||||
"hostsValues": "عنوان IP أو نطاق — اكتب واضغط Enter",
|
||||
"clearAll": "حذف الكل",
|
||||
"clearAllTitle": "حذف جميع خوادم DNS؟",
|
||||
"clearAllConfirm": "سيؤدي هذا إلى إزالة جميع خوادم DNS من القائمة. لا يمكن التراجع عن هذا الإجراء."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "أضف Fake DNS",
|
||||
|
||||
@@ -752,9 +752,24 @@
|
||||
"unexpectIPs": "Unexpect IPs",
|
||||
"useSystemHosts": "Use System Hosts",
|
||||
"useSystemHostsDesc": "Use the hosts file from an installed system",
|
||||
"serveStale": "Serve Stale",
|
||||
"serveStaleDesc": "Return expired cached results while refreshing in the background",
|
||||
"serveExpiredTTL": "Serve Expired TTL",
|
||||
"serveExpiredTTLDesc": "Validity (seconds) of stale cache entries; 0 = never expire",
|
||||
"timeoutMs": "Timeout (ms)",
|
||||
"skipFallback": "Skip Fallback",
|
||||
"finalQuery": "Final Query",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Add Host",
|
||||
"hostsEmpty": "No host overrides defined",
|
||||
"hostsDomain": "Domain (e.g. domain:example.com)",
|
||||
"hostsValues": "IP or domain — type and press Enter",
|
||||
"usePreset": "Use Preset",
|
||||
"dnsPresetTitle": "DNS Presets",
|
||||
"dnsPresetFamily": "Family"
|
||||
"dnsPresetFamily": "Family",
|
||||
"clearAll": "Delete All",
|
||||
"clearAllTitle": "Delete all DNS servers?",
|
||||
"clearAllConfirm": "This removes every DNS server from the list. This cannot be undone."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Add Fake DNS",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "Usar el archivo hosts de un sistema instalado",
|
||||
"usePreset": "Usar plantilla",
|
||||
"dnsPresetTitle": "Plantillas DNS",
|
||||
"dnsPresetFamily": "Familiar"
|
||||
"dnsPresetFamily": "Familiar",
|
||||
"serveStale": "Servir caducados",
|
||||
"serveStaleDesc": "Devolver resultados caducados de la caché mientras se actualiza en segundo plano",
|
||||
"serveExpiredTTL": "TTL de caducados",
|
||||
"serveExpiredTTLDesc": "Validez (segundos) de las entradas caducadas en la caché; 0 = nunca caduca",
|
||||
"timeoutMs": "Tiempo de espera (ms)",
|
||||
"skipFallback": "Omitir respaldo",
|
||||
"finalQuery": "Consulta final",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Agregar Host",
|
||||
"hostsEmpty": "No hay Hosts definidos",
|
||||
"hostsDomain": "Dominio (ej. domain:example.com)",
|
||||
"hostsValues": "IP o dominio — escribe y presiona Enter",
|
||||
"clearAll": "Eliminar todos",
|
||||
"clearAllTitle": "¿Eliminar todos los servidores DNS?",
|
||||
"clearAllConfirm": "Esto eliminará todos los servidores DNS de la lista. No se puede deshacer."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Agregar DNS Falso",
|
||||
|
||||
@@ -752,9 +752,24 @@
|
||||
"unexpectIPs": "آیپیهای غیرمنتظره",
|
||||
"useSystemHosts": "استفاده از Hosts سیستم",
|
||||
"useSystemHostsDesc": "استفاده از فایل hosts یک سیستم نصبشده",
|
||||
"serveStale": "ارائه نتایج منقضی",
|
||||
"serveStaleDesc": "بازگرداندن نتایج منقضی کش هنگام بروزرسانی در پسزمینه",
|
||||
"serveExpiredTTL": "TTL نتایج منقضی",
|
||||
"serveExpiredTTLDesc": "مدت اعتبار نتایج منقضی به ثانیه؛ ۰ یعنی هرگز منقضی نمیشود",
|
||||
"timeoutMs": "زمان انتظار (میلیثانیه)",
|
||||
"skipFallback": "رد کردن Fallback",
|
||||
"finalQuery": "پرسوجوی نهایی",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "افزودن Host",
|
||||
"hostsEmpty": "هیچ Host تعریف نشده",
|
||||
"hostsDomain": "دامنه (مثلاً domain:example.com)",
|
||||
"hostsValues": "آیپی یا دامنه — تایپ کنید و Enter بزنید",
|
||||
"usePreset": "استفاده از پیشتنظیم",
|
||||
"dnsPresetTitle": "پیشتنظیمهای DNS",
|
||||
"dnsPresetFamily": "خانوادگی"
|
||||
"dnsPresetFamily": "خانوادگی",
|
||||
"clearAll": "حذف همه",
|
||||
"clearAllTitle": "حذف همه سرورهای DNS؟",
|
||||
"clearAllConfirm": "این کار همه سرورهای DNS را از لیست حذف میکند و قابل بازگشت نیست."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "افزودن دیاناس جعلی",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "Gunakan file hosts dari sistem yang terinstal",
|
||||
"usePreset": "Gunakan templat",
|
||||
"dnsPresetTitle": "Templat DNS",
|
||||
"dnsPresetFamily": "Keluarga"
|
||||
"dnsPresetFamily": "Keluarga",
|
||||
"serveStale": "Sajikan Kedaluwarsa",
|
||||
"serveStaleDesc": "Mengembalikan hasil cache yang kedaluwarsa saat memperbarui di latar belakang",
|
||||
"serveExpiredTTL": "TTL Kedaluwarsa",
|
||||
"serveExpiredTTLDesc": "Masa berlaku (detik) entri cache kedaluwarsa; 0 = tidak pernah kedaluwarsa",
|
||||
"timeoutMs": "Batas waktu (ms)",
|
||||
"skipFallback": "Lewati Fallback",
|
||||
"finalQuery": "Kueri Akhir",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Tambah Host",
|
||||
"hostsEmpty": "Tidak ada Host yang ditentukan",
|
||||
"hostsDomain": "Domain (mis. domain:example.com)",
|
||||
"hostsValues": "IP atau domain — ketik dan tekan Enter",
|
||||
"clearAll": "Hapus Semua",
|
||||
"clearAllTitle": "Hapus semua server DNS?",
|
||||
"clearAllConfirm": "Ini akan menghapus semua server DNS dari daftar. Tidak dapat dibatalkan."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Tambahkan DNS Palsu",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "インストール済みシステムのhostsファイルを使用する",
|
||||
"usePreset": "テンプレートを使用",
|
||||
"dnsPresetTitle": "DNSテンプレート",
|
||||
"dnsPresetFamily": "ファミリー"
|
||||
"dnsPresetFamily": "ファミリー",
|
||||
"serveStale": "期限切れキャッシュを使用",
|
||||
"serveStaleDesc": "バックグラウンドで更新中に期限切れキャッシュ結果を返す",
|
||||
"serveExpiredTTL": "期限切れTTL",
|
||||
"serveExpiredTTLDesc": "期限切れキャッシュエントリの有効期間(秒)。0 = 無期限",
|
||||
"timeoutMs": "タイムアウト (ms)",
|
||||
"skipFallback": "フォールバックをスキップ",
|
||||
"finalQuery": "最終クエリ",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Host を追加",
|
||||
"hostsEmpty": "Host が定義されていません",
|
||||
"hostsDomain": "ドメイン (例: domain:example.com)",
|
||||
"hostsValues": "IP またはドメイン — 入力して Enter",
|
||||
"clearAll": "すべて削除",
|
||||
"clearAllTitle": "すべての DNS サーバを削除しますか?",
|
||||
"clearAllConfirm": "リストからすべての DNS サーバが削除されます。この操作は元に戻せません。"
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "フェイクDNS追加",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "Usar o arquivo hosts de um sistema instalado",
|
||||
"usePreset": "Usar modelo",
|
||||
"dnsPresetTitle": "Modelos DNS",
|
||||
"dnsPresetFamily": "Familiar"
|
||||
"dnsPresetFamily": "Familiar",
|
||||
"serveStale": "Servir Expirados",
|
||||
"serveStaleDesc": "Retornar resultados expirados do cache enquanto atualiza em segundo plano",
|
||||
"serveExpiredTTL": "TTL de Expirados",
|
||||
"serveExpiredTTLDesc": "Validade (segundos) das entradas expiradas no cache; 0 = nunca expira",
|
||||
"timeoutMs": "Tempo limite (ms)",
|
||||
"skipFallback": "Ignorar Fallback",
|
||||
"finalQuery": "Consulta Final",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Adicionar Host",
|
||||
"hostsEmpty": "Nenhum Host definido",
|
||||
"hostsDomain": "Domínio (ex. domain:example.com)",
|
||||
"hostsValues": "IP ou domínio — digite e pressione Enter",
|
||||
"clearAll": "Remover Todos",
|
||||
"clearAllTitle": "Remover todos os servidores DNS?",
|
||||
"clearAllConfirm": "Isso remove todos os servidores DNS da lista. Não pode ser desfeito."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Adicionar Fake DNS",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "Использовать файл hosts из установленной системы",
|
||||
"usePreset": "Использовать шаблон",
|
||||
"dnsPresetTitle": "Шаблоны DNS",
|
||||
"dnsPresetFamily": "Семейный"
|
||||
"dnsPresetFamily": "Семейный",
|
||||
"serveStale": "Использовать устаревшие",
|
||||
"serveStaleDesc": "Возвращать устаревшие результаты из кэша во время обновления в фоне",
|
||||
"serveExpiredTTL": "TTL устаревших",
|
||||
"serveExpiredTTLDesc": "Срок действия (секунды) устаревших записей кэша; 0 = бессрочно",
|
||||
"timeoutMs": "Тайм-аут (мс)",
|
||||
"skipFallback": "Пропустить Fallback",
|
||||
"finalQuery": "Финальный запрос",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Добавить Host",
|
||||
"hostsEmpty": "Host не определены",
|
||||
"hostsDomain": "Домен (напр. domain:example.com)",
|
||||
"hostsValues": "IP или домен — введите и нажмите Enter",
|
||||
"clearAll": "Удалить все",
|
||||
"clearAllTitle": "Удалить все DNS-серверы?",
|
||||
"clearAllConfirm": "Все DNS-серверы будут удалены из списка. Это действие нельзя отменить."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Создать Fake DNS",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "Yüklü bir sistemden hosts dosyasını kullan",
|
||||
"usePreset": "Şablon kullan",
|
||||
"dnsPresetTitle": "DNS Şablonları",
|
||||
"dnsPresetFamily": "Aile"
|
||||
"dnsPresetFamily": "Aile",
|
||||
"serveStale": "Süresi Dolmuş Sonuçları Sun",
|
||||
"serveStaleDesc": "Arka planda yenilenirken süresi dolmuş önbellek sonuçlarını döndür",
|
||||
"serveExpiredTTL": "Süresi Dolmuş TTL",
|
||||
"serveExpiredTTLDesc": "Süresi dolmuş önbellek girdilerinin geçerlilik süresi (saniye); 0 = asla",
|
||||
"timeoutMs": "Zaman aşımı (ms)",
|
||||
"skipFallback": "Yedekleri Atla",
|
||||
"finalQuery": "Son Sorgu",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Host Ekle",
|
||||
"hostsEmpty": "Tanımlı Host yok",
|
||||
"hostsDomain": "Alan adı (ör. domain:example.com)",
|
||||
"hostsValues": "IP veya alan adı — yazıp Enter'a basın",
|
||||
"clearAll": "Tümünü Sil",
|
||||
"clearAllTitle": "Tüm DNS sunucularını sil?",
|
||||
"clearAllConfirm": "Bu, tüm DNS sunucularını listeden kaldırır. Geri alınamaz."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Sahte DNS Ekle",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "Використовувати файл hosts з встановленої системи",
|
||||
"usePreset": "Використати шаблон",
|
||||
"dnsPresetTitle": "Шаблони DNS",
|
||||
"dnsPresetFamily": "Сімейний"
|
||||
"dnsPresetFamily": "Сімейний",
|
||||
"serveStale": "Видавати застарілі",
|
||||
"serveStaleDesc": "Повертати застарілі результати з кешу під час фонового оновлення",
|
||||
"serveExpiredTTL": "TTL застарілих",
|
||||
"serveExpiredTTLDesc": "Термін дії (секунди) застарілих записів кешу; 0 = ніколи",
|
||||
"timeoutMs": "Тайм-аут (мс)",
|
||||
"skipFallback": "Пропустити Fallback",
|
||||
"finalQuery": "Фінальний запит",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Додати Host",
|
||||
"hostsEmpty": "Host не визначено",
|
||||
"hostsDomain": "Домен (напр. domain:example.com)",
|
||||
"hostsValues": "IP або домен — введіть і натисніть Enter",
|
||||
"clearAll": "Видалити всі",
|
||||
"clearAllTitle": "Видалити всі DNS-сервери?",
|
||||
"clearAllConfirm": "Усі DNS-сервери буде видалено зі списку. Дію не можна скасувати."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Додати підроблений DNS",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "Sử dụng file hosts từ hệ thống đã cài đặt",
|
||||
"usePreset": "Dùng mẫu",
|
||||
"dnsPresetTitle": "Mẫu DNS",
|
||||
"dnsPresetFamily": "Gia đình"
|
||||
"dnsPresetFamily": "Gia đình",
|
||||
"serveStale": "Phục vụ kết quả hết hạn",
|
||||
"serveStaleDesc": "Trả về kết quả cache đã hết hạn trong khi làm mới ở chế độ nền",
|
||||
"serveExpiredTTL": "TTL hết hạn",
|
||||
"serveExpiredTTLDesc": "Thời gian hiệu lực (giây) của các mục cache hết hạn; 0 = không bao giờ hết hạn",
|
||||
"timeoutMs": "Thời gian chờ (ms)",
|
||||
"skipFallback": "Bỏ qua Fallback",
|
||||
"finalQuery": "Truy vấn cuối",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "Thêm Host",
|
||||
"hostsEmpty": "Chưa có Host nào",
|
||||
"hostsDomain": "Tên miền (vd. domain:example.com)",
|
||||
"hostsValues": "IP hoặc tên miền — nhập và nhấn Enter",
|
||||
"clearAll": "Xóa tất cả",
|
||||
"clearAllTitle": "Xóa tất cả máy chủ DNS?",
|
||||
"clearAllConfirm": "Thao tác này sẽ xóa toàn bộ máy chủ DNS khỏi danh sách. Không thể hoàn tác."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Thêm DNS giả",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "使用已安装系统的hosts文件",
|
||||
"usePreset": "使用模板",
|
||||
"dnsPresetTitle": "DNS模板",
|
||||
"dnsPresetFamily": "家庭"
|
||||
"dnsPresetFamily": "家庭",
|
||||
"serveStale": "提供过期结果",
|
||||
"serveStaleDesc": "在后台刷新时返回过期的缓存结果",
|
||||
"serveExpiredTTL": "过期TTL",
|
||||
"serveExpiredTTLDesc": "过期缓存条目的有效期(秒);0 = 永不过期",
|
||||
"timeoutMs": "超时 (毫秒)",
|
||||
"skipFallback": "跳过回退",
|
||||
"finalQuery": "最终查询",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "添加 Host",
|
||||
"hostsEmpty": "未定义任何 Host",
|
||||
"hostsDomain": "域名 (例如 domain:example.com)",
|
||||
"hostsValues": "IP 或域名 — 输入后按 Enter",
|
||||
"clearAll": "删除全部",
|
||||
"clearAllTitle": "删除所有 DNS 服务器?",
|
||||
"clearAllConfirm": "此操作将从列表中删除所有 DNS 服务器,且无法撤销。"
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "添加假 DNS",
|
||||
|
||||
@@ -754,7 +754,22 @@
|
||||
"useSystemHostsDesc": "使用已安裝系統的hosts檔案",
|
||||
"usePreset": "使用範本",
|
||||
"dnsPresetTitle": "DNS範本",
|
||||
"dnsPresetFamily": "家庭"
|
||||
"dnsPresetFamily": "家庭",
|
||||
"serveStale": "提供過期結果",
|
||||
"serveStaleDesc": "在背景重新整理時傳回過期的快取結果",
|
||||
"serveExpiredTTL": "過期TTL",
|
||||
"serveExpiredTTLDesc": "過期快取項目的有效期(秒);0 = 永不過期",
|
||||
"timeoutMs": "逾時 (毫秒)",
|
||||
"skipFallback": "跳過回退",
|
||||
"finalQuery": "最終查詢",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "新增 Host",
|
||||
"hostsEmpty": "未定義任何 Host",
|
||||
"hostsDomain": "網域 (例如 domain:example.com)",
|
||||
"hostsValues": "IP 或網域 — 輸入後按 Enter",
|
||||
"clearAll": "全部刪除",
|
||||
"clearAllTitle": "刪除所有 DNS 伺服器?",
|
||||
"clearAllConfirm": "此操作將從清單中刪除所有 DNS 伺服器,無法復原。"
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "新增假 DNS",
|
||||
|
||||
Reference in New Issue
Block a user