chore: i18n for rule module
This commit is contained in:
@@ -462,10 +462,12 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
|
||||
const validateRule = () => {
|
||||
if ((ruleType.required ?? true) && !ruleContent) {
|
||||
throw new Error(t("Rule Condition Required"));
|
||||
throw new Error(
|
||||
t("components.ruleEditor.form.validation.conditionRequired"),
|
||||
);
|
||||
}
|
||||
if (ruleType.validator && !ruleType.validator(ruleContent)) {
|
||||
throw new Error(t("Invalid Rule"));
|
||||
throw new Error(t("components.ruleEditor.form.validation.invalidRule"));
|
||||
}
|
||||
|
||||
const condition = (ruleType.required ?? true) ? ruleContent : "";
|
||||
@@ -490,7 +492,7 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
<DialogTitle>
|
||||
{
|
||||
<Box display="flex" justifyContent="space-between">
|
||||
{t("Edit Rules")}
|
||||
{t("components.ruleEditor.title")}
|
||||
<Box>
|
||||
<Button
|
||||
variant="contained"
|
||||
@@ -518,7 +520,9 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
}}
|
||||
>
|
||||
<Item>
|
||||
<ListItemText primary={t("Rule Type")} />
|
||||
<ListItemText
|
||||
primary={t("components.ruleEditor.form.labels.type")}
|
||||
/>
|
||||
<Autocomplete
|
||||
size="small"
|
||||
sx={{ minWidth: "240px" }}
|
||||
@@ -527,7 +531,12 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
value={ruleType}
|
||||
getOptionLabel={(option) => option.name}
|
||||
renderOption={(props, option) => (
|
||||
<li {...props} title={t(option.name)}>
|
||||
<li
|
||||
{...props}
|
||||
title={t(
|
||||
`components.ruleEditor.ruleTypes.${option.name}`,
|
||||
)}
|
||||
>
|
||||
{option.name}
|
||||
</li>
|
||||
)}
|
||||
@@ -537,7 +546,9 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
<Item
|
||||
sx={{ display: !(ruleType.required ?? true) ? "none" : "" }}
|
||||
>
|
||||
<ListItemText primary={t("Rule Content")} />
|
||||
<ListItemText
|
||||
primary={t("components.ruleEditor.form.labels.content")}
|
||||
/>
|
||||
|
||||
{ruleType.name === "RULE-SET" && (
|
||||
<Autocomplete
|
||||
@@ -574,7 +585,9 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
)}
|
||||
</Item>
|
||||
<Item>
|
||||
<ListItemText primary={t("Proxy Policy")} />
|
||||
<ListItemText
|
||||
primary={t("components.ruleEditor.form.labels.proxyPolicy")}
|
||||
/>
|
||||
<Autocomplete
|
||||
size="small"
|
||||
sx={{ minWidth: "240px" }}
|
||||
@@ -591,7 +604,9 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
</Item>
|
||||
{ruleType.noResolve && (
|
||||
<Item>
|
||||
<ListItemText primary={t("No Resolve")} />
|
||||
<ListItemText
|
||||
primary={t("components.ruleEditor.form.toggles.noResolve")}
|
||||
/>
|
||||
<Switch
|
||||
checked={noResolve}
|
||||
onChange={() => setNoResolve(!noResolve)}
|
||||
@@ -613,7 +628,7 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
}
|
||||
}}
|
||||
>
|
||||
{t("Prepend Rule")}
|
||||
{t("components.ruleEditor.form.actions.prependRule")}
|
||||
</Button>
|
||||
</Item>
|
||||
<Item>
|
||||
@@ -631,7 +646,7 @@ export const RulesEditorViewer = (props: Props) => {
|
||||
}
|
||||
}}
|
||||
>
|
||||
{t("Append Rule")}
|
||||
{t("components.ruleEditor.form.actions.appendRule")}
|
||||
</Button>
|
||||
</Item>
|
||||
</List>
|
||||
|
||||
@@ -141,7 +141,7 @@ export const ProviderButton = () => {
|
||||
startIcon={<StorageOutlined />}
|
||||
onClick={() => setOpen(true)}
|
||||
>
|
||||
{t("Rule Provider")}
|
||||
{t("pages.rules.provider.trigger")}
|
||||
</Button>
|
||||
|
||||
<Dialog open={open} onClose={handleClose} maxWidth="sm" fullWidth>
|
||||
@@ -151,7 +151,9 @@ export const ProviderButton = () => {
|
||||
justifyContent="space-between"
|
||||
alignItems="center"
|
||||
>
|
||||
<Typography variant="h6">{t("Rule Providers")}</Typography>
|
||||
<Typography variant="h6">
|
||||
{t("pages.rules.provider.dialogTitle")}
|
||||
</Typography>
|
||||
<Button
|
||||
variant="contained"
|
||||
size="small"
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "القواعد",
|
||||
"provider": {
|
||||
"trigger": "مزود القواعد",
|
||||
"dialogTitle": "مزود القواعد"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Home",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "تعديل القواعد",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "نوع القاعدة",
|
||||
"content": "محتوى القاعدة",
|
||||
"proxyPolicy": "سياسة الوكيل"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "لا يوجد حل"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "إضافة قاعدة في البداية",
|
||||
"appendRule": "إضافة قاعدة في النهاية"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "شرط القاعدة مطلوب",
|
||||
"invalidRule": "قاعدة غير صالحة"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "Regeln",
|
||||
"provider": {
|
||||
"trigger": "Regelsammlung",
|
||||
"dialogTitle": "Regelsammlung"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Startseite",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "Regeln bearbeiten",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "Regeltyp",
|
||||
"content": "Regelinhalt",
|
||||
"proxyPolicy": "Proxy-Strategie"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "DNS-Auflösung überspringen"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "Vorherige Regel hinzufügen",
|
||||
"appendRule": "Nachfolgende Regel hinzufügen"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "Regelbedingung fehlt",
|
||||
"invalidRule": "Ungültige Regel"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "Rules",
|
||||
"provider": {
|
||||
"trigger": "Rule Provider",
|
||||
"dialogTitle": "Rule Providers"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Home",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "Edit Rules",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "Rule Type",
|
||||
"content": "Rule Content",
|
||||
"proxyPolicy": "Proxy Policy"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "No Resolve"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "Prepend Rule",
|
||||
"appendRule": "Append Rule"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "Rule Condition Required",
|
||||
"invalidRule": "Invalid Rule"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "Reglas",
|
||||
"provider": {
|
||||
"trigger": "Proveedor de reglas",
|
||||
"dialogTitle": "Proveedor de reglas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Hogar",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "Editar reglas",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "Tipo de regla",
|
||||
"content": "Contenido de la regla",
|
||||
"proxyPolicy": "Política de proxy"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "Omitir resolución DNS"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "Agregar regla previa",
|
||||
"appendRule": "Agregar regla posterior"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "Falta la condición de la regla",
|
||||
"invalidRule": "Regla no válida"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "قوانین",
|
||||
"provider": {
|
||||
"trigger": "تأمینکننده قانون",
|
||||
"dialogTitle": "تأمینکننده قانون"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Home",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "ویرایش قوانین",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "نوع قانون",
|
||||
"content": "محتوای قانون",
|
||||
"proxyPolicy": "سیاست پروکسی"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "بدون حل"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "اضافه کردن قانون به ابتدا",
|
||||
"appendRule": "اضافه کردن قانون به انتها"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "شرط قانون الزامی است",
|
||||
"invalidRule": "قانون نامعتبر"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "Aturan",
|
||||
"provider": {
|
||||
"trigger": "Penyedia Aturan",
|
||||
"dialogTitle": "Penyedia Aturan"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Home",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "Ubah Aturan",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "Jenis Aturan",
|
||||
"content": "Konten Aturan",
|
||||
"proxyPolicy": "Kebijakan Proksi"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "Tidak Menyelesaikan"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "Tambahkan Aturan di Awal",
|
||||
"appendRule": "Tambahkan Aturan di Akhir"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "Kondisi Aturan Diperlukan",
|
||||
"invalidRule": "Aturan Tidak Valid"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "ルール",
|
||||
"provider": {
|
||||
"trigger": "ルールプロバイダー",
|
||||
"dialogTitle": "ルールプロバイダー"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "ホーム",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "ルールを編集",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "ルールタイプ",
|
||||
"content": "ルール内容",
|
||||
"proxyPolicy": "プロキシポリシー"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "DNS解決をスキップ"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "前置ルールを追加",
|
||||
"appendRule": "後置ルールを追加"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "ルール条件が必要です",
|
||||
"invalidRule": "無効なルール"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "규칙",
|
||||
"provider": {
|
||||
"trigger": "규칙 제공자",
|
||||
"dialogTitle": "규칙 제공자"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "홈",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "규칙 편집",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "규칙 유형",
|
||||
"content": "규칙 내용",
|
||||
"proxyPolicy": "프록시 정책"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "해석 안함"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "규칙 앞에 추가",
|
||||
"appendRule": "규칙 뒤에 추가"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "규칙 조건 필요",
|
||||
"invalidRule": "잘못된 규칙"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "Правила",
|
||||
"provider": {
|
||||
"trigger": "Провайдеры правил",
|
||||
"dialogTitle": "Провайдеры правил"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Главная",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "Редактировать правила",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "Тип правила",
|
||||
"content": "Содержимое правила",
|
||||
"proxyPolicy": "Политика прокси"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "Без разрешения"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "Добавить правило в начало",
|
||||
"appendRule": "Добавить правило в конец"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "Требуется условие правила",
|
||||
"invalidRule": "Недействительное правило"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "Kurallar",
|
||||
"provider": {
|
||||
"trigger": "Kural Sağlayıcısı",
|
||||
"dialogTitle": "Kural Sağlayıcısı"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Ana Sayfa",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "Kuralları Düzenle",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "Kural Tipi",
|
||||
"content": "Kural İçeriği",
|
||||
"proxyPolicy": "Vekil Politikası"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "Çözümleme Yok"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "Kuralın Başına Ekle",
|
||||
"appendRule": "Kuralın Sonuna Ekle"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "Kural Koşulu Gerekli",
|
||||
"invalidRule": "Geçersiz Kural"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "Failed to disconnect from proxy chain",
|
||||
"duplicateNode": "Proxy node already exists in chain"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "Кагыйдәләр",
|
||||
"provider": {
|
||||
"trigger": "Кагыйдә провайдеры",
|
||||
"dialogTitle": "Кагыйдә провайдеры"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "Home",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "Unlock menu order",
|
||||
"Lock menu order": "Lock menu order",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "Кагыйдәләрне үзгәртү",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "Кагыйдә төре",
|
||||
"content": "Кагыйдә эчтәлеге",
|
||||
"proxyPolicy": "Прокси сәясәте"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "Резолвсыз"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "Кагыйдәне өскә өстәү",
|
||||
"appendRule": "Кагыйдәне аска өстәү"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "Кагыйдә шарты кирәк",
|
||||
"invalidRule": "Яраксыз кагыйдә"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "断开链式代理失败",
|
||||
"duplicateNode": "该节点已在链式代理表中"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "规则",
|
||||
"provider": {
|
||||
"trigger": "规则集合",
|
||||
"dialogTitle": "规则集合"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "首 页",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "解锁菜单排序",
|
||||
"Lock menu order": "锁定菜单排序",
|
||||
"Open App Log": "应用日志",
|
||||
"Open Core Log": "内核日志"
|
||||
"Open Core Log": "内核日志",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "编辑规则",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "规则类型",
|
||||
"content": "规则内容",
|
||||
"proxyPolicy": "代理策略"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "跳过 DNS 解析"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "添加前置规则",
|
||||
"appendRule": "添加后置规则"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "规则条件缺失",
|
||||
"invalidRule": "无效规则"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
"disconnectFailed": "中斷鏈式代理失敗",
|
||||
"duplicateNode": "該節點已在鏈式代理表中"
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"title": "規則",
|
||||
"provider": {
|
||||
"trigger": "規則集合",
|
||||
"dialogTitle": "規則集合"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Label-Home": "首 頁",
|
||||
@@ -773,5 +780,28 @@
|
||||
"Unlock menu order": "解鎖選單排序",
|
||||
"Lock menu order": "鎖定選單排序",
|
||||
"Open App Log": "Open App Log",
|
||||
"Open Core Log": "Open Core Log"
|
||||
"Open Core Log": "Open Core Log",
|
||||
"components": {
|
||||
"ruleEditor": {
|
||||
"title": "編輯規則",
|
||||
"form": {
|
||||
"labels": {
|
||||
"type": "規則類型",
|
||||
"content": "規則內容",
|
||||
"proxyPolicy": "代理策略"
|
||||
},
|
||||
"toggles": {
|
||||
"noResolve": "跳過 DNS 解析"
|
||||
},
|
||||
"actions": {
|
||||
"prependRule": "新增前置規則",
|
||||
"appendRule": "新增後置規則"
|
||||
},
|
||||
"validation": {
|
||||
"conditionRequired": "規則條件為必填",
|
||||
"invalidRule": "無效規則"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ const RulesPage = () => {
|
||||
return (
|
||||
<BasePage
|
||||
full
|
||||
title={t("Rules")}
|
||||
title={t("pages.rules.title")}
|
||||
contentStyle={{
|
||||
height: "100%",
|
||||
display: "flex",
|
||||
|
||||
Reference in New Issue
Block a user