diff --git a/frontend/src/pages/settings/GeneralTab.tsx b/frontend/src/pages/settings/GeneralTab.tsx
index fa52755a4..a195692bb 100644
--- a/frontend/src/pages/settings/GeneralTab.tsx
+++ b/frontend/src/pages/settings/GeneralTab.tsx
@@ -34,10 +34,6 @@ interface GeneralTabProps {
updateSetting: (patch: Partial
) => void;
}
-const DATEPICKER_LIST: { name: string; value: 'gregorian' | 'jalalian' }[] = [
- { name: 'Gregorian (Standard)', value: 'gregorian' },
- { name: 'Jalalian (شمسی)', value: 'jalalian' },
-];
export default function GeneralTab({ allSetting, updateSetting }: GeneralTabProps) {
const { t } = useTranslation();
@@ -290,7 +286,10 @@ export default function GeneralTab({ allSetting, updateSetting }: GeneralTabProp
value={allSetting.datepicker || 'gregorian'}
onChange={(v) => updateSetting({ datepicker: v as 'gregorian' | 'jalalian' })}
style={{ width: '100%' }}
- options={DATEPICKER_LIST.map((d) => ({ value: d.value, label: d.name }))}
+ options={[
+ { value: 'gregorian', label: t('pages.settings.calendarGregorian') },
+ { value: 'jalalian', label: t('pages.settings.calendarJalalian') },
+ ]}
/>
>
diff --git a/internal/web/translation/ar-EG.json b/internal/web/translation/ar-EG.json
index 35ccdb815..dc9b22cc7 100644
--- a/internal/web/translation/ar-EG.json
+++ b/internal/web/translation/ar-EG.json
@@ -112,7 +112,8 @@
"docs": "التوثيق",
"openMenu": "فتح القائمة",
"pinSidebar": "تثبيت الشريط الجانبي",
- "unpinSidebar": "إلغاء تثبيت الشريط الجانبي"
+ "unpinSidebar": "إلغاء تثبيت الشريط الجانبي",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — حرج",
"panel": "اللوحة",
"threads": "الخيوط",
- "uptime": "مدة التشغيل"
+ "uptime": "مدة التشغيل",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "إجمالي المرسل/المستقبل",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "يجب أن يبدأ المسار بالرمز /"
},
"secretClear": "مسح",
- "secretClearUndo": "تراجع عن المسح"
+ "secretClearUndo": "تراجع عن المسح",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"save": "احفظ",
diff --git a/internal/web/translation/en-US.json b/internal/web/translation/en-US.json
index c2adba542..d57e781ef 100644
--- a/internal/web/translation/en-US.json
+++ b/internal/web/translation/en-US.json
@@ -112,7 +112,8 @@
"docs": "Documentation",
"openMenu": "Open menu",
"pinSidebar": "Pin sidebar",
- "unpinSidebar": "Unpin sidebar"
+ "unpinSidebar": "Unpin sidebar",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — critical",
"panel": "Panel",
"threads": "Threads",
- "uptime": "Uptime"
+ "uptime": "Uptime",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "Total Sent/Received",
@@ -1469,7 +1478,9 @@
"pathLeadingSlash": "Path must start with /"
},
"secretClear": "Clear",
- "secretClearUndo": "Undo clear"
+ "secretClearUndo": "Undo clear",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"save": "Save",
diff --git a/internal/web/translation/es-ES.json b/internal/web/translation/es-ES.json
index af144de64..002c1de6b 100644
--- a/internal/web/translation/es-ES.json
+++ b/internal/web/translation/es-ES.json
@@ -112,7 +112,8 @@
"docs": "Documentación",
"openMenu": "Abrir menú",
"pinSidebar": "Fijar barra lateral",
- "unpinSidebar": "Desfijar barra lateral"
+ "unpinSidebar": "Desfijar barra lateral",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — crítico",
"panel": "Panel",
"threads": "Hilos",
- "uptime": "Tiempo activo"
+ "uptime": "Tiempo activo",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "Subidas/Descargas Totales",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "La ruta debe comenzar con /"
},
"secretClear": "Borrar",
- "secretClearUndo": "Deshacer borrado"
+ "secretClearUndo": "Deshacer borrado",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"save": "Guardar configuración",
diff --git a/internal/web/translation/fa-IR.json b/internal/web/translation/fa-IR.json
index b64ccaa3f..ef0e97fd5 100644
--- a/internal/web/translation/fa-IR.json
+++ b/internal/web/translation/fa-IR.json
@@ -112,7 +112,8 @@
"docs": "مستندات",
"openMenu": "باز کردن منو",
"pinSidebar": "ثابت کردن نوار کناری",
- "unpinSidebar": "برداشتن تثبیت نوار کناری"
+ "unpinSidebar": "برداشتن تثبیت نوار کناری",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — بحرانی",
"panel": "پنل",
"threads": "نخها",
- "uptime": "مدت کارکرد"
+ "uptime": "مدت کارکرد",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "دریافت/ارسال کل",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "مسیر باید با / شروع شود"
},
"secretClear": "پاک کردن",
- "secretClearUndo": "لغو پاک کردن"
+ "secretClearUndo": "لغو پاک کردن",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"save": "ذخیره",
diff --git a/internal/web/translation/id-ID.json b/internal/web/translation/id-ID.json
index 02e1addb8..79978d648 100644
--- a/internal/web/translation/id-ID.json
+++ b/internal/web/translation/id-ID.json
@@ -112,7 +112,8 @@
"docs": "Dokumentasi",
"openMenu": "Buka menu",
"pinSidebar": "Sematkan bilah sisi",
- "unpinSidebar": "Lepas sematan bilah sisi"
+ "unpinSidebar": "Lepas sematan bilah sisi",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — kritis",
"panel": "Panel",
"threads": "Thread",
- "uptime": "Waktu aktif"
+ "uptime": "Waktu aktif",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "Total Terkirim/Diterima",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "Path harus diawali dengan /"
},
"secretClear": "Hapus",
- "secretClearUndo": "Batalkan hapus"
+ "secretClearUndo": "Batalkan hapus",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"save": "Simpan",
diff --git a/internal/web/translation/ja-JP.json b/internal/web/translation/ja-JP.json
index 990046e0a..64db9fdec 100644
--- a/internal/web/translation/ja-JP.json
+++ b/internal/web/translation/ja-JP.json
@@ -112,7 +112,8 @@
"docs": "ドキュメント",
"openMenu": "メニューを開く",
"pinSidebar": "サイドバーを固定",
- "unpinSidebar": "サイドバーの固定を解除"
+ "unpinSidebar": "サイドバーの固定を解除",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — 危険水準",
"panel": "パネル",
"threads": "スレッド",
- "uptime": "稼働時間"
+ "uptime": "稼働時間",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "総アップロード / ダウンロード",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "パスは / で始まる必要があります"
},
"secretClear": "クリア",
- "secretClearUndo": "クリアを取り消す"
+ "secretClearUndo": "クリアを取り消す",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"importRules": "ルールをインポート",
diff --git a/internal/web/translation/pt-BR.json b/internal/web/translation/pt-BR.json
index e1f225791..51aed9bd2 100644
--- a/internal/web/translation/pt-BR.json
+++ b/internal/web/translation/pt-BR.json
@@ -112,7 +112,8 @@
"docs": "Documentação",
"openMenu": "Abrir menu",
"pinSidebar": "Fixar barra lateral",
- "unpinSidebar": "Desafixar barra lateral"
+ "unpinSidebar": "Desafixar barra lateral",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — crítico",
"panel": "Painel",
"threads": "Threads",
- "uptime": "Tempo ativo"
+ "uptime": "Tempo ativo",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "Total Enviado/Recebido",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "O caminho deve começar com /"
},
"secretClear": "Limpar",
- "secretClearUndo": "Desfazer limpeza"
+ "secretClearUndo": "Desfazer limpeza",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"importRules": "Importar regras",
diff --git a/internal/web/translation/ru-RU.json b/internal/web/translation/ru-RU.json
index f3dc8c14b..27ead6755 100644
--- a/internal/web/translation/ru-RU.json
+++ b/internal/web/translation/ru-RU.json
@@ -112,7 +112,8 @@
"docs": "Документация",
"openMenu": "Открыть меню",
"pinSidebar": "Закрепить боковую панель",
- "unpinSidebar": "Открепить боковую панель"
+ "unpinSidebar": "Открепить боковую панель",
+ "subFormats": "Форматы подписки"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — критический уровень",
"panel": "Панель",
"threads": "Потоки",
- "uptime": "Время работы"
+ "uptime": "Время работы",
+ "logLevelDebug": "Отладка",
+ "logLevelInfo": "Информация",
+ "logLevelNotice": "Уведомление",
+ "logLevelWarning": "Предупреждение",
+ "logLevelError": "Ошибка",
+ "accessDirect": "НАПРЯМУЮ",
+ "accessBlocked": "ЗАБЛОКИРОВАНО",
+ "accessProxy": "ЧЕРЕЗ ПРОКСИ"
},
"inbounds": {
"totalDownUp": "Отправлено/получено",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "Путь должен начинаться с /"
},
"secretClear": "Очистить",
- "secretClearUndo": "Отменить очистку"
+ "secretClearUndo": "Отменить очистку",
+ "calendarGregorian": "Григорианский (обычный)",
+ "calendarJalalian": "Джалали (شمسی)"
},
"xray": {
"importRules": "Импорт правил",
diff --git a/internal/web/translation/tr-TR.json b/internal/web/translation/tr-TR.json
index 333d1d2bc..1d08a421c 100644
--- a/internal/web/translation/tr-TR.json
+++ b/internal/web/translation/tr-TR.json
@@ -112,7 +112,8 @@
"docs": "Belgeler",
"openMenu": "Menüyü aç",
"pinSidebar": "Kenar çubuğunu sabitle",
- "unpinSidebar": "Kenar çubuğu sabitlemesini kaldır"
+ "unpinSidebar": "Kenar çubuğu sabitlemesini kaldır",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — kritik",
"panel": "Panel",
"threads": "İş parçacıkları",
- "uptime": "Çalışma süresi"
+ "uptime": "Çalışma süresi",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "Toplam Gönderilen/Alınan",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "Yol / ile başlamalıdır"
},
"secretClear": "Temizle",
- "secretClearUndo": "Temizlemeyi geri al"
+ "secretClearUndo": "Temizlemeyi geri al",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"save": "Kaydet",
diff --git a/internal/web/translation/uk-UA.json b/internal/web/translation/uk-UA.json
index a250fb524..15d663033 100644
--- a/internal/web/translation/uk-UA.json
+++ b/internal/web/translation/uk-UA.json
@@ -112,7 +112,8 @@
"docs": "Документація",
"openMenu": "Відкрити меню",
"pinSidebar": "Закріпити бічну панель",
- "unpinSidebar": "Відкріпити бічну панель"
+ "unpinSidebar": "Відкріпити бічну панель",
+ "subFormats": "Формати підписки"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — критичний рівень",
"panel": "Панель",
"threads": "Потоки",
- "uptime": "Час роботи"
+ "uptime": "Час роботи",
+ "logLevelDebug": "Налагодження",
+ "logLevelInfo": "Інформація",
+ "logLevelNotice": "Сповіщення",
+ "logLevelWarning": "Попередження",
+ "logLevelError": "Помилка",
+ "accessDirect": "НАПРЯМУ",
+ "accessBlocked": "ЗАБЛОКОВАНО",
+ "accessProxy": "ЧЕРЕЗ ПРОКСІ"
},
"inbounds": {
"totalDownUp": "Всього надісланих/отриманих",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "Шлях має починатися з /"
},
"secretClear": "Очистити",
- "secretClearUndo": "Скасувати очищення"
+ "secretClearUndo": "Скасувати очищення",
+ "calendarGregorian": "Григоріанський (звичайний)",
+ "calendarJalalian": "Джалалі (شمسی)"
},
"xray": {
"save": "Зберегти",
diff --git a/internal/web/translation/vi-VN.json b/internal/web/translation/vi-VN.json
index 899387dd7..2e1a8c211 100644
--- a/internal/web/translation/vi-VN.json
+++ b/internal/web/translation/vi-VN.json
@@ -112,7 +112,8 @@
"docs": "Tài liệu",
"openMenu": "Mở menu",
"pinSidebar": "Ghim thanh bên",
- "unpinSidebar": "Bỏ ghim thanh bên"
+ "unpinSidebar": "Bỏ ghim thanh bên",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — nguy cấp",
"panel": "Panel",
"threads": "Luồng",
- "uptime": "Thời gian chạy"
+ "uptime": "Thời gian chạy",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "Tổng tải lên/tải xuống",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "Đường dẫn phải bắt đầu bằng /"
},
"secretClear": "Xóa",
- "secretClearUndo": "Hoàn tác xóa"
+ "secretClearUndo": "Hoàn tác xóa",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"importRules": "Nhập quy tắc",
diff --git a/internal/web/translation/zh-CN.json b/internal/web/translation/zh-CN.json
index 6284c077d..659724558 100644
--- a/internal/web/translation/zh-CN.json
+++ b/internal/web/translation/zh-CN.json
@@ -112,7 +112,8 @@
"docs": "文档",
"openMenu": "打开菜单",
"pinSidebar": "固定侧边栏",
- "unpinSidebar": "取消固定侧边栏"
+ "unpinSidebar": "取消固定侧边栏",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — 危险",
"panel": "面板",
"threads": "线程",
- "uptime": "运行时间"
+ "uptime": "运行时间",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "总上传 / 下载",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "路径必须以 / 开头"
},
"secretClear": "清除",
- "secretClearUndo": "撤销清除"
+ "secretClearUndo": "撤销清除",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"importRules": "导入规则",
diff --git a/internal/web/translation/zh-TW.json b/internal/web/translation/zh-TW.json
index f47cdb353..8c3a2a430 100644
--- a/internal/web/translation/zh-TW.json
+++ b/internal/web/translation/zh-TW.json
@@ -112,7 +112,8 @@
"docs": "文件",
"openMenu": "開啟選單",
"pinSidebar": "固定側邊欄",
- "unpinSidebar": "取消固定側邊欄"
+ "unpinSidebar": "取消固定側邊欄",
+ "subFormats": "Sub Formats"
},
"pages": {
"login": {
@@ -257,7 +258,15 @@
"healthCritical": "{list} — 危險",
"panel": "面板",
"threads": "執行緒",
- "uptime": "執行時間"
+ "uptime": "執行時間",
+ "logLevelDebug": "Debug",
+ "logLevelInfo": "Info",
+ "logLevelNotice": "Notice",
+ "logLevelWarning": "Warning",
+ "logLevelError": "Error",
+ "accessDirect": "DIRECT",
+ "accessBlocked": "BLOCKED",
+ "accessProxy": "PROXY"
},
"inbounds": {
"totalDownUp": "總上傳 / 下載",
@@ -1352,7 +1361,9 @@
"pathLeadingSlash": "路徑必須以 / 開頭"
},
"secretClear": "清除",
- "secretClearUndo": "復原清除"
+ "secretClearUndo": "復原清除",
+ "calendarGregorian": "Gregorian (Standard)",
+ "calendarJalalian": "Jalalian (شمسی)"
},
"xray": {
"save": "儲存",