refactor(i18n): unify two-name locale namespaces

This commit is contained in:
Slinetrac
2025-11-04 19:53:49 +08:00
Unverified
parent 11a30d8582
commit 3aed065324
26 changed files with 2194 additions and 2294 deletions

View File

@@ -68,50 +68,50 @@ const InnerConnectionDetail = ({ data, onClose }: InnerProps) => {
: metadata.remoteDestination;
const information = [
{ label: t("connection.fields.host"), value: host },
{ label: t("connections.fields.host"), value: host },
{
label: t("connection.fields.downloaded"),
label: t("connections.fields.downloaded"),
value: parseTraffic(data.download).join(" "),
},
{
label: t("connection.fields.uploaded"),
label: t("connections.fields.uploaded"),
value: parseTraffic(data.upload).join(" "),
},
{
label: t("connection.fields.dlSpeed"),
label: t("connections.fields.dlSpeed"),
value: parseTraffic(data.curDownload ?? -1).join(" ") + "/s",
},
{
label: t("connection.fields.ulSpeed"),
label: t("connections.fields.ulSpeed"),
value: parseTraffic(data.curUpload ?? -1).join(" ") + "/s",
},
{
label: t("connection.fields.chains"),
label: t("connections.fields.chains"),
value: chains,
},
{ label: t("connection.fields.rule"), value: rule },
{ label: t("connections.fields.rule"), value: rule },
{
label: t("connection.fields.process"),
label: t("connections.fields.process"),
value: `${metadata.process}${metadata.processPath ? `(${metadata.processPath})` : ""}`,
},
{
label: t("connection.fields.time"),
label: t("connections.fields.time"),
value: dayjs(data.start).fromNow(),
},
{
label: t("connection.fields.source"),
label: t("connections.fields.source"),
value: `${metadata.sourceIP}:${metadata.sourcePort}`,
},
{
label: t("connection.fields.destination"),
label: t("connections.fields.destination"),
value: Destination,
},
{
label: t("connection.fields.destinationPort"),
label: t("connections.fields.destinationPort"),
value: `${metadata.destinationPort}`,
},
{
label: t("connection.fields.type"),
label: t("connections.fields.type"),
value: `${metadata.type}(${metadata.network})`,
},
];
@@ -137,13 +137,13 @@ const InnerConnectionDetail = ({ data, onClose }: InnerProps) => {
<Box sx={{ textAlign: "right" }}>
<Button
variant="contained"
title={t("connection.actions.closeConnection")}
title={t("connections.actions.closeConnection")}
onClick={() => {
onDelete();
onClose?.();
}}
>
{t("connection.actions.closeConnection")}
{t("connections.actions.closeConnection")}
</Button>
</Box>
</Box>

View File

@@ -48,8 +48,8 @@ export const ConnectionItem = (props: Props) => {
edge="end"
color="inherit"
onClick={onDelete}
title={t("connection.actions.closeConnection")}
aria-label={t("connection.actions.closeConnection")}
title={t("connections.actions.closeConnection")}
aria-label={t("connections.actions.closeConnection")}
>
<CloseRounded />
</IconButton>

View File

@@ -162,13 +162,13 @@ export const ConnectionTable = (props: Props) => {
return [
{
field: "host",
headerName: t("connection.fields.host"),
headerName: t("connections.fields.host"),
width: columnWidths["host"] || 220,
minWidth: 180,
},
{
field: "download",
headerName: t("connection.fields.downloaded"),
headerName: t("connections.fields.downloaded"),
width: columnWidths["download"] || 88,
align: "right",
headerAlign: "right",
@@ -176,7 +176,7 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "upload",
headerName: t("connection.fields.uploaded"),
headerName: t("connections.fields.uploaded"),
width: columnWidths["upload"] || 88,
align: "right",
headerAlign: "right",
@@ -184,7 +184,7 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "dlSpeed",
headerName: t("connection.fields.dlSpeed"),
headerName: t("connections.fields.dlSpeed"),
width: columnWidths["dlSpeed"] || 88,
align: "right",
headerAlign: "right",
@@ -192,7 +192,7 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "ulSpeed",
headerName: t("connection.fields.ulSpeed"),
headerName: t("connections.fields.ulSpeed"),
width: columnWidths["ulSpeed"] || 88,
align: "right",
headerAlign: "right",
@@ -200,25 +200,25 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "chains",
headerName: t("connection.fields.chains"),
headerName: t("connections.fields.chains"),
width: columnWidths["chains"] || 340,
minWidth: 180,
},
{
field: "rule",
headerName: t("connection.fields.rule"),
headerName: t("connections.fields.rule"),
width: columnWidths["rule"] || 280,
minWidth: 180,
},
{
field: "process",
headerName: t("connection.fields.process"),
headerName: t("connections.fields.process"),
width: columnWidths["process"] || 220,
minWidth: 180,
},
{
field: "time",
headerName: t("connection.fields.time"),
headerName: t("connections.fields.time"),
width: columnWidths["time"] || 120,
minWidth: 100,
align: "right",
@@ -229,19 +229,19 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "source",
headerName: t("connection.fields.source"),
headerName: t("connections.fields.source"),
width: columnWidths["source"] || 200,
minWidth: 130,
},
{
field: "remoteDestination",
headerName: t("connection.fields.destination"),
headerName: t("connections.fields.destination"),
width: columnWidths["remoteDestination"] || 200,
minWidth: 130,
},
{
field: "type",
headerName: t("connection.fields.type"),
headerName: t("connections.fields.type"),
width: columnWidths["type"] || 160,
minWidth: 100,
},

View File

@@ -97,7 +97,7 @@ export const EditorViewer = <T extends Language>(props: Props<T>) => {
onClose,
} = props;
const resolvedTitle = title ?? t("profile.menu.editFile");
const resolvedTitle = title ?? t("profiles.menu.editFile");
const resolvedInitialData = useMemo(
() => initialData ?? Promise.resolve(""),
[initialData],
@@ -203,7 +203,7 @@ export const EditorViewer = <T extends Language>(props: Props<T>) => {
mouseWheelZoom: true, // 按住Ctrl滚轮调节缩放比例
readOnly: readOnly, // 只读模式
readOnlyMessage: {
value: t("profile.editor.readOnlyMessage"),
value: t("profiles.editor.readOnlyMessage"),
}, // 只读模式尝试编辑时的提示信息
renderValidationDecorations: "on", // 只读模式下显示校验信息
quickSuggestions: {
@@ -233,7 +233,7 @@ export const EditorViewer = <T extends Language>(props: Props<T>) => {
size="medium"
color="inherit"
sx={{ display: readOnly ? "none" : "" }}
title={t("profile.editor.format")}
title={t("profiles.editor.format")}
onClick={() =>
editorRef.current
?.getAction("editor.action.formatDocument")

View File

@@ -42,7 +42,7 @@ export const FileInput = (props: Props) => {
sx={{ flex: "none" }}
onClick={() => inputRef.current?.click()}
>
{t("profile.fileInput.chooseFile")}
{t("profiles.fileInput.chooseFile")}
</Button>
<input

View File

@@ -74,17 +74,17 @@ interface Props {
const builtinProxyPolicies = ["DIRECT", "REJECT", "REJECT-DROP", "PASS"];
const PROXY_STRATEGY_LABEL_KEYS: Record<string, string> = {
select: "proxy.strategies.select",
"url-test": "proxy.strategies.url-test",
fallback: "proxy.strategies.fallback",
"load-balance": "proxy.strategies.load-balance",
relay: "proxy.strategies.relay",
select: "proxies.strategies.select",
"url-test": "proxies.strategies.url-test",
fallback: "proxies.strategies.fallback",
"load-balance": "proxies.strategies.load-balance",
relay: "proxies.strategies.relay",
};
const PROXY_POLICY_LABEL_KEYS: Record<string, string> =
builtinProxyPolicies.reduce(
(acc, policy) => {
acc[policy] = `proxy.policies.${policy}`;
acc[policy] = `proxies.policies.${policy}`;
return acc;
},
{} as Record<string, string>,
@@ -400,7 +400,7 @@ export const GroupsEditorViewer = (props: Props) => {
const validateGroup = () => {
const group = formIns.getValues();
if (group.name === "") {
throw new Error(t("profile.groupsEditor.errors.nameRequired"));
throw new Error(t("profiles.groupsEditor.errors.nameRequired"));
}
};
@@ -415,7 +415,7 @@ export const GroupsEditorViewer = (props: Props) => {
}
await saveProfileFile(property, nextData);
showNotice.success("profile.notifications.saved");
showNotice.success("profiles.notifications.saved");
setPrevData(nextData);
onSave?.(prevData, nextData);
onClose();
@@ -429,7 +429,7 @@ export const GroupsEditorViewer = (props: Props) => {
<DialogTitle>
{
<Box display="flex" justifyContent="space-between">
{t("profile.groupsEditor.title")}
{t("profiles.groupsEditor.title")}
<Box>
<Button
variant="contained"
@@ -470,7 +470,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.type")}
primary={t("profiles.groupsEditor.fields.type")}
/>
<Autocomplete
size="small"
@@ -501,7 +501,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.name")}
primary={t("profiles.groupsEditor.fields.name")}
/>
<TextField
autoComplete="new-password"
@@ -520,7 +520,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.icon")}
primary={t("profiles.groupsEditor.fields.icon")}
/>
<TextField
autoComplete="new-password"
@@ -537,7 +537,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.proxies")}
primary={t("profiles.groupsEditor.fields.proxies")}
/>
<Autocomplete
size="small"
@@ -565,7 +565,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.provider")}
primary={t("profiles.groupsEditor.fields.provider")}
/>
<Autocomplete
size="small"
@@ -586,7 +586,7 @@ export const GroupsEditorViewer = (props: Props) => {
<Item>
<ListItemText
primary={t(
"profile.groupsEditor.fields.healthCheckUrl",
"profiles.groupsEditor.fields.healthCheckUrl",
)}
/>
<TextField
@@ -606,7 +606,7 @@ export const GroupsEditorViewer = (props: Props) => {
<Item>
<ListItemText
primary={t(
"profile.groupsEditor.fields.expectedStatus",
"profiles.groupsEditor.fields.expectedStatus",
)}
/>
<TextField
@@ -627,7 +627,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.interval")}
primary={t("profiles.groupsEditor.fields.interval")}
/>
<TextField
autoComplete="new-password"
@@ -657,7 +657,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.timeout")}
primary={t("profiles.groupsEditor.fields.timeout")}
/>
<TextField
autoComplete="new-password"
@@ -688,7 +688,7 @@ export const GroupsEditorViewer = (props: Props) => {
<Item>
<ListItemText
primary={t(
"profile.groupsEditor.fields.maxFailedTimes",
"profiles.groupsEditor.fields.maxFailedTimes",
)}
/>
<TextField
@@ -710,7 +710,9 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.interfaceName")}
primary={t(
"profiles.groupsEditor.fields.interfaceName",
)}
/>
<Autocomplete
size="small"
@@ -729,7 +731,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.routingMark")}
primary={t("profiles.groupsEditor.fields.routingMark")}
/>
<TextField
autoComplete="new-password"
@@ -749,7 +751,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.filter")}
primary={t("profiles.groupsEditor.fields.filter")}
/>
<TextField
autoComplete="new-password"
@@ -766,7 +768,9 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.excludeFilter")}
primary={t(
"profiles.groupsEditor.fields.excludeFilter",
)}
/>
<TextField
autoComplete="new-password"
@@ -783,7 +787,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.excludeType")}
primary={t("profiles.groupsEditor.fields.excludeType")}
/>
<Autocomplete
multiple
@@ -831,7 +835,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.fields.includeAll")}
primary={t("profiles.groupsEditor.fields.includeAll")}
/>
<Switch checked={field.value} {...field} />
</Item>
@@ -844,7 +848,7 @@ export const GroupsEditorViewer = (props: Props) => {
<Item>
<ListItemText
primary={t(
"profile.groupsEditor.fields.includeAllProxies",
"profiles.groupsEditor.fields.includeAllProxies",
)}
/>
<Switch checked={field.value} {...field} />
@@ -858,7 +862,7 @@ export const GroupsEditorViewer = (props: Props) => {
<Item>
<ListItemText
primary={t(
"profile.groupsEditor.fields.includeAllProviders",
"profiles.groupsEditor.fields.includeAllProviders",
)}
/>
<Switch checked={field.value} {...field} />
@@ -871,7 +875,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.toggles.lazy")}
primary={t("profiles.groupsEditor.toggles.lazy")}
/>
<Switch checked={field.value} {...field} />
</Item>
@@ -883,7 +887,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.toggles.disableUdp")}
primary={t("profiles.groupsEditor.toggles.disableUdp")}
/>
<Switch checked={field.value} {...field} />
</Item>
@@ -895,7 +899,7 @@ export const GroupsEditorViewer = (props: Props) => {
render={({ field }) => (
<Item>
<ListItemText
primary={t("profile.groupsEditor.toggles.hidden")}
primary={t("profiles.groupsEditor.toggles.hidden")}
/>
<Switch checked={field.value} {...field} />
</Item>
@@ -913,7 +917,7 @@ export const GroupsEditorViewer = (props: Props) => {
for (const item of [...prependSeq, ...groupList]) {
if (item.name === formIns.getValues().name) {
throw new Error(
t("profile.groupsEditor.errors.nameExists"),
t("profiles.groupsEditor.errors.nameExists"),
);
}
}
@@ -923,7 +927,7 @@ export const GroupsEditorViewer = (props: Props) => {
}
}}
>
{t("profile.groupsEditor.actions.prepend")}
{t("profiles.groupsEditor.actions.prepend")}
</Button>
</Item>
<Item>
@@ -937,7 +941,7 @@ export const GroupsEditorViewer = (props: Props) => {
for (const item of [...appendSeq, ...groupList]) {
if (item.name === formIns.getValues().name) {
throw new Error(
t("profile.groupsEditor.errors.nameExists"),
t("profiles.groupsEditor.errors.nameExists"),
);
}
}
@@ -947,7 +951,7 @@ export const GroupsEditorViewer = (props: Props) => {
}
}}
>
{t("profile.groupsEditor.actions.append")}
{t("profiles.groupsEditor.actions.append")}
</Button>
</Item>
</List>

View File

@@ -26,7 +26,7 @@ export const LogViewer = (props: Props) => {
return (
<Dialog open={open} onClose={onClose}>
<DialogTitle>{t("profile.logViewer.title")}</DialogTitle>
<DialogTitle>{t("profiles.logViewer.title")}</DialogTitle>
<DialogContent
sx={{

View File

@@ -120,38 +120,38 @@ export const ProfileItem = (props: Props) => {
// 如果已经过期,显示"更新失败"
if (nextUpdateDate.isBefore(now)) {
setNextUpdateTime(t("profile.item.status.lastUpdateFailed"));
setNextUpdateTime(t("profiles.item.status.lastUpdateFailed"));
} else {
// 否则显示剩余时间
const diffMinutes = nextUpdateDate.diff(now, "minute");
if (diffMinutes < 60) {
if (diffMinutes <= 0) {
setNextUpdateTime(`${t("profile.item.status.nextUp")} <1m`);
setNextUpdateTime(`${t("profiles.item.status.nextUp")} <1m`);
} else {
setNextUpdateTime(
`${t("profile.item.status.nextUp")} ${diffMinutes}m`,
`${t("profiles.item.status.nextUp")} ${diffMinutes}m`,
);
}
} else {
const hours = Math.floor(diffMinutes / 60);
const mins = diffMinutes % 60;
setNextUpdateTime(
`${t("profile.item.status.nextUp")} ${hours}h ${mins}m`,
`${t("profiles.item.status.nextUp")} ${hours}h ${mins}m`,
);
}
}
} else {
console.log(`返回的下次更新时间为空`);
setNextUpdateTime(t("profile.item.status.noSchedule"));
setNextUpdateTime(t("profiles.item.status.noSchedule"));
}
} catch (err) {
console.error(`获取下次更新时间出错:`, err);
setNextUpdateTime(t("profile.item.status.unknown"));
setNextUpdateTime(t("profiles.item.status.unknown"));
}
} else {
console.log(`该配置未设置更新间隔或间隔为0`);
setNextUpdateTime(t("profile.item.status.autoUpdateDisabled"));
setNextUpdateTime(t("profiles.item.status.autoUpdateDisabled"));
}
});
@@ -365,18 +365,18 @@ export const ProfileItem = (props: Props) => {
};
const menuLabels = {
home: "profile.menu.home",
select: "profile.menu.select",
editInfo: "profile.menu.editInfo",
editFile: "profile.menu.editFile",
editRules: "profile.menu.editRules",
editProxies: "profile.menu.editProxies",
editGroups: "profile.menu.editGroups",
extendConfig: "profile.menu.extendConfig",
extendScript: "profile.menu.extendScript",
openFile: "profile.menu.openFile",
update: "profile.menu.update",
updateViaProxy: "profile.menu.updateViaProxy",
home: "profiles.menu.home",
select: "profiles.menu.select",
editInfo: "profiles.menu.editInfo",
editFile: "profiles.menu.editFile",
editRules: "profiles.menu.editRules",
editProxies: "profiles.menu.editProxies",
editGroups: "profiles.menu.editGroups",
extendConfig: "profiles.menu.extendConfig",
extendScript: "profiles.menu.extendScript",
openFile: "profiles.menu.openFile",
update: "profiles.menu.update",
updateViaProxy: "profiles.menu.updateViaProxy",
delete: "common.actions.delete",
} as const;
@@ -733,8 +733,8 @@ export const ProfileItem = (props: Props) => {
textAlign="right"
title={
showNextUpdate
? t("profile.item.tooltips.showLast")
: `${t("common.labels.updateTime")}: ${parseExpire(updated)}\n${t("profile.item.tooltips.showNext")}`
? t("profiles.item.tooltips.showLast")
: `${t("common.labels.updateTime")}: ${parseExpire(updated)}\n${t("profiles.item.tooltips.showNext")}`
}
sx={{
cursor: "pointer",
@@ -891,8 +891,8 @@ export const ProfileItem = (props: Props) => {
)}
<ConfirmViewer
title={t("profile.confirm.delete.title")}
message={t("profile.confirm.delete.message")}
title={t("profiles.confirm.delete.title")}
message={t("profiles.confirm.delete.message")}
open={confirmOpen}
onClose={() => setConfirmOpen(false)}
onConfirm={() => {

View File

@@ -55,18 +55,18 @@ export const ProfileMore = (props: Props) => {
const hasError = entries.some(([level]) => level === "exception");
const globalTitles: Record<Props["id"], string> = {
Merge: "profile.more.global.merge",
Script: "profile.more.global.script",
Merge: "profiles.more.global.merge",
Script: "profiles.more.global.script",
};
const chipLabels: Record<Props["id"], string> = {
Merge: "profile.more.chips.merge",
Script: "profile.more.chips.script",
Merge: "profiles.more.chips.merge",
Script: "profiles.more.chips.script",
};
const itemMenu = [
{ label: "profile.menu.editFile", handler: onEditFile },
{ label: "profile.menu.openFile", handler: onOpenFile },
{ label: "profiles.menu.editFile", handler: onEditFile },
{ label: "profiles.menu.openFile", handler: onOpenFile },
];
const boxStyle = {
@@ -121,7 +121,7 @@ export const ProfileMore = (props: Props) => {
size="small"
edge="start"
color="error"
title={t("profile.logViewer.title")}
title={t("profiles.logViewer.title")}
onClick={() => setLogOpen(true)}
>
<FeaturedPlayListRounded fontSize="inherit" />
@@ -132,7 +132,7 @@ export const ProfileMore = (props: Props) => {
size="small"
edge="start"
color="inherit"
title={t("profile.logViewer.title")}
title={t("profiles.logViewer.title")}
onClick={() => setLogOpen(true)}
>
<FeaturedPlayListRounded fontSize="inherit" />

View File

@@ -144,7 +144,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
}
} catch {
// 首次创建/更新失败,尝试使用自身代理
showNotice.info("profile.viewer.notifications.creationRetry");
showNotice.info("profiles.viewer.notifications.creationRetry");
// 使用自身代理的配置
const retryItem = {
@@ -167,7 +167,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
await patchProfile(form.uid, { option: originalOptions });
}
showNotice.success("profile.viewer.notifications.creationSuccess");
showNotice.success("profiles.viewer.notifications.creationSuccess");
}
}
@@ -216,8 +216,8 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
open={open}
title={
openType === "new"
? t("profile.viewer.title.create")
: t("profile.viewer.title.edit")
? t("profiles.viewer.title.create")
: t("profiles.viewer.title.edit")
}
contentSx={{ width: 375, pb: 0, maxHeight: "80%" }}
okBtn={t("common.actions.save")}
@@ -232,11 +232,11 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
control={control}
render={({ field }) => (
<FormControl size="small" fullWidth sx={{ mt: 1, mb: 1 }}>
<InputLabel>{t("profile.viewer.fields.type")}</InputLabel>
<InputLabel>{t("profiles.viewer.fields.type")}</InputLabel>
<Select
{...field}
autoFocus
label={t("profile.viewer.fields.type")}
label={t("profiles.viewer.fields.type")}
>
<MenuItem value="remote">Remote</MenuItem>
<MenuItem value="local">Local</MenuItem>
@@ -252,7 +252,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
<TextField
{...text}
{...field}
label={t("profile.viewer.fields.name")}
label={t("profiles.viewer.fields.name")}
/>
)}
/>
@@ -264,7 +264,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
<TextField
{...text}
{...field}
label={t("profile.viewer.fields.description")}
label={t("profiles.viewer.fields.description")}
/>
)}
/>
@@ -279,7 +279,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
{...text}
{...field}
multiline
label={t("profile.viewer.fields.subscriptionUrl")}
label={t("profiles.viewer.fields.subscriptionUrl")}
/>
)}
/>
@@ -306,7 +306,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
{...field}
type="number"
placeholder="60"
label={t("profile.viewer.fields.httpTimeout")}
label={t("profiles.viewer.fields.httpTimeout")}
slotProps={{
input: {
endAdornment: (
@@ -331,7 +331,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
{...text}
{...field}
type="number"
label={t("profile.viewer.fields.updateInterval")}
label={t("profiles.viewer.fields.updateInterval")}
slotProps={{
input: {
endAdornment: (
@@ -363,7 +363,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
render={({ field }) => (
<StyledBox>
<InputLabel>
{t("profile.viewer.fields.useSystemProxy")}
{t("profiles.viewer.fields.useSystemProxy")}
</InputLabel>
<Switch checked={field.value} {...field} color="primary" />
</StyledBox>
@@ -376,7 +376,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
render={({ field }) => (
<StyledBox>
<InputLabel>
{t("profile.viewer.fields.useClashProxy")}
{t("profiles.viewer.fields.useClashProxy")}
</InputLabel>
<Switch checked={field.value} {...field} color="primary" />
</StyledBox>
@@ -389,7 +389,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
render={({ field }) => (
<StyledBox>
<InputLabel>
{t("profile.viewer.fields.acceptInvalidCerts")}
{t("profiles.viewer.fields.acceptInvalidCerts")}
</InputLabel>
<Switch checked={field.value} {...field} color="primary" />
</StyledBox>
@@ -402,7 +402,7 @@ export function ProfileViewer({ onChange, ref }: ProfileViewerProps) {
render={({ field }) => (
<StyledBox>
<InputLabel>
{t("profile.viewer.fields.allowAutoUpdate")}
{t("profiles.viewer.fields.allowAutoUpdate")}
</InputLabel>
<Switch checked={field.value} {...field} color="primary" />
</StyledBox>

View File

@@ -263,7 +263,7 @@ export const ProxiesEditorViewer = (props: Props) => {
const handleSave = useLockFn(async () => {
try {
await saveProfileFile(property, currData);
showNotice.success("profile.notifications.saved");
showNotice.success("profiles.notifications.saved");
onSave?.(prevData, currData);
onClose();
} catch (err) {
@@ -276,7 +276,7 @@ export const ProxiesEditorViewer = (props: Props) => {
<DialogTitle>
{
<Box display="flex" justifyContent="space-between">
{t("profile.proxiesEditor.title")}
{t("profiles.proxiesEditor.title")}
<Box>
<Button
variant="contained"
@@ -315,7 +315,7 @@ export const ProxiesEditorViewer = (props: Props) => {
<TextField
autoComplete="new-password"
placeholder={t(
"profile.proxiesEditor.placeholders.multiUri",
"profiles.proxiesEditor.placeholders.multiUri",
)}
fullWidth
rows={9}
@@ -336,7 +336,7 @@ export const ProxiesEditorViewer = (props: Props) => {
});
}}
>
{t("profile.proxiesEditor.actions.prepend")}
{t("profiles.proxiesEditor.actions.prepend")}
</Button>
</Item>
<Item>
@@ -350,7 +350,7 @@ export const ProxiesEditorViewer = (props: Props) => {
});
}}
>
{t("profile.proxiesEditor.actions.append")}
{t("profiles.proxiesEditor.actions.append")}
</Button>
</Item>
</List>

View File

@@ -490,7 +490,7 @@ export const RulesEditorViewer = (props: Props) => {
const handleSave = useLockFn(async () => {
try {
await saveProfileFile(property, currData);
showNotice.success("profile.notifications.saved");
showNotice.success("profiles.notifications.saved");
onSave?.(prevData, currData);
onClose();
} catch (err: any) {

View File

@@ -148,132 +148,6 @@
"MATCH": "مطابقة جميع الطلبات"
}
},
"profile": {
"viewer": {
"title": {
"create": "إنشاء ملف شخصي",
"edit": "تعديل الملف الشخصي"
},
"fields": {
"type": "النوع",
"name": "الاسم",
"description": "الوصف",
"subscriptionUrl": "رابط الاشتراك",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "فاصل التحديث",
"useSystemProxy": "استخدام وكيل النظام",
"useClashProxy": "استخدام وكيل Clash",
"acceptInvalidCerts": "قبول الشهادات غير الصالحة (خطر)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"fileInput": {
"chooseFile": "اختر ملف"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "تعديل الوكلاء",
"placeholders": {
"multiUri": "استخدم أسطرًا جديدة لعدّة عناوين URI (يدعم التشفير Base64)"
},
"actions": {
"prepend": "إضافة وكيل في البداية",
"append": "إضافة وكيل في النهاية"
}
},
"groupsEditor": {
"title": "تعديل مجموعات الوكلاء",
"errors": {
"nameRequired": "اسم المجموعة مطلوب",
"nameExists": "اسم المجموعة موجود بالفعل"
},
"fields": {
"type": "نوع المجموعة",
"name": "اسم المجموعة",
"icon": "أيقونة مجموعة الوكلاء",
"proxies": "استخدام الوكلاء",
"provider": "استخدام المزود",
"healthCheckUrl": "رابط فحص الصحة",
"expectedStatus": "الحالة المتوقعة",
"interval": "الفاصل الزمني",
"timeout": "مهلة",
"maxFailedTimes": "الحد الأقصى لمحاولات الفشل",
"interfaceName": "اسم الواجهة",
"routingMark": "علامة التوجيه",
"filter": "تصفية",
"excludeFilter": "استبعاد المرشح",
"excludeType": "استبعاد النوع",
"includeAll": "تضمين جميع الوكلاء والمزودين",
"includeAllProxies": "تضمين جميع الوكلاء",
"includeAllProviders": "تضمين جميع المزودين"
},
"toggles": {
"lazy": "كسول",
"disableUdp": "تعطيل UDP",
"hidden": "مخفي"
},
"actions": {
"prepend": "إضافة مجموعة في البداية",
"append": "إضافة مجموعة في النهاية"
}
},
"menu": {
"home": "Home",
"select": "اختيار",
"editInfo": "تعديل المعلومات",
"editFile": "تعديل الملف",
"editRules": "تعديل القواعد",
"editProxies": "تعديل الوكلاء",
"editGroups": "تعديل مجموعات الوكلاء",
"extendConfig": "توسيع الإعدادات",
"extendScript": "توسيع السكربت",
"openFile": "فتح الملف",
"update": "تحديث",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "تأكيد الحذف",
"message": "لا يمكن التراجع عن هذه العملية"
}
},
"logViewer": {
"title": "وحدة التحكم للسكريبت"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "تنسيق المستند",
"readOnlyMessage": "لا يمكن التعديل في محرر القراءة فقط"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "المضيف",
"downloaded": "تم التنزيل",
"uploaded": "تم الرفع",
"dlSpeed": "سرعة التنزيل",
"ulSpeed": "سرعة الرفع",
"chains": "السلاسل",
"rule": "قاعدة",
"process": "عملية",
"time": "الوقت",
"source": "المصدر",
"destination": "عنوان IP الوجهة",
"destinationPort": "ميناء الوجهة",
"type": "النوع"
},
"actions": {
"closeConnection": "إغلاق الاتصال"
},
"order": {
"default": "Default",
"uploadSpeed": "سرعة الرفع",
"downloadSpeed": "سرعة التنزيل"
}
},
"settings": {
"system": {
"title": "إعدادات النظام",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "الوضع المباشر"
}
},
"strategies": {
"select": "اختيار الوكيل يدويًا",
"url-test": "اختيار الوكيل بناءً على تأخير اختبار الرابط",
"fallback": "التبديل إلى وكيل آخر عند حدوث خطأ",
"load-balance": "توزيع التحميل بين الوكلاء",
"relay": "التمرير عبر سلسلة الوكلاء المحددة"
},
"policies": {
"DIRECT": "البيانات تخرج مباشرة",
"REJECT": "رفض الطلبات",
"REJECT-DROP": "تجاهل الطلبات",
"PASS": "تخطي هذه القاعدة عند المطابقة"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "تم استيراد الملف الشخصي بنجاح",
"importSubscriptionSuccess": "تم استيراد الاشتراك بنجاح",
"importWithClashProxy": "Profile Imported with Clash proxy"
"importWithClashProxy": "Profile Imported with Clash proxy",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "إنشاء ملف شخصي",
"edit": "تعديل الملف الشخصي"
},
"fields": {
"type": "النوع",
"name": "الاسم",
"description": "الوصف",
"subscriptionUrl": "رابط الاشتراك",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "فاصل التحديث",
"useSystemProxy": "استخدام وكيل النظام",
"useClashProxy": "استخدام وكيل Clash",
"acceptInvalidCerts": "قبول الشهادات غير الصالحة (خطر)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"menu": {
"home": "Home",
"select": "اختيار",
"editInfo": "تعديل المعلومات",
"editFile": "تعديل الملف",
"editRules": "تعديل القواعد",
"editProxies": "تعديل الوكلاء",
"editGroups": "تعديل مجموعات الوكلاء",
"extendConfig": "توسيع الإعدادات",
"extendScript": "توسيع السكربت",
"openFile": "فتح الملف",
"update": "تحديث",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "تعديل الوكلاء",
"placeholders": {
"multiUri": "استخدم أسطرًا جديدة لعدّة عناوين URI (يدعم التشفير Base64)"
},
"actions": {
"prepend": "إضافة وكيل في البداية",
"append": "إضافة وكيل في النهاية"
}
},
"groupsEditor": {
"title": "تعديل مجموعات الوكلاء",
"errors": {
"nameRequired": "اسم المجموعة مطلوب",
"nameExists": "اسم المجموعة موجود بالفعل"
},
"fields": {
"type": "نوع المجموعة",
"name": "اسم المجموعة",
"icon": "أيقونة مجموعة الوكلاء",
"proxies": "استخدام الوكلاء",
"provider": "استخدام المزود",
"healthCheckUrl": "رابط فحص الصحة",
"expectedStatus": "الحالة المتوقعة",
"interval": "الفاصل الزمني",
"timeout": "مهلة",
"maxFailedTimes": "الحد الأقصى لمحاولات الفشل",
"interfaceName": "اسم الواجهة",
"routingMark": "علامة التوجيه",
"filter": "تصفية",
"excludeFilter": "استبعاد المرشح",
"excludeType": "استبعاد النوع",
"includeAll": "تضمين جميع الوكلاء والمزودين",
"includeAllProxies": "تضمين جميع الوكلاء",
"includeAllProviders": "تضمين جميع المزودين"
},
"toggles": {
"lazy": "كسول",
"disableUdp": "تعطيل UDP",
"hidden": "مخفي"
},
"actions": {
"prepend": "إضافة مجموعة في البداية",
"append": "إضافة مجموعة في النهاية"
}
},
"fileInput": {
"chooseFile": "اختر ملف"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "تأكيد الحذف",
"message": "لا يمكن التراجع عن هذه العملية"
}
},
"editor": {
"format": "تنسيق المستند",
"readOnlyMessage": "لا يمكن التعديل في محرر القراءة فقط"
},
"logViewer": {
"title": "وحدة التحكم للسكريبت"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "استأنف",
"closeAll": "إغلاق الكل"
}
},
"fields": {
"host": "المضيف",
"downloaded": "تم التنزيل",
"uploaded": "تم الرفع",
"dlSpeed": "سرعة التنزيل",
"ulSpeed": "سرعة الرفع",
"chains": "السلاسل",
"rule": "قاعدة",
"process": "عملية",
"time": "الوقت",
"source": "المصدر",
"destination": "عنوان IP الوجهة",
"destinationPort": "ميناء الوجهة",
"type": "النوع"
},
"order": {
"default": "Default",
"uploadSpeed": "سرعة الرفع",
"downloadSpeed": "سرعة التنزيل"
},
"actions": {
"closeConnection": "إغلاق الاتصال"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "اختيار الوكيل يدويًا",
"url-test": "اختيار الوكيل بناءً على تأخير اختبار الرابط",
"fallback": "التبديل إلى وكيل آخر عند حدوث خطأ",
"load-balance": "توزيع التحميل بين الوكلاء",
"relay": "التمرير عبر سلسلة الوكلاء المحددة"
},
"policies": {
"DIRECT": "البيانات تخرج مباشرة",
"REJECT": "رفض الطلبات",
"REJECT-DROP": "تجاهل الطلبات",
"PASS": "تخطي هذه القاعدة عند المطابقة"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "Alle Anfragen übereinstimmen"
}
},
"profile": {
"viewer": {
"title": {
"create": "Neue Konfiguration erstellen",
"edit": "Konfiguration bearbeiten"
},
"fields": {
"type": "Typ",
"name": "Name",
"description": "Beschreibung",
"subscriptionUrl": "Abonnement-Link",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Aktualisierungsintervall",
"useSystemProxy": "Systemproxy zur Aktualisierung verwenden",
"useClashProxy": "Kernel-Proxy zur Aktualisierung verwenden",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Erstellung des Abonnements fehlgeschlagen. Versuche es mit dem Clash-Proxy erneut...",
"creationSuccess": "Erstellung des Abonnements mit Clash-Proxy erfolgreich"
}
},
"fileInput": {
"chooseFile": "Datei auswählen"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "Knoten bearbeiten",
"placeholders": {
"multiUri": "Für mehrere URI verwenden Sie Zeilenumbrüche (Base64-Codierung wird unterstützt)"
},
"actions": {
"prepend": "Vorherigen Proxy-Knoten hinzufügen",
"append": "Nachfolgenden Proxy-Knoten hinzufügen"
}
},
"groupsEditor": {
"title": "Proxy-Gruppen bearbeiten",
"errors": {
"nameRequired": "Der Proxy-Gruppenname darf nicht leer sein",
"nameExists": "Der Proxy-Gruppenname existiert bereits"
},
"fields": {
"type": "Proxy-Gruppentyp",
"name": "Proxy-Gruppenname",
"icon": "Proxy-Gruppen-Symbol",
"proxies": "Proxy einführen",
"provider": "Proxy-Sammlung einführen",
"healthCheckUrl": "URL für Gesundheitstest",
"expectedStatus": "Erwarteter Statuscode",
"interval": "Prüfintervall",
"timeout": "Timeout",
"maxFailedTimes": "Maximale Anzahl fehlgeschlagener Versuche",
"interfaceName": "Ausgangsschnittstelle",
"routingMark": "Routierungsmarkierung",
"filter": "Knoten filtern",
"excludeFilter": "Knoten ausschließen",
"excludeType": "Typ der auszuschließenden Knoten",
"includeAll": "Alle Ausgangsproxy und Proxy-Sammlungen einführen",
"includeAllProxies": "Alle Ausgangsproxy einführen",
"includeAllProviders": "Alle Proxy-Sammlungen einführen"
},
"toggles": {
"lazy": "Lazy-Status",
"disableUdp": "UDP deaktivieren",
"hidden": "Proxy-Gruppe ausblenden"
},
"actions": {
"prepend": "Vorherige Proxy-Gruppe hinzufügen",
"append": "Nachfolgende Proxy-Gruppe hinzufügen"
}
},
"menu": {
"home": "Startseite",
"select": "Verwenden",
"editInfo": "Informationen bearbeiten",
"editFile": "Datei bearbeiten",
"editRules": "Regeln bearbeiten",
"editProxies": "Knoten bearbeiten",
"editGroups": "Proxy-Gruppen bearbeiten",
"extendConfig": "Erweiterte Überdeckungskonfiguration",
"extendScript": "Erweitertes Skript",
"openFile": "Datei öffnen",
"update": "Aktualisieren",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Letzte Aktualisierung fehlgeschlagen",
"nextUp": "Nächste Aktualisierung",
"noSchedule": "Kein Zeitplan",
"unknown": "Unbekannt",
"autoUpdateDisabled": "Automatische Aktualisierung deaktiviert"
}
},
"confirm": {
"delete": {
"title": "Löschung bestätigen",
"message": "Diese Operation kann nicht rückgängig gemacht werden"
}
},
"logViewer": {
"title": "Skript-Konsole-Ausgabe"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "Dokument formatieren",
"readOnlyMessage": "Bearbeitung im schreibgeschützten Modus nicht möglich"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "Host",
"downloaded": "Heruntergeladen",
"uploaded": "Hochgeladen",
"dlSpeed": "Download-Geschwindigkeit",
"ulSpeed": "Upload-Geschwindigkeit",
"chains": "Ketten",
"rule": "Regel",
"process": "Prozess",
"time": "Verbindungszeit",
"source": "Quelladresse",
"destination": "Zieladresse",
"destinationPort": "Zielport",
"type": "Typ"
},
"actions": {
"closeConnection": "Verbindung schließen"
},
"order": {
"default": "Default",
"uploadSpeed": "Upload-Geschwindigkeit",
"downloadSpeed": "Download-Geschwindigkeit"
}
},
"settings": {
"system": {
"title": "Systemeinstellungen",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Direktverbindungs-Modus"
}
},
"strategies": {
"select": "Proxy manuell auswählen",
"url-test": "Proxy basierend auf URL-Latenztest auswählen",
"fallback": "Bei Nichtverfügbarkeit zu einem anderen Proxy wechseln",
"load-balance": "Proxy basierend auf Lastverteilung zuweisen",
"relay": "Basierend auf definiertem Proxy-Kette weiterleiten"
},
"policies": {
"DIRECT": "Direktverbindung",
"REJECT": "Anfrage ablehnen",
"REJECT-DROP": "Anfrage verwerfen",
"PASS": "Diese Regel überspringen"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Abonnement erfolgreich importiert",
"importSubscriptionSuccess": "Abonnement erfolgreich importiert",
"importWithClashProxy": "Abonnement mit Clash-Proxy importiert"
"importWithClashProxy": "Abonnement mit Clash-Proxy importiert",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "Neue Konfiguration erstellen",
"edit": "Konfiguration bearbeiten"
},
"fields": {
"type": "Typ",
"name": "Name",
"description": "Beschreibung",
"subscriptionUrl": "Abonnement-Link",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Aktualisierungsintervall",
"useSystemProxy": "Systemproxy zur Aktualisierung verwenden",
"useClashProxy": "Kernel-Proxy zur Aktualisierung verwenden",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Erstellung des Abonnements fehlgeschlagen. Versuche es mit dem Clash-Proxy erneut...",
"creationSuccess": "Erstellung des Abonnements mit Clash-Proxy erfolgreich"
}
},
"menu": {
"home": "Startseite",
"select": "Verwenden",
"editInfo": "Informationen bearbeiten",
"editFile": "Datei bearbeiten",
"editRules": "Regeln bearbeiten",
"editProxies": "Knoten bearbeiten",
"editGroups": "Proxy-Gruppen bearbeiten",
"extendConfig": "Erweiterte Überdeckungskonfiguration",
"extendScript": "Erweitertes Skript",
"openFile": "Datei öffnen",
"update": "Aktualisieren",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "Knoten bearbeiten",
"placeholders": {
"multiUri": "Für mehrere URI verwenden Sie Zeilenumbrüche (Base64-Codierung wird unterstützt)"
},
"actions": {
"prepend": "Vorherigen Proxy-Knoten hinzufügen",
"append": "Nachfolgenden Proxy-Knoten hinzufügen"
}
},
"groupsEditor": {
"title": "Proxy-Gruppen bearbeiten",
"errors": {
"nameRequired": "Der Proxy-Gruppenname darf nicht leer sein",
"nameExists": "Der Proxy-Gruppenname existiert bereits"
},
"fields": {
"type": "Proxy-Gruppentyp",
"name": "Proxy-Gruppenname",
"icon": "Proxy-Gruppen-Symbol",
"proxies": "Proxy einführen",
"provider": "Proxy-Sammlung einführen",
"healthCheckUrl": "URL für Gesundheitstest",
"expectedStatus": "Erwarteter Statuscode",
"interval": "Prüfintervall",
"timeout": "Timeout",
"maxFailedTimes": "Maximale Anzahl fehlgeschlagener Versuche",
"interfaceName": "Ausgangsschnittstelle",
"routingMark": "Routierungsmarkierung",
"filter": "Knoten filtern",
"excludeFilter": "Knoten ausschließen",
"excludeType": "Typ der auszuschließenden Knoten",
"includeAll": "Alle Ausgangsproxy und Proxy-Sammlungen einführen",
"includeAllProxies": "Alle Ausgangsproxy einführen",
"includeAllProviders": "Alle Proxy-Sammlungen einführen"
},
"toggles": {
"lazy": "Lazy-Status",
"disableUdp": "UDP deaktivieren",
"hidden": "Proxy-Gruppe ausblenden"
},
"actions": {
"prepend": "Vorherige Proxy-Gruppe hinzufügen",
"append": "Nachfolgende Proxy-Gruppe hinzufügen"
}
},
"fileInput": {
"chooseFile": "Datei auswählen"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Letzte Aktualisierung fehlgeschlagen",
"nextUp": "Nächste Aktualisierung",
"noSchedule": "Kein Zeitplan",
"unknown": "Unbekannt",
"autoUpdateDisabled": "Automatische Aktualisierung deaktiviert"
}
},
"confirm": {
"delete": {
"title": "Löschung bestätigen",
"message": "Diese Operation kann nicht rückgängig gemacht werden"
}
},
"editor": {
"format": "Dokument formatieren",
"readOnlyMessage": "Bearbeitung im schreibgeschützten Modus nicht möglich"
},
"logViewer": {
"title": "Skript-Konsole-Ausgabe"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "Fortsetzen",
"closeAll": "Alle schließen"
}
},
"fields": {
"host": "Host",
"downloaded": "Heruntergeladen",
"uploaded": "Hochgeladen",
"dlSpeed": "Download-Geschwindigkeit",
"ulSpeed": "Upload-Geschwindigkeit",
"chains": "Ketten",
"rule": "Regel",
"process": "Prozess",
"time": "Verbindungszeit",
"source": "Quelladresse",
"destination": "Zieladresse",
"destinationPort": "Zielport",
"type": "Typ"
},
"order": {
"default": "Default",
"uploadSpeed": "Upload-Geschwindigkeit",
"downloadSpeed": "Download-Geschwindigkeit"
},
"actions": {
"closeConnection": "Verbindung schließen"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "Proxy manuell auswählen",
"url-test": "Proxy basierend auf URL-Latenztest auswählen",
"fallback": "Bei Nichtverfügbarkeit zu einem anderen Proxy wechseln",
"load-balance": "Proxy basierend auf Lastverteilung zuweisen",
"relay": "Basierend auf definiertem Proxy-Kette weiterleiten"
},
"policies": {
"DIRECT": "Direktverbindung",
"REJECT": "Anfrage ablehnen",
"REJECT-DROP": "Anfrage verwerfen",
"PASS": "Diese Regel überspringen"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "Match all requests (MATCH)"
}
},
"profile": {
"viewer": {
"title": {
"create": "Create Profile",
"edit": "Edit Profile"
},
"fields": {
"type": "Type",
"name": "Name",
"description": "Descriptions",
"subscriptionUrl": "Subscription URL",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Update Interval",
"useSystemProxy": "Use System Proxy",
"useClashProxy": "Use Clash Proxy",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"fileInput": {
"chooseFile": "Choose File"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "Edit Proxies",
"placeholders": {
"multiUri": "Use newlines for multiple uri(Base64 encoding supported)"
},
"actions": {
"prepend": "Prepend Proxy",
"append": "Append Proxy"
}
},
"groupsEditor": {
"title": "Edit Proxy Groups",
"errors": {
"nameRequired": "Group Name Required",
"nameExists": "Group Name Already Exists"
},
"fields": {
"type": "Group Type",
"name": "Group Name",
"icon": "Proxy Group Icon",
"proxies": "Use Proxies",
"provider": "Use Provider",
"healthCheckUrl": "Health Check Url",
"expectedStatus": "Expected Status",
"interval": "Interval",
"timeout": "Timeout",
"maxFailedTimes": "Max Failed Times",
"interfaceName": "Interface Name",
"routingMark": "Routing Mark",
"filter": "Filter",
"excludeFilter": "Exclude Filter",
"excludeType": "Exclude Type",
"includeAll": "Include All Proxies and Providers",
"includeAllProxies": "Include All Proxies",
"includeAllProviders": "Include All Providers"
},
"toggles": {
"lazy": "Lazy",
"disableUdp": "Disable UDP",
"hidden": "Hidden"
},
"actions": {
"prepend": "Prepend Group",
"append": "Append Group"
}
},
"menu": {
"home": "Home",
"select": "Select",
"editInfo": "Edit Info",
"editFile": "Edit File",
"editRules": "Edit Rules",
"editProxies": "Edit Proxies",
"editGroups": "Edit Proxy Groups",
"extendConfig": "Extend Config",
"extendScript": "Extend Script",
"openFile": "Open File",
"update": "Update",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Confirm deletion",
"message": "This operation is not reversible"
}
},
"logViewer": {
"title": "Script Console"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "Format document",
"readOnlyMessage": "Cannot edit in read-only editor"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "Host",
"downloaded": "Downloaded",
"uploaded": "Uploaded",
"dlSpeed": "DL Speed",
"ulSpeed": "UL Speed",
"chains": "Chains",
"rule": "Rule",
"process": "Process",
"time": "Time",
"source": "Source",
"destination": "Destination",
"destinationPort": "Destination Port",
"type": "Type"
},
"actions": {
"closeConnection": "Close Connection"
},
"order": {
"default": "Default",
"uploadSpeed": "Upload Speed",
"downloadSpeed": "Download Speed"
}
},
"settings": {
"system": {
"title": "System Setting",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Direct Mode"
}
},
"strategies": {
"select": "Select proxy manually",
"url-test": "Select proxy based on URL test delay",
"fallback": "Switch to another proxy on error",
"load-balance": "Distribute proxy based on load balancing",
"relay": "Pass through the defined proxy chain"
},
"policies": {
"DIRECT": "Data goes directly outbound (DIRECT)",
"REJECT": "Intercepts requests (REJECT)",
"REJECT-DROP": "Discards requests (REJECT-DROP)",
"PASS": "Skips this rule when matched (PASS)"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Profile Imported Successfully",
"importSubscriptionSuccess": "Import subscription successful",
"importWithClashProxy": "Profile Imported with Clash proxy"
"importWithClashProxy": "Profile Imported with Clash proxy",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "Create Profile",
"edit": "Edit Profile"
},
"fields": {
"type": "Type",
"name": "Name",
"description": "Descriptions",
"subscriptionUrl": "Subscription URL",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Update Interval",
"useSystemProxy": "Use System Proxy",
"useClashProxy": "Use Clash Proxy",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"menu": {
"home": "Home",
"select": "Select",
"editInfo": "Edit Info",
"editFile": "Edit File",
"editRules": "Edit Rules",
"editProxies": "Edit Proxies",
"editGroups": "Edit Proxy Groups",
"extendConfig": "Extend Config",
"extendScript": "Extend Script",
"openFile": "Open File",
"update": "Update",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "Edit Proxies",
"placeholders": {
"multiUri": "Use newlines for multiple uri(Base64 encoding supported)"
},
"actions": {
"prepend": "Prepend Proxy",
"append": "Append Proxy"
}
},
"groupsEditor": {
"title": "Edit Proxy Groups",
"errors": {
"nameRequired": "Group Name Required",
"nameExists": "Group Name Already Exists"
},
"fields": {
"type": "Group Type",
"name": "Group Name",
"icon": "Proxy Group Icon",
"proxies": "Use Proxies",
"provider": "Use Provider",
"healthCheckUrl": "Health Check Url",
"expectedStatus": "Expected Status",
"interval": "Interval",
"timeout": "Timeout",
"maxFailedTimes": "Max Failed Times",
"interfaceName": "Interface Name",
"routingMark": "Routing Mark",
"filter": "Filter",
"excludeFilter": "Exclude Filter",
"excludeType": "Exclude Type",
"includeAll": "Include All Proxies and Providers",
"includeAllProxies": "Include All Proxies",
"includeAllProviders": "Include All Providers"
},
"toggles": {
"lazy": "Lazy",
"disableUdp": "Disable UDP",
"hidden": "Hidden"
},
"actions": {
"prepend": "Prepend Group",
"append": "Append Group"
}
},
"fileInput": {
"chooseFile": "Choose File"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Confirm deletion",
"message": "This operation is not reversible"
}
},
"editor": {
"format": "Format document",
"readOnlyMessage": "Cannot edit in read-only editor"
},
"logViewer": {
"title": "Script Console"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "Resume",
"closeAll": "Close All"
}
},
"fields": {
"host": "Host",
"downloaded": "Downloaded",
"uploaded": "Uploaded",
"dlSpeed": "DL Speed",
"ulSpeed": "UL Speed",
"chains": "Chains",
"rule": "Rule",
"process": "Process",
"time": "Time",
"source": "Source",
"destination": "Destination",
"destinationPort": "Destination Port",
"type": "Type"
},
"order": {
"default": "Default",
"uploadSpeed": "Upload Speed",
"downloadSpeed": "Download Speed"
},
"actions": {
"closeConnection": "Close Connection"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "Select proxy manually",
"url-test": "Select proxy based on URL test delay",
"fallback": "Switch to another proxy on error",
"load-balance": "Distribute proxy based on load balancing",
"relay": "Pass through the defined proxy chain"
},
"policies": {
"DIRECT": "Data goes directly outbound (DIRECT)",
"REJECT": "Intercepts requests (REJECT)",
"REJECT-DROP": "Discards requests (REJECT-DROP)",
"PASS": "Skips this rule when matched (PASS)"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "Coincidir con todas las solicitudes"
}
},
"profile": {
"viewer": {
"title": {
"create": "Crear configuración",
"edit": "Editar configuración"
},
"fields": {
"type": "Tipo",
"name": "Nombre",
"description": "Descripción",
"subscriptionUrl": "Enlace de suscripción",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Intervalo de actualización",
"useSystemProxy": "Usar proxy del sistema para actualizar",
"useClashProxy": "Usar proxy del núcleo para actualizar",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Error al crear la suscripción. Intentando con el proxy de Clash...",
"creationSuccess": "Creación de la suscripción con el proxy de Clash exitosa"
}
},
"fileInput": {
"chooseFile": "Elegir archivo"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "Editar nodos",
"placeholders": {
"multiUri": "Para múltiples URI, utilice saltos de línea (se admite la codificación Base64)"
},
"actions": {
"prepend": "Agregar nodo de proxy previo",
"append": "Agregar nodo de proxy posterior"
}
},
"groupsEditor": {
"title": "Editar grupos de proxy",
"errors": {
"nameRequired": "El nombre del grupo de proxy no puede estar vacío",
"nameExists": "El nombre del grupo de proxy ya existe"
},
"fields": {
"type": "Tipo de grupo de proxy",
"name": "Nombre del grupo de proxy",
"icon": "Icono del grupo de proxy",
"proxies": "Incluir proxies",
"provider": "Incluir proveedor de proxies",
"healthCheckUrl": "URL de prueba de salud",
"expectedStatus": "Código de estado esperado",
"interval": "Intervalo de comprobación",
"timeout": "Tiempo de espera",
"maxFailedTimes": "Número máximo de fallos",
"interfaceName": "Nombre de la interfaz de salida",
"routingMark": "Marca de enrutamiento",
"filter": "Filtrar nodos",
"excludeFilter": "Excluir nodos",
"excludeType": "Tipo de nodo a excluir",
"includeAll": "Incluir todos los proxies de salida y proveedores de proxies",
"includeAllProxies": "Incluir todos los proxies de salida",
"includeAllProviders": "Incluir todos los proveedores de proxies"
},
"toggles": {
"lazy": "Estado de inactividad",
"disableUdp": "Deshabilitar UDP",
"hidden": "Ocultar grupo de proxy"
},
"actions": {
"prepend": "Agregar grupo de proxy previo",
"append": "Agregar grupo de proxy posterior"
}
},
"menu": {
"home": "Hogar",
"select": "Usar",
"editInfo": "Editar información",
"editFile": "Editar archivo",
"editRules": "Editar reglas",
"editProxies": "Editar nodos",
"editGroups": "Editar grupos de proxy",
"extendConfig": "Configurar sobrescritura extendida",
"extendScript": "Script extendido",
"openFile": "Abrir archivo",
"update": "Actualizar",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "La última actualización falló",
"nextUp": "Próxima actualización",
"noSchedule": "Sin programación",
"unknown": "Desconocido",
"autoUpdateDisabled": "La actualización automática está deshabilitada"
}
},
"confirm": {
"delete": {
"title": "Confirmar eliminación",
"message": "Esta operación no se puede deshacer"
}
},
"logViewer": {
"title": "Salida de la consola del script"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "Formatear documento",
"readOnlyMessage": "No se puede editar en modo de solo lectura"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "Host",
"downloaded": "Descargado",
"uploaded": "Subido",
"dlSpeed": "Velocidad de descarga",
"ulSpeed": "Velocidad de subida",
"chains": "Cadenas",
"rule": "Regla",
"process": "Proceso",
"time": "Tiempo de conexión",
"source": "Dirección de origen",
"destination": "Dirección de destino",
"destinationPort": "Puerto de destino",
"type": "Tipo"
},
"actions": {
"closeConnection": "Cerrar conexión"
},
"order": {
"default": "Default",
"uploadSpeed": "Velocidad de subida",
"downloadSpeed": "Velocidad de descarga"
}
},
"settings": {
"system": {
"title": "Ajustes del sistema",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Modo de conexión directa"
}
},
"strategies": {
"select": "Seleccionar proxy manualmente",
"url-test": "Seleccionar proxy según la prueba de latencia de la URL",
"fallback": "Cambiar a otro proxy cuando no esté disponible",
"load-balance": "Asignar proxy según el equilibrio de carga",
"relay": "Transferir según la cadena de proxy definida"
},
"policies": {
"DIRECT": "Conexión directa",
"REJECT": "Rechazar solicitud",
"REJECT-DROP": "Descartar solicitud",
"PASS": "Saltar esta regla"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Suscripción importada con éxito",
"importSubscriptionSuccess": "Suscripción importada con éxito",
"importWithClashProxy": "Suscripción importada con el proxy de Clash"
"importWithClashProxy": "Suscripción importada con el proxy de Clash",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "Crear configuración",
"edit": "Editar configuración"
},
"fields": {
"type": "Tipo",
"name": "Nombre",
"description": "Descripción",
"subscriptionUrl": "Enlace de suscripción",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Intervalo de actualización",
"useSystemProxy": "Usar proxy del sistema para actualizar",
"useClashProxy": "Usar proxy del núcleo para actualizar",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Error al crear la suscripción. Intentando con el proxy de Clash...",
"creationSuccess": "Creación de la suscripción con el proxy de Clash exitosa"
}
},
"menu": {
"home": "Hogar",
"select": "Usar",
"editInfo": "Editar información",
"editFile": "Editar archivo",
"editRules": "Editar reglas",
"editProxies": "Editar nodos",
"editGroups": "Editar grupos de proxy",
"extendConfig": "Configurar sobrescritura extendida",
"extendScript": "Script extendido",
"openFile": "Abrir archivo",
"update": "Actualizar",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "Editar nodos",
"placeholders": {
"multiUri": "Para múltiples URI, utilice saltos de línea (se admite la codificación Base64)"
},
"actions": {
"prepend": "Agregar nodo de proxy previo",
"append": "Agregar nodo de proxy posterior"
}
},
"groupsEditor": {
"title": "Editar grupos de proxy",
"errors": {
"nameRequired": "El nombre del grupo de proxy no puede estar vacío",
"nameExists": "El nombre del grupo de proxy ya existe"
},
"fields": {
"type": "Tipo de grupo de proxy",
"name": "Nombre del grupo de proxy",
"icon": "Icono del grupo de proxy",
"proxies": "Incluir proxies",
"provider": "Incluir proveedor de proxies",
"healthCheckUrl": "URL de prueba de salud",
"expectedStatus": "Código de estado esperado",
"interval": "Intervalo de comprobación",
"timeout": "Tiempo de espera",
"maxFailedTimes": "Número máximo de fallos",
"interfaceName": "Nombre de la interfaz de salida",
"routingMark": "Marca de enrutamiento",
"filter": "Filtrar nodos",
"excludeFilter": "Excluir nodos",
"excludeType": "Tipo de nodo a excluir",
"includeAll": "Incluir todos los proxies de salida y proveedores de proxies",
"includeAllProxies": "Incluir todos los proxies de salida",
"includeAllProviders": "Incluir todos los proveedores de proxies"
},
"toggles": {
"lazy": "Estado de inactividad",
"disableUdp": "Deshabilitar UDP",
"hidden": "Ocultar grupo de proxy"
},
"actions": {
"prepend": "Agregar grupo de proxy previo",
"append": "Agregar grupo de proxy posterior"
}
},
"fileInput": {
"chooseFile": "Elegir archivo"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "La última actualización falló",
"nextUp": "Próxima actualización",
"noSchedule": "Sin programación",
"unknown": "Desconocido",
"autoUpdateDisabled": "La actualización automática está deshabilitada"
}
},
"confirm": {
"delete": {
"title": "Confirmar eliminación",
"message": "Esta operación no se puede deshacer"
}
},
"editor": {
"format": "Formatear documento",
"readOnlyMessage": "No se puede editar en modo de solo lectura"
},
"logViewer": {
"title": "Salida de la consola del script"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "Reanudar",
"closeAll": "Cerrar todas"
}
},
"fields": {
"host": "Host",
"downloaded": "Descargado",
"uploaded": "Subido",
"dlSpeed": "Velocidad de descarga",
"ulSpeed": "Velocidad de subida",
"chains": "Cadenas",
"rule": "Regla",
"process": "Proceso",
"time": "Tiempo de conexión",
"source": "Dirección de origen",
"destination": "Dirección de destino",
"destinationPort": "Puerto de destino",
"type": "Tipo"
},
"order": {
"default": "Default",
"uploadSpeed": "Velocidad de subida",
"downloadSpeed": "Velocidad de descarga"
},
"actions": {
"closeConnection": "Cerrar conexión"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "Seleccionar proxy manualmente",
"url-test": "Seleccionar proxy según la prueba de latencia de la URL",
"fallback": "Cambiar a otro proxy cuando no esté disponible",
"load-balance": "Asignar proxy según el equilibrio de carga",
"relay": "Transferir según la cadena de proxy definida"
},
"policies": {
"DIRECT": "Conexión directa",
"REJECT": "Rechazar solicitud",
"REJECT-DROP": "Descartar solicitud",
"PASS": "Saltar esta regla"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "مطابقت با تمام درخواست‌ها"
}
},
"profile": {
"viewer": {
"title": {
"create": "ایجاد پروفایل",
"edit": "ویرایش پروفایل"
},
"fields": {
"type": "نوع",
"name": "نام",
"description": "توضیحات",
"subscriptionUrl": "آدرس اشتراک",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "فاصله زمانی به‌روزرسانی",
"useSystemProxy": "استفاده از پراکسی سیستم",
"useClashProxy": "استفاده از پراکسی Clash",
"acceptInvalidCerts": "پذیرش گواهی‌نامه‌های نامعتبر (خطرناک)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"fileInput": {
"chooseFile": "انتخاب فایل"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "ویرایش پروکسی‌ها",
"placeholders": {
"multiUri": "استفاده از خطوط جدید برای چندین آدرس (پشتیبانی از رمزگذاری Base64)"
},
"actions": {
"prepend": "پیش‌افزودن پراکسی",
"append": "پس‌افزودن پراکسی"
}
},
"groupsEditor": {
"title": "ویرایش گروه‌های پروکسی",
"errors": {
"nameRequired": "نام گروه مورد نیاز است",
"nameExists": "نام گروه قبلا وجود دارد"
},
"fields": {
"type": "نوع گروه",
"name": "نام گروه",
"icon": "آیکون گروه پراکسی",
"proxies": "استفاده از پروکسی‌ها",
"provider": "استفاده از ارائه‌دهنده",
"healthCheckUrl": "آدرس بررسی سلامت",
"expectedStatus": "وضعیت مورد انتظار",
"interval": "فاصله زمانی",
"timeout": "زمان قطع",
"maxFailedTimes": "حداکثر تعداد شکست‌ها",
"interfaceName": "نام رابط",
"routingMark": "علامت مسیریابی",
"filter": "فیلتر",
"excludeFilter": "فیلتر استثناء",
"excludeType": "نوع استثناء",
"includeAll": "شامل همه پروکسی‌ها و ارائه‌دهنده‌ها",
"includeAllProxies": "شامل همه پروکسی‌ها",
"includeAllProviders": "شامل همه ارائه‌دهنده‌ها"
},
"toggles": {
"lazy": "تنبل",
"disableUdp": "غیرفعال کردن UDP",
"hidden": "مخفی"
},
"actions": {
"prepend": "اضافه کردن گروه به ابتدا",
"append": "اضافه کردن گروه به انتها"
}
},
"menu": {
"home": "Home",
"select": "انتخاب",
"editInfo": "ویرایش اطلاعات",
"editFile": "ویرایش فایل",
"editRules": "ویرایش قوانین",
"editProxies": "ویرایش پروکسی‌ها",
"editGroups": "ویرایش گروه‌های پروکسی",
"extendConfig": "توسعه پیکربندی",
"extendScript": "ادغام اسکریپت",
"openFile": "باز کردن فایل",
"update": "به‌روزرسانی",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "تأیید حذف",
"message": "این عملیات قابل برگشت نیست"
}
},
"logViewer": {
"title": "کنسول اسکریپت"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "فرمت‌بندی سند",
"readOnlyMessage": "نمی‌توان در ویرایشگر فقط خواندنی ویرایش کرد"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "میزبان",
"downloaded": "دانلود شده",
"uploaded": "بارگذاری شده",
"dlSpeed": "سرعت دانلود",
"ulSpeed": "سرعت بارگذاری",
"chains": "زنجیره‌ها",
"rule": "قانون",
"process": "فرآیند",
"time": "زمان",
"source": "منبع",
"destination": "آدرس IP مقصد",
"destinationPort": "بندر هدف",
"type": "نوع"
},
"actions": {
"closeConnection": "بستن اتصال"
},
"order": {
"default": "Default",
"uploadSpeed": "سرعت بارگذاری",
"downloadSpeed": "سرعت دانلود"
}
},
"settings": {
"system": {
"title": "تنظیمات سیستم",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "حالت مستقیم"
}
},
"strategies": {
"select": "انتخاب پروکسی به صورت دستی",
"url-test": "انتخاب پروکسی بر اساس تأخیر آزمایش URL",
"fallback": "تعویض به پروکسی دیگر در صورت بروز خطا",
"load-balance": "توزیع پراکسی بر اساس توازن بار",
"relay": "عبور از زنجیره پروکسی تعریف شده"
},
"policies": {
"DIRECT": "داده‌ها به صورت مستقیم خروجی می‌شوند",
"REJECT": "درخواست‌ها را متوقف می‌کند",
"REJECT-DROP": "درخواست‌ها را نادیده می‌گیرد",
"PASS": "این قانون را در صورت تطابق نادیده می‌گیرد"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "پروفایل با موفقیت وارد شد",
"importSubscriptionSuccess": "وارد کردن اشتراک با موفقیت انجام شد",
"importWithClashProxy": "Profile Imported with Clash proxy"
"importWithClashProxy": "Profile Imported with Clash proxy",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "ایجاد پروفایل",
"edit": "ویرایش پروفایل"
},
"fields": {
"type": "نوع",
"name": "نام",
"description": "توضیحات",
"subscriptionUrl": "آدرس اشتراک",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "فاصله زمانی به‌روزرسانی",
"useSystemProxy": "استفاده از پراکسی سیستم",
"useClashProxy": "استفاده از پراکسی Clash",
"acceptInvalidCerts": "پذیرش گواهی‌نامه‌های نامعتبر (خطرناک)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"menu": {
"home": "Home",
"select": "انتخاب",
"editInfo": "ویرایش اطلاعات",
"editFile": "ویرایش فایل",
"editRules": "ویرایش قوانین",
"editProxies": "ویرایش پروکسی‌ها",
"editGroups": "ویرایش گروه‌های پروکسی",
"extendConfig": "توسعه پیکربندی",
"extendScript": "ادغام اسکریپت",
"openFile": "باز کردن فایل",
"update": "به‌روزرسانی",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "ویرایش پروکسی‌ها",
"placeholders": {
"multiUri": "استفاده از خطوط جدید برای چندین آدرس (پشتیبانی از رمزگذاری Base64)"
},
"actions": {
"prepend": "پیش‌افزودن پراکسی",
"append": "پس‌افزودن پراکسی"
}
},
"groupsEditor": {
"title": "ویرایش گروه‌های پروکسی",
"errors": {
"nameRequired": "نام گروه مورد نیاز است",
"nameExists": "نام گروه قبلا وجود دارد"
},
"fields": {
"type": "نوع گروه",
"name": "نام گروه",
"icon": "آیکون گروه پراکسی",
"proxies": "استفاده از پروکسی‌ها",
"provider": "استفاده از ارائه‌دهنده",
"healthCheckUrl": "آدرس بررسی سلامت",
"expectedStatus": "وضعیت مورد انتظار",
"interval": "فاصله زمانی",
"timeout": "زمان قطع",
"maxFailedTimes": "حداکثر تعداد شکست‌ها",
"interfaceName": "نام رابط",
"routingMark": "علامت مسیریابی",
"filter": "فیلتر",
"excludeFilter": "فیلتر استثناء",
"excludeType": "نوع استثناء",
"includeAll": "شامل همه پروکسی‌ها و ارائه‌دهنده‌ها",
"includeAllProxies": "شامل همه پروکسی‌ها",
"includeAllProviders": "شامل همه ارائه‌دهنده‌ها"
},
"toggles": {
"lazy": "تنبل",
"disableUdp": "غیرفعال کردن UDP",
"hidden": "مخفی"
},
"actions": {
"prepend": "اضافه کردن گروه به ابتدا",
"append": "اضافه کردن گروه به انتها"
}
},
"fileInput": {
"chooseFile": "انتخاب فایل"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "تأیید حذف",
"message": "این عملیات قابل برگشت نیست"
}
},
"editor": {
"format": "فرمت‌بندی سند",
"readOnlyMessage": "نمی‌توان در ویرایشگر فقط خواندنی ویرایش کرد"
},
"logViewer": {
"title": "کنسول اسکریپت"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "از سرگیری",
"closeAll": "بستن همه"
}
},
"fields": {
"host": "میزبان",
"downloaded": "دانلود شده",
"uploaded": "بارگذاری شده",
"dlSpeed": "سرعت دانلود",
"ulSpeed": "سرعت بارگذاری",
"chains": "زنجیره‌ها",
"rule": "قانون",
"process": "فرآیند",
"time": "زمان",
"source": "منبع",
"destination": "آدرس IP مقصد",
"destinationPort": "بندر هدف",
"type": "نوع"
},
"order": {
"default": "Default",
"uploadSpeed": "سرعت بارگذاری",
"downloadSpeed": "سرعت دانلود"
},
"actions": {
"closeConnection": "بستن اتصال"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "انتخاب پروکسی به صورت دستی",
"url-test": "انتخاب پروکسی بر اساس تأخیر آزمایش URL",
"fallback": "تعویض به پروکسی دیگر در صورت بروز خطا",
"load-balance": "توزیع پراکسی بر اساس توازن بار",
"relay": "عبور از زنجیره پروکسی تعریف شده"
},
"policies": {
"DIRECT": "داده‌ها به صورت مستقیم خروجی می‌شوند",
"REJECT": "درخواست‌ها را متوقف می‌کند",
"REJECT-DROP": "درخواست‌ها را نادیده می‌گیرد",
"PASS": "این قانون را در صورت تطابق نادیده می‌گیرد"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "Cocok dengan semua permintaan"
}
},
"profile": {
"viewer": {
"title": {
"create": "Buat Profil",
"edit": "Ubah Profil"
},
"fields": {
"type": "Jenis",
"name": "Nama",
"description": "Deskripsi",
"subscriptionUrl": "URL Langganan",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Interval Pembaruan",
"useSystemProxy": "Gunakan Proksi Sistem",
"useClashProxy": "Gunakan Proksi Clash",
"acceptInvalidCerts": "Terima Sertifikat Tidak Valid (Bahaya)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"fileInput": {
"chooseFile": "Pilih Berkas"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "Ubah Proksi",
"placeholders": {
"multiUri": "Gunakan baris baru untuk beberapa URI (mendukung pengkodean Base64)"
},
"actions": {
"prepend": "Tambahkan Proksi di Awal",
"append": "Tambahkan Proksi di Akhir"
}
},
"groupsEditor": {
"title": "Ubah Grup Proksi",
"errors": {
"nameRequired": "Nama Grup Diperlukan",
"nameExists": "Nama Grup Sudah Ada"
},
"fields": {
"type": "Jenis Grup",
"name": "Nama Grup",
"icon": "Ikon Grup Proksi",
"proxies": "Gunakan Proksi",
"provider": "Gunakan Penyedia",
"healthCheckUrl": "URL Pemeriksaan Kesehatan",
"expectedStatus": "Status yang Diharapkan",
"interval": "Interval",
"timeout": "Waktu Habis",
"maxFailedTimes": "Jumlah Gagal Maksimal",
"interfaceName": "Nama Antarmuka",
"routingMark": "Tanda Routing",
"filter": "Filter",
"excludeFilter": "Kecualikan Filter",
"excludeType": "Kecualikan Jenis",
"includeAll": "Sertakan Semua Proksi dan Penyedia",
"includeAllProxies": "Sertakan Semua Proksi",
"includeAllProviders": "Sertakan Semua Penyedia"
},
"toggles": {
"lazy": "Malas",
"disableUdp": "Nonaktifkan UDP",
"hidden": "Tersembunyi"
},
"actions": {
"prepend": "Tambahkan Grup di Awal",
"append": "Tambahkan Grup di Akhir"
}
},
"menu": {
"home": "Home",
"select": "Pilih",
"editInfo": "Ubah Info",
"editFile": "Ubah Berkas",
"editRules": "Ubah Aturan",
"editProxies": "Ubah Proksi",
"editGroups": "Ubah Grup Proksi",
"extendConfig": "Perluas Konfigurasi",
"extendScript": "Perluas Skrip",
"openFile": "Buka Berkas",
"update": "Perbarui",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Konfirmasi penghapusan",
"message": "Operasi ini tidak dapat dibatalkan"
}
},
"logViewer": {
"title": "Konsol Skrip"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "Format dokumen",
"readOnlyMessage": "Tidak dapat mengedit di editor hanya baca"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "Host",
"downloaded": "Diunduh",
"uploaded": "Diunggah",
"dlSpeed": "Kecepatan Unduh",
"ulSpeed": "Kecepatan Unggah",
"chains": "Rantai",
"rule": "Aturan",
"process": "Proses",
"time": "Waktu",
"source": "Sumber",
"destination": "IP Tujuan",
"destinationPort": "Port Tujuan",
"type": "Jenis"
},
"actions": {
"closeConnection": "Tutup Koneksi"
},
"order": {
"default": "Default",
"uploadSpeed": "Kecepatan Unggah",
"downloadSpeed": "Kecepatan Unduh"
}
},
"settings": {
"system": {
"title": "Pengaturan Sistem",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Mode Langsung"
}
},
"strategies": {
"select": "Pilih proksi secara manual",
"url-test": "Pilih proksi berdasarkan keterlambatan tes URL",
"fallback": "Beralih ke proksi lain saat terjadi kesalahan",
"load-balance": "Distribusikan proksi berdasarkan penyeimbangan beban",
"relay": "Lewatkan melalui rantai proksi yang ditentukan"
},
"policies": {
"DIRECT": "Data langsung keluar",
"REJECT": "Mencegat permintaan",
"REJECT-DROP": "Membuang permintaan",
"PASS": "Lewati aturan ini saat cocok"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Profil Berhasil Diimpor",
"importSubscriptionSuccess": "Berlangganan Berhasil Diimpor",
"importWithClashProxy": "Profile Imported with Clash proxy"
"importWithClashProxy": "Profile Imported with Clash proxy",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "Buat Profil",
"edit": "Ubah Profil"
},
"fields": {
"type": "Jenis",
"name": "Nama",
"description": "Deskripsi",
"subscriptionUrl": "URL Langganan",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Interval Pembaruan",
"useSystemProxy": "Gunakan Proksi Sistem",
"useClashProxy": "Gunakan Proksi Clash",
"acceptInvalidCerts": "Terima Sertifikat Tidak Valid (Bahaya)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"menu": {
"home": "Home",
"select": "Pilih",
"editInfo": "Ubah Info",
"editFile": "Ubah Berkas",
"editRules": "Ubah Aturan",
"editProxies": "Ubah Proksi",
"editGroups": "Ubah Grup Proksi",
"extendConfig": "Perluas Konfigurasi",
"extendScript": "Perluas Skrip",
"openFile": "Buka Berkas",
"update": "Perbarui",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "Ubah Proksi",
"placeholders": {
"multiUri": "Gunakan baris baru untuk beberapa URI (mendukung pengkodean Base64)"
},
"actions": {
"prepend": "Tambahkan Proksi di Awal",
"append": "Tambahkan Proksi di Akhir"
}
},
"groupsEditor": {
"title": "Ubah Grup Proksi",
"errors": {
"nameRequired": "Nama Grup Diperlukan",
"nameExists": "Nama Grup Sudah Ada"
},
"fields": {
"type": "Jenis Grup",
"name": "Nama Grup",
"icon": "Ikon Grup Proksi",
"proxies": "Gunakan Proksi",
"provider": "Gunakan Penyedia",
"healthCheckUrl": "URL Pemeriksaan Kesehatan",
"expectedStatus": "Status yang Diharapkan",
"interval": "Interval",
"timeout": "Waktu Habis",
"maxFailedTimes": "Jumlah Gagal Maksimal",
"interfaceName": "Nama Antarmuka",
"routingMark": "Tanda Routing",
"filter": "Filter",
"excludeFilter": "Kecualikan Filter",
"excludeType": "Kecualikan Jenis",
"includeAll": "Sertakan Semua Proksi dan Penyedia",
"includeAllProxies": "Sertakan Semua Proksi",
"includeAllProviders": "Sertakan Semua Penyedia"
},
"toggles": {
"lazy": "Malas",
"disableUdp": "Nonaktifkan UDP",
"hidden": "Tersembunyi"
},
"actions": {
"prepend": "Tambahkan Grup di Awal",
"append": "Tambahkan Grup di Akhir"
}
},
"fileInput": {
"chooseFile": "Pilih Berkas"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Konfirmasi penghapusan",
"message": "Operasi ini tidak dapat dibatalkan"
}
},
"editor": {
"format": "Format dokumen",
"readOnlyMessage": "Tidak dapat mengedit di editor hanya baca"
},
"logViewer": {
"title": "Konsol Skrip"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "Lanjut",
"closeAll": "Tutup Semua"
}
},
"fields": {
"host": "Host",
"downloaded": "Diunduh",
"uploaded": "Diunggah",
"dlSpeed": "Kecepatan Unduh",
"ulSpeed": "Kecepatan Unggah",
"chains": "Rantai",
"rule": "Aturan",
"process": "Proses",
"time": "Waktu",
"source": "Sumber",
"destination": "IP Tujuan",
"destinationPort": "Port Tujuan",
"type": "Jenis"
},
"order": {
"default": "Default",
"uploadSpeed": "Kecepatan Unggah",
"downloadSpeed": "Kecepatan Unduh"
},
"actions": {
"closeConnection": "Tutup Koneksi"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "Pilih proksi secara manual",
"url-test": "Pilih proksi berdasarkan keterlambatan tes URL",
"fallback": "Beralih ke proksi lain saat terjadi kesalahan",
"load-balance": "Distribusikan proksi berdasarkan penyeimbangan beban",
"relay": "Lewatkan melalui rantai proksi yang ditentukan"
},
"policies": {
"DIRECT": "Data langsung keluar",
"REJECT": "Mencegat permintaan",
"REJECT-DROP": "Membuang permintaan",
"PASS": "Lewati aturan ini saat cocok"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "すべてのリクエストを一致させる"
}
},
"profile": {
"viewer": {
"title": {
"create": "新規プロファイルを作成",
"edit": "プロファイルを編集"
},
"fields": {
"type": "タイプ",
"name": "名前",
"description": "説明",
"subscriptionUrl": "サブスクリプションURL",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "更新間隔",
"useSystemProxy": "システムプロキシを使用して更新",
"useClashProxy": "クラッシュプロキシを使用して更新",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "プロファイルの作成に失敗しました。Clashプロキシを使用して再試行します...",
"creationSuccess": "Clashプロキシを使用してプロファイルの作成に成功しました。"
}
},
"fileInput": {
"chooseFile": "ファイルを選択"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "ノードを編集",
"placeholders": {
"multiUri": "複数のURIは改行で区切ってくださいBase64エンコードに対応"
},
"actions": {
"prepend": "前置プロキシノードを追加",
"append": "後置プロキシノードを追加"
}
},
"groupsEditor": {
"title": "プロキシグループを編集",
"errors": {
"nameRequired": "プロキシグループ名は必須です",
"nameExists": "プロキシグループ名はすでに存在します"
},
"fields": {
"type": "プロキシグループタイプ",
"name": "プロキシグループ名",
"icon": "プロキシグループアイコン",
"proxies": "プロキシを導入",
"provider": "プロキシプロバイダーを導入",
"healthCheckUrl": "ヘルスチェックURL",
"expectedStatus": "期待するステータスコード",
"interval": "チェック間隔",
"timeout": "タイムアウト時間",
"maxFailedTimes": "最大失敗回数",
"interfaceName": "出力インターフェース",
"routingMark": "ルーティングマーク",
"filter": "ノードをフィルタリング",
"excludeFilter": "除外ノード",
"excludeType": "除外ノードタイプ",
"includeAll": "すべての出力プロキシ、プロキシプロバイダーを導入",
"includeAllProxies": "すべての出力プロキシを導入",
"includeAllProviders": "すべてのプロキシプロバイダーを導入"
},
"toggles": {
"lazy": "遅延モード",
"disableUdp": "UDPを無効にする",
"hidden": "プロキシグループを隠す"
},
"actions": {
"prepend": "前置プロキシグループを追加",
"append": "後置プロキシグループを追加"
}
},
"menu": {
"home": "ホーム",
"select": "使用する",
"editInfo": "情報を編集",
"editFile": "ファイルを編集",
"editRules": "ルールを編集",
"editProxies": "ノードを編集",
"editGroups": "プロキシグループを編集",
"extendConfig": "拡張上書き設定",
"extendScript": "拡張スクリプト",
"openFile": "ファイルを開く",
"update": "更新",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "前回の更新に失敗しました。",
"nextUp": "次回の更新",
"noSchedule": "予定がありません。",
"unknown": "不明",
"autoUpdateDisabled": "自動更新が無効になっています。"
}
},
"confirm": {
"delete": {
"title": "削除を確認",
"message": "この操作は元に戻せません"
}
},
"logViewer": {
"title": "スクリプトコンソール出力"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "文書を整形する",
"readOnlyMessage": "読み取り専用モードでは編集できません。"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "ホスト",
"downloaded": "ダウンロード量",
"uploaded": "アップロード量",
"dlSpeed": "ダウンロード速度",
"ulSpeed": "アップロード速度",
"chains": "チェーン",
"rule": "ルール",
"process": "プロセス",
"time": "接続時間",
"source": "送信元アドレス",
"destination": "宛先アドレス",
"destinationPort": "宛先ポート",
"type": "タイプ"
},
"actions": {
"closeConnection": "接続を閉じる"
},
"order": {
"default": "Default",
"uploadSpeed": "アップロード速度",
"downloadSpeed": "ダウンロード速度"
}
},
"settings": {
"system": {
"title": "システム設定",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "直接接続モード"
}
},
"strategies": {
"select": "手動でプロキシを選択",
"url-test": "URLテストによる遅延でプロキシを選択",
"fallback": "利用不可の場合は別のプロキシに切り替える",
"load-balance": "負荷分散によりプロキシを割り当てる",
"relay": "定義されたプロキシチェーンに沿って転送する"
},
"policies": {
"DIRECT": "直接接続",
"REJECT": "リクエストを拒否",
"REJECT-DROP": "リクエストを破棄",
"PASS": "このルールをスキップ"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "プロファイルのインポートに成功しました。",
"importSubscriptionSuccess": "サブスクリプションのインポートに成功しました。",
"importWithClashProxy": "Clashプロキシを使用してプロファイルのインポートに成功しました。"
"importWithClashProxy": "Clashプロキシを使用してプロファイルのインポートに成功しました。",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "新規プロファイルを作成",
"edit": "プロファイルを編集"
},
"fields": {
"type": "タイプ",
"name": "名前",
"description": "説明",
"subscriptionUrl": "サブスクリプションURL",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "更新間隔",
"useSystemProxy": "システムプロキシを使用して更新",
"useClashProxy": "クラッシュプロキシを使用して更新",
"acceptInvalidCerts": "Allows Invalid Certificates (Danger)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "プロファイルの作成に失敗しました。Clashプロキシを使用して再試行します...",
"creationSuccess": "Clashプロキシを使用してプロファイルの作成に成功しました。"
}
},
"menu": {
"home": "ホーム",
"select": "使用する",
"editInfo": "情報を編集",
"editFile": "ファイルを編集",
"editRules": "ルールを編集",
"editProxies": "ノードを編集",
"editGroups": "プロキシグループを編集",
"extendConfig": "拡張上書き設定",
"extendScript": "拡張スクリプト",
"openFile": "ファイルを開く",
"update": "更新",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "ノードを編集",
"placeholders": {
"multiUri": "複数のURIは改行で区切ってくださいBase64エンコードに対応"
},
"actions": {
"prepend": "前置プロキシノードを追加",
"append": "後置プロキシノードを追加"
}
},
"groupsEditor": {
"title": "プロキシグループを編集",
"errors": {
"nameRequired": "プロキシグループ名は必須です",
"nameExists": "プロキシグループ名はすでに存在します"
},
"fields": {
"type": "プロキシグループタイプ",
"name": "プロキシグループ名",
"icon": "プロキシグループアイコン",
"proxies": "プロキシを導入",
"provider": "プロキシプロバイダーを導入",
"healthCheckUrl": "ヘルスチェックURL",
"expectedStatus": "期待するステータスコード",
"interval": "チェック間隔",
"timeout": "タイムアウト時間",
"maxFailedTimes": "最大失敗回数",
"interfaceName": "出力インターフェース",
"routingMark": "ルーティングマーク",
"filter": "ノードをフィルタリング",
"excludeFilter": "除外ノード",
"excludeType": "除外ノードタイプ",
"includeAll": "すべての出力プロキシ、プロキシプロバイダーを導入",
"includeAllProxies": "すべての出力プロキシを導入",
"includeAllProviders": "すべてのプロキシプロバイダーを導入"
},
"toggles": {
"lazy": "遅延モード",
"disableUdp": "UDPを無効にする",
"hidden": "プロキシグループを隠す"
},
"actions": {
"prepend": "前置プロキシグループを追加",
"append": "後置プロキシグループを追加"
}
},
"fileInput": {
"chooseFile": "ファイルを選択"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "前回の更新に失敗しました。",
"nextUp": "次回の更新",
"noSchedule": "予定がありません。",
"unknown": "不明",
"autoUpdateDisabled": "自動更新が無効になっています。"
}
},
"confirm": {
"delete": {
"title": "削除を確認",
"message": "この操作は元に戻せません"
}
},
"editor": {
"format": "文書を整形する",
"readOnlyMessage": "読み取り専用モードでは編集できません。"
},
"logViewer": {
"title": "スクリプトコンソール出力"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "再開",
"closeAll": "すべて閉じる"
}
},
"fields": {
"host": "ホスト",
"downloaded": "ダウンロード量",
"uploaded": "アップロード量",
"dlSpeed": "ダウンロード速度",
"ulSpeed": "アップロード速度",
"chains": "チェーン",
"rule": "ルール",
"process": "プロセス",
"time": "接続時間",
"source": "送信元アドレス",
"destination": "宛先アドレス",
"destinationPort": "宛先ポート",
"type": "タイプ"
},
"order": {
"default": "Default",
"uploadSpeed": "アップロード速度",
"downloadSpeed": "ダウンロード速度"
},
"actions": {
"closeConnection": "接続を閉じる"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "手動でプロキシを選択",
"url-test": "URLテストによる遅延でプロキシを選択",
"fallback": "利用不可の場合は別のプロキシに切り替える",
"load-balance": "負荷分散によりプロキシを割り当てる",
"relay": "定義されたプロキシチェーンに沿って転送する"
},
"policies": {
"DIRECT": "直接接続",
"REJECT": "リクエストを拒否",
"REJECT-DROP": "リクエストを破棄",
"PASS": "このルールをスキップ"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "모든 요청과 일치"
}
},
"profile": {
"viewer": {
"title": {
"create": "프로필 생성",
"edit": "프로필 편집"
},
"fields": {
"type": "유형",
"name": "이름",
"description": "설명",
"subscriptionUrl": "구독 URL",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "업데이트 간격",
"useSystemProxy": "시스템 프록시 사용",
"useClashProxy": "Clash 프록시 사용",
"acceptInvalidCerts": "잘못된 인증서 허용(위험)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"fileInput": {
"chooseFile": "파일 선택"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "프록시 편집",
"placeholders": {
"multiUri": "여러 URI의 경우 줄바꿈 사용(Base64 인코딩 지원)"
},
"actions": {
"prepend": "프록시 앞에 추가",
"append": "프록시 뒤에 추가"
}
},
"groupsEditor": {
"title": "프록시 그룹 편집",
"errors": {
"nameRequired": "그룹 이름 필수",
"nameExists": "그룹 이름이 이미 존재함"
},
"fields": {
"type": "그룹 유형",
"name": "그룹 이름",
"icon": "Proxy Group Icon",
"proxies": "프록시 사용",
"provider": "제공자 사용",
"healthCheckUrl": "상태 확인 URL",
"expectedStatus": "예상 상태",
"interval": "간격",
"timeout": "타임아웃",
"maxFailedTimes": "최대 실패 횟수",
"interfaceName": "인터페이스 이름",
"routingMark": "라우팅 마크",
"filter": "필터",
"excludeFilter": "제외 필터",
"excludeType": "제외 유형",
"includeAll": "모든 프록시 및 제공자 포함",
"includeAllProxies": "모든 프록시 포함",
"includeAllProviders": "모든 제공자 포함"
},
"toggles": {
"lazy": "지연 로딩",
"disableUdp": "UDP 비활성화",
"hidden": "숨김"
},
"actions": {
"prepend": "그룹 앞에 추가",
"append": "그룹 뒤에 추가"
}
},
"menu": {
"home": "홈",
"select": "선택",
"editInfo": "정보 편집",
"editFile": "파일 편집",
"editRules": "규칙 편집",
"editProxies": "프록시 편집",
"editGroups": "프록시 그룹 편집",
"extendConfig": "설정 확장",
"extendScript": "스크립트 확장",
"openFile": "파일 열기",
"update": "업데이트",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "삭제 확인",
"message": "이 작업은 되돌릴 수 없습니다"
}
},
"logViewer": {
"title": "스크립트 콘솔"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "문서 포맷",
"readOnlyMessage": "Cannot edit in read-only editor"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "호스트",
"downloaded": "다운로드됨",
"uploaded": "업로드됨",
"dlSpeed": "다운로드 속도",
"ulSpeed": "업로드 속도",
"chains": "체인",
"rule": "규칙",
"process": "프로세스",
"time": "시간",
"source": "소스",
"destination": "목적지",
"destinationPort": "목적지 포트",
"type": "유형"
},
"actions": {
"closeConnection": "연결 닫기"
},
"order": {
"default": "Default",
"uploadSpeed": "업로드 속도",
"downloadSpeed": "다운로드 속도"
}
},
"settings": {
"system": {
"title": "시스템 설정",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Direct Mode"
}
},
"strategies": {
"select": "수동으로 프록시 선택",
"url-test": "URL 테스트 지연을 기준으로 프록시 선택",
"fallback": "오류 발생 시 다른 프록시로 전환",
"load-balance": "부하 분산에 따라 프록시 분배",
"relay": "정의된 프록시 체인을 통과"
},
"policies": {
"DIRECT": "데이터가 직접 아웃바운드로 이동",
"REJECT": "요청 차단",
"REJECT-DROP": "요청 폐기",
"PASS": "일치할 경우 이 규칙 건너뛰기"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Profile Imported Successfully",
"importSubscriptionSuccess": "구독 가져오기 성공",
"importWithClashProxy": "Profile Imported with Clash proxy"
"importWithClashProxy": "Profile Imported with Clash proxy",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "프로필 생성",
"edit": "프로필 편집"
},
"fields": {
"type": "유형",
"name": "이름",
"description": "설명",
"subscriptionUrl": "구독 URL",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "업데이트 간격",
"useSystemProxy": "시스템 프록시 사용",
"useClashProxy": "Clash 프록시 사용",
"acceptInvalidCerts": "잘못된 인증서 허용(위험)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"menu": {
"home": "홈",
"select": "선택",
"editInfo": "정보 편집",
"editFile": "파일 편집",
"editRules": "규칙 편집",
"editProxies": "프록시 편집",
"editGroups": "프록시 그룹 편집",
"extendConfig": "설정 확장",
"extendScript": "스크립트 확장",
"openFile": "파일 열기",
"update": "업데이트",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "프록시 편집",
"placeholders": {
"multiUri": "여러 URI의 경우 줄바꿈 사용(Base64 인코딩 지원)"
},
"actions": {
"prepend": "프록시 앞에 추가",
"append": "프록시 뒤에 추가"
}
},
"groupsEditor": {
"title": "프록시 그룹 편집",
"errors": {
"nameRequired": "그룹 이름 필수",
"nameExists": "그룹 이름이 이미 존재함"
},
"fields": {
"type": "그룹 유형",
"name": "그룹 이름",
"icon": "Proxy Group Icon",
"proxies": "프록시 사용",
"provider": "제공자 사용",
"healthCheckUrl": "상태 확인 URL",
"expectedStatus": "예상 상태",
"interval": "간격",
"timeout": "타임아웃",
"maxFailedTimes": "최대 실패 횟수",
"interfaceName": "인터페이스 이름",
"routingMark": "라우팅 마크",
"filter": "필터",
"excludeFilter": "제외 필터",
"excludeType": "제외 유형",
"includeAll": "모든 프록시 및 제공자 포함",
"includeAllProxies": "모든 프록시 포함",
"includeAllProviders": "모든 제공자 포함"
},
"toggles": {
"lazy": "지연 로딩",
"disableUdp": "UDP 비활성화",
"hidden": "숨김"
},
"actions": {
"prepend": "그룹 앞에 추가",
"append": "그룹 뒤에 추가"
}
},
"fileInput": {
"chooseFile": "파일 선택"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "삭제 확인",
"message": "이 작업은 되돌릴 수 없습니다"
}
},
"editor": {
"format": "문서 포맷",
"readOnlyMessage": "Cannot edit in read-only editor"
},
"logViewer": {
"title": "스크립트 콘솔"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "재개",
"closeAll": "모두 닫기"
}
},
"fields": {
"host": "호스트",
"downloaded": "다운로드됨",
"uploaded": "업로드됨",
"dlSpeed": "다운로드 속도",
"ulSpeed": "업로드 속도",
"chains": "체인",
"rule": "규칙",
"process": "프로세스",
"time": "시간",
"source": "소스",
"destination": "목적지",
"destinationPort": "목적지 포트",
"type": "유형"
},
"order": {
"default": "Default",
"uploadSpeed": "업로드 속도",
"downloadSpeed": "다운로드 속도"
},
"actions": {
"closeConnection": "연결 닫기"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "수동으로 프록시 선택",
"url-test": "URL 테스트 지연을 기준으로 프록시 선택",
"fallback": "오류 발생 시 다른 프록시로 전환",
"load-balance": "부하 분산에 따라 프록시 분배",
"relay": "정의된 프록시 체인을 통과"
},
"policies": {
"DIRECT": "데이터가 직접 아웃바운드로 이동",
"REJECT": "요청 차단",
"REJECT-DROP": "요청 폐기",
"PASS": "일치할 경우 이 규칙 건너뛰기"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "Соответствует всем запросам"
}
},
"profile": {
"viewer": {
"title": {
"create": "Создать профиль",
"edit": "Изменить профиль"
},
"fields": {
"type": "Тип",
"name": "Название",
"description": "Описание",
"subscriptionUrl": "URL подписки",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Интервал обновления",
"useSystemProxy": "Использовать системный прокси для обновления",
"useClashProxy": "Использовать прокси Clash для обновления",
"acceptInvalidCerts": "Принимать недействительные сертификаты (ОПАСНО)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"fileInput": {
"chooseFile": "Выбрать файл"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "Редактировать прокси",
"placeholders": {
"multiUri": "Используйте символы новой строки для нескольких URI (поддерживается кодировка Base64)"
},
"actions": {
"prepend": "Добавить прокси в начало",
"append": "Добавить прокси в конец"
}
},
"groupsEditor": {
"title": "Редактировать группы прокси",
"errors": {
"nameRequired": "Требуется имя группы",
"nameExists": "Имя группы уже существует"
},
"fields": {
"type": "Тип группы",
"name": "Имя группы",
"icon": "Иконка Группы прокси",
"proxies": "Использовать прокси",
"provider": "Использовать провайдера",
"healthCheckUrl": "URL проверки здоровья",
"expectedStatus": "Ожидаемый статус",
"interval": "Интервал",
"timeout": "Таймаут",
"maxFailedTimes": "Максимальное количество неудач",
"interfaceName": "Имя интерфейса",
"routingMark": "Марка маршрутизации",
"filter": "Фильтр",
"excludeFilter": "Исключить фильтр",
"excludeType": "Тип исключения",
"includeAll": "Включить все прокси и провайдеры",
"includeAllProxies": "Включить все прокси",
"includeAllProviders": "Включить всех провайдеров"
},
"toggles": {
"lazy": "Ленивый",
"disableUdp": "Отключить UDP",
"hidden": "Скрытый"
},
"actions": {
"prepend": "Добавить группу в начало",
"append": "Добавить группу в конец"
}
},
"menu": {
"home": "Главная",
"select": "Выбрать",
"editInfo": "Изменить информацию",
"editFile": "Изменить файл",
"editRules": "Редактировать правила",
"editProxies": "Редактировать прокси",
"editGroups": "Редактировать группы прокси",
"extendConfig": "Изменить Merge",
"extendScript": "Изменить Script",
"openFile": "Открыть файл",
"update": "Обновить",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Подтвердите удаление",
"message": "Эта операция необратима"
}
},
"logViewer": {
"title": "Консоль скрипта"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "Форматировать документ",
"readOnlyMessage": "Невозможно редактировать в режиме только для чтения"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "Хост",
"downloaded": "Скачано",
"uploaded": "Загружено",
"dlSpeed": "Скорость скачивания",
"ulSpeed": "Скорость загрузки",
"chains": "Цепочки",
"rule": "Правило",
"process": "Процесс",
"time": "Время подключения",
"source": "Исходный адрес",
"destination": "IP-адрес назначения",
"destinationPort": "Целевой порт",
"type": "Тип"
},
"actions": {
"closeConnection": "Закрыть соединение"
},
"order": {
"default": "Default",
"uploadSpeed": "Скорость загрузки",
"downloadSpeed": "Скорость скачивания"
}
},
"settings": {
"system": {
"title": "Настройки системы",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Прямой режим"
}
},
"strategies": {
"select": "Выбор прокси вручную",
"url-test": "Выбор прокси на основе задержки теста URL",
"fallback": "Переключение на другой прокси при ошибке",
"load-balance": "Распределение прокси на основе балансировки нагрузки",
"relay": "Передача через определенную цепочку прокси"
},
"policies": {
"DIRECT": "Данные направляются напрямую наружу",
"REJECT": "Перехватывает запросы",
"REJECT-DROP": "Отклоняет запросы",
"PASS": "Пропускает это правило при совпадении"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Профиль успешно импортирован",
"importSubscriptionSuccess": "Подписка успешно импортирована",
"importWithClashProxy": "Profile Imported with Clash proxy"
"importWithClashProxy": "Profile Imported with Clash proxy",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "Создать профиль",
"edit": "Изменить профиль"
},
"fields": {
"type": "Тип",
"name": "Название",
"description": "Описание",
"subscriptionUrl": "URL подписки",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Интервал обновления",
"useSystemProxy": "Использовать системный прокси для обновления",
"useClashProxy": "Использовать прокси Clash для обновления",
"acceptInvalidCerts": "Принимать недействительные сертификаты (ОПАСНО)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"menu": {
"home": "Главная",
"select": "Выбрать",
"editInfo": "Изменить информацию",
"editFile": "Изменить файл",
"editRules": "Редактировать правила",
"editProxies": "Редактировать прокси",
"editGroups": "Редактировать группы прокси",
"extendConfig": "Изменить Merge",
"extendScript": "Изменить Script",
"openFile": "Открыть файл",
"update": "Обновить",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "Редактировать прокси",
"placeholders": {
"multiUri": "Используйте символы новой строки для нескольких URI (поддерживается кодировка Base64)"
},
"actions": {
"prepend": "Добавить прокси в начало",
"append": "Добавить прокси в конец"
}
},
"groupsEditor": {
"title": "Редактировать группы прокси",
"errors": {
"nameRequired": "Требуется имя группы",
"nameExists": "Имя группы уже существует"
},
"fields": {
"type": "Тип группы",
"name": "Имя группы",
"icon": "Иконка Группы прокси",
"proxies": "Использовать прокси",
"provider": "Использовать провайдера",
"healthCheckUrl": "URL проверки здоровья",
"expectedStatus": "Ожидаемый статус",
"interval": "Интервал",
"timeout": "Таймаут",
"maxFailedTimes": "Максимальное количество неудач",
"interfaceName": "Имя интерфейса",
"routingMark": "Марка маршрутизации",
"filter": "Фильтр",
"excludeFilter": "Исключить фильтр",
"excludeType": "Тип исключения",
"includeAll": "Включить все прокси и провайдеры",
"includeAllProxies": "Включить все прокси",
"includeAllProviders": "Включить всех провайдеров"
},
"toggles": {
"lazy": "Ленивый",
"disableUdp": "Отключить UDP",
"hidden": "Скрытый"
},
"actions": {
"prepend": "Добавить группу в начало",
"append": "Добавить группу в конец"
}
},
"fileInput": {
"chooseFile": "Выбрать файл"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Подтвердите удаление",
"message": "Эта операция необратима"
}
},
"editor": {
"format": "Форматировать документ",
"readOnlyMessage": "Невозможно редактировать в режиме только для чтения"
},
"logViewer": {
"title": "Консоль скрипта"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "Возобновить",
"closeAll": "Закрыть всё"
}
},
"fields": {
"host": "Хост",
"downloaded": "Скачано",
"uploaded": "Загружено",
"dlSpeed": "Скорость скачивания",
"ulSpeed": "Скорость загрузки",
"chains": "Цепочки",
"rule": "Правило",
"process": "Процесс",
"time": "Время подключения",
"source": "Исходный адрес",
"destination": "IP-адрес назначения",
"destinationPort": "Целевой порт",
"type": "Тип"
},
"order": {
"default": "Default",
"uploadSpeed": "Скорость загрузки",
"downloadSpeed": "Скорость скачивания"
},
"actions": {
"closeConnection": "Закрыть соединение"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "Выбор прокси вручную",
"url-test": "Выбор прокси на основе задержки теста URL",
"fallback": "Переключение на другой прокси при ошибке",
"load-balance": "Распределение прокси на основе балансировки нагрузки",
"relay": "Передача через определенную цепочку прокси"
},
"policies": {
"DIRECT": "Данные направляются напрямую наружу",
"REJECT": "Перехватывает запросы",
"REJECT-DROP": "Отклоняет запросы",
"PASS": "Пропускает это правило при совпадении"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "Tüm isteklerle eşleşir"
}
},
"profile": {
"viewer": {
"title": {
"create": "Profil Oluştur",
"edit": "Profili Düzenle"
},
"fields": {
"type": "Tip",
"name": "İsim",
"description": "Açıklamalar",
"subscriptionUrl": "Abonelik URL'si",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Güncelleme Aralığı",
"useSystemProxy": "Sistem Vekil'ini Kullan",
"useClashProxy": "Clash Vekil'ini Kullan",
"acceptInvalidCerts": "Geçersiz Sertifikalara İzin Ver (Tehlikeli)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profil oluşturma başarısız oldu, Clash vekil ile yeniden deneniyor...",
"creationSuccess": "Clash vekil ile profil oluşturma başarılı oldu"
}
},
"fileInput": {
"chooseFile": "Dosya Seç"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "Vekil'leri Düzenle",
"placeholders": {
"multiUri": "Birden fazla URI için yeni satırlar kullanın (Base64 kodlaması desteklenir)"
},
"actions": {
"prepend": "Vekil'in Başına Ekle",
"append": "Vekil'in Sonuna Ekle"
}
},
"groupsEditor": {
"title": "Vekil Gruplarını Düzenle",
"errors": {
"nameRequired": "Grup Adı Gerekli",
"nameExists": "Grup Adı Zaten Var"
},
"fields": {
"type": "Grup Tipi",
"name": "Grup Adı",
"icon": "Vekil Grup Simgesi",
"proxies": "Vekil'leri Kullan",
"provider": "Sağlayıcı Kullan",
"healthCheckUrl": "Sağlık Kontrolü URL'si",
"expectedStatus": "Beklenen Durum",
"interval": "Aralık",
"timeout": "Zaman Aşımı",
"maxFailedTimes": "Maksimum Başarısız Deneme",
"interfaceName": "Arayüz Adı",
"routingMark": "Yönlendirme İşareti",
"filter": "Filtre",
"excludeFilter": "Hariç Tutma Filtresi",
"excludeType": "Hariç Tutma Tipi",
"includeAll": "Tüm Vekil'leri ve Sağlayıcıları Dahil Et",
"includeAllProxies": "Tüm Vekil'leri Dahil Et",
"includeAllProviders": "Tüm Sağlayıcıları Dahil Et"
},
"toggles": {
"lazy": "Tembel",
"disableUdp": "UDP'yi Devre Dışı Bırak",
"hidden": "Gizli"
},
"actions": {
"prepend": "Grubun Başına Ekle",
"append": "Grubun Sonuna Ekle"
}
},
"menu": {
"home": "Ana Sayfa",
"select": "Seç",
"editInfo": "Bilgileri Düzenle",
"editFile": "Dosyayı Düzenle",
"editRules": "Kuralları Düzenle",
"editProxies": "Vekil'leri Düzenle",
"editGroups": "Vekil Gruplarını Düzenle",
"extendConfig": "Yapılandırma Genişletme",
"extendScript": "Betik Genişletme",
"openFile": "Dosyayı Aç",
"update": "Güncelle",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Son güncelleme başarısız oldu",
"nextUp": "Sıradaki",
"noSchedule": "Program yok",
"unknown": "Bilinmiyor",
"autoUpdateDisabled": "Otomatik güncelleme devre dışı"
}
},
"confirm": {
"delete": {
"title": "Silmeyi Onayla",
"message": "Bu işlem geri alınamaz"
}
},
"logViewer": {
"title": "Betik Konsolu"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "Belgeyi biçimlendir",
"readOnlyMessage": "Salt okunur düzenleyicide düzenlenemez"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "Ana Bilgisayar",
"downloaded": "İndirilen",
"uploaded": "Yüklenen",
"dlSpeed": "İndirme Hızı",
"ulSpeed": "Yükleme Hızı",
"chains": "Zincirler",
"rule": "Kural",
"process": "İşlem",
"time": "Zaman",
"source": "Kaynak",
"destination": "Hedef",
"destinationPort": "Hedef Port",
"type": "Tip"
},
"actions": {
"closeConnection": "Bağlantıyı Kapat"
},
"order": {
"default": "Default",
"uploadSpeed": "Yükleme Hızı",
"downloadSpeed": "İndirme Hızı"
}
},
"settings": {
"system": {
"title": "Sistem Ayarları",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Doğrudan Mod"
}
},
"strategies": {
"select": "Vekil'i manuel olarak seçin",
"url-test": "URL testi gecikmesine göre vekil seçin",
"fallback": "Hata durumunda başka bir vekil'e geçin",
"load-balance": "Yük dengelemeye göre vekil dağıtın",
"relay": "Tanımlanan vekil zincirinden geçirin"
},
"policies": {
"DIRECT": "Veri doğrudan dışarı gider",
"REJECT": "İstekleri engeller",
"REJECT-DROP": "İstekleri atar",
"PASS": "Eşleştiğinde bu kuralı atlar"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Profil Başarıyla İçe Aktarıldı",
"importSubscriptionSuccess": "Abonelik içe aktarımı başarılı",
"importWithClashProxy": "Profil Clash vekil ile içe aktarıldı"
"importWithClashProxy": "Profil Clash vekil ile içe aktarıldı",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "Profil Oluştur",
"edit": "Profili Düzenle"
},
"fields": {
"type": "Tip",
"name": "İsim",
"description": "Açıklamalar",
"subscriptionUrl": "Abonelik URL'si",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Güncelleme Aralığı",
"useSystemProxy": "Sistem Vekil'ini Kullan",
"useClashProxy": "Clash Vekil'ini Kullan",
"acceptInvalidCerts": "Geçersiz Sertifikalara İzin Ver (Tehlikeli)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profil oluşturma başarısız oldu, Clash vekil ile yeniden deneniyor...",
"creationSuccess": "Clash vekil ile profil oluşturma başarılı oldu"
}
},
"menu": {
"home": "Ana Sayfa",
"select": "Seç",
"editInfo": "Bilgileri Düzenle",
"editFile": "Dosyayı Düzenle",
"editRules": "Kuralları Düzenle",
"editProxies": "Vekil'leri Düzenle",
"editGroups": "Vekil Gruplarını Düzenle",
"extendConfig": "Yapılandırma Genişletme",
"extendScript": "Betik Genişletme",
"openFile": "Dosyayı Aç",
"update": "Güncelle",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "Vekil'leri Düzenle",
"placeholders": {
"multiUri": "Birden fazla URI için yeni satırlar kullanın (Base64 kodlaması desteklenir)"
},
"actions": {
"prepend": "Vekil'in Başına Ekle",
"append": "Vekil'in Sonuna Ekle"
}
},
"groupsEditor": {
"title": "Vekil Gruplarını Düzenle",
"errors": {
"nameRequired": "Grup Adı Gerekli",
"nameExists": "Grup Adı Zaten Var"
},
"fields": {
"type": "Grup Tipi",
"name": "Grup Adı",
"icon": "Vekil Grup Simgesi",
"proxies": "Vekil'leri Kullan",
"provider": "Sağlayıcı Kullan",
"healthCheckUrl": "Sağlık Kontrolü URL'si",
"expectedStatus": "Beklenen Durum",
"interval": "Aralık",
"timeout": "Zaman Aşımı",
"maxFailedTimes": "Maksimum Başarısız Deneme",
"interfaceName": "Arayüz Adı",
"routingMark": "Yönlendirme İşareti",
"filter": "Filtre",
"excludeFilter": "Hariç Tutma Filtresi",
"excludeType": "Hariç Tutma Tipi",
"includeAll": "Tüm Vekil'leri ve Sağlayıcıları Dahil Et",
"includeAllProxies": "Tüm Vekil'leri Dahil Et",
"includeAllProviders": "Tüm Sağlayıcıları Dahil Et"
},
"toggles": {
"lazy": "Tembel",
"disableUdp": "UDP'yi Devre Dışı Bırak",
"hidden": "Gizli"
},
"actions": {
"prepend": "Grubun Başına Ekle",
"append": "Grubun Sonuna Ekle"
}
},
"fileInput": {
"chooseFile": "Dosya Seç"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Son güncelleme başarısız oldu",
"nextUp": "Sıradaki",
"noSchedule": "Program yok",
"unknown": "Bilinmiyor",
"autoUpdateDisabled": "Otomatik güncelleme devre dışı"
}
},
"confirm": {
"delete": {
"title": "Silmeyi Onayla",
"message": "Bu işlem geri alınamaz"
}
},
"editor": {
"format": "Belgeyi biçimlendir",
"readOnlyMessage": "Salt okunur düzenleyicide düzenlenemez"
},
"logViewer": {
"title": "Betik Konsolu"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "Sürdür",
"closeAll": "Tümünü Kapat"
}
},
"fields": {
"host": "Ana Bilgisayar",
"downloaded": "İndirilen",
"uploaded": "Yüklenen",
"dlSpeed": "İndirme Hızı",
"ulSpeed": "Yükleme Hızı",
"chains": "Zincirler",
"rule": "Kural",
"process": "İşlem",
"time": "Zaman",
"source": "Kaynak",
"destination": "Hedef",
"destinationPort": "Hedef Port",
"type": "Tip"
},
"order": {
"default": "Default",
"uploadSpeed": "Yükleme Hızı",
"downloadSpeed": "İndirme Hızı"
},
"actions": {
"closeConnection": "Bağlantıyı Kapat"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "Vekil'i manuel olarak seçin",
"url-test": "URL testi gecikmesine göre vekil seçin",
"fallback": "Hata durumunda başka bir vekil'e geçin",
"load-balance": "Yük dengelemeye göre vekil dağıtın",
"relay": "Tanımlanan vekil zincirinden geçirin"
},
"policies": {
"DIRECT": "Veri doğrudan dışarı gider",
"REJECT": "İstekleri engeller",
"REJECT-DROP": "İstekleri atar",
"PASS": "Eşleştiğinde bu kuralı atlar"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "Барлык сорауларга туры килә"
}
},
"profile": {
"viewer": {
"title": {
"create": "Профиль булдыру",
"edit": "Профильне үзгәртү"
},
"fields": {
"type": "Төр",
"name": "Исем",
"description": "Тасвирламалар",
"subscriptionUrl": "Подписка URL-ы",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Яңарту интервалы",
"useSystemProxy": "Системалы проксины кулланып яңарту",
"useClashProxy": "Clash прокси кулланып яңарту",
"acceptInvalidCerts": "Дөрес булмаган сертификатларны кабул итү (Куркыныч)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"fileInput": {
"chooseFile": "Файл сайлау"
},
"notifications": {
"saved": "Saved successfully"
},
"proxiesEditor": {
"title": "Проксины үзгәртү",
"placeholders": {
"multiUri": "Берничә URI өчен яңа юл символын кулланыгыз (Base64 кодлавы ярдәм ителә)"
},
"actions": {
"prepend": "Проксины өскә өстәү",
"append": "Проксины аска өстәү"
}
},
"groupsEditor": {
"title": "Прокси төркемнәрен үзгәртү",
"errors": {
"nameRequired": "Төркем исеме кирәк",
"nameExists": "Әлеге төркем исеме бар инде"
},
"fields": {
"type": "Төркем төре",
"name": "Төркем исеме",
"icon": "Прокси төркеме иконкасы",
"proxies": "Прокси куллану",
"provider": "Провайдер куллану",
"healthCheckUrl": "Сәламәтлекне тикшерү URL-ы",
"expectedStatus": "Көтелгән статус коды",
"interval": "Интервал",
"timeout": "Таймаут",
"maxFailedTimes": "Иң күп хаталы тикшерү саны",
"interfaceName": "Интерфейс исеме",
"routingMark": "Маршрут билгесе",
"filter": "Фильтр",
"excludeFilter": "Фильтр аша чыгару",
"excludeType": "Чыгару төре",
"includeAll": "Барлык прокси һәм провайдерларны кертү",
"includeAllProxies": "Барлык проксины кертү",
"includeAllProviders": "Барлык провайдерларны кертү"
},
"toggles": {
"lazy": "Сак режим (lazy)",
"disableUdp": "UDP'ны сүндерү",
"hidden": "Яшерен"
},
"actions": {
"prepend": "Төркемне өскә өстәү",
"append": "Төркемне аска өстәү"
}
},
"menu": {
"home": "Home",
"select": "Сайлау",
"editInfo": "Мәгълүматны үзгәртү",
"editFile": "Файлны үзгәртү",
"editRules": "Кагыйдәләрне үзгәртү",
"editProxies": "Проксины үзгәртү",
"editGroups": "Прокси төркемнәрен үзгәртү",
"extendConfig": "Merge-ны үзгәртергә",
"extendScript": "Script-ны үзгәртергә",
"openFile": "Файлны ачу",
"update": "Яңарту",
"updateViaProxy": "Update via proxy"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Бетерүне раслагыз",
"message": "Бу гамәлне кире кайтарып булмый"
}
},
"logViewer": {
"title": "Скрипт консоле"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "Документны форматлау",
"readOnlyMessage": "Уку режимында үзгәртү мөмкин түгел"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "Хост",
"downloaded": "Йөкләнгән",
"uploaded": "Чыгарылган",
"dlSpeed": "Йөкләү тизл.",
"ulSpeed": "Чыгару тизл.",
"chains": "Чылбырлар",
"rule": "Кагыйдә",
"process": "Процесс",
"time": "Тоташу вакыты",
"source": "Чыганак адресы",
"destination": "Максат IP-адресы",
"destinationPort": "Барасы порты",
"type": "Төр"
},
"actions": {
"closeConnection": "Тоташуны ябу"
},
"order": {
"default": "Default",
"uploadSpeed": "Йөкләү (чыгару) тизлеге",
"downloadSpeed": "Йөкләү тизлеге"
}
},
"settings": {
"system": {
"title": "Система көйләүләре",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "Туры режим"
}
},
"strategies": {
"select": "Проксины кулдан сайлау",
"url-test": "URL-тест задержкасына карап прокси сайлау",
"fallback": "Хата булган очракта башка проксига күчү",
"load-balance": "Трафикны баланслау нигезендә прокси тарату",
"relay": "Билгеле прокси чылбыры аша тапшыру"
},
"policies": {
"DIRECT": "Туры чыгу",
"REJECT": "Сорауларны тоткарлау",
"REJECT-DROP": "Сорауларны кире кагу",
"PASS": "Туры килсә дә, бу кагыйдәне урап узу"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "Профиль уңышлы импортланды",
"importSubscriptionSuccess": "Import subscription successful",
"importWithClashProxy": "Profile Imported with Clash proxy"
"importWithClashProxy": "Profile Imported with Clash proxy",
"saved": "Saved successfully"
},
"viewer": {
"title": {
"create": "Профиль булдыру",
"edit": "Профильне үзгәртү"
},
"fields": {
"type": "Төр",
"name": "Исем",
"description": "Тасвирламалар",
"subscriptionUrl": "Подписка URL-ы",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "Яңарту интервалы",
"useSystemProxy": "Системалы проксины кулланып яңарту",
"useClashProxy": "Clash прокси кулланып яңарту",
"acceptInvalidCerts": "Дөрес булмаган сертификатларны кабул итү (Куркыныч)",
"allowAutoUpdate": "Allow Auto Update"
},
"notifications": {
"creationRetry": "Profile creation failed, retrying with Clash proxy...",
"creationSuccess": "Profile creation succeeded with Clash proxy"
}
},
"menu": {
"home": "Home",
"select": "Сайлау",
"editInfo": "Мәгълүматны үзгәртү",
"editFile": "Файлны үзгәртү",
"editRules": "Кагыйдәләрне үзгәртү",
"editProxies": "Проксины үзгәртү",
"editGroups": "Прокси төркемнәрен үзгәртү",
"extendConfig": "Merge-ны үзгәртергә",
"extendScript": "Script-ны үзгәртергә",
"openFile": "Файлны ачу",
"update": "Яңарту",
"updateViaProxy": "Update via proxy"
},
"proxiesEditor": {
"title": "Проксины үзгәртү",
"placeholders": {
"multiUri": "Берничә URI өчен яңа юл символын кулланыгыз (Base64 кодлавы ярдәм ителә)"
},
"actions": {
"prepend": "Проксины өскә өстәү",
"append": "Проксины аска өстәү"
}
},
"groupsEditor": {
"title": "Прокси төркемнәрен үзгәртү",
"errors": {
"nameRequired": "Төркем исеме кирәк",
"nameExists": "Әлеге төркем исеме бар инде"
},
"fields": {
"type": "Төркем төре",
"name": "Төркем исеме",
"icon": "Прокси төркеме иконкасы",
"proxies": "Прокси куллану",
"provider": "Провайдер куллану",
"healthCheckUrl": "Сәламәтлекне тикшерү URL-ы",
"expectedStatus": "Көтелгән статус коды",
"interval": "Интервал",
"timeout": "Таймаут",
"maxFailedTimes": "Иң күп хаталы тикшерү саны",
"interfaceName": "Интерфейс исеме",
"routingMark": "Маршрут билгесе",
"filter": "Фильтр",
"excludeFilter": "Фильтр аша чыгару",
"excludeType": "Чыгару төре",
"includeAll": "Барлык прокси һәм провайдерларны кертү",
"includeAllProxies": "Барлык проксины кертү",
"includeAllProviders": "Барлык провайдерларны кертү"
},
"toggles": {
"lazy": "Сак режим (lazy)",
"disableUdp": "UDP'ны сүндерү",
"hidden": "Яшерен"
},
"actions": {
"prepend": "Төркемне өскә өстәү",
"append": "Төркемне аска өстәү"
}
},
"fileInput": {
"chooseFile": "Файл сайлау"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "Last Update failed",
"nextUp": "Next Up",
"noSchedule": "No schedule",
"unknown": "Unknown",
"autoUpdateDisabled": "Auto update disabled"
}
},
"confirm": {
"delete": {
"title": "Бетерүне раслагыз",
"message": "Бу гамәлне кире кайтарып булмый"
}
},
"editor": {
"format": "Документны форматлау",
"readOnlyMessage": "Уку режимында үзгәртү мөмкин түгел"
},
"logViewer": {
"title": "Скрипт консоле"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "Дәвам",
"closeAll": "Барысын да ябу"
}
},
"fields": {
"host": "Хост",
"downloaded": "Йөкләнгән",
"uploaded": "Чыгарылган",
"dlSpeed": "Йөкләү тизл.",
"ulSpeed": "Чыгару тизл.",
"chains": "Чылбырлар",
"rule": "Кагыйдә",
"process": "Процесс",
"time": "Тоташу вакыты",
"source": "Чыганак адресы",
"destination": "Максат IP-адресы",
"destinationPort": "Барасы порты",
"type": "Төр"
},
"order": {
"default": "Default",
"uploadSpeed": "Йөкләү (чыгару) тизлеге",
"downloadSpeed": "Йөкләү тизлеге"
},
"actions": {
"closeConnection": "Тоташуны ябу"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "Проксины кулдан сайлау",
"url-test": "URL-тест задержкасына карап прокси сайлау",
"fallback": "Хата булган очракта башка проксига күчү",
"load-balance": "Трафикны баланслау нигезендә прокси тарату",
"relay": "Билгеле прокси чылбыры аша тапшыру"
},
"policies": {
"DIRECT": "Туры чыгу",
"REJECT": "Сорауларны тоткарлау",
"REJECT-DROP": "Сорауларны кире кагу",
"PASS": "Туры килсә дә, бу кагыйдәне урап узу"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "匹配所有请求 (MATCH)"
}
},
"profile": {
"viewer": {
"title": {
"create": "新建配置",
"edit": "编辑配置"
},
"fields": {
"type": "类型",
"name": "名称",
"description": "描述",
"subscriptionUrl": "订阅链接",
"httpTimeout": "HTTP 请求超时",
"updateInterval": "更新间隔",
"useSystemProxy": "使用系统代理更新",
"useClashProxy": "使用内核代理更新",
"acceptInvalidCerts": "允许无效证书(危险)",
"allowAutoUpdate": "允许自动更新"
},
"notifications": {
"creationRetry": "订阅创建失败,尝试使用 Clash 代理创建",
"creationSuccess": "使用 Clash 代理创建订阅成功"
}
},
"fileInput": {
"chooseFile": "选择文件"
},
"notifications": {
"saved": "保存成功"
},
"proxiesEditor": {
"title": "编辑节点",
"placeholders": {
"multiUri": "多条 URI 请使用换行分隔(支持 Base64 编码)"
},
"actions": {
"prepend": "添加前置代理节点",
"append": "添加后置代理节点"
}
},
"groupsEditor": {
"title": "编辑代理组",
"errors": {
"nameRequired": "代理组名称不能为空",
"nameExists": "代理组名称已存在"
},
"fields": {
"type": "代理组类型",
"name": "代理组组名",
"icon": "代理组图标",
"proxies": "引入代理",
"provider": "引入代理集合",
"healthCheckUrl": "健康检查测试地址",
"expectedStatus": "期望状态码",
"interval": "检查间隔",
"timeout": "超时时间",
"maxFailedTimes": "最大失败次数",
"interfaceName": "出站接口",
"routingMark": "路由标记",
"filter": "过滤节点",
"excludeFilter": "排除节点",
"excludeType": "排除节点类型",
"includeAll": "引入所有出站代理、代理集合",
"includeAllProxies": "引入所有出站代理",
"includeAllProviders": "引入所有代理集合"
},
"toggles": {
"lazy": "懒惰状态",
"disableUdp": "禁用 UDP",
"hidden": "隐藏代理组"
},
"actions": {
"prepend": "添加前置代理组",
"append": "添加后置代理组"
}
},
"menu": {
"home": "首 页",
"select": "使用",
"editInfo": "编辑信息",
"editFile": "编辑文件",
"editRules": "编辑规则",
"editProxies": "编辑节点",
"editGroups": "编辑代理组",
"extendConfig": "扩展覆写配置",
"extendScript": "扩展脚本",
"openFile": "打开文件",
"update": "更新",
"updateViaProxy": "更新(代理)"
},
"item": {
"tooltips": {
"showLast": "点击查看上次更新时间",
"showNext": "点击查看下一次更新"
},
"status": {
"lastUpdateFailed": "上次更新失败",
"nextUp": "下次更新",
"noSchedule": "没有计划",
"unknown": "未知",
"autoUpdateDisabled": "自动更新已禁用"
}
},
"confirm": {
"delete": {
"title": "确认删除",
"message": "此操作不可逆"
}
},
"logViewer": {
"title": "脚本控制台输出"
},
"more": {
"global": {
"merge": "全局扩展覆写配置",
"script": "全局扩展脚本"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "格式化文档",
"readOnlyMessage": "无法在只读模式下编辑"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "主机",
"downloaded": "下载量",
"uploaded": "上传量",
"dlSpeed": "下载速度",
"ulSpeed": "上传速度",
"chains": "链路",
"rule": "规则",
"process": "进程",
"time": "连接时间",
"source": "源地址",
"destination": "目标地址",
"destinationPort": "目标端口",
"type": "类型"
},
"actions": {
"closeConnection": "关闭连接"
},
"order": {
"default": "默认",
"uploadSpeed": "上传速度",
"downloadSpeed": "下载速度"
}
},
"settings": {
"system": {
"title": "系统设置",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "直连模式"
}
},
"strategies": {
"select": "手动选择代理",
"url-test": "根据 URL 测试延迟选择代理",
"fallback": "不可用时切换到另一个代理",
"load-balance": "根据负载均衡分配代理",
"relay": "根据定义的代理链传递"
},
"policies": {
"DIRECT": "直连 (DIRECT)",
"REJECT": "拦截请求 (REJECT)",
"REJECT-DROP": "抛弃请求 (REJECT-DROP)",
"PASS": "跳过此规则 (PASS)"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "导入订阅成功",
"importSubscriptionSuccess": "导入订阅成功",
"importWithClashProxy": "使用 Clash 代理导入订阅成功"
"importWithClashProxy": "使用 Clash 代理导入订阅成功",
"saved": "保存成功"
},
"viewer": {
"title": {
"create": "新建配置",
"edit": "编辑配置"
},
"fields": {
"type": "类型",
"name": "名称",
"description": "描述",
"subscriptionUrl": "订阅链接",
"httpTimeout": "HTTP 请求超时",
"updateInterval": "更新间隔",
"useSystemProxy": "使用系统代理更新",
"useClashProxy": "使用内核代理更新",
"acceptInvalidCerts": "允许无效证书(危险)",
"allowAutoUpdate": "允许自动更新"
},
"notifications": {
"creationRetry": "订阅创建失败,尝试使用 Clash 代理创建",
"creationSuccess": "使用 Clash 代理创建订阅成功"
}
},
"menu": {
"home": "首 页",
"select": "使用",
"editInfo": "编辑信息",
"editFile": "编辑文件",
"editRules": "编辑规则",
"editProxies": "编辑节点",
"editGroups": "编辑代理组",
"extendConfig": "扩展覆写配置",
"extendScript": "扩展脚本",
"openFile": "打开文件",
"update": "更新",
"updateViaProxy": "更新(代理)"
},
"proxiesEditor": {
"title": "编辑节点",
"placeholders": {
"multiUri": "多条 URI 请使用换行分隔(支持 Base64 编码)"
},
"actions": {
"prepend": "添加前置代理节点",
"append": "添加后置代理节点"
}
},
"groupsEditor": {
"title": "编辑代理组",
"errors": {
"nameRequired": "代理组名称不能为空",
"nameExists": "代理组名称已存在"
},
"fields": {
"type": "代理组类型",
"name": "代理组组名",
"icon": "代理组图标",
"proxies": "引入代理",
"provider": "引入代理集合",
"healthCheckUrl": "健康检查测试地址",
"expectedStatus": "期望状态码",
"interval": "检查间隔",
"timeout": "超时时间",
"maxFailedTimes": "最大失败次数",
"interfaceName": "出站接口",
"routingMark": "路由标记",
"filter": "过滤节点",
"excludeFilter": "排除节点",
"excludeType": "排除节点类型",
"includeAll": "引入所有出站代理、代理集合",
"includeAllProxies": "引入所有出站代理",
"includeAllProviders": "引入所有代理集合"
},
"toggles": {
"lazy": "懒惰状态",
"disableUdp": "禁用 UDP",
"hidden": "隐藏代理组"
},
"actions": {
"prepend": "添加前置代理组",
"append": "添加后置代理组"
}
},
"fileInput": {
"chooseFile": "选择文件"
},
"more": {
"global": {
"merge": "全局扩展覆写配置",
"script": "全局扩展脚本"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "点击查看上次更新时间",
"showNext": "点击查看下一次更新"
},
"status": {
"lastUpdateFailed": "上次更新失败",
"nextUp": "下次更新",
"noSchedule": "没有计划",
"unknown": "未知",
"autoUpdateDisabled": "自动更新已禁用"
}
},
"confirm": {
"delete": {
"title": "确认删除",
"message": "此操作不可逆"
}
},
"editor": {
"format": "格式化文档",
"readOnlyMessage": "无法在只读模式下编辑"
},
"logViewer": {
"title": "脚本控制台输出"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "继续",
"closeAll": "关闭全部"
}
},
"fields": {
"host": "主机",
"downloaded": "下载量",
"uploaded": "上传量",
"dlSpeed": "下载速度",
"ulSpeed": "上传速度",
"chains": "链路",
"rule": "规则",
"process": "进程",
"time": "连接时间",
"source": "源地址",
"destination": "目标地址",
"destinationPort": "目标端口",
"type": "类型"
},
"order": {
"default": "默认",
"uploadSpeed": "上传速度",
"downloadSpeed": "下载速度"
},
"actions": {
"closeConnection": "关闭连接"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "手动选择代理",
"url-test": "根据 URL 测试延迟选择代理",
"fallback": "不可用时切换到另一个代理",
"load-balance": "根据负载均衡分配代理",
"relay": "根据定义的代理链传递"
},
"policies": {
"DIRECT": "直连 (DIRECT)",
"REJECT": "拦截请求 (REJECT)",
"REJECT-DROP": "抛弃请求 (REJECT-DROP)",
"PASS": "跳过此规则 (PASS)"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -148,132 +148,6 @@
"MATCH": "配對所有請求 (MATCH)"
}
},
"profile": {
"viewer": {
"title": {
"create": "新增設定檔",
"edit": "編輯設定檔"
},
"fields": {
"type": "類型",
"name": "名稱",
"description": "描述",
"subscriptionUrl": "訂閱網址",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "更新間隔",
"useSystemProxy": "使用系統代理更新",
"useClashProxy": "使用內核代理更新",
"acceptInvalidCerts": "允許無效憑證(危險)",
"allowAutoUpdate": "允許自動更新"
},
"notifications": {
"creationRetry": "訂閱建立失敗,嘗試使用 Clash 代理建立",
"creationSuccess": "使用 Clash 代理建立訂閱成功"
}
},
"fileInput": {
"chooseFile": "選擇檔案"
},
"notifications": {
"saved": "儲存成功"
},
"proxiesEditor": {
"title": "編輯節點",
"placeholders": {
"multiUri": "多條網址,請使用換行分隔(支援 Base64 編碼)"
},
"actions": {
"prepend": "新增前置代理節點",
"append": "新增後置代理節點"
}
},
"groupsEditor": {
"title": "編輯代理組",
"errors": {
"nameRequired": "代理組名稱為必填",
"nameExists": "代理組名稱已存在"
},
"fields": {
"type": "代理組類型",
"name": "代理組名稱",
"icon": "代理組圖示",
"proxies": "使用代理",
"provider": "使用代理集合",
"healthCheckUrl": "健康檢查網址",
"expectedStatus": "預期狀態碼",
"interval": "檢查間隔",
"timeout": "逾時",
"maxFailedTimes": "最大失敗次數",
"interfaceName": "輸出介面",
"routingMark": "路由標記",
"filter": "篩選節點",
"excludeFilter": "排除節點",
"excludeType": "排除節點類型",
"includeAll": "包含所有輸出代理、代理集合",
"includeAllProxies": "包含所有輸出代理",
"includeAllProviders": "包含所有代理集合"
},
"toggles": {
"lazy": "延遲載入",
"disableUdp": "停用 UDP",
"hidden": "隱藏代理組"
},
"actions": {
"prepend": "新增前置代理組",
"append": "新增後置代理組"
}
},
"menu": {
"home": "首 頁",
"select": "使用",
"editInfo": "編輯資訊",
"editFile": "編輯檔案",
"editRules": "編輯規則",
"editProxies": "編輯節點",
"editGroups": "編輯代理組",
"extendConfig": "擴充覆寫設定",
"extendScript": "擴充指令碼",
"openFile": "開啟檔案",
"update": "更新",
"updateViaProxy": "更新(代理)"
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "上次更新失敗",
"nextUp": "下次更新",
"noSchedule": "沒有排程",
"unknown": "未知",
"autoUpdateDisabled": "自動更新已停用"
}
},
"confirm": {
"delete": {
"title": "確認刪除",
"message": "此操作無法復原"
}
},
"logViewer": {
"title": "指令碼控制台輸出"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"editor": {
"format": "格式化文件",
"readOnlyMessage": "無法在唯讀模式下編輯"
}
},
"home": {
"proxyTunCard": {
"status": {
@@ -425,31 +299,6 @@
}
}
},
"connection": {
"fields": {
"host": "主機",
"downloaded": "下載量",
"uploaded": "上傳量",
"dlSpeed": "下載速度",
"ulSpeed": "上傳速度",
"chains": "鏈路",
"rule": "規則",
"process": "處理程序",
"time": "連線時間",
"source": "來源位址",
"destination": "目標位址",
"destinationPort": "目標連接埠",
"type": "類型"
},
"actions": {
"closeConnection": "關閉連線"
},
"order": {
"default": "Default",
"uploadSpeed": "上傳速度",
"downloadSpeed": "下載速度"
}
},
"settings": {
"system": {
"title": "系統設定",
@@ -1090,6 +939,19 @@
"messages": {
"directMode": "直連模式"
}
},
"strategies": {
"select": "手動選擇代理",
"url-test": "根據網址測試延遲選擇代理",
"fallback": "切換至另一個備用代理",
"load-balance": "根據負載平衡分配代理",
"relay": "根據定義的代理鏈傳送"
},
"policies": {
"DIRECT": "直連 (DIRECT)",
"REJECT": "拒絕請求 (REJECT)",
"REJECT-DROP": "丟棄請求 (REJECT-DROP)",
"PASS": "跳過此規則 (PASS)"
}
},
"rules": {
@@ -1150,7 +1012,129 @@
"notifications": {
"importSuccess": "匯入設定檔成功",
"importSubscriptionSuccess": "匯入訂閱成功",
"importWithClashProxy": "使用 Clash 代理匯入訂閱成功"
"importWithClashProxy": "使用 Clash 代理匯入訂閱成功",
"saved": "儲存成功"
},
"viewer": {
"title": {
"create": "新增設定檔",
"edit": "編輯設定檔"
},
"fields": {
"type": "類型",
"name": "名稱",
"description": "描述",
"subscriptionUrl": "訂閱網址",
"httpTimeout": "HTTP Request Timeout",
"updateInterval": "更新間隔",
"useSystemProxy": "使用系統代理更新",
"useClashProxy": "使用內核代理更新",
"acceptInvalidCerts": "允許無效憑證(危險)",
"allowAutoUpdate": "允許自動更新"
},
"notifications": {
"creationRetry": "訂閱建立失敗,嘗試使用 Clash 代理建立",
"creationSuccess": "使用 Clash 代理建立訂閱成功"
}
},
"menu": {
"home": "首 頁",
"select": "使用",
"editInfo": "編輯資訊",
"editFile": "編輯檔案",
"editRules": "編輯規則",
"editProxies": "編輯節點",
"editGroups": "編輯代理組",
"extendConfig": "擴充覆寫設定",
"extendScript": "擴充指令碼",
"openFile": "開啟檔案",
"update": "更新",
"updateViaProxy": "更新(代理)"
},
"proxiesEditor": {
"title": "編輯節點",
"placeholders": {
"multiUri": "多條網址,請使用換行分隔(支援 Base64 編碼)"
},
"actions": {
"prepend": "新增前置代理節點",
"append": "新增後置代理節點"
}
},
"groupsEditor": {
"title": "編輯代理組",
"errors": {
"nameRequired": "代理組名稱為必填",
"nameExists": "代理組名稱已存在"
},
"fields": {
"type": "代理組類型",
"name": "代理組名稱",
"icon": "代理組圖示",
"proxies": "使用代理",
"provider": "使用代理集合",
"healthCheckUrl": "健康檢查網址",
"expectedStatus": "預期狀態碼",
"interval": "檢查間隔",
"timeout": "逾時",
"maxFailedTimes": "最大失敗次數",
"interfaceName": "輸出介面",
"routingMark": "路由標記",
"filter": "篩選節點",
"excludeFilter": "排除節點",
"excludeType": "排除節點類型",
"includeAll": "包含所有輸出代理、代理集合",
"includeAllProxies": "包含所有輸出代理",
"includeAllProviders": "包含所有代理集合"
},
"toggles": {
"lazy": "延遲載入",
"disableUdp": "停用 UDP",
"hidden": "隱藏代理組"
},
"actions": {
"prepend": "新增前置代理組",
"append": "新增後置代理組"
}
},
"fileInput": {
"chooseFile": "選擇檔案"
},
"more": {
"global": {
"merge": "Global Merge",
"script": "Global Script"
},
"chips": {
"merge": "Merge",
"script": "Script"
}
},
"item": {
"tooltips": {
"showLast": "Click to show last update time",
"showNext": "Click to show next update"
},
"status": {
"lastUpdateFailed": "上次更新失敗",
"nextUp": "下次更新",
"noSchedule": "沒有排程",
"unknown": "未知",
"autoUpdateDisabled": "自動更新已停用"
}
},
"confirm": {
"delete": {
"title": "確認刪除",
"message": "此操作無法復原"
}
},
"editor": {
"format": "格式化文件",
"readOnlyMessage": "無法在唯讀模式下編輯"
},
"logViewer": {
"title": "指令碼控制台輸出"
}
},
"connections": {
@@ -1167,6 +1151,29 @@
"resume": "繼續",
"closeAll": "關閉全部"
}
},
"fields": {
"host": "主機",
"downloaded": "下載量",
"uploaded": "上傳量",
"dlSpeed": "下載速度",
"ulSpeed": "上傳速度",
"chains": "鏈路",
"rule": "規則",
"process": "處理程序",
"time": "連線時間",
"source": "來源位址",
"destination": "目標位址",
"destinationPort": "目標連接埠",
"type": "類型"
},
"order": {
"default": "Default",
"uploadSpeed": "上傳速度",
"downloadSpeed": "下載速度"
},
"actions": {
"closeConnection": "關閉連線"
}
},
"logs": {
@@ -1207,21 +1214,6 @@
}
}
},
"proxy": {
"strategies": {
"select": "手動選擇代理",
"url-test": "根據網址測試延遲選擇代理",
"fallback": "切換至另一個備用代理",
"load-balance": "根據負載平衡分配代理",
"relay": "根據定義的代理鏈傳送"
},
"policies": {
"DIRECT": "直連 (DIRECT)",
"REJECT": "拒絕請求 (REJECT)",
"REJECT-DROP": "丟棄請求 (REJECT-DROP)",
"PASS": "跳過此規則 (PASS)"
}
},
"system": {
"notifications": {
"tunMode": {

View File

@@ -36,7 +36,7 @@ type OrderFunc = (list: IConnectionsItem[]) => IConnectionsItem[];
const ORDER_OPTIONS = [
{
id: "default",
labelKey: "connection.order.default",
labelKey: "connections.order.default",
fn: (list: IConnectionsItem[]) =>
list.sort(
(a, b) =>
@@ -46,13 +46,13 @@ const ORDER_OPTIONS = [
},
{
id: "uploadSpeed",
labelKey: "connection.order.uploadSpeed",
labelKey: "connections.order.uploadSpeed",
fn: (list: IConnectionsItem[]) =>
list.sort((a, b) => b.curUpload! - a.curUpload!),
},
{
id: "downloadSpeed",
labelKey: "connection.order.downloadSpeed",
labelKey: "connections.order.downloadSpeed",
fn: (list: IConnectionsItem[]) =>
list.sort((a, b) => b.curDownload! - a.curDownload!),
},