feat(config): Add translations for server configuration in multiple languages

This commit is contained in:
web 2025-09-12 21:32:14 -07:00
parent 39d746f0a1
commit f9a7ece9bf
27 changed files with 1255 additions and 711 deletions

View File

@ -8,16 +8,42 @@ export const protocols = [
'hysteria2',
'tuic',
'anytls',
'socks',
'naive',
'http',
'meru',
] as const;
// 字段配置类型
export type FieldConfig = {
name: string;
type: 'input' | 'select' | 'switch' | 'number' | 'textarea';
label: string;
placeholder?: string | ((t: (key: string) => string, protocol: any) => string);
options?: readonly string[];
defaultValue?: any;
min?: number;
max?: number;
step?: number;
suffix?: string;
condition?: (protocol: any, values: any) => boolean;
group?: 'basic' | 'transport' | 'security' | 'reality' | 'plugin';
gridSpan?: 1 | 2;
};
// Global label map for display; fallback to raw value if missing
export const LABELS = {
// transport
'tcp': 'TCP',
'udp': 'UDP',
'websocket': 'WebSocket',
'http2': 'HTTP/2',
'httpupgrade': 'HTTP Upgrade',
'grpc': 'gRPC',
'mkcp': 'mKCP',
'httpupgrade': 'HTTP Upgrade',
'xhttp': 'XHTTP',
// vless flow
'xtls-rprx-direct': 'XTLS-RPRX-Direct',
'xtls-rprx-splice': 'XTLS-RPRX-Splice',
'xtls-rprx-vision': 'XTLS-RPRX-Vision',
// security
'none': 'NONE',
@ -32,6 +58,14 @@ export const LABELS = {
'edge': 'edge',
'360': '360',
'qq': 'QQ',
// multiplex
'off': 'Off',
'low': 'Low',
'middle': 'Middle',
'high': 'High',
// ss plugins
'obfs': 'Simple Obfs',
'v2ray-plugin': 'V2Ray Plugin',
} as const;
// Flat arrays for enum-like sets
@ -45,10 +79,13 @@ export const SS_CIPHERS = [
'2022-blake3-chacha20-poly1305',
] as const;
export const SS_PLUGINS = ['none', 'obfs', 'v2ray-plugin'] as const;
export const TRANSPORTS = {
vmess: ['tcp', 'websocket', 'grpc', 'httpupgrade'] as const,
vless: ['tcp', 'websocket', 'grpc', 'httpupgrade', 'http2'] as const,
vmess: ['tcp', 'websocket', 'grpc'] as const,
vless: ['tcp', 'websocket', 'grpc', 'mkcp', 'httpupgrade', 'xhttp'] as const,
trojan: ['tcp', 'websocket', 'grpc'] as const,
meru: ['tcp', 'udp'] as const,
} as const;
export const SECURITY = {
@ -56,13 +93,15 @@ export const SECURITY = {
vless: ['none', 'tls', 'reality'] as const,
trojan: ['tls'] as const,
hysteria2: ['tls'] as const,
naive: ['none', 'tls'] as const,
http: ['none', 'tls'] as const,
} as const;
export const FLOWS = {
vless: ['none', 'xtls-rprx-vision'] as const,
vless: ['none', 'xtls-rprx-direct', 'xtls-rprx-splice', 'xtls-rprx-vision'] as const,
} as const;
export const TUIC_UDP_RELAY_MODES = ['native', 'quic', 'none'] as const;
export const TUIC_UDP_RELAY_MODES = ['native', 'quic'] as const;
export const TUIC_CONGESTION = ['bbr', 'cubic', 'new_reno'] as const;
export const FINGERPRINTS = [
'chrome',
@ -75,6 +114,8 @@ export const FINGERPRINTS = [
'qq',
] as const;
export const multiplexLevels = ['off', 'low', 'middle', 'high'] as const;
export function getLabel(value: string): string {
return (LABELS as Record<string, string>)[value] ?? value;
}
@ -89,6 +130,8 @@ const ss = z.object({
port: nullablePort,
cipher: z.enum(SS_CIPHERS as any).nullish(),
server_key: nullableString,
plugin: z.enum(SS_PLUGINS as any).nullish(),
plugin_opts: nullableString,
});
const vmess = z.object({
@ -162,13 +205,43 @@ const tuic = z.object({
fingerprint: nullableString,
});
const socks = z.object({
type: z.literal('socks'),
port: nullablePort,
});
const naive = z.object({
type: z.literal('naive'),
port: nullablePort,
security: z.enum(SECURITY.naive as any).nullish(),
sni: nullableString,
allow_insecure: nullableBool,
fingerprint: nullableString,
});
const http = z.object({
type: z.literal('http'),
port: nullablePort,
security: z.enum(SECURITY.http as any).nullish(),
sni: nullableString,
allow_insecure: nullableBool,
fingerprint: nullableString,
});
const meru = z.object({
type: z.literal('meru'),
port: nullablePort,
multiplex: z.enum(multiplexLevels).nullish(),
transport: z.enum(TRANSPORTS.meru as any).nullish(),
});
const anytls = z.object({
type: z.literal('anytls'),
host: nullableString,
port: nullablePort,
sni: nullableString,
allow_insecure: nullableBool,
fingerprint: nullableString,
padding_scheme: nullableString,
});
export const protocolApiScheme = z.discriminatedUnion('type', [
@ -179,6 +252,10 @@ export const protocolApiScheme = z.discriminatedUnion('type', [
hysteria2,
tuic,
anytls,
socks,
naive,
http,
meru,
]);
export const formSchema = z.object({
@ -202,6 +279,8 @@ export function getProtocolDefaultConfig(proto: ProtocolType) {
port: null,
cipher: 'chacha20-ietf-poly1305',
server_key: null,
plugin: 'none',
plugin_opts: null,
} as any;
case 'vmess':
return { type: 'vmess', port: null, transport: 'tcp', security: 'none' } as any;
@ -227,9 +306,587 @@ export function getProtocolDefaultConfig(proto: ProtocolType) {
udp_relay_mode: 'native',
congestion_controller: 'bbr',
} as any;
case 'socks':
return {
type: 'socks',
port: null,
} as any;
case 'naive':
return {
type: 'naive',
port: null,
security: 'none',
} as any;
case 'http':
return {
type: 'http',
port: null,
security: 'none',
} as any;
case 'meru':
return {
type: 'meru',
port: null,
multiplex: 'off',
transport: 'tcp',
} as any;
case 'anytls':
return { type: 'anytls', port: null } as any;
return { type: 'anytls', port: null, padding_scheme: null } as any;
default:
return {} as any;
}
}
// 协议字段配置
export const PROTOCOL_FIELDS: Record<string, FieldConfig[]> = {
shadowsocks: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'cipher',
type: 'select',
label: 'encryption_method',
options: SS_CIPHERS,
defaultValue: 'chacha20-ietf-poly1305',
group: 'basic',
},
{
name: 'server_key',
type: 'input',
label: 'server_key',
group: 'basic',
condition: (p) =>
[
'2022-blake3-aes-128-gcm',
'2022-blake3-aes-256-gcm',
'2022-blake3-chacha20-poly1305',
].includes(p.cipher),
},
{
name: 'plugin',
type: 'select',
label: 'plugin',
options: SS_PLUGINS,
defaultValue: 'none',
group: 'plugin',
},
{
name: 'plugin_opts',
type: 'textarea',
label: 'plugin_opts',
placeholder: (t: (key: string) => string, p: any) => {
switch (p.plugin) {
case 'obfs':
return 'obfs=http;obfs-host=www.bing.com;path=/';
case 'v2ray-plugin':
return 'WebSocket: mode=websocket;host=mydomain.me;path=/;tls=true\n\nQUIC: mode=quic;host=mydomain.me';
default:
return 'key=value;key2=value2';
}
},
group: 'plugin',
condition: (p) => p.plugin !== 'none',
},
],
vmess: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'transport',
type: 'select',
label: 'transport',
options: TRANSPORTS.vmess,
defaultValue: 'tcp',
group: 'transport',
},
{
name: 'security',
type: 'select',
label: 'security',
options: SECURITY.vmess,
defaultValue: 'none',
group: 'security',
},
{
name: 'host',
type: 'input',
label: 'host',
group: 'transport',
condition: (p) => ['websocket', 'xhttp', 'httpupgrade'].includes(p.transport),
},
{
name: 'path',
type: 'input',
label: 'path',
group: 'transport',
condition: (p) => ['websocket', 'xhttp', 'httpupgrade'].includes(p.transport),
},
{
name: 'service_name',
type: 'input',
label: 'service_name',
group: 'transport',
condition: (p) => p.transport === 'grpc',
},
{
name: 'sni',
type: 'input',
label: 'security_sni',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'allow_insecure',
type: 'switch',
label: 'security_allow_insecure',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
condition: (p) => p.security !== 'none',
},
],
vless: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'flow',
type: 'select',
label: 'flow',
options: FLOWS.vless,
defaultValue: 'none',
group: 'basic',
},
{
name: 'transport',
type: 'select',
label: 'transport',
options: TRANSPORTS.vless,
defaultValue: 'tcp',
group: 'transport',
},
{
name: 'security',
type: 'select',
label: 'security',
options: SECURITY.vless,
defaultValue: 'none',
group: 'security',
},
{
name: 'host',
type: 'input',
label: 'host',
group: 'transport',
condition: (p) => ['websocket', 'mkcp', 'httpupgrade', 'xhttp'].includes(p.transport),
},
{
name: 'path',
type: 'input',
label: 'path',
group: 'transport',
condition: (p) => ['websocket', 'mkcp', 'httpupgrade', 'xhttp'].includes(p.transport),
},
{
name: 'service_name',
type: 'input',
label: 'service_name',
group: 'transport',
condition: (p) => p.transport === 'grpc',
},
{
name: 'sni',
type: 'input',
label: 'security_sni',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'allow_insecure',
type: 'switch',
label: 'security_allow_insecure',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'reality_server_addr',
type: 'input',
label: 'security_server_address',
placeholder: (t) => t('security_server_address_placeholder'),
group: 'reality',
condition: (p) => p.security === 'reality',
},
{
name: 'reality_server_port',
type: 'number',
label: 'security_server_port',
min: 1,
max: 65535,
placeholder: '1-65535',
group: 'reality',
condition: (p) => p.security === 'reality',
},
{
name: 'reality_private_key',
type: 'input',
label: 'security_private_key',
placeholder: (t) => t('security_private_key_placeholder'),
group: 'reality',
condition: (p) => p.security === 'reality',
},
{
name: 'reality_public_key',
type: 'input',
label: 'security_public_key',
placeholder: (t) => t('security_public_key_placeholder'),
group: 'reality',
condition: (p) => p.security === 'reality',
},
{
name: 'reality_short_id',
type: 'input',
label: 'security_short_id',
group: 'reality',
condition: (p) => p.security === 'reality',
},
],
trojan: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'transport',
type: 'select',
label: 'transport',
options: TRANSPORTS.trojan,
defaultValue: 'tcp',
group: 'transport',
},
{
name: 'security',
type: 'select',
label: 'security',
options: SECURITY.trojan,
defaultValue: 'tls',
group: 'security',
},
{
name: 'host',
type: 'input',
label: 'host',
group: 'transport',
condition: (p) => ['websocket', 'xhttp', 'httpupgrade'].includes(p.transport),
},
{
name: 'path',
type: 'input',
label: 'path',
group: 'transport',
condition: (p) => ['websocket', 'xhttp', 'httpupgrade'].includes(p.transport),
},
{
name: 'service_name',
type: 'input',
label: 'service_name',
group: 'transport',
condition: (p) => p.transport === 'grpc',
},
{
name: 'sni',
type: 'input',
label: 'security_sni',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'allow_insecure',
type: 'switch',
label: 'security_allow_insecure',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
condition: (p) => p.security !== 'none',
},
],
hysteria2: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'obfs_password',
type: 'input',
label: 'obfs_password',
placeholder: (t) => t('obfs_password_placeholder'),
group: 'basic',
},
{
name: 'hop_ports',
type: 'input',
label: 'hop_ports',
placeholder: (t) => t('hop_ports_placeholder'),
group: 'basic',
},
{
name: 'hop_interval',
type: 'number',
label: 'hop_interval',
min: 0,
suffix: 'S',
group: 'basic',
},
{ name: 'sni', type: 'input', label: 'security_sni', group: 'security' },
{ name: 'allow_insecure', type: 'switch', label: 'security_allow_insecure', group: 'security' },
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
},
],
tuic: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'udp_relay_mode',
type: 'select',
label: 'udp_relay_mode',
options: TUIC_UDP_RELAY_MODES,
defaultValue: 'native',
group: 'basic',
},
{
name: 'congestion_controller',
type: 'select',
label: 'congestion_controller',
options: TUIC_CONGESTION,
defaultValue: 'bbr',
group: 'basic',
},
{ name: 'disable_sni', type: 'switch', label: 'disable_sni', group: 'basic' },
{ name: 'reduce_rtt', type: 'switch', label: 'reduce_rtt', group: 'basic' },
{ name: 'sni', type: 'input', label: 'security_sni', group: 'security' },
{ name: 'allow_insecure', type: 'switch', label: 'security_allow_insecure', group: 'security' },
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
},
],
socks: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
],
naive: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'security',
type: 'select',
label: 'security',
options: SECURITY.naive,
defaultValue: 'none',
group: 'security',
},
{
name: 'sni',
type: 'input',
label: 'security_sni',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'allow_insecure',
type: 'switch',
label: 'security_allow_insecure',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
condition: (p) => p.security !== 'none',
},
],
http: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'security',
type: 'select',
label: 'security',
options: SECURITY.http,
defaultValue: 'none',
group: 'security',
},
{
name: 'sni',
type: 'input',
label: 'security_sni',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'allow_insecure',
type: 'switch',
label: 'security_allow_insecure',
group: 'security',
condition: (p) => p.security !== 'none',
},
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
condition: (p) => p.security !== 'none',
},
],
meru: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'multiplex',
type: 'select',
label: 'multiplex',
options: multiplexLevels,
defaultValue: 'off',
group: 'basic',
},
{
name: 'transport',
type: 'select',
label: 'transport',
options: TRANSPORTS.meru,
defaultValue: 'tcp',
group: 'transport',
},
],
anytls: [
{
name: 'port',
type: 'number',
label: 'port',
min: 0,
max: 65535,
placeholder: '1-65535',
group: 'basic',
},
{
name: 'padding_scheme',
type: 'textarea',
label: 'padding_scheme',
placeholder: (t: (key: string) => string) => t('padding_scheme_placeholder'),
group: 'basic',
},
{ name: 'sni', type: 'input', label: 'security_sni', group: 'security' },
{ name: 'allow_insecure', type: 'switch', label: 'security_allow_insecure', group: 'security' },
{
name: 'fingerprint',
type: 'select',
label: 'security_fingerprint',
options: FINGERPRINTS,
defaultValue: 'chrome',
group: 'security',
},
],
};

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
{
"address": "Adresa",
"address_placeholder": "Adresa serveru",
"basic": "Základní konfigurace",
"cancel": "Zrušit",
"city": "Město",
"config": {
@ -40,6 +41,7 @@
"delete": "Smazat",
"deleted": "Úspěšně smazáno",
"disable_sni": "Zakázat SNI",
"disabled": "Deaktivováno",
"disk": "Disk",
"drawerCreateTitle": "Vytvořit server",
"drawerEditTitle": "Upravit server",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Online uživatelé",
"padding_scheme": "Schéma vycpání",
"padding_scheme_placeholder": "Jedno pravidlo vycpání na řádek, formát: stop=8, 0=30-30",
"pageTitle": "Servery",
"path": "Cesta",
"please_select": "Prosím vyberte",
"plugin": "Konfigurace pluginu",
"plugin_opts": "Možnosti pluginu",
"port": "Port",
"protocol_configurations": "Konfigurace protokolu",
"protocol_configurations_desc": "Povolit a nakonfigurovat požadované typy protokolů",
"protocol_disabled_hint": "Tento protokol je deaktivován, aktivujte přepínač pro konfiguraci",
"protocols": "Protokoly",
"reality": "Konfigurace reality",
"reduce_rtt": "Snížit RTT",
"security": "Konfigurace zabezpečení",
"security_allow_insecure": "Povolit nezabezpečené",
"security_fingerprint": "Otisk prstu",
"security_private_key": "Soukromý klíč reality",
@ -86,7 +97,6 @@
"security_short_id": "Krátké ID reality",
"security_short_id_placeholder": "Hexadecimální řetězec (max. 16 znaků)",
"security_sni": "SNI",
"security_title": "Bezpečnost",
"select_encryption_method": "Vyberte metodu šifrování",
"server_key": "Klíč serveru",
"service_name": "Název služby",
@ -95,7 +105,7 @@
"subscription": "Předplatné",
"traffic": "Provoz",
"traffic_ratio": "Multiplikátor",
"transport_title": "Transport",
"transport": "Metoda přenosu",
"udp_relay_mode": "Režim UDP relé",
"unitSecondsShort": "S",
"unlimited": "Neomezeno",

View File

@ -1,6 +1,7 @@
{
"address": "Adresse",
"address_placeholder": "Serveradresse",
"basic": "Grundkonfiguration",
"cancel": "Abbrechen",
"city": "Stadt",
"config": {
@ -40,6 +41,7 @@
"delete": "Löschen",
"deleted": "Erfolgreich gelöscht",
"disable_sni": "SNI deaktivieren",
"disabled": "Deaktiviert",
"disk": "Festplatte",
"drawerCreateTitle": "Server erstellen",
"drawerEditTitle": "Server bearbeiten",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Online-Benutzer",
"padding_scheme": "Polsterungsschema",
"padding_scheme_placeholder": "Eine Polsterungsregel pro Zeile, Format: stop=8, 0=30-30",
"pageTitle": "Server",
"path": "Pfad",
"please_select": "Bitte auswählen",
"plugin": "Plugin-Konfiguration",
"plugin_opts": "Plugin-Optionen",
"port": "Port",
"protocol_configurations": "Protokollkonfigurationen",
"protocol_configurations_desc": "Aktivieren und konfigurieren Sie die erforderlichen Protokolltypen",
"protocol_disabled_hint": "Dieses Protokoll ist deaktiviert, aktivieren Sie den Schalter, um es zu konfigurieren",
"protocols": "Protokolle",
"reality": "Realitätskonfiguration",
"reduce_rtt": "RTT reduzieren",
"security": "Sicherheitskonfiguration",
"security_allow_insecure": "Unsichere Verbindungen zulassen",
"security_fingerprint": "Fingerprint",
"security_private_key": "Echter privater Schlüssel",
@ -86,7 +97,6 @@
"security_short_id": "Echte kurze ID",
"security_short_id_placeholder": "Hex-String (bis zu 16 Zeichen)",
"security_sni": "SNI",
"security_title": "Sicherheit",
"select_encryption_method": "Verschlüsselungsmethode auswählen",
"server_key": "Server-Schlüssel",
"service_name": "Dienstname",
@ -95,7 +105,7 @@
"subscription": "Abonnement",
"traffic": "Verkehr",
"traffic_ratio": "Multiplikator",
"transport_title": "Transport",
"transport": "Transportmethode",
"udp_relay_mode": "UDP-Relay-Modus",
"unitSecondsShort": "S",
"unlimited": "Unbegrenzt",

View File

@ -1,6 +1,7 @@
{
"address": "Address",
"address_placeholder": "Server address",
"basic": "Basic Configuration",
"cancel": "Cancel",
"city": "City",
"config": {
@ -40,6 +41,7 @@
"delete": "Delete",
"deleted": "Deleted successfully",
"disable_sni": "Disable SNI",
"disabled": "Disabled",
"disk": "Disk",
"drawerCreateTitle": "Create Server",
"drawerEditTitle": "Edit Server",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Online users",
"padding_scheme": "Padding Scheme",
"padding_scheme_placeholder": "One padding rule per line, format: stop=8, 0=30-30",
"pageTitle": "Servers",
"path": "Path",
"please_select": "Please select",
"plugin": "Plugin Configuration",
"plugin_opts": "Plugin Options",
"port": "Port",
"protocol_configurations": "Protocol Configurations",
"protocol_configurations_desc": "Enable and configure the required protocol types",
"protocol_disabled_hint": "This protocol is disabled, enable the switch to configure",
"protocols": "Protocols",
"reality": "Reality Configuration",
"reduce_rtt": "Reduce RTT",
"security": "Security Configuration",
"security_allow_insecure": "Allow insecure",
"security_fingerprint": "Fingerprint",
"security_private_key": "Reality private key",
@ -86,7 +97,6 @@
"security_short_id": "Reality short ID",
"security_short_id_placeholder": "Hex string (up to 16 chars)",
"security_sni": "SNI",
"security_title": "Security",
"select_encryption_method": "Select encryption method",
"server_key": "Server key",
"service_name": "Service name",
@ -95,7 +105,7 @@
"subscription": "Subscription",
"traffic": "Traffic",
"traffic_ratio": "Ratio",
"transport_title": "Transport",
"transport": "Transport Method",
"udp_relay_mode": "UDP relay mode",
"unitSecondsShort": "S",
"unlimited": "Unlimited",

View File

@ -1,6 +1,7 @@
{
"address": "Dirección",
"address_placeholder": "Dirección del servidor",
"basic": "Configuración Básica",
"cancel": "Cancelar",
"city": "Ciudad",
"config": {
@ -40,6 +41,7 @@
"delete": "Eliminar",
"deleted": "Eliminado con éxito",
"disable_sni": "Deshabilitar SNI",
"disabled": "Deshabilitado",
"disk": "Disco",
"drawerCreateTitle": "Crear Servidor",
"drawerEditTitle": "Editar Servidor",
@ -68,12 +70,21 @@
"offline": "Desconectado",
"online": "Conectado",
"onlineUsers": "Usuarios en línea",
"padding_scheme": "Esquema de Relleno",
"padding_scheme_placeholder": "Una regla de relleno por línea, formato: stop=8, 0=30-30",
"pageTitle": "Servidores",
"path": "Ruta",
"please_select": "Por favor seleccione",
"plugin": "Configuración del Plugin",
"plugin_opts": "Opciones del Plugin",
"port": "Puerto",
"protocol_configurations": "Configuraciones de Protocolo",
"protocol_configurations_desc": "Habilitar y configurar los tipos de protocolo requeridos",
"protocol_disabled_hint": "Este protocolo está deshabilitado, habilita el interruptor para configurar",
"protocols": "Protocolos",
"reality": "Configuración de Realidad",
"reduce_rtt": "Reducir RTT",
"security": "Configuración de Seguridad",
"security_allow_insecure": "Permitir inseguro",
"security_fingerprint": "Huella digital",
"security_private_key": "Clave privada de realidad",
@ -86,7 +97,6 @@
"security_short_id": "ID corta de realidad",
"security_short_id_placeholder": "Cadena hexadecimal (hasta 16 caracteres)",
"security_sni": "SNI",
"security_title": "Seguridad",
"select_encryption_method": "Seleccionar método de cifrado",
"server_key": "Clave del servidor",
"service_name": "Nombre del servicio",
@ -95,7 +105,7 @@
"subscription": "Suscripción",
"traffic": "Tráfico",
"traffic_ratio": "Multiplicador",
"transport_title": "Transporte",
"transport": "Método de Transporte",
"udp_relay_mode": "Modo de retransmisión UDP",
"unitSecondsShort": "S",
"unlimited": "Ilimitado",

View File

@ -1,6 +1,7 @@
{
"address": "Dirección",
"address_placeholder": "Dirección del servidor",
"basic": "Configuración Básica",
"cancel": "Cancelar",
"city": "Ciudad",
"config": {
@ -40,6 +41,7 @@
"delete": "Eliminar",
"deleted": "Eliminado con éxito",
"disable_sni": "Deshabilitar SNI",
"disabled": "Deshabilitado",
"disk": "Disco",
"drawerCreateTitle": "Crear Servidor",
"drawerEditTitle": "Editar Servidor",
@ -68,12 +70,21 @@
"offline": "Desconectado",
"online": "Conectado",
"onlineUsers": "Usuarios en línea",
"padding_scheme": "Esquema de Relleno",
"padding_scheme_placeholder": "Una regla de relleno por línea, formato: stop=8, 0=30-30",
"pageTitle": "Servidores",
"path": "Ruta",
"please_select": "Por favor selecciona",
"plugin": "Configuración del Plugin",
"plugin_opts": "Opciones del Plugin",
"port": "Puerto",
"protocol_configurations": "Configuraciones de Protocolo",
"protocol_configurations_desc": "Habilitar y configurar los tipos de protocolo requeridos",
"protocol_disabled_hint": "Este protocolo está deshabilitado, habilita el interruptor para configurar",
"protocols": "Protocolos",
"reality": "Configuración de Realidad",
"reduce_rtt": "Reducir RTT",
"security": "Configuración de Seguridad",
"security_allow_insecure": "Permitir inseguro",
"security_fingerprint": "Huella digital",
"security_private_key": "Clave privada de realidad",
@ -86,7 +97,6 @@
"security_short_id": "ID corto de realidad",
"security_short_id_placeholder": "Cadena hexadecimal (hasta 16 caracteres)",
"security_sni": "SNI",
"security_title": "Seguridad",
"select_encryption_method": "Selecciona el método de encriptación",
"server_key": "Clave del servidor",
"service_name": "Nombre del servicio",
@ -95,7 +105,7 @@
"subscription": "Suscripción",
"traffic": "Tráfico",
"traffic_ratio": "Multiplicador",
"transport_title": "Transporte",
"transport": "Método de Transporte",
"udp_relay_mode": "Modo de retransmisión UDP",
"unitSecondsShort": "S",
"unlimited": "Ilimitado",

View File

@ -1,6 +1,7 @@
{
"address": "آدرس",
"address_placeholder": "آدرس سرور",
"basic": "پیکربندی پایه",
"cancel": "لغو",
"city": "شهر",
"config": {
@ -40,6 +41,7 @@
"delete": "حذف",
"deleted": "با موفقیت حذف شد",
"disable_sni": "غیرفعال کردن SNI",
"disabled": "غیرفعال",
"disk": "دیسک",
"drawerCreateTitle": "ایجاد سرور",
"drawerEditTitle": "ویرایش سرور",
@ -68,12 +70,21 @@
"offline": "آفلاین",
"online": "آنلاین",
"onlineUsers": "کاربران آنلاین",
"padding_scheme": "طرح پدینگ",
"padding_scheme_placeholder": "یک قانون پدینگ در هر خط، فرمت: stop=8, 0=30-30",
"pageTitle": "سرورها",
"path": "مسیر",
"please_select": "لطفاً انتخاب کنید",
"plugin": "پیکربندی پلاگین",
"plugin_opts": "گزینه‌های پلاگین",
"port": "پورت",
"protocol_configurations": "پیکربندی‌های پروتکل",
"protocol_configurations_desc": "پروتکل‌های مورد نیاز را فعال و پیکربندی کنید",
"protocol_disabled_hint": "این پروتکل غیرفعال است، سوئیچ را فعال کنید تا پیکربندی شود",
"protocols": "پروتکل‌ها",
"reality": "پیکربندی واقعیت",
"reduce_rtt": "کاهش RTT",
"security": "پیکربندی امنیت",
"security_allow_insecure": "اجازه به ناامن",
"security_fingerprint": "اثر انگشت",
"security_private_key": "کلید خصوصی واقعیت",
@ -86,7 +97,6 @@
"security_short_id": "شناسه کوتاه واقعیت",
"security_short_id_placeholder": "رشته هگز (حداکثر 16 کاراکتر)",
"security_sni": "SNI",
"security_title": "امنیت",
"select_encryption_method": "روش رمزنگاری را انتخاب کنید",
"server_key": "کلید سرور",
"service_name": "نام سرویس",
@ -95,7 +105,7 @@
"subscription": "اشتراک",
"traffic": "ترافیک",
"traffic_ratio": "ضریب",
"transport_title": "حمل و نقل",
"transport": "روش حمل و نقل",
"udp_relay_mode": "حالت رله UDP",
"unitSecondsShort": "ث",
"unlimited": "نامحدود",

View File

@ -1,6 +1,7 @@
{
"address": "Osoite",
"address_placeholder": "Palvelimen osoite",
"basic": "Perusasetukset",
"cancel": "Peruuta",
"city": "Kaupunki",
"config": {
@ -40,6 +41,7 @@
"delete": "Poista",
"deleted": "Poistettu onnistuneesti",
"disable_sni": "Poista SNI käytöstä",
"disabled": "Poissa käytöstä",
"disk": "Levy",
"drawerCreateTitle": "Luo palvelin",
"drawerEditTitle": "Muokkaa palvelinta",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Verkossa olevat käyttäjät",
"padding_scheme": "Täyttökaavio",
"padding_scheme_placeholder": "Yksi täyttösääntö per rivi, muoto: stop=8, 0=30-30",
"pageTitle": "Palvelimet",
"path": "Polku",
"please_select": "Ole hyvä ja valitse",
"plugin": "Laajennuksen asetukset",
"plugin_opts": "Laajennusvaihtoehdot",
"port": "Portti",
"protocol_configurations": "Protokolla-asetukset",
"protocol_configurations_desc": "Ota käyttöön ja määritä tarvittavat protokollatyypit",
"protocol_disabled_hint": "Tämä protokolla on pois käytöstä, ota kytkin käyttöön määrittääksesi",
"protocols": "Protokollat",
"reality": "Todellisuusasetukset",
"reduce_rtt": "Vähennä RTT",
"security": "Turvallisuusasetukset",
"security_allow_insecure": "Salli epävarma",
"security_fingerprint": "Sormenjälki",
"security_private_key": "Todellinen yksityinen avain",
@ -86,7 +97,6 @@
"security_short_id": "Todellinen lyhyt ID",
"security_short_id_placeholder": "Hex-merkkijono (enintään 16 merkkiä)",
"security_sni": "SNI",
"security_title": "Turvallisuus",
"select_encryption_method": "Valitse salausmenetelmä",
"server_key": "Palvelimen avain",
"service_name": "Palvelun nimi",
@ -95,7 +105,7 @@
"subscription": "Tilauksen",
"traffic": "Liikenne",
"traffic_ratio": "Kerroin",
"transport_title": "Kuljetus",
"transport": "Kuljetustapa",
"udp_relay_mode": "UDP-väylätila",
"unitSecondsShort": "S",
"unlimited": "Rajoittamaton",

View File

@ -1,6 +1,7 @@
{
"address": "Adresse",
"address_placeholder": "Adresse du serveur",
"basic": "Configuration de base",
"cancel": "Annuler",
"city": "Ville",
"config": {
@ -40,6 +41,7 @@
"delete": "Supprimer",
"deleted": "Supprimé avec succès",
"disable_sni": "Désactiver SNI",
"disabled": "Désactivé",
"disk": "Disque",
"drawerCreateTitle": "Créer un serveur",
"drawerEditTitle": "Modifier le serveur",
@ -68,12 +70,21 @@
"offline": "Hors ligne",
"online": "En ligne",
"onlineUsers": "Utilisateurs en ligne",
"padding_scheme": "Schéma de remplissage",
"padding_scheme_placeholder": "Une règle de remplissage par ligne, format : stop=8, 0=30-30",
"pageTitle": "Serveurs",
"path": "Chemin",
"please_select": "Veuillez sélectionner",
"plugin": "Configuration du plugin",
"plugin_opts": "Options du plugin",
"port": "Port",
"protocol_configurations": "Configurations de protocole",
"protocol_configurations_desc": "Activer et configurer les types de protocole requis",
"protocol_disabled_hint": "Ce protocole est désactivé, activez l'interrupteur pour configurer",
"protocols": "Protocoles",
"reality": "Configuration de la réalité",
"reduce_rtt": "Réduire le RTT",
"security": "Configuration de la sécurité",
"security_allow_insecure": "Autoriser l'insecure",
"security_fingerprint": "Empreinte digitale",
"security_private_key": "Clé privée de réalité",
@ -86,7 +97,6 @@
"security_short_id": "ID court de réalité",
"security_short_id_placeholder": "Chaîne hexadécimale (jusqu'à 16 caractères)",
"security_sni": "SNI",
"security_title": "Sécurité",
"select_encryption_method": "Sélectionner la méthode de chiffrement",
"server_key": "Clé du serveur",
"service_name": "Nom du service",
@ -95,7 +105,7 @@
"subscription": "Abonnement",
"traffic": "Trafic",
"traffic_ratio": "Multiplicateur",
"transport_title": "Transport",
"transport": "Méthode de transport",
"udp_relay_mode": "Mode de relais UDP",
"unitSecondsShort": "S",
"unlimited": "Illimité",

View File

@ -1,6 +1,7 @@
{
"address": "पता",
"address_placeholder": "सर्वर का पता",
"basic": "बुनियादी कॉन्फ़िगरेशन",
"cancel": "रद्द करें",
"city": "शहर",
"config": {
@ -40,6 +41,7 @@
"delete": "हटाएं",
"deleted": "सफलता से हटाया गया",
"disable_sni": "SNI अक्षम करें",
"disabled": "अक्षम",
"disk": "डिस्क",
"drawerCreateTitle": "सर्वर बनाएं",
"drawerEditTitle": "सर्वर संपादित करें",
@ -68,12 +70,21 @@
"offline": "ऑफलाइन",
"online": "ऑनलाइन",
"onlineUsers": "ऑनलाइन उपयोगकर्ता",
"padding_scheme": "पैडिंग योजना",
"padding_scheme_placeholder": "प्रति पंक्ति एक पैडिंग नियम, प्रारूप: रोकें=8, 0=30-30",
"pageTitle": "सर्वर",
"path": "पथ",
"please_select": "कृपया चुनें",
"plugin": "प्लगइन कॉन्फ़िगरेशन",
"plugin_opts": "प्लगइन विकल्प",
"port": "पोर्ट",
"protocol_configurations": "प्रोटोकॉल कॉन्फ़िगरेशन",
"protocol_configurations_desc": "आवश्यक प्रोटोकॉल प्रकारों को सक्षम और कॉन्फ़िगर करें",
"protocol_disabled_hint": "यह प्रोटोकॉल अक्षम है, कॉन्फ़िगर करने के लिए स्विच सक्षम करें",
"protocols": "प्रोटोकॉल",
"reality": "वास्तविकता कॉन्फ़िगरेशन",
"reduce_rtt": "RTT कम करें",
"security": "सुरक्षा कॉन्फ़िगरेशन",
"security_allow_insecure": "असुरक्षित की अनुमति दें",
"security_fingerprint": "फिंगरप्रिंट",
"security_private_key": "वास्तविक निजी कुंजी",
@ -86,7 +97,6 @@
"security_short_id": "वास्तविक शॉर्ट आईडी",
"security_short_id_placeholder": "हेक्स स्ट्रिंग (16 अक्षरों तक)",
"security_sni": "SNI",
"security_title": "सुरक्षा",
"select_encryption_method": "एन्क्रिप्शन विधि चुनें",
"server_key": "सर्वर कुंजी",
"service_name": "सेवा का नाम",
@ -95,7 +105,7 @@
"subscription": "सदस्यता",
"traffic": "यातायात",
"traffic_ratio": "गुणांक",
"transport_title": "परिवहन",
"transport": "परिवहन विधि",
"udp_relay_mode": "UDP रिले मोड",
"unitSecondsShort": "सेकंड",
"unlimited": "असीमित",

View File

@ -1,6 +1,7 @@
{
"address": "Cím",
"address_placeholder": "Szerver cím",
"basic": "Alapértelmezett Beállítások",
"cancel": "Mégse",
"city": "Város",
"config": {
@ -40,6 +41,7 @@
"delete": "Törlés",
"deleted": "Sikeresen törölve",
"disable_sni": "SNI letiltása",
"disabled": "Letiltva",
"disk": "Lemez",
"drawerCreateTitle": "Szerver létrehozása",
"drawerEditTitle": "Szerver szerkesztése",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Online felhasználók",
"padding_scheme": "Kitöltési Sémák",
"padding_scheme_placeholder": "Egy kitöltési szabály soronként, formátum: stop=8, 0=30-30",
"pageTitle": "Szerverek",
"path": "Útvonal",
"please_select": "Kérjük, válasszon",
"plugin": "Bővítmény Beállítások",
"plugin_opts": "Bővítmény Opciók",
"port": "Port",
"protocol_configurations": "Protokoll Beállítások",
"protocol_configurations_desc": "Engedélyezze és konfigurálja a szükséges protokolltípusokat",
"protocol_disabled_hint": "Ez a protokoll le van tiltva, engedélyezze a kapcsolót a konfiguráláshoz",
"protocols": "Protokollok",
"reality": "Valóság Beállítások",
"reduce_rtt": "RTT csökkentése",
"security": "Biztonsági Beállítások",
"security_allow_insecure": "Biztonságos kapcsolat engedélyezése",
"security_fingerprint": "Ujjlenyomat",
"security_private_key": "Valóság privát kulcs",
@ -86,7 +97,6 @@
"security_short_id": "Valóság rövid ID",
"security_short_id_placeholder": "Hexadecimális karakterlánc (legfeljebb 16 karakter)",
"security_sni": "SNI",
"security_title": "Biztonság",
"select_encryption_method": "Válassza ki a titkosítási módszert",
"server_key": "Szerver kulcs",
"service_name": "Szolgáltatás neve",
@ -95,7 +105,7 @@
"subscription": "Előfizetés",
"traffic": "Forgalom",
"traffic_ratio": "Szorzó",
"transport_title": "Szállítás",
"transport": "Szállítási Módszer",
"udp_relay_mode": "UDP átjáró mód",
"unitSecondsShort": "S",
"unlimited": "Korlátlan",

View File

@ -1,6 +1,7 @@
{
"address": "アドレス",
"address_placeholder": "サーバーアドレス",
"basic": "基本設定",
"cancel": "キャンセル",
"city": "都市",
"config": {
@ -40,6 +41,7 @@
"delete": "削除",
"deleted": "削除に成功しました",
"disable_sni": "SNIを無効にする",
"disabled": "無効",
"disk": "ディスク",
"drawerCreateTitle": "サーバーを作成",
"drawerEditTitle": "サーバーを編集",
@ -68,12 +70,21 @@
"offline": "オフライン",
"online": "オンライン",
"onlineUsers": "オンラインユーザー",
"padding_scheme": "パディングスキーム",
"padding_scheme_placeholder": "1行に1つのパディングルール、形式: stop=8, 0=30-30",
"pageTitle": "サーバー",
"path": "パス",
"please_select": "選択してください",
"plugin": "プラグイン設定",
"plugin_opts": "プラグインオプション",
"port": "ポート",
"protocol_configurations": "プロトコル設定",
"protocol_configurations_desc": "必要なプロトコルタイプを有効にして設定します",
"protocol_disabled_hint": "このプロトコルは無効です。設定するにはスイッチを有効にしてください",
"protocols": "プロトコル",
"reality": "リアリティ設定",
"reduce_rtt": "RTTを減少させる",
"security": "セキュリティ設定",
"security_allow_insecure": "不安全を許可",
"security_fingerprint": "フィンガープリント",
"security_private_key": "リアリティプライベートキー",
@ -86,7 +97,6 @@
"security_short_id": "リアリティショートID",
"security_short_id_placeholder": "16文字以内の16進数文字列",
"security_sni": "SNI",
"security_title": "セキュリティ",
"select_encryption_method": "暗号化方式を選択",
"server_key": "サーバーキー",
"service_name": "サービス名",
@ -95,7 +105,7 @@
"subscription": "サブスクリプション",
"traffic": "トラフィック",
"traffic_ratio": "倍率",
"transport_title": "トランスポート",
"transport": "トランスポート方法",
"udp_relay_mode": "UDPリレーモード",
"unitSecondsShort": "秒",
"unlimited": "無制限",

View File

@ -1,6 +1,7 @@
{
"address": "주소",
"address_placeholder": "서버 주소",
"basic": "기본 설정",
"cancel": "취소",
"city": "도시",
"config": {
@ -40,6 +41,7 @@
"delete": "삭제",
"deleted": "성공적으로 삭제됨",
"disable_sni": "SNI 비활성화",
"disabled": "비활성화됨",
"disk": "디스크",
"drawerCreateTitle": "서버 생성",
"drawerEditTitle": "서버 편집",
@ -68,12 +70,21 @@
"offline": "오프라인",
"online": "온라인",
"onlineUsers": "온라인 사용자",
"padding_scheme": "패딩 규칙",
"padding_scheme_placeholder": "한 줄에 하나의 패딩 규칙, 형식: stop=8, 0=30-30",
"pageTitle": "서버",
"path": "경로",
"please_select": "선택해 주세요",
"plugin": "플러그인 설정",
"plugin_opts": "플러그인 옵션",
"port": "포트",
"protocol_configurations": "프로토콜 설정",
"protocol_configurations_desc": "필요한 프로토콜 유형을 활성화하고 구성합니다",
"protocol_disabled_hint": "이 프로토콜은 비활성화되어 있습니다. 구성을 위해 스위치를 활성화하세요",
"protocols": "프로토콜",
"reality": "현실 설정",
"reduce_rtt": "RTT 감소",
"security": "보안 설정",
"security_allow_insecure": "불안전 허용",
"security_fingerprint": "지문",
"security_private_key": "실제 개인 키",
@ -86,7 +97,6 @@
"security_short_id": "실제 짧은 ID",
"security_short_id_placeholder": "16자 이내의 헥스 문자열",
"security_sni": "SNI",
"security_title": "보안",
"select_encryption_method": "암호화 방법 선택",
"server_key": "서버 키",
"service_name": "서비스 이름",
@ -95,7 +105,7 @@
"subscription": "구독",
"traffic": "트래픽",
"traffic_ratio": "배수",
"transport_title": "전송",
"transport": "전송 방법",
"udp_relay_mode": "UDP 릴레이 모드",
"unitSecondsShort": "초",
"unlimited": "무제한",

View File

@ -1,6 +1,7 @@
{
"address": "Adresse",
"address_placeholder": "Serveradresse",
"basic": "Grunnleggende Konfigurasjon",
"cancel": "Avbryt",
"city": "By",
"config": {
@ -40,6 +41,7 @@
"delete": "Slett",
"deleted": "Slettet vellykket",
"disable_sni": "Deaktiver SNI",
"disabled": "Deaktivert",
"disk": "Disk",
"drawerCreateTitle": "Opprett server",
"drawerEditTitle": "Rediger server",
@ -68,12 +70,21 @@
"offline": "Frakoblet",
"online": "På nett",
"onlineUsers": "Brukere på nett",
"padding_scheme": "Polstring Skjema",
"padding_scheme_placeholder": "Én polstringsregel per linje, format: stopp=8, 0=30-30",
"pageTitle": "Servere",
"path": "Sti",
"please_select": "Vennligst velg",
"plugin": "Plugin Konfigurasjon",
"plugin_opts": "Plugin Alternativer",
"port": "Port",
"protocol_configurations": "Protokoll Konfigurasjoner",
"protocol_configurations_desc": "Aktiver og konfigurer de nødvendige protokolltypene",
"protocol_disabled_hint": "Denne protokollen er deaktivert, aktiver bryteren for å konfigurere",
"protocols": "Protokoller",
"reality": "Virkelighet Konfigurasjon",
"reduce_rtt": "Reduser RTT",
"security": "Sikkerhetskonfigurasjon",
"security_allow_insecure": "Tillat usikker",
"security_fingerprint": "Fingeravtrykk",
"security_private_key": "Privat nøkkel",
@ -86,7 +97,6 @@
"security_short_id": "Kort ID",
"security_short_id_placeholder": "Hex-streng (opptil 16 tegn)",
"security_sni": "SNI",
"security_title": "Sikkerhet",
"select_encryption_method": "Velg krypteringsmetode",
"server_key": "Servernøkkel",
"service_name": "Tjenestenavn",
@ -95,7 +105,7 @@
"subscription": "Abonnement",
"traffic": "Trafikk",
"traffic_ratio": "Multiplikator",
"transport_title": "Transport",
"transport": "Transportmetode",
"udp_relay_mode": "UDP relémodus",
"unitSecondsShort": "S",
"unlimited": "Ubegrenset",

View File

@ -1,6 +1,7 @@
{
"address": "Adres",
"address_placeholder": "Adres serwera",
"basic": "Podstawowa konfiguracja",
"cancel": "Anuluj",
"city": "Miasto",
"config": {
@ -40,6 +41,7 @@
"delete": "Usuń",
"deleted": "Usunięto pomyślnie",
"disable_sni": "Wyłącz SNI",
"disabled": "Wyłączone",
"disk": "Dysk",
"drawerCreateTitle": "Utwórz serwer",
"drawerEditTitle": "Edytuj serwer",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Użytkownicy online",
"padding_scheme": "Schemat wypełnienia",
"padding_scheme_placeholder": "Jedna reguła wypełnienia na linię, format: stop=8, 0=30-30",
"pageTitle": "Serwery",
"path": "Ścieżka",
"please_select": "Proszę wybrać",
"plugin": "Konfiguracja wtyczki",
"plugin_opts": "Opcje wtyczki",
"port": "Port",
"protocol_configurations": "Konfiguracje protokołów",
"protocol_configurations_desc": "Włącz i skonfiguruj wymagane typy protokołów",
"protocol_disabled_hint": "Ten protokół jest wyłączony, włącz przełącznik, aby skonfigurować",
"protocols": "Protokoły",
"reality": "Konfiguracja rzeczywistości",
"reduce_rtt": "Zredukuj RTT",
"security": "Konfiguracja bezpieczeństwa",
"security_allow_insecure": "Zezwól na niebezpieczne",
"security_fingerprint": "Odcisk palca",
"security_private_key": "Prywatny klucz rzeczywistości",
@ -86,7 +97,6 @@
"security_short_id": "Krótki ID rzeczywistości",
"security_short_id_placeholder": "Ciąg szesnastkowy (do 16 znaków)",
"security_sni": "SNI",
"security_title": "Bezpieczeństwo",
"select_encryption_method": "Wybierz metodę szyfrowania",
"server_key": "Klucz serwera",
"service_name": "Nazwa usługi",
@ -95,7 +105,7 @@
"subscription": "Subskrypcja",
"traffic": "Ruch",
"traffic_ratio": "Mnożnik",
"transport_title": "Transport",
"transport": "Metoda transportu",
"udp_relay_mode": "Tryb przekazywania UDP",
"unitSecondsShort": "S",
"unlimited": "Nieograniczone",

View File

@ -1,6 +1,7 @@
{
"address": "Endereço",
"address_placeholder": "Endereço do servidor",
"basic": "Configuração Básica",
"cancel": "Cancelar",
"city": "Cidade",
"config": {
@ -40,6 +41,7 @@
"delete": "Excluir",
"deleted": "Excluído com sucesso",
"disable_sni": "Desativar SNI",
"disabled": "Desativado",
"disk": "Disco",
"drawerCreateTitle": "Criar Servidor",
"drawerEditTitle": "Editar Servidor",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Usuários online",
"padding_scheme": "Esquema de Preenchimento",
"padding_scheme_placeholder": "Uma regra de preenchimento por linha, formato: stop=8, 0=30-30",
"pageTitle": "Servidores",
"path": "Caminho",
"please_select": "Por favor, selecione",
"plugin": "Configuração do Plugin",
"plugin_opts": "Opções do Plugin",
"port": "Porta",
"protocol_configurations": "Configurações de Protocolo",
"protocol_configurations_desc": "Ative e configure os tipos de protocolo necessários",
"protocol_disabled_hint": "Este protocolo está desativado, ative o interruptor para configurar",
"protocols": "Protocolos",
"reality": "Configuração de Realidade",
"reduce_rtt": "Reduzir RTT",
"security": "Configuração de Segurança",
"security_allow_insecure": "Permitir inseguro",
"security_fingerprint": "Impressão digital",
"security_private_key": "Chave privada da realidade",
@ -86,7 +97,6 @@
"security_short_id": "ID curto da realidade",
"security_short_id_placeholder": "String hexadecimal (até 16 caracteres)",
"security_sni": "SNI",
"security_title": "Segurança",
"select_encryption_method": "Selecionar método de criptografia",
"server_key": "Chave do servidor",
"service_name": "Nome do serviço",
@ -95,7 +105,7 @@
"subscription": "Assinatura",
"traffic": "Tráfego",
"traffic_ratio": "Multiplicador",
"transport_title": "Transporte",
"transport": "Método de Transporte",
"udp_relay_mode": "Modo de retransmissão UDP",
"unitSecondsShort": "S",
"unlimited": "Ilimitado",

View File

@ -1,6 +1,7 @@
{
"address": "Adresă",
"address_placeholder": "Adresă server",
"basic": "Configurare de bază",
"cancel": "Anulează",
"city": "Oraș",
"config": {
@ -40,6 +41,7 @@
"delete": "Șterge",
"deleted": "Șters cu succes",
"disable_sni": "Dezactivează SNI",
"disabled": "Dezactivat",
"disk": "Disc",
"drawerCreateTitle": "Creează Server",
"drawerEditTitle": "Editează Server",
@ -68,12 +70,21 @@
"offline": "Offline",
"online": "Online",
"onlineUsers": "Utilizatori online",
"padding_scheme": "Schema de umplere",
"padding_scheme_placeholder": "O regulă de umplere pe linie, format: stop=8, 0=30-30",
"pageTitle": "Servere",
"path": "Cale",
"please_select": "Te rog selectează",
"plugin": "Configurare plugin",
"plugin_opts": "Opțiuni plugin",
"port": "Port",
"protocol_configurations": "Configurări protocol",
"protocol_configurations_desc": "Activează și configurează tipurile de protocol necesare",
"protocol_disabled_hint": "Acest protocol este dezactivat, activează comutatorul pentru a configura",
"protocols": "Protocoale",
"reality": "Configurare realitate",
"reduce_rtt": "Reducere RTT",
"security": "Configurare securitate",
"security_allow_insecure": "Permite nesecurizat",
"security_fingerprint": "Amprentă",
"security_private_key": "Cheie privată reală",
@ -86,7 +97,6 @@
"security_short_id": "ID scurt real",
"security_short_id_placeholder": "Șir hexazecimal (până la 16 caractere)",
"security_sni": "SNI",
"security_title": "Securitate",
"select_encryption_method": "Selectează metoda de criptare",
"server_key": "Cheie server",
"service_name": "Nume serviciu",
@ -95,7 +105,7 @@
"subscription": "Abonament",
"traffic": "Trafic",
"traffic_ratio": "Multiplicator",
"transport_title": "Transport",
"transport": "Metodă de transport",
"udp_relay_mode": "Mod relay UDP",
"unitSecondsShort": "S",
"unlimited": "Nelimitat",

View File

@ -1,6 +1,7 @@
{
"address": "Адрес",
"address_placeholder": "Адрес сервера",
"basic": "Базовая конфигурация",
"cancel": "Отмена",
"city": "Город",
"config": {
@ -40,6 +41,7 @@
"delete": "Удалить",
"deleted": "Успешно удалено",
"disable_sni": "Отключить SNI",
"disabled": "Отключено",
"disk": "Диск",
"drawerCreateTitle": "Создать сервер",
"drawerEditTitle": "Редактировать сервер",
@ -68,12 +70,21 @@
"offline": "Офлайн",
"online": "Онлайн",
"onlineUsers": "Онлайн пользователи",
"padding_scheme": "Схема выравнивания",
"padding_scheme_placeholder": "Одно правило выравнивания на строку, формат: stop=8, 0=30-30",
"pageTitle": "Серверы",
"path": "Путь",
"please_select": "Пожалуйста, выберите",
"plugin": "Конфигурация плагина",
"plugin_opts": "Опции плагина",
"port": "Порт",
"protocol_configurations": "Конфигурации протоколов",
"protocol_configurations_desc": "Включите и настройте необходимые типы протоколов",
"protocol_disabled_hint": "Этот протокол отключен, включите переключатель для настройки",
"protocols": "Протоколы",
"reality": "Конфигурация реальности",
"reduce_rtt": "Сократить RTT",
"security": "Конфигурация безопасности",
"security_allow_insecure": "Разрешить небезопасное",
"security_fingerprint": "Отпечаток",
"security_private_key": "Закрытый ключ реальности",
@ -86,7 +97,6 @@
"security_short_id": "Короткий ID реальности",
"security_short_id_placeholder": "Шестнадцатеричная строка (до 16 символов)",
"security_sni": "SNI",
"security_title": "Безопасность",
"select_encryption_method": "Выберите метод шифрования",
"server_key": "Ключ сервера",
"service_name": "Имя службы",
@ -95,7 +105,7 @@
"subscription": "Подписка",
"traffic": "Трафик",
"traffic_ratio": "Множитель",
"transport_title": "Транспорт",
"transport": "Метод передачи",
"udp_relay_mode": "Режим UDP ретрансляции",
"unitSecondsShort": "С",
"unlimited": "Неограниченно",

View File

@ -1,6 +1,7 @@
{
"address": "ที่อยู่",
"address_placeholder": "ที่อยู่เซิร์ฟเวอร์",
"basic": "การตั้งค่าพื้นฐาน",
"cancel": "ยกเลิก",
"city": "เมือง",
"config": {
@ -40,6 +41,7 @@
"delete": "ลบ",
"deleted": "ลบสำเร็จ",
"disable_sni": "ปิดการใช้งาน SNI",
"disabled": "ปิดใช้งาน",
"disk": "ดิสก์",
"drawerCreateTitle": "สร้างเซิร์ฟเวอร์",
"drawerEditTitle": "แก้ไขเซิร์ฟเวอร์",
@ -68,12 +70,21 @@
"offline": "ออฟไลน์",
"online": "ออนไลน์",
"onlineUsers": "ผู้ใช้งานออนไลน์",
"padding_scheme": "รูปแบบการเติม",
"padding_scheme_placeholder": "กฎการเติมหนึ่งกฎต่อหนึ่งบรรทัด รูปแบบ: stop=8, 0=30-30",
"pageTitle": "เซิร์ฟเวอร์",
"path": "เส้นทาง",
"please_select": "กรุณาเลือก",
"plugin": "การตั้งค่าปลั๊กอิน",
"plugin_opts": "ตัวเลือกปลั๊กอิน",
"port": "พอร์ต",
"protocol_configurations": "การตั้งค่าโปรโตคอล",
"protocol_configurations_desc": "เปิดใช้งานและกำหนดค่าประเภทโปรโตคอลที่ต้องการ",
"protocol_disabled_hint": "โปรโตคอลนี้ถูกปิดใช้งาน เปิดสวิตช์เพื่อกำหนดค่า",
"protocols": "โปรโตคอล",
"reality": "การตั้งค่าความเป็นจริง",
"reduce_rtt": "ลด RTT",
"security": "การตั้งค่าความปลอดภัย",
"security_allow_insecure": "อนุญาตให้ไม่ปลอดภัย",
"security_fingerprint": "ลายนิ้วมือ",
"security_private_key": "คีย์ส่วนตัวจริง",
@ -86,7 +97,6 @@
"security_short_id": "รหัสสั้นจริง",
"security_short_id_placeholder": "สตริงฮีซ (สูงสุด 16 ตัวอักษร)",
"security_sni": "SNI",
"security_title": "ความปลอดภัย",
"select_encryption_method": "เลือกวิธีการเข้ารหัส",
"server_key": "คีย์เซิร์ฟเวอร์",
"service_name": "ชื่อบริการ",
@ -95,7 +105,7 @@
"subscription": "การสมัครสมาชิก",
"traffic": "การจราจร",
"traffic_ratio": "ตัวคูณ",
"transport_title": "การขนส่ง",
"transport": "วิธีการขนส่ง",
"udp_relay_mode": "โหมดการส่งต่อ UDP",
"unitSecondsShort": "ว",
"unlimited": "ไม่จำกัด",

View File

@ -1,6 +1,7 @@
{
"address": "Adres",
"address_placeholder": "Sunucu adresi",
"basic": "Temel Yapılandırma",
"cancel": "İptal",
"city": "Şehir",
"config": {
@ -40,6 +41,7 @@
"delete": "Sil",
"deleted": "Başarıyla silindi",
"disable_sni": "SNI'yi devre dışı bırak",
"disabled": "Devre Dışı",
"disk": "Disk",
"drawerCreateTitle": "Sunucu Oluştur",
"drawerEditTitle": "Sunucuyu Düzenle",
@ -68,12 +70,21 @@
"offline": "Çevrimdışı",
"online": "Çevrimiçi",
"onlineUsers": "Çevrimiçi kullanıcılar",
"padding_scheme": "Dolgu Şeması",
"padding_scheme_placeholder": "Her satırda bir dolgu kuralı, format: stop=8, 0=30-30",
"pageTitle": "Sunucular",
"path": "Yol",
"please_select": "Lütfen seçin",
"plugin": "Eklenti Yapılandırması",
"plugin_opts": "Eklenti Seçenekleri",
"port": "Port",
"protocol_configurations": "Protokol Yapılandırmaları",
"protocol_configurations_desc": "Gerekli protokol türlerini etkinleştir ve yapılandır",
"protocol_disabled_hint": "Bu protokol devre dışı, yapılandırmak için anahtarı etkinleştir",
"protocols": "Protokoller",
"reality": "Gerçeklik Yapılandırması",
"reduce_rtt": "RTT'yi azalt",
"security": "Güvenlik Yapılandırması",
"security_allow_insecure": "Güvensiz bağlantılara izin ver",
"security_fingerprint": "Parmak izi",
"security_private_key": "Gerçek özel anahtar",
@ -86,7 +97,6 @@
"security_short_id": "Gerçek kısa ID",
"security_short_id_placeholder": "Hex dizesi (en fazla 16 karakter)",
"security_sni": "SNI",
"security_title": "Güvenlik",
"select_encryption_method": "Şifreleme yöntemini seçin",
"server_key": "Sunucu anahtarı",
"service_name": "Hizmet adı",
@ -95,7 +105,7 @@
"subscription": "Abonelik",
"traffic": "Trafik",
"traffic_ratio": "Çarpan",
"transport_title": "Taşıma",
"transport": "Taşıma Yöntemi",
"udp_relay_mode": "UDP iletim modu",
"unitSecondsShort": "S",
"unlimited": "Sınırsız",

View File

@ -1,6 +1,7 @@
{
"address": "Адреса",
"address_placeholder": "Адреса сервера",
"basic": "Базова конфігурація",
"cancel": "Скасувати",
"city": "Місто",
"config": {
@ -40,6 +41,7 @@
"delete": "Видалити",
"deleted": "Успішно видалено",
"disable_sni": "Вимкнути SNI",
"disabled": "Вимкнено",
"disk": "Диск",
"drawerCreateTitle": "Створити сервер",
"drawerEditTitle": "Редагувати сервер",
@ -68,12 +70,21 @@
"offline": "Офлайн",
"online": "Онлайн",
"onlineUsers": "Онлайн користувачі",
"padding_scheme": "Схема заповнення",
"padding_scheme_placeholder": "Одне правило заповнення на рядок, формат: stop=8, 0=30-30",
"pageTitle": "Сервери",
"path": "Шлях",
"please_select": "Будь ласка, виберіть",
"plugin": "Конфігурація плагіна",
"plugin_opts": "Опції плагіна",
"port": "Порт",
"protocol_configurations": "Конфігурації протоколів",
"protocol_configurations_desc": "Увімкніть та налаштуйте необхідні типи протоколів",
"protocol_disabled_hint": "Цей протокол вимкнено, увімкніть перемикач для налаштування",
"protocols": "Протоколи",
"reality": "Конфігурація реальності",
"reduce_rtt": "Зменшити RTT",
"security": "Конфігурація безпеки",
"security_allow_insecure": "Дозволити небезпечне",
"security_fingerprint": "Відбиток",
"security_private_key": "Приватний ключ реальності",
@ -86,7 +97,6 @@
"security_short_id": "Короткий ID реальності",
"security_short_id_placeholder": "Шістнадцятковий рядок (до 16 символів)",
"security_sni": "SNI",
"security_title": "Безпека",
"select_encryption_method": "Виберіть метод шифрування",
"server_key": "Ключ сервера",
"service_name": "Назва служби",
@ -95,7 +105,7 @@
"subscription": "Підписка",
"traffic": "Трафік",
"traffic_ratio": "Множник",
"transport_title": "Транспорт",
"transport": "Метод транспорту",
"udp_relay_mode": "Режим UDP ретрансляції",
"unitSecondsShort": "С",
"unlimited": "Без обмежень",

View File

@ -1,6 +1,7 @@
{
"address": "Địa chỉ",
"address_placeholder": "Địa chỉ máy chủ",
"basic": "Cấu Hình Cơ Bản",
"cancel": "Hủy",
"city": "Thành phố",
"config": {
@ -40,6 +41,7 @@
"delete": "Xóa",
"deleted": "Xóa thành công",
"disable_sni": "Vô hiệu hóa SNI",
"disabled": "Đã Vô Hiệu Hóa",
"disk": "Ổ đĩa",
"drawerCreateTitle": "Tạo Máy chủ",
"drawerEditTitle": "Chỉnh sửa Máy chủ",
@ -68,12 +70,21 @@
"offline": "Ngoại tuyến",
"online": "Trực tuyến",
"onlineUsers": "Người dùng trực tuyến",
"padding_scheme": "Sơ Đồ Đệm",
"padding_scheme_placeholder": "Một quy tắc đệm mỗi dòng, định dạng: stop=8, 0=30-30",
"pageTitle": "Máy chủ",
"path": "Đường dẫn",
"please_select": "Vui lòng chọn",
"plugin": "Cấu Hình Plugin",
"plugin_opts": "Tùy Chọn Plugin",
"port": "Cổng",
"protocol_configurations": "Cấu Hình Giao Thức",
"protocol_configurations_desc": "Kích hoạt và cấu hình các loại giao thức cần thiết",
"protocol_disabled_hint": "Giao thức này đã bị vô hiệu hóa, hãy bật công tắc để cấu hình",
"protocols": "Giao thức",
"reality": "Cấu Hình Thực Tế",
"reduce_rtt": "Giảm RTT",
"security": "Cấu Hình Bảo Mật",
"security_allow_insecure": "Cho phép không an toàn",
"security_fingerprint": "Dấu vân tay",
"security_private_key": "Khóa riêng thực tế",
@ -86,7 +97,6 @@
"security_short_id": "ID ngắn thực tế",
"security_short_id_placeholder": "Chuỗi hex (tối đa 16 ký tự)",
"security_sni": "SNI",
"security_title": "Bảo mật",
"select_encryption_method": "Chọn phương pháp mã hóa",
"server_key": "Khóa máy chủ",
"service_name": "Tên dịch vụ",
@ -95,7 +105,7 @@
"subscription": "Đăng ký",
"traffic": "Lưu lượng",
"traffic_ratio": "Hệ số",
"transport_title": "Vận chuyển",
"transport": "Phương Thức Vận Chuyển",
"udp_relay_mode": "Chế độ chuyển tiếp UDP",
"unitSecondsShort": "S",
"unlimited": "Không giới hạn",

View File

@ -1,6 +1,7 @@
{
"address": "地址",
"address_placeholder": "服务器地址",
"basic": "基础配置",
"cancel": "取消",
"city": "城市",
"config": {
@ -40,6 +41,7 @@
"delete": "删除",
"deleted": "删除成功",
"disable_sni": "禁用 SNI",
"disabled": "禁用",
"disk": "磁盘",
"drawerCreateTitle": "新建服务器",
"drawerEditTitle": "编辑服务器",
@ -68,12 +70,21 @@
"offline": "离线",
"online": "在线",
"onlineUsers": "在线人数",
"padding_scheme": "填充方案",
"padding_scheme_placeholder": "每行一个填充规则,格式如: stop=8, 0=30-30",
"pageTitle": "服务器",
"path": "路径",
"please_select": "请选择",
"plugin": "插件配置",
"plugin_opts": "插件选项",
"port": "端口",
"protocol_configurations": "协议配置",
"protocol_configurations_desc": "启用并配置所需的协议类型",
"protocol_disabled_hint": "此协议已禁用,启用开关以进行配置",
"protocols": "协议",
"reality": "Reality 配置",
"reduce_rtt": "降低 RTT",
"security": "安全配置",
"security_allow_insecure": "允许不安全",
"security_fingerprint": "指纹",
"security_private_key": "Reality 私钥",
@ -86,7 +97,6 @@
"security_short_id": "Reality Short ID",
"security_short_id_placeholder": "16 位内十六进制",
"security_sni": "SNI",
"security_title": "安全",
"select_encryption_method": "选择加密方式",
"server_key": "服务器密钥",
"service_name": "服务名",
@ -95,7 +105,7 @@
"subscription": "订阅",
"traffic": "流量",
"traffic_ratio": "倍率",
"transport_title": "传输方式",
"transport": "传输方式",
"udp_relay_mode": "UDP 转发模式",
"unitSecondsShort": "S",
"unlimited": "不限",

View File

@ -1,6 +1,7 @@
{
"address": "地址",
"address_placeholder": "伺服器地址",
"basic": "基本配置",
"cancel": "取消",
"city": "城市",
"config": {
@ -40,6 +41,7 @@
"delete": "刪除",
"deleted": "刪除成功",
"disable_sni": "禁用 SNI",
"disabled": "已禁用",
"disk": "磁碟",
"drawerCreateTitle": "創建伺服器",
"drawerEditTitle": "編輯伺服器",
@ -68,12 +70,21 @@
"offline": "離線",
"online": "在線",
"onlineUsers": "在線用戶",
"padding_scheme": "填充方案",
"padding_scheme_placeholder": "每行一條填充規則格式stop=8, 0=30-30",
"pageTitle": "伺服器",
"path": "路徑",
"please_select": "請選擇",
"plugin": "插件配置",
"plugin_opts": "插件選項",
"port": "端口",
"protocol_configurations": "協議配置",
"protocol_configurations_desc": "啟用並配置所需的協議類型",
"protocol_disabled_hint": "此協議已禁用,請啟用開關以進行配置",
"protocols": "協議",
"reality": "現實配置",
"reduce_rtt": "減少 RTT",
"security": "安全配置",
"security_allow_insecure": "允許不安全",
"security_fingerprint": "指紋",
"security_private_key": "實際私鑰",
@ -86,7 +97,6 @@
"security_short_id": "實際短 ID",
"security_short_id_placeholder": "十六進制字符串(最多 16 個字符)",
"security_sni": "SNI",
"security_title": "安全性",
"select_encryption_method": "選擇加密方法",
"server_key": "伺服器密鑰",
"service_name": "服務名稱",
@ -95,7 +105,7 @@
"subscription": "訂閱",
"traffic": "流量",
"traffic_ratio": "乘數",
"transport_title": "傳輸",
"transport": "傳輸方式",
"udp_relay_mode": "UDP 中繼模式",
"unitSecondsShort": "秒",
"unlimited": "無限制",

View File

@ -1,5 +1,5 @@
// @ts-ignore
// API 更新时间:
// API 唯一标识:
import * as ads from './ads';

View File

@ -1,5 +1,5 @@
// @ts-ignore
// API 更新时间:
// API 唯一标识:
import * as auth from './auth';