mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-09-13 18:02:14 +03:00
feat(settings): add setting for Reality scan candidates (#6471)
* feat(settings): allow customizing Reality scan candidate list Persist a realityScanCandidates panel setting (defaulting to the previous hardcoded list), expose it in General Settings with i18n, and have the Find Targets scanner use it when the search box is empty. Fixes #5847 * style(frontend): oxfmt realityScanCandidates in setting.ts * Fix locale JSON syntax This change removes the malformed duplicate key and missing comma in the Android per-app proxy translations across the bundled locale files. The JSON now parses correctly while preserving the translated labels for each language. * docs(i18n): update Happ translations Localize the remaining Happ subscription settings strings across the translation files and refine the English copy. This aligns the labels and descriptions with the current Happ behavior for notifications, TUN options, HWID enforcement, routing presets, and per-app proxy settings. * refactor(reality): drop test-only scaffolding from the candidate setting TestDefaultRealityScanCandidatesCSV compared the CSV against its own initializer and a defaultValueMap lookup, and TestRealityScanCandidateTokensFallsBackWithoutDB drove a no-database state no production caller reaches (the only caller is the scanRealityTargets handler, served after InitDB). The s != nil && GetDB() != nil guard existed only for that second test. None of them could fail except in lockstep with the code they restate. * docs(api): describe the setting-driven scanRealityTargets fallback An empty targets value now probes the realityScanCandidates setting, but the endpoint summary, parameter description and handler comment still promised the built-in seed list, so API consumers were told the wrong target set. Regenerated openapi.json and synced the docs copy, which also lacked the new AllSetting field in the settings reference. --------- Co-authored-by: mrchatam <287639636+mrchatam@users.noreply.github.com> Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
This commit is contained in:
@@ -168,9 +168,10 @@ _openapi:
|
||||
title: Probe/discover REALITY targets and return each verdict ranked by
|
||||
feasibility then latency. Each comma-separated token may be a domain
|
||||
(validated with SNI), a bare IP, or a CIDR range (discovered without SNI
|
||||
by reading the certificate domain). When empty, a built-in seed list is
|
||||
probed.
|
||||
url: '#probediscover-reality-targets-and-return-each-verdict-ranked-by-feasibility-then-latency-each-comma-separated-token-may-be-a-domain-validated-with-sni-a-bare-ip-or-a-cidr-range-discovered-without-sni-by-reading-the-certificate-domain-when-empty-a-built-in-seed-list-is-probed'
|
||||
by reading the certificate domain). When empty, the
|
||||
realityScanCandidates setting is probed (the built-in seed list if that
|
||||
setting is empty).
|
||||
url: '#probediscover-reality-targets-and-return-each-verdict-ranked-by-feasibility-then-latency-each-comma-separated-token-may-be-a-domain-validated-with-sni-a-bare-ip-or-a-cidr-range-discovered-without-sni-by-reading-the-certificate-domain-when-empty-the-realityscancandidates-setting-is-probed-the-built-in-seed-list-if-that-setting-is-empty'
|
||||
- depth: 2
|
||||
title: Fetch the fully aggregated inbound_client_ips database table. Used by
|
||||
nodes to sync recently active IPs across the cluster.
|
||||
@@ -304,9 +305,10 @@ _openapi:
|
||||
- content: Probe/discover REALITY targets and return each verdict ranked by
|
||||
feasibility then latency. Each comma-separated token may be a domain
|
||||
(validated with SNI), a bare IP, or a CIDR range (discovered without
|
||||
SNI by reading the certificate domain). When empty, a built-in seed
|
||||
list is probed.
|
||||
id: probediscover-reality-targets-and-return-each-verdict-ranked-by-feasibility-then-latency-each-comma-separated-token-may-be-a-domain-validated-with-sni-a-bare-ip-or-a-cidr-range-discovered-without-sni-by-reading-the-certificate-domain-when-empty-a-built-in-seed-list-is-probed
|
||||
SNI by reading the certificate domain). When empty, the
|
||||
realityScanCandidates setting is probed (the built-in seed list if
|
||||
that setting is empty).
|
||||
id: probediscover-reality-targets-and-return-each-verdict-ranked-by-feasibility-then-latency-each-comma-separated-token-may-be-a-domain-validated-with-sni-a-bare-ip-or-a-cidr-range-discovered-without-sni-by-reading-the-certificate-domain-when-empty-the-realityscancandidates-setting-is-probed-the-built-in-seed-list-if-that-setting-is-empty
|
||||
- content: Fetch the fully aggregated inbound_client_ips database table. Used by
|
||||
nodes to sync recently active IPs across the cluster.
|
||||
id: fetch-the-fully-aggregated-inbound_client_ips-database-table-used-by-nodes-to-sync-recently-active-ips-across-the-cluster
|
||||
|
||||
@@ -162,6 +162,9 @@
|
||||
"panelOutbound": {
|
||||
"type": "string"
|
||||
},
|
||||
"realityScanCandidates": {
|
||||
"type": "string"
|
||||
},
|
||||
"remarkTemplate": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -538,6 +541,7 @@
|
||||
"outboundDownThreshold",
|
||||
"pageSize",
|
||||
"panelOutbound",
|
||||
"realityScanCandidates",
|
||||
"remarkTemplate",
|
||||
"restartXrayOnClientDisable",
|
||||
"sessionMaxAge",
|
||||
@@ -805,6 +809,9 @@
|
||||
"panelOutbound": {
|
||||
"type": "string"
|
||||
},
|
||||
"realityScanCandidates": {
|
||||
"type": "string"
|
||||
},
|
||||
"remarkTemplate": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -1189,6 +1196,7 @@
|
||||
"outboundDownThreshold",
|
||||
"pageSize",
|
||||
"panelOutbound",
|
||||
"realityScanCandidates",
|
||||
"remarkTemplate",
|
||||
"restartXrayOnClientDisable",
|
||||
"sessionMaxAge",
|
||||
@@ -7400,7 +7408,7 @@
|
||||
"tags": [
|
||||
"Server"
|
||||
],
|
||||
"summary": "Probe/discover REALITY targets and return each verdict ranked by feasibility then latency. Each comma-separated token may be a domain (validated with SNI), a bare IP, or a CIDR range (discovered without SNI by reading the certificate domain). When empty, a built-in seed list is probed.",
|
||||
"summary": "Probe/discover REALITY targets and return each verdict ranked by feasibility then latency. Each comma-separated token may be a domain (validated with SNI), a bare IP, or a CIDR range (discovered without SNI by reading the certificate domain). When empty, the realityScanCandidates setting is probed (the built-in seed list if that setting is empty).",
|
||||
"operationId": "post_panel_api_server_scanRealityTargets",
|
||||
"requestBody": {
|
||||
"required": false,
|
||||
@@ -7411,7 +7419,7 @@
|
||||
"properties": {
|
||||
"targets": {
|
||||
"type": "string",
|
||||
"description": "Optional comma-separated tokens: domain[:port], IP[:port], or CIDR (e.g. 104.16.0.0/24). When omitted, a built-in seed list is probed."
|
||||
"description": "Optional comma-separated tokens: domain[:port], IP[:port], or CIDR (e.g. 104.16.0.0/24). When omitted, the realityScanCandidates setting is probed (the built-in seed list if that setting is empty)."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,6 +162,9 @@
|
||||
"panelOutbound": {
|
||||
"type": "string"
|
||||
},
|
||||
"realityScanCandidates": {
|
||||
"type": "string"
|
||||
},
|
||||
"remarkTemplate": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -538,6 +541,7 @@
|
||||
"outboundDownThreshold",
|
||||
"pageSize",
|
||||
"panelOutbound",
|
||||
"realityScanCandidates",
|
||||
"remarkTemplate",
|
||||
"restartXrayOnClientDisable",
|
||||
"sessionMaxAge",
|
||||
@@ -805,6 +809,9 @@
|
||||
"panelOutbound": {
|
||||
"type": "string"
|
||||
},
|
||||
"realityScanCandidates": {
|
||||
"type": "string"
|
||||
},
|
||||
"remarkTemplate": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -1189,6 +1196,7 @@
|
||||
"outboundDownThreshold",
|
||||
"pageSize",
|
||||
"panelOutbound",
|
||||
"realityScanCandidates",
|
||||
"remarkTemplate",
|
||||
"restartXrayOnClientDisable",
|
||||
"sessionMaxAge",
|
||||
@@ -7400,7 +7408,7 @@
|
||||
"tags": [
|
||||
"Server"
|
||||
],
|
||||
"summary": "Probe/discover REALITY targets and return each verdict ranked by feasibility then latency. Each comma-separated token may be a domain (validated with SNI), a bare IP, or a CIDR range (discovered without SNI by reading the certificate domain). When empty, a built-in seed list is probed.",
|
||||
"summary": "Probe/discover REALITY targets and return each verdict ranked by feasibility then latency. Each comma-separated token may be a domain (validated with SNI), a bare IP, or a CIDR range (discovered without SNI by reading the certificate domain). When empty, the realityScanCandidates setting is probed (the built-in seed list if that setting is empty).",
|
||||
"operationId": "post_panel_api_server_scanRealityTargets",
|
||||
"requestBody": {
|
||||
"required": false,
|
||||
@@ -7411,7 +7419,7 @@
|
||||
"properties": {
|
||||
"targets": {
|
||||
"type": "string",
|
||||
"description": "Optional comma-separated tokens: domain[:port], IP[:port], or CIDR (e.g. 104.16.0.0/24). When omitted, a built-in seed list is probed."
|
||||
"description": "Optional comma-separated tokens: domain[:port], IP[:port], or CIDR (e.g. 104.16.0.0/24). When omitted, the realityScanCandidates setting is probed (the built-in seed list if that setting is empty)."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ export const EXAMPLES: Record<string, unknown> = {
|
||||
"outboundDownThreshold": 1,
|
||||
"pageSize": 0,
|
||||
"panelOutbound": "",
|
||||
"realityScanCandidates": "",
|
||||
"remarkTemplate": "",
|
||||
"restartXrayOnClientDisable": false,
|
||||
"sessionMaxAge": 1,
|
||||
@@ -195,6 +196,7 @@ export const EXAMPLES: Record<string, unknown> = {
|
||||
"outboundDownThreshold": 1,
|
||||
"pageSize": 0,
|
||||
"panelOutbound": "",
|
||||
"realityScanCandidates": "",
|
||||
"remarkTemplate": "",
|
||||
"restartXrayOnClientDisable": false,
|
||||
"sessionMaxAge": 1,
|
||||
|
||||
@@ -136,6 +136,9 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"panelOutbound": {
|
||||
"type": "string"
|
||||
},
|
||||
"realityScanCandidates": {
|
||||
"type": "string"
|
||||
},
|
||||
"remarkTemplate": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -512,6 +515,7 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"outboundDownThreshold",
|
||||
"pageSize",
|
||||
"panelOutbound",
|
||||
"realityScanCandidates",
|
||||
"remarkTemplate",
|
||||
"restartXrayOnClientDisable",
|
||||
"sessionMaxAge",
|
||||
@@ -779,6 +783,9 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"panelOutbound": {
|
||||
"type": "string"
|
||||
},
|
||||
"realityScanCandidates": {
|
||||
"type": "string"
|
||||
},
|
||||
"remarkTemplate": {
|
||||
"type": "string"
|
||||
},
|
||||
@@ -1163,6 +1170,7 @@ export const SCHEMAS: Record<string, unknown> = {
|
||||
"outboundDownThreshold",
|
||||
"pageSize",
|
||||
"panelOutbound",
|
||||
"realityScanCandidates",
|
||||
"remarkTemplate",
|
||||
"restartXrayOnClientDisable",
|
||||
"sessionMaxAge",
|
||||
|
||||
@@ -48,6 +48,7 @@ export interface AllSetting {
|
||||
outboundDownThreshold: number;
|
||||
pageSize: number;
|
||||
panelOutbound: string;
|
||||
realityScanCandidates: string;
|
||||
remarkTemplate: string;
|
||||
restartXrayOnClientDisable: boolean;
|
||||
sessionMaxAge: number;
|
||||
@@ -203,6 +204,7 @@ export interface AllSettingView {
|
||||
outboundDownThreshold: number;
|
||||
pageSize: number;
|
||||
panelOutbound: string;
|
||||
realityScanCandidates: string;
|
||||
remarkTemplate: string;
|
||||
restartXrayOnClientDisable: boolean;
|
||||
sessionMaxAge: number;
|
||||
|
||||
@@ -62,6 +62,7 @@ export const AllSettingSchema = z.object({
|
||||
outboundDownThreshold: z.number().int().min(1).max(100),
|
||||
pageSize: z.number().int().min(0).max(1000),
|
||||
panelOutbound: z.string(),
|
||||
realityScanCandidates: z.string(),
|
||||
remarkTemplate: z.string(),
|
||||
restartXrayOnClientDisable: z.boolean(),
|
||||
sessionMaxAge: z.number().int().min(1).max(525600),
|
||||
@@ -218,6 +219,7 @@ export const AllSettingViewSchema = z.object({
|
||||
outboundDownThreshold: z.number().int().min(1).max(100),
|
||||
pageSize: z.number().int().min(0).max(1000),
|
||||
panelOutbound: z.string(),
|
||||
realityScanCandidates: z.string(),
|
||||
remarkTemplate: z.string(),
|
||||
restartXrayOnClientDisable: z.boolean(),
|
||||
sessionMaxAge: z.number().int().min(1).max(525600),
|
||||
|
||||
@@ -9,6 +9,8 @@ export class AllSetting {
|
||||
webBasePath = '/';
|
||||
sessionMaxAge = 360;
|
||||
trustedProxyCIDRs = '127.0.0.1/32,::1/128';
|
||||
realityScanCandidates =
|
||||
'www.cloudflare.com:443,www.microsoft.com:443,www.amazon.com:443,aws.amazon.com:443,www.samsung.com:443,www.nvidia.com:443,www.amd.com:443,www.intel.com:443,www.sony.com:443,dl.google.com:443';
|
||||
ipLimitAllowlist = '';
|
||||
panelOutbound = '';
|
||||
pageSize = 25;
|
||||
|
||||
@@ -914,14 +914,14 @@ export const sections: readonly Section[] = [
|
||||
method: 'POST',
|
||||
path: '/panel/api/server/scanRealityTargets',
|
||||
summary:
|
||||
'Probe/discover REALITY targets and return each verdict ranked by feasibility then latency. Each comma-separated token may be a domain (validated with SNI), a bare IP, or a CIDR range (discovered without SNI by reading the certificate domain). When empty, a built-in seed list is probed.',
|
||||
'Probe/discover REALITY targets and return each verdict ranked by feasibility then latency. Each comma-separated token may be a domain (validated with SNI), a bare IP, or a CIDR range (discovered without SNI by reading the certificate domain). When empty, the realityScanCandidates setting is probed (the built-in seed list if that setting is empty).',
|
||||
params: [
|
||||
{
|
||||
name: 'targets',
|
||||
in: 'body (form)',
|
||||
type: 'string',
|
||||
optional: true,
|
||||
desc: 'Optional comma-separated tokens: domain[:port], IP[:port], or CIDR (e.g. 104.16.0.0/24). When omitted, a built-in seed list is probed.',
|
||||
desc: 'Optional comma-separated tokens: domain[:port], IP[:port], or CIDR (e.g. 104.16.0.0/24). When omitted, the realityScanCandidates setting is probed (the built-in seed list if that setting is empty).',
|
||||
},
|
||||
],
|
||||
body: 'targets=104.16.0.0/24,www.apple.com:443',
|
||||
|
||||
@@ -259,6 +259,25 @@ export default function GeneralTab({ allSetting, updateSetting }: GeneralTabProp
|
||||
/>
|
||||
</SettingListItem>
|
||||
|
||||
<SettingListItem
|
||||
paddings="small"
|
||||
title={t('pages.settings.realityScanCandidates')}
|
||||
description={t('pages.settings.realityScanCandidatesDesc')}
|
||||
badge={
|
||||
<DefaultSettingTag
|
||||
settingKey="realityScanCandidates"
|
||||
value={allSetting.realityScanCandidates}
|
||||
/>
|
||||
}
|
||||
>
|
||||
<Input.TextArea
|
||||
rows={3}
|
||||
value={allSetting.realityScanCandidates}
|
||||
placeholder="www.cloudflare.com:443,www.microsoft.com:443"
|
||||
onChange={(e) => updateSetting({ realityScanCandidates: e.target.value })}
|
||||
/>
|
||||
</SettingListItem>
|
||||
|
||||
<SettingListItem
|
||||
paddings="small"
|
||||
title={t('pages.settings.ipLimitAllowlist')}
|
||||
|
||||
@@ -14,6 +14,7 @@ export const AllSettingSchema = z
|
||||
webBasePath: absolutePath.optional(),
|
||||
sessionMaxAge: z.number().int().min(1).max(525600).optional(),
|
||||
trustedProxyCIDRs: z.string().optional(),
|
||||
realityScanCandidates: z.string().optional(),
|
||||
ipLimitAllowlist: z.string().optional(),
|
||||
panelOutbound: z.string().optional(),
|
||||
pageSize: z.number().int().min(0).max(1000).optional(),
|
||||
|
||||
@@ -485,9 +485,8 @@ func (a *ServerController) scanRealityTarget(c *gin.Context) {
|
||||
jsonObj(c, res, nil)
|
||||
}
|
||||
|
||||
// scanRealityTargets probes a batch of candidate REALITY targets (the supplied
|
||||
// comma-separated list, or the built-in seed set when empty) and returns each
|
||||
// verdict ranked by feasibility then latency.
|
||||
// scanRealityTargets probes the supplied comma-separated targets, or the
|
||||
// realityScanCandidates setting when empty, ranked by feasibility then latency.
|
||||
func (a *ServerController) scanRealityTargets(c *gin.Context) {
|
||||
res, err := a.serverService.ScanRealityTargets(c.PostForm("targets"))
|
||||
if err != nil {
|
||||
|
||||
@@ -19,16 +19,17 @@ type Msg struct {
|
||||
}
|
||||
|
||||
type AllSetting struct {
|
||||
WebListen string `json:"webListen" form:"webListen"`
|
||||
WebDomain string `json:"webDomain" form:"webDomain"`
|
||||
WebPort int `json:"webPort" form:"webPort" validate:"gte=1,lte=65535"`
|
||||
WebCertFile string `json:"webCertFile" form:"webCertFile"`
|
||||
WebKeyFile string `json:"webKeyFile" form:"webKeyFile"`
|
||||
WebBasePath string `json:"webBasePath" form:"webBasePath"`
|
||||
SessionMaxAge int `json:"sessionMaxAge" form:"sessionMaxAge" validate:"gte=1,lte=525600"`
|
||||
TrustedProxyCIDRs string `json:"trustedProxyCIDRs" form:"trustedProxyCIDRs"`
|
||||
IpLimitAllowlist string `json:"ipLimitAllowlist" form:"ipLimitAllowlist"`
|
||||
PanelOutbound string `json:"panelOutbound" form:"panelOutbound"`
|
||||
WebListen string `json:"webListen" form:"webListen"`
|
||||
WebDomain string `json:"webDomain" form:"webDomain"`
|
||||
WebPort int `json:"webPort" form:"webPort" validate:"gte=1,lte=65535"`
|
||||
WebCertFile string `json:"webCertFile" form:"webCertFile"`
|
||||
WebKeyFile string `json:"webKeyFile" form:"webKeyFile"`
|
||||
WebBasePath string `json:"webBasePath" form:"webBasePath"`
|
||||
SessionMaxAge int `json:"sessionMaxAge" form:"sessionMaxAge" validate:"gte=1,lte=525600"`
|
||||
TrustedProxyCIDRs string `json:"trustedProxyCIDRs" form:"trustedProxyCIDRs"`
|
||||
RealityScanCandidates string `json:"realityScanCandidates" form:"realityScanCandidates"`
|
||||
IpLimitAllowlist string `json:"ipLimitAllowlist" form:"ipLimitAllowlist"`
|
||||
PanelOutbound string `json:"panelOutbound" form:"panelOutbound"`
|
||||
|
||||
PageSize int `json:"pageSize" form:"pageSize" validate:"gte=0,lte=1000"`
|
||||
ExpireDiff int `json:"expireDiff" form:"expireDiff" validate:"gte=0"`
|
||||
|
||||
@@ -39,6 +39,10 @@ var defaultRealityScanCandidates = []string{
|
||||
"dl.google.com:443",
|
||||
}
|
||||
|
||||
// DefaultRealityScanCandidatesCSV is the shipped default for the
|
||||
// realityScanCandidates setting (comma-separated host:port list).
|
||||
var DefaultRealityScanCandidatesCSV = strings.Join(defaultRealityScanCandidates, ",")
|
||||
|
||||
type RealityScanResult struct {
|
||||
Target string `json:"target" example:"www.cloudflare.com:443"`
|
||||
Host string `json:"host" example:"www.cloudflare.com"`
|
||||
@@ -331,15 +335,32 @@ func (s *ServerService) ScanRealityTarget(target string, sni string, xver int, a
|
||||
return s.probeRealityAddr(host, port, sni, realityScanTimeout, xver, allowPrivate), nil
|
||||
}
|
||||
|
||||
func (s *ServerService) ScanRealityTargets(targetsCSV string) ([]*RealityScanResult, error) {
|
||||
func parseRealityScanCandidateCSV(csv string) []string {
|
||||
var tokens []string
|
||||
for raw := range strings.SplitSeq(targetsCSV, ",") {
|
||||
for raw := range strings.SplitSeq(csv, ",") {
|
||||
if t := strings.TrimSpace(raw); t != "" {
|
||||
tokens = append(tokens, t)
|
||||
}
|
||||
}
|
||||
return tokens
|
||||
}
|
||||
|
||||
// realityScanCandidateTokens returns the operator-configured candidate list,
|
||||
// falling back to the shipped defaults when the setting is empty or unreadable.
|
||||
func (s *ServerService) realityScanCandidateTokens() []string {
|
||||
csv, err := s.settingService.GetRealityScanCandidates()
|
||||
if err != nil {
|
||||
logger.Warning("reality scan: reading candidates setting failed:", err)
|
||||
} else if tokens := parseRealityScanCandidateCSV(csv); len(tokens) > 0 {
|
||||
return tokens
|
||||
}
|
||||
return append([]string(nil), defaultRealityScanCandidates...)
|
||||
}
|
||||
|
||||
func (s *ServerService) ScanRealityTargets(targetsCSV string) ([]*RealityScanResult, error) {
|
||||
tokens := parseRealityScanCandidateCSV(targetsCSV)
|
||||
if len(tokens) == 0 {
|
||||
tokens = append(tokens, defaultRealityScanCandidates...)
|
||||
tokens = s.realityScanCandidateTokens()
|
||||
}
|
||||
|
||||
var tasks []realityProbeTask
|
||||
|
||||
@@ -164,3 +164,19 @@ func TestWriteProxyProtocolV2Signature(t *testing.T) {
|
||||
t.Fatalf("v2 family/protocol byte = 0x%02x, want 0x11 (TCP over IPv4)", hdr[13])
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseRealityScanCandidateCSV(t *testing.T) {
|
||||
got := parseRealityScanCandidateCSV(" a.com:443 , ,b.com:8443 ")
|
||||
want := []string{"a.com:443", "b.com:8443"}
|
||||
if len(got) != len(want) {
|
||||
t.Fatalf("got %v, want %v", got, want)
|
||||
}
|
||||
for i := range want {
|
||||
if got[i] != want[i] {
|
||||
t.Fatalf("got %v, want %v", got, want)
|
||||
}
|
||||
}
|
||||
if tokens := parseRealityScanCandidateCSV(" , "); len(tokens) != 0 {
|
||||
t.Fatalf("empty CSV should yield no tokens, got %v", tokens)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +67,7 @@ var defaultValueMap = map[string]string{
|
||||
"webBasePath": normalizeBasePath(getEnv("XUI_INIT_WEB_BASE_PATH", "/")),
|
||||
"sessionMaxAge": "360",
|
||||
"trustedProxyCIDRs": DefaultTrustedProxyCIDRs,
|
||||
"realityScanCandidates": DefaultRealityScanCandidatesCSV,
|
||||
"ipLimitAllowlist": "",
|
||||
"pageSize": "25",
|
||||
"expireDiff": "0",
|
||||
@@ -705,6 +706,10 @@ func (s *SettingService) GetTrustedProxyCIDRs() (string, error) {
|
||||
return s.getString("trustedProxyCIDRs")
|
||||
}
|
||||
|
||||
func (s *SettingService) GetRealityScanCandidates() (string, error) {
|
||||
return s.getString("realityScanCandidates")
|
||||
}
|
||||
|
||||
func (s *SettingService) GetRemarkTemplate() (string, error) {
|
||||
return s.getString("remarkTemplate")
|
||||
}
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "إعدادات التشويش",
|
||||
"trustedProxyCidrs": "CIDR وكلاء موثوقين",
|
||||
"trustedProxyCidrsDesc": "IPs/CIDRs مفصولة بفواصل يُسمح لها بتعيين ترويسات host، proto و client IP المعاد توجيهها.",
|
||||
"realityScanCandidates": "مرشحو فحص Reality",
|
||||
"realityScanCandidatesDesc": "قائمة أهداف host:port (أو CIDR) مفصولة بفواصل تُستخدم كقائمة افتراضية عند تشغيل «البحث عن الأهداف» ببحث فارغ. خصّصها للأهداف التي تستخدمها كثيرًا.",
|
||||
"ldap": {
|
||||
"enable": "تفعيل مزامنة LDAP",
|
||||
"host": "مضيف LDAP",
|
||||
@@ -1496,63 +1498,63 @@
|
||||
"subExpiredTemplateDesc": "قالب التكوين الوهمي عند انتهاء صلاحية اشتراك المستخدم.",
|
||||
"subTrafficDepletedTemplate": "قالب نفاد البيانات",
|
||||
"subTrafficDepletedTemplateDesc": "قالب التكوين الوهمي عند استهلاك حصة بيانات المستخدم بالكامل.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappAutoDetect": "اكتشاف ترويسات Happ تلقائيًا",
|
||||
"subHappAutoDetectDesc": "حقن توجيه Happ والترويسات تلقائيًا عندما يشير User-Agent الخاص بالعميل إلى Happ.",
|
||||
"subHappProviderId": "معرّف المزوّد (Provider ID)",
|
||||
"subHappProviderIdDesc": "معرّف فريد للمزوّد يُستخدم لإدارة عملاء Happ وربط الإعدادات عن بُعد والترحيل.",
|
||||
"subHappNewUrl": "رابط الاشتراك الجديد",
|
||||
"subHappNewUrlDesc": "عنوان URL الهدف للترحيل التلقائي للعملاء. عند تعيينه، ينتقل عملاء Happ إلى رابط الاشتراك هذا.",
|
||||
"subHappFallbackUrl": "رابط الاشتراك الاحتياطي",
|
||||
"subHappFallbackUrlDesc": "عنوان اشتراك احتياطي يستخدمه Happ إذا تعذّر الوصول إلى رابط الاشتراك الأساسي.",
|
||||
"subHappSubInfoText": "نص لافتة الإعلان",
|
||||
"subHappSubInfoTextDesc": "لافتة إعلان مخصصة تظهر أعلى عميل Happ (بحد أقصى 200 حرف).",
|
||||
"subHappSubInfoColor": "لون تمييز اللافتة",
|
||||
"subHappSubInfoColorDesc": "نمط ألوان لافتة الإعلان.",
|
||||
"subHappSubInfoButtonText": "نص زر اللافتة",
|
||||
"subHappSubInfoButtonTextDesc": "تسمية الزر المعروض داخل لافتة الإعلان (بحد أقصى 25 حرفًا).",
|
||||
"subHappSubInfoButtonLink": "رابط زر اللافتة",
|
||||
"subHappSubInfoButtonLinkDesc": "عنوان URL الذي يُفتح عندما ينقر المستخدم على زر الإجراء في اللافتة.",
|
||||
"subHappSubExpire": "لافتة انتهاء الاشتراك",
|
||||
"subHappSubExpireDesc": "إظهار لافتة انتهاء الاشتراك في Happ عند نفاد حركة مرور المستخدم أو انتهاء صلاحية اشتراكه.",
|
||||
"subHappSubExpireButtonLink": "رابط التجديد",
|
||||
"subHappSubExpireButtonLinkDesc": "عنوان URL الذي يُفتح عندما ينقر المستخدم على زر التجديد في اشتراك منتهي الصلاحية.",
|
||||
"subHappNotificationExpire": "إشعارات انتهاء الصلاحية",
|
||||
"subHappNotificationExpireDesc": "يُذكّر Happ المستخدم قبل 3 أيام من انتهاء اشتراكه.",
|
||||
"subHappNoLimit": "وضع بلا حدود",
|
||||
"subHappNoLimitDesc": "رفع حد ذاكرة RAM الخاص بـ xray-core في Happ لتحسين الاستقرار والأداء (تجريبي).",
|
||||
"subHappAlwaysHwid": "فرض معرّف العتاد (HWID)",
|
||||
"subHappAlwaysHwidDesc": "منع المستخدمين من إيقاف إرسال HWID في إعدادات Happ.",
|
||||
"subHappTunMode": "وضع TUN",
|
||||
"subHappTunModeDesc": "مكدس الشبكة الذي يستخدمه TUN على سطح المكتب: النظام (مكدس نظام التشغيل) أو gVisor (مكدس مساحة المستخدم).",
|
||||
"subHappTunType": "محرك TUN",
|
||||
"subHappTunTypeDesc": "النواة المستخدمة لاتصال TUN على سطح المكتب: sing-box أو tun2proxy أو الافتراضي (Happ TUN) أو Xray.",
|
||||
"subHappExcludeRoutes": "استثناء مسارات CIDR",
|
||||
"subHappExcludeRoutesDesc": "نطاقات CIDR لعناوين IP مفصولة بفواصل (مثل 192.168.0.0/16, 10.0.0.0/8) تتجاوز نفق VPN.",
|
||||
"subHappExcludeApns": "استثناء Apple APNs",
|
||||
"subHappExcludeApnsDesc": "تجاوز خدمات إشعارات Apple الفورية للحفاظ على موثوقية الإشعارات في الخلفية على iOS.",
|
||||
"subHappColorProfile": "سمة ألوان العميل",
|
||||
"subHappColorProfileDesc": "سمة ألوان مخصصة لـ iOS كسلسلة JSON، أو resetcolors لاستعادة الألوان الافتراضية.",
|
||||
"subHappPingType": "طريقة قياس زمن الاستجابة",
|
||||
"subHappPingTypeDesc": "كيفية قياس Happ لزمن استجابة العقد: عبر البروكسي (GET أو HEAD) أو TCP أو ICMP.",
|
||||
"subHappAutoConnect": "الاتصال التلقائي عند التشغيل",
|
||||
"subHappAutoConnectDesc": "يتصل Happ تلقائيًا بـ VPN عند بدء تشغيل التطبيق.",
|
||||
"subHappAutoConnectType": "هدف الاتصال التلقائي",
|
||||
"subHappAutoConnectTypeDesc": "الخادم المختار للاتصال التلقائي: أقل تأخير أو آخر عقدة تم استخدامها أو عقدة عشوائية.",
|
||||
"subHappPerAppMode": "وضع البروكسي لكل تطبيق على Android",
|
||||
"subHappPerAppModeDesc": "التحكم في توجيه تطبيقات Android: إيقاف، أو تشغيل (بروكسي للتطبيقات المحددة فقط)، أو تجاوز (استثناء التطبيقات المحددة).",
|
||||
"subHappPerAppList": "أسماء حزم Android",
|
||||
"subHappPerAppListDesc": "أسماء حزم تطبيقات Android المراد تضمينها أو استثناؤها، مفصولة بفواصل (مثل org.telegram.messenger).",
|
||||
"subHappPresetIran": "تجاوز إيران",
|
||||
"subHappPresetChina": "مباشر للصين",
|
||||
"subHappPresetAdblock": "حظر الإعلانات (AdBlock)",
|
||||
"subHappPresetGlobal": "بروكسي كامل",
|
||||
"subHappPresetOff": "تعطيل التوجيه (happ://routing/off)",
|
||||
"subHappColorBlue": "أزرق (قياسي / افتراضي)",
|
||||
"subHappColorGreen": "أخضر (نجاح)",
|
||||
"subHappColorRed": "أحمر (تحذير / خطر)",
|
||||
"subHappTunModeDefault": "افتراضي",
|
||||
"subHappTunModeSystem": "النظام (حزمة نظام التشغيل القياسية)",
|
||||
"subHappTunModeGvisor": "gVisor (حزمة مساحة المستخدم)",
|
||||
"subHappTunModeSystem": "النظام (مكدس نظام التشغيل القياسي)",
|
||||
"subHappTunModeGvisor": "gVisor (مكدس مساحة المستخدم)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "افتراضي (Happ TUN)",
|
||||
@@ -1567,27 +1569,27 @@
|
||||
"subHappPerAppOff": "إيقاف",
|
||||
"subHappPerAppOn": "تشغيل (بروكسي للتطبيقات المحددة فقط)",
|
||||
"subHappPerAppBypass": "تجاوز (استثناء التطبيقات المحددة)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "تم تطبيق إعداد Happ المسبق على قواعد التوجيه",
|
||||
"subHappPresets": "إعدادات التوجيه المسبقة",
|
||||
"subHappPresetsDesc": "قواعد توجيه مُعدّة مسبقًا ومخصصة لعملاء Happ.",
|
||||
"subHappVisualBuilder": "منشئ القواعد المرئي",
|
||||
"subHappVisualBuilderDesc": "إنشاء رابط عميق مخصص للتوجيه من قوائم النطاقات وعناوين IP.",
|
||||
"subHappBuildDeeplink": "إنشاء رابط عميق",
|
||||
"subHappModalTitle": "منشئ قواعد التوجيه المرئي لـ Happ",
|
||||
"subHappDirectDomains": "نطاقات مباشرة (تجاوز)",
|
||||
"subHappProxyDomains": "نطاقات عبر البروكسي (نفق)",
|
||||
"subHappBlockDomains": "نطاقات محظورة (إعلانات/برمجيات خبيثة)",
|
||||
"subHappDirectIPs": "IPs / CIDRs مباشرة",
|
||||
"subHappProxyIPs": "IPs / CIDRs عبر البروكسي",
|
||||
"subHappBlockIPs": "IPs / CIDRs محظورة",
|
||||
"subHappDeeplinkGenerated": "تم إنشاء الرابط العميق وتطبيقه على قواعد التوجيه",
|
||||
"subHappGroupLinks": "روابط الاشتراك",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "التوجيه والقواعد",
|
||||
"subHappGroupBanners": "اللافتات والإعلانات",
|
||||
"subHappGroupNetwork": "الشبكة ومحرك TUN",
|
||||
"subHappGroupThemes": "المظهر والسمة",
|
||||
"subHappGroupFailover": "الترحيل وإدارة التطبيق",
|
||||
"subHappGroupAndroid": "البروكسي لكل تطبيق على Android",
|
||||
"discordSettings": "بوت ديسكورد",
|
||||
"discordBotEnable": "تفعيل إشعارات ديسكورد",
|
||||
"discordBotEnableDesc": "إرسال تنبيهات النظام والأحداث إلى قناة ديسكورد عبر البوت",
|
||||
|
||||
@@ -1375,6 +1375,8 @@
|
||||
"noisesSett": "Noises Settings",
|
||||
"trustedProxyCidrs": "Trusted proxy CIDRs",
|
||||
"trustedProxyCidrsDesc": "Comma-separated IPs/CIDRs allowed to set forwarded host, proto, and client IP headers.",
|
||||
"realityScanCandidates": "Reality scan candidates",
|
||||
"realityScanCandidatesDesc": "Comma-separated host:port targets (or CIDRs) used as the default list when Find Targets runs with an empty search. Customize this with destinations you reuse often.",
|
||||
"ldap": {
|
||||
"enable": "Enable LDAP sync",
|
||||
"host": "LDAP host",
|
||||
@@ -1635,31 +1637,31 @@
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to remind the user 3 days before their subscription expires.",
|
||||
"subHappNoLimit": "No-Limit Mode",
|
||||
"subHappNoLimitDesc": "Raise the xray-core RAM limit in Happ for better stability and performance (beta).",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappAlwaysHwidDesc": "Prevent users from turning off HWID sending in the Happ settings.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunModeDesc": "Network stack used by TUN on desktop: system (OS stack) or gVisor (userspace stack).",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappTunTypeDesc": "Core used for the TUN connection on desktop: sing-box, tun2proxy, default (Happ TUN), or Xray.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappColorProfileDesc": "Custom iOS color theme as a JSON string, or resetcolors to restore the default colors.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappPingTypeDesc": "How Happ measures node latency: via proxy (GET or HEAD), TCP, or ICMP.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappAutoConnectTypeDesc": "Server chosen for auto-connect: lowest delay, last used, or a random node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, on (proxy only listed apps), or bypass (exclude listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. org.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Configuración de Sonidos",
|
||||
"trustedProxyCidrs": "CIDR de proxy de confianza",
|
||||
"trustedProxyCidrsDesc": "IP/CIDR separados por coma que pueden establecer las cabeceras de host, proto e IP del cliente reenviadas.",
|
||||
"realityScanCandidates": "Candidatos de escaneo Reality",
|
||||
"realityScanCandidatesDesc": "Lista de destinos host:port (o CIDR) separados por comas usada por defecto cuando Buscar objetivos se ejecuta con la búsqueda vacía. Personalízala con destinos que uses a menudo.",
|
||||
"ldap": {
|
||||
"enable": "Habilitar sincronización LDAP",
|
||||
"host": "Host LDAP",
|
||||
@@ -1496,56 +1498,56 @@
|
||||
"subExpiredTemplateDesc": "Plantilla para el nodo ficticio cuando la suscripción ha expirado.",
|
||||
"subTrafficDepletedTemplate": "Plantilla de tráfico agotado",
|
||||
"subTrafficDepletedTemplateDesc": "Plantilla para el nodo ficticio cuando el límite de tráfico se ha agotado.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappAutoDetect": "Detección automática de cabeceras de Happ",
|
||||
"subHappAutoDetectDesc": "Inyectar automáticamente el enrutamiento y las cabeceras de Happ cuando el User-Agent del cliente indica Happ.",
|
||||
"subHappProviderId": "ID del proveedor (Provider ID)",
|
||||
"subHappProviderIdDesc": "Identificador único del proveedor para la gestión de clientes de Happ, la vinculación de la configuración remota y la migración.",
|
||||
"subHappNewUrl": "Nueva URL de suscripción",
|
||||
"subHappNewUrlDesc": "URL de destino para la migración automática de clientes. Si se establece, los clientes de Happ migrarán a este enlace de suscripción.",
|
||||
"subHappFallbackUrl": "URL de suscripción de respaldo",
|
||||
"subHappFallbackUrlDesc": "Dirección de suscripción de respaldo que usa Happ si la URL de suscripción principal deja de estar accesible.",
|
||||
"subHappSubInfoText": "Texto del banner de anuncio",
|
||||
"subHappSubInfoTextDesc": "Banner de anuncio personalizado que se muestra en la parte superior del cliente Happ (máx. 200 caracteres).",
|
||||
"subHappSubInfoColor": "Color de énfasis del banner",
|
||||
"subHappSubInfoColorDesc": "Estilo de color del banner de anuncio.",
|
||||
"subHappSubInfoButtonText": "Texto del botón del banner",
|
||||
"subHappSubInfoButtonTextDesc": "Etiqueta del botón que se muestra dentro del banner de anuncio (máx. 25 caracteres).",
|
||||
"subHappSubInfoButtonLink": "Enlace del botón del banner",
|
||||
"subHappSubInfoButtonLinkDesc": "URL de destino que se abre cuando el usuario hace clic en el botón de acción del banner.",
|
||||
"subHappSubExpire": "Banner de suscripción caducada",
|
||||
"subHappSubExpireDesc": "Mostrar un banner de suscripción caducada en Happ cuando se agote el tráfico o termine la validez del usuario.",
|
||||
"subHappSubExpireButtonLink": "Enlace de renovación",
|
||||
"subHappSubExpireButtonLinkDesc": "URL de destino que se abre cuando el usuario hace clic en el botón de renovación de una suscripción caducada.",
|
||||
"subHappNotificationExpire": "Notificaciones de caducidad",
|
||||
"subHappNotificationExpireDesc": "Indicar a Happ que avise al usuario 3 días antes de que caduque su suscripción.",
|
||||
"subHappNoLimit": "Modo sin límite",
|
||||
"subHappNoLimitDesc": "Aumentar el límite de RAM de xray-core en Happ para mejorar la estabilidad y el rendimiento (beta).",
|
||||
"subHappAlwaysHwid": "Forzar ID de hardware (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Impedir que los usuarios desactiven el envío del HWID en la configuración de Happ.",
|
||||
"subHappTunMode": "Modo TUN",
|
||||
"subHappTunModeDesc": "Pila de red que usa TUN en escritorio: sistema (pila del SO) o gVisor (pila de espacio de usuario).",
|
||||
"subHappTunType": "Motor TUN",
|
||||
"subHappTunTypeDesc": "Núcleo usado para la conexión TUN en escritorio: sing-box, tun2proxy, predeterminado (Happ TUN) o Xray.",
|
||||
"subHappExcludeRoutes": "Excluir rutas CIDR",
|
||||
"subHappExcludeRoutesDesc": "CIDR de IP separados por comas (p. ej. 192.168.0.0/16, 10.0.0.0/8) que no pasan por el túnel VPN.",
|
||||
"subHappExcludeApns": "Excluir APNs de Apple",
|
||||
"subHappExcludeApnsDesc": "Omitir los servicios de notificaciones push de Apple para mantener fiables las notificaciones en segundo plano en iOS.",
|
||||
"subHappColorProfile": "Tema de color del cliente",
|
||||
"subHappColorProfileDesc": "Tema de color personalizado para iOS como cadena JSON, o resetcolors para restaurar los colores predeterminados.",
|
||||
"subHappPingType": "Método de ping de latencia",
|
||||
"subHappPingTypeDesc": "Cómo mide Happ la latencia de los nodos: vía proxy (GET o HEAD), TCP o ICMP.",
|
||||
"subHappAutoConnect": "Conexión automática al iniciar",
|
||||
"subHappAutoConnectDesc": "Indicar a Happ que se conecte automáticamente a la VPN al iniciarse la aplicación.",
|
||||
"subHappAutoConnectType": "Destino de la conexión automática",
|
||||
"subHappAutoConnectTypeDesc": "Servidor elegido para la conexión automática: menor latencia, último utilizado o un nodo aleatorio.",
|
||||
"subHappPerAppMode": "Modo de proxy por aplicación en Android",
|
||||
"subHappPerAppModeDesc": "Controlar el enrutamiento de aplicaciones Android: desactivado, activado (proxy solo para las apps de la lista) u omitir (excluir las apps de la lista).",
|
||||
"subHappPerAppList": "Nombres de paquete de Android",
|
||||
"subHappPerAppListDesc": "Nombres de paquete de aplicaciones Android separados por comas que se incluirán o excluirán (p. ej. org.telegram.messenger).",
|
||||
"subHappPresetIran": "Irán: omitir proxy",
|
||||
"subHappPresetChina": "China: conexión directa",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "Todo por proxy",
|
||||
"subHappPresetOff": "Desactivar enrutamiento (happ://routing/off)",
|
||||
"subHappColorBlue": "Azul (estándar / predeterminado)",
|
||||
"subHappColorGreen": "Verde (éxito)",
|
||||
@@ -1565,29 +1567,29 @@
|
||||
"subHappAutoConnectLastUsed": "Último nodo utilizado",
|
||||
"subHappAutoConnectRandom": "Nodo aleatorio",
|
||||
"subHappPerAppOff": "Desactivado",
|
||||
"subHappPerAppOn": "Activado (solo apps de la lista)",
|
||||
"subHappPerAppOn": "Activado (proxy solo para apps de la lista)",
|
||||
"subHappPerAppBypass": "Omitir (excluir apps de la lista)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "Preajuste de Happ aplicado a las reglas de enrutamiento",
|
||||
"subHappPresets": "Preajustes de enrutamiento",
|
||||
"subHappPresetsDesc": "Preajustes de reglas de enrutamiento preconfigurados para clientes Happ.",
|
||||
"subHappVisualBuilder": "Generador visual de reglas",
|
||||
"subHappVisualBuilderDesc": "Crear un deeplink de enrutamiento personalizado a partir de listas de dominios e IPs.",
|
||||
"subHappBuildDeeplink": "Generar deeplink",
|
||||
"subHappModalTitle": "Generador visual de reglas de enrutamiento de Happ",
|
||||
"subHappDirectDomains": "Dominios directos (sin proxy)",
|
||||
"subHappProxyDomains": "Dominios por proxy (túnel)",
|
||||
"subHappBlockDomains": "Dominios bloqueados (publicidad/malware)",
|
||||
"subHappDirectIPs": "IPs / CIDR directos",
|
||||
"subHappProxyIPs": "IPs / CIDR por proxy",
|
||||
"subHappBlockIPs": "IPs / CIDR bloqueados",
|
||||
"subHappDeeplinkGenerated": "Deeplink generado y aplicado a las reglas de enrutamiento",
|
||||
"subHappGroupLinks": "Enlaces de suscripción",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Enrutamiento y reglas",
|
||||
"subHappGroupBanners": "Banners y anuncios",
|
||||
"subHappGroupNetwork": "Red y motor TUN",
|
||||
"subHappGroupThemes": "Apariencia y tema",
|
||||
"subHappGroupFailover": "Migración y gestión de la app",
|
||||
"subHappGroupAndroid": "Proxy por aplicación en Android",
|
||||
"discordSettings": "Bot de Discord",
|
||||
"discordBotEnable": "Habilitar notificaciones de Discord",
|
||||
"discordBotEnableDesc": "Enviar alertas del sistema y eventos a un canal de Discord a través del bot",
|
||||
|
||||
@@ -1257,6 +1257,8 @@
|
||||
"noisesSett": "تنظیمات Noises",
|
||||
"trustedProxyCidrs": "CIDRهای پراکسی مورد اعتماد",
|
||||
"trustedProxyCidrsDesc": "IPها/CIDRها (با کاما) که مجازند هدرهای host، proto و client IP فوروارد را تنظیم کنند.",
|
||||
"realityScanCandidates": "نامزدهای اسکن Reality",
|
||||
"realityScanCandidatesDesc": "فهرست host:port (یا CIDR) جداشده با کاما که وقتی جستجو خالی است بهعنوان فهرست پیشفرض «یافتن اهداف» استفاده میشود. برای مقاصد پرتکرار خود سفارشی کنید.",
|
||||
"ldap": {
|
||||
"enable": "فعالسازی همگامسازی LDAP",
|
||||
"host": "میزبان LDAP",
|
||||
@@ -1507,7 +1509,7 @@
|
||||
"subHappSubInfoText": "متن بنر اعلانات",
|
||||
"subHappSubInfoTextDesc": "پیام اعلان سفارشی در بالای صفحه برنامه Happ (حداکثر ۲۰۰ نویسه).",
|
||||
"subHappSubInfoColor": "رنگ بنر اعلانات",
|
||||
"subHappSubInfoColorDesc": "تم رنگی بنر اعلان (پیشفرض، اطلاعرسانی، موفقیت، هشدار یا اخطار).",
|
||||
"subHappSubInfoColorDesc": "تم رنگی بنر اعلان.",
|
||||
"subHappSubInfoButtonText": "متن دکمه بنر",
|
||||
"subHappSubInfoButtonTextDesc": "عنوان دکمه اقدام در بنر اعلان (حداکثر ۲۵ نویسه).",
|
||||
"subHappSubInfoButtonLink": "لینک دکمه بنر",
|
||||
@@ -1517,31 +1519,31 @@
|
||||
"subHappSubExpireButtonLink": "لینک تمدید اشتراک",
|
||||
"subHappSubExpireButtonLinkDesc": "آدرس صفحه خرید یا تمدید اشتراک منقضیشده.",
|
||||
"subHappNotificationExpire": "اعلان انقضای اشتراک",
|
||||
"subHappNotificationExpireDesc": "نمایش هشدار انقضای اشتراک به کاربر پیش از پایان اعتبار در برنامه Happ.",
|
||||
"subHappNoLimit": "حذف محدودیت تعداد قوانین",
|
||||
"subHappNoLimitDesc": "اجازه اعمال تعداد نامحدود قوانین روتینگ بدون برش خوردن روی سیستمهای تلفن همراه.",
|
||||
"subHappNotificationExpireDesc": "برنامه Happ را وادار میکند ۳ روز پیش از پایان اشتراک به کاربر یادآوری کند.",
|
||||
"subHappNoLimit": "حالت بدون محدودیت (No-Limit)",
|
||||
"subHappNoLimitDesc": "افزایش سقف حافظه RAM هسته xray-core در Happ برای پایداری و کارایی بهتر (آزمایشی).",
|
||||
"subHappAlwaysHwid": "الزام شناسه سختافزاری (HWID)",
|
||||
"subHappAlwaysHwidDesc": "قفل کردن درخواستهای اشتراک به شناسه سختافزاری دستگاه جهت جلوگیری از اشتراکگذاری اکانت.",
|
||||
"subHappAlwaysHwidDesc": "جلوگیری از خاموش کردن ارسال HWID توسط کاربر در تنظیمات Happ.",
|
||||
"subHappTunMode": "حالت تونل (TUN Mode)",
|
||||
"subHappTunModeDesc": "حالت رابط شبکه مجازی TUN در برنامه Happ (پیشفرض، سیستمی یا سختگیرانه).",
|
||||
"subHappTunModeDesc": "پشته شبکه TUN در دسکتاپ: سیستمی (پشته سیستمعامل) یا gVisor (پشته فضای کاربری).",
|
||||
"subHappTunType": "موتور شبکه TUN",
|
||||
"subHappTunTypeDesc": "پشته شبکه مورد استفاده برای TUN (سیستمی، gVisor یا ترکیبی).",
|
||||
"subHappTunTypeDesc": "هسته مورد استفاده برای اتصال TUN در دسکتاپ: sing-box، tun2proxy، پیشفرض (Happ TUN) یا Xray.",
|
||||
"subHappExcludeRoutes": "مستثنی کردن مسیرهای CIDR",
|
||||
"subHappExcludeRoutesDesc": "رنجهای IP جدا شده با کاما جهت دور زدن تونل VPN (مانند 192.168.0.0/16, 10.0.0.0/8).",
|
||||
"subHappExcludeApns": "مستثنی کردن سرویسهای اعلان اپل (APNs)",
|
||||
"subHappExcludeApnsDesc": "دور زدن سرویسهای اعلان اپل برای اطمینان از دریافت پایدار ناتیفیکیشنها در iOS.",
|
||||
"subHappColorProfile": "پروفایل رنگ و پوسته",
|
||||
"subHappColorProfileDesc": "پوسته ظاهری برنامه Happ (بنفش، فیروزهای، سایبرپانک یا JSON سفارشی).",
|
||||
"subHappColorProfileDesc": "تم رنگی سفارشی iOS به صورت رشته JSON، یا resetcolors برای بازگشت به رنگهای پیشفرض.",
|
||||
"subHappPingType": "روش تست پینگ",
|
||||
"subHappPingTypeDesc": "پروتکل اندازهگیری تأخیر گرهها در برنامه Happ (icmp، tcp یا http).",
|
||||
"subHappPingTypeDesc": "روش اندازهگیری تأخیر نودها در Happ: از طریق پروکسی (GET یا HEAD)، TCP یا ICMP.",
|
||||
"subHappAutoConnect": "اتصال خودکار هنگام اجرا",
|
||||
"subHappAutoConnectDesc": "اتصال خودکار به ویپیان با باز شدن برنامه Happ.",
|
||||
"subHappAutoConnectType": "راهبرد اتصال خودکار",
|
||||
"subHappAutoConnectTypeDesc": "هدف اتصال خودکار: سریعترین سرور یا آخرین سرور استفادهشده.",
|
||||
"subHappAutoConnectTypeDesc": "سروری که اتصال خودکار انتخاب میکند: کمترین تأخیر، آخرین نود استفادهشده یا یک نود تصادفی.",
|
||||
"subHappPerAppMode": "پراکسی انتخابی برنامهها در اندروید",
|
||||
"subHappPerAppModeDesc": "مدیریت عبور ترافیک برنامههای اندروید: خاموش، عبور فقط برنامههای منتخب یا مستثنی کردن آنها.",
|
||||
"subHappPerAppModeDesc": "مدیریت مسیریابی برنامههای اندروید: خاموش، روشن (پراکسی فقط برای برنامههای فهرستشده) یا بایپس (مستثنیکردن برنامههای فهرستشده).",
|
||||
"subHappPerAppList": "نام بستههای برنامههای اندروید",
|
||||
"subHappPerAppListDesc": "نام بستههای اپلیکیشنهای اندروید جدا شده با کاما (مانند com.telegram.messenger).",
|
||||
"subHappPerAppListDesc": "نام بسته برنامههای اندروید برای شامل یا مستثنی کردن، جدا شده با کاما (مانند org.telegram.messenger).",
|
||||
"subHappPresetIran": "دور زدن سایتهای ایران (Iran Bypass)",
|
||||
"subHappPresetChina": "دور زدن چین (China Direct)",
|
||||
"subHappPresetAdblock": "مسدودسازی تبلیغات (AdBlock)",
|
||||
@@ -1583,10 +1585,10 @@
|
||||
"subHappDeeplinkGenerated": "دیپلینک تولید و در قوانین روتینگ اعمال شد",
|
||||
"subHappGroupLinks": "لینکهای اشتراک",
|
||||
"subHappGroupRouting": "قوانین و روتینگ",
|
||||
"subHappGroupBanners": "اعلانات و بنرهای هوشمند",
|
||||
"subHappGroupBanners": "بنرها و اعلانات",
|
||||
"subHappGroupNetwork": "تنظیمات شبکه و TUN",
|
||||
"subHappGroupThemes": "ظاهر و پوسته برنامه",
|
||||
"subHappGroupFailover": "مهاجرت و مدیریت کلاینت",
|
||||
"subHappGroupFailover": "مهاجرت و مدیریت برنامه",
|
||||
"subHappGroupAndroid": "پراکسی برنامههای اندروید",
|
||||
"discordSettings": "ربات دیسکورد",
|
||||
"discordBotEnable": "فعالسازی اعلانهای دیسکورد",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Pengaturan Noises",
|
||||
"trustedProxyCidrs": "CIDR proxy tepercaya",
|
||||
"trustedProxyCidrsDesc": "IP/CIDR (dipisahkan koma) yang diizinkan mengatur header forwarded host, proto, dan client IP.",
|
||||
"realityScanCandidates": "Kandidat pemindaian Reality",
|
||||
"realityScanCandidatesDesc": "Daftar target host:port (atau CIDR) dipisahkan koma yang dipakai sebagai default saat Cari Target dijalankan dengan pencarian kosong. Sesuaikan dengan tujuan yang sering Anda gunakan.",
|
||||
"ldap": {
|
||||
"enable": "Aktifkan sinkronisasi LDAP",
|
||||
"host": "LDAP host",
|
||||
@@ -1496,66 +1498,66 @@
|
||||
"subExpiredTemplateDesc": "Templat untuk konfigurasi dummy saat akun langganan telah kedaluwarsa.",
|
||||
"subTrafficDepletedTemplate": "Templat Kuota Habis",
|
||||
"subTrafficDepletedTemplateDesc": "Templat untuk konfigurasi dummy saat kuota data langganan telah habis.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappAutoDetect": "Deteksi Otomatis Header Happ",
|
||||
"subHappAutoDetectDesc": "Otomatis menyisipkan routing dan header Happ saat User-Agent klien menunjukkan Happ.",
|
||||
"subHappProviderId": "ID Penyedia (Provider ID)",
|
||||
"subHappProviderIdDesc": "Pengenal unik penyedia untuk manajemen klien Happ, pengikatan konfigurasi jarak jauh, dan migrasi.",
|
||||
"subHappNewUrl": "URL Langganan Baru",
|
||||
"subHappNewUrlDesc": "URL tujuan untuk migrasi klien otomatis. Jika diisi, klien Happ akan bermigrasi ke tautan langganan ini.",
|
||||
"subHappFallbackUrl": "URL Langganan Cadangan",
|
||||
"subHappFallbackUrlDesc": "Alamat langganan cadangan yang dipakai Happ jika URL langganan utama tidak dapat dijangkau.",
|
||||
"subHappSubInfoText": "Teks Pengumuman Banner",
|
||||
"subHappSubInfoTextDesc": "Banner pengumuman kustom yang ditampilkan di bagian atas klien Happ (maks. 200 karakter).",
|
||||
"subHappSubInfoColor": "Warna Aksen Banner",
|
||||
"subHappSubInfoColorDesc": "Gaya tema warna untuk banner pengumuman.",
|
||||
"subHappSubInfoButtonText": "Teks Tombol Banner",
|
||||
"subHappSubInfoButtonTextDesc": "Label tombol yang ditampilkan di dalam banner pengumuman (maks. 25 karakter).",
|
||||
"subHappSubInfoButtonLink": "Tautan Tombol Banner",
|
||||
"subHappSubInfoButtonLinkDesc": "URL tujuan yang dibuka saat pengguna mengklik tombol aksi banner.",
|
||||
"subHappSubExpire": "Banner Langganan Kedaluwarsa",
|
||||
"subHappSubExpireDesc": "Tampilkan banner langganan kedaluwarsa di Happ saat lalu lintas atau masa berlaku pengguna telah habis.",
|
||||
"subHappSubExpireButtonLink": "Tautan Perpanjangan",
|
||||
"subHappSubExpireButtonLinkDesc": "URL tujuan yang dibuka saat pengguna mengklik tombol perpanjangan pada langganan yang kedaluwarsa.",
|
||||
"subHappNotificationExpire": "Notifikasi Kedaluwarsa",
|
||||
"subHappNotificationExpireDesc": "Minta Happ mengingatkan pengguna 3 hari sebelum langganannya kedaluwarsa.",
|
||||
"subHappNoLimit": "Mode Tanpa Batas",
|
||||
"subHappNoLimitDesc": "Naikkan batas RAM xray-core di Happ untuk stabilitas dan performa yang lebih baik (beta).",
|
||||
"subHappAlwaysHwid": "Wajibkan ID Perangkat Keras (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Cegah pengguna mematikan pengiriman HWID di pengaturan Happ.",
|
||||
"subHappTunMode": "Mode TUN",
|
||||
"subHappTunModeDesc": "Stack jaringan yang dipakai TUN di desktop: sistem (stack OS) atau gVisor (stack userspace).",
|
||||
"subHappTunType": "Mesin TUN",
|
||||
"subHappTunTypeDesc": "Inti yang dipakai untuk koneksi TUN di desktop: sing-box, tun2proxy, bawaan (Happ TUN), atau Xray.",
|
||||
"subHappExcludeRoutes": "Kecualikan Rute CIDR",
|
||||
"subHappExcludeRoutesDesc": "IP CIDR dipisahkan koma (mis. 192.168.0.0/16, 10.0.0.0/8) yang dikecualikan dari tunnel VPN.",
|
||||
"subHappExcludeApns": "Kecualikan Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Lewatkan layanan Apple Push Notification di luar VPN agar notifikasi latar belakang di iOS tetap andal.",
|
||||
"subHappColorProfile": "Tema Warna Klien",
|
||||
"subHappColorProfileDesc": "Tema warna iOS kustom sebagai string JSON, atau resetcolors untuk mengembalikan warna bawaan.",
|
||||
"subHappPingType": "Metode Ping Latensi",
|
||||
"subHappPingTypeDesc": "Cara Happ mengukur latensi node: melalui proxy (GET atau HEAD), TCP, atau ICMP.",
|
||||
"subHappAutoConnect": "Hubungkan Otomatis saat Dibuka",
|
||||
"subHappAutoConnectDesc": "Minta Happ terhubung ke VPN secara otomatis saat aplikasi dimulai.",
|
||||
"subHappAutoConnectType": "Target Koneksi Otomatis",
|
||||
"subHappAutoConnectTypeDesc": "Server yang dipilih untuk koneksi otomatis: latensi terendah, terakhir digunakan, atau node acak.",
|
||||
"subHappPerAppMode": "Mode Proxy Per-Aplikasi Android",
|
||||
"subHappPerAppModeDesc": "Kontrol routing aplikasi Android: mati, nyala (proxy hanya aplikasi terdaftar), atau bypass (kecualikan aplikasi terdaftar).",
|
||||
"subHappPerAppList": "Nama Paket Android",
|
||||
"subHappPerAppListDesc": "Nama paket aplikasi Android yang disertakan atau dikecualikan, dipisahkan koma (mis. org.telegram.messenger).",
|
||||
"subHappPresetIran": "Bypass Iran",
|
||||
"subHappPresetChina": "Tiongkok Langsung",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetOff": "Nonaktifkan Perutean (happ://routing/off)",
|
||||
"subHappColorBlue": "Biru (Standar / Default)",
|
||||
"subHappPresetGlobal": "Proxy Penuh",
|
||||
"subHappPresetOff": "Nonaktifkan Routing (happ://routing/off)",
|
||||
"subHappColorBlue": "Biru (Standar / Bawaan)",
|
||||
"subHappColorGreen": "Hijau (Sukses)",
|
||||
"subHappColorRed": "Merah (Peringatan / Bahaya)",
|
||||
"subHappTunModeDefault": "Default",
|
||||
"subHappTunModeDefault": "Bawaan",
|
||||
"subHappTunModeSystem": "Sistem (Stack OS Standar)",
|
||||
"subHappTunModeGvisor": "gVisor (Stack Userspace)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "Default (Happ TUN)",
|
||||
"subHappTunTypeDefault": "Bawaan (Happ TUN)",
|
||||
"subHappTunTypeXray": "Xray TUN",
|
||||
"subHappPingProxy": "Melalui Proxy (Latensi GET)",
|
||||
"subHappPingProxyHead": "Melalui Proxy (Latensi HEAD)",
|
||||
@@ -1565,29 +1567,29 @@
|
||||
"subHappAutoConnectLastUsed": "Node Terakhir Digunakan",
|
||||
"subHappAutoConnectRandom": "Node Acak",
|
||||
"subHappPerAppOff": "Mati",
|
||||
"subHappPerAppOn": "Nyala (Hanya Proksikan Aplikasi Terdaftar)",
|
||||
"subHappPerAppOn": "Nyala (Proxy Hanya Aplikasi Terdaftar)",
|
||||
"subHappPerAppBypass": "Bypass (Kecualikan Aplikasi Terdaftar)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "Preset Happ diterapkan ke aturan routing",
|
||||
"subHappPresets": "Preset Routing",
|
||||
"subHappPresetsDesc": "Preset aturan routing siap pakai yang disesuaikan untuk klien Happ.",
|
||||
"subHappVisualBuilder": "Pembuat Aturan Visual",
|
||||
"subHappVisualBuilderDesc": "Buat deeplink routing kustom dari daftar domain dan IP.",
|
||||
"subHappBuildDeeplink": "Buat Deeplink",
|
||||
"subHappModalTitle": "Pembuat Aturan Routing Visual Happ",
|
||||
"subHappDirectDomains": "Domain Langsung (Bypass)",
|
||||
"subHappProxyDomains": "Domain Proxy (Tunnel)",
|
||||
"subHappBlockDomains": "Domain Diblokir (Iklan/Malware)",
|
||||
"subHappDirectIPs": "IP / CIDR Langsung",
|
||||
"subHappProxyIPs": "IP / CIDR Proxy",
|
||||
"subHappBlockIPs": "IP / CIDR Diblokir",
|
||||
"subHappDeeplinkGenerated": "Deeplink dibuat dan diterapkan ke aturan routing",
|
||||
"subHappGroupLinks": "Tautan Langganan",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Routing & Aturan",
|
||||
"subHappGroupBanners": "Banner & Pengumuman",
|
||||
"subHappGroupNetwork": "Jaringan & Mesin TUN",
|
||||
"subHappGroupThemes": "Tampilan & Tema",
|
||||
"subHappGroupFailover": "Migrasi & Manajemen Aplikasi",
|
||||
"subHappGroupAndroid": "Proxy Per-Aplikasi Android",
|
||||
"discordSettings": "Bot Discord",
|
||||
"discordBotEnable": "Aktifkan Notifikasi Discord",
|
||||
"discordBotEnableDesc": "Kirim peringatan sistem dan acara ke saluran Discord melalui bot",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Noises設定",
|
||||
"trustedProxyCidrs": "信頼できるプロキシ CIDR",
|
||||
"trustedProxyCidrsDesc": "転送される host、proto、クライアント IP ヘッダーを設定可能な IP/CIDR (カンマ区切り)。",
|
||||
"realityScanCandidates": "Reality スキャン候補",
|
||||
"realityScanCandidatesDesc": "検索が空のときに「ターゲットを探す」で使うデフォルトの host:port(または CIDR)一覧(カンマ区切り)。よく使う宛先に合わせて編集できます。",
|
||||
"ldap": {
|
||||
"enable": "LDAP 同期を有効化",
|
||||
"host": "LDAP host",
|
||||
@@ -1496,98 +1498,98 @@
|
||||
"subExpiredTemplateDesc": "サブスクリプションの有効期限が切れた際のダミー構成用テンプレート。",
|
||||
"subTrafficDepletedTemplate": "通信量超過テンプレート",
|
||||
"subTrafficDepletedTemplateDesc": "サブスクリプションの通信量が上限に達した際のダミー構成用テンプレート。",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappAutoDetect": "Happ ヘッダーの自動検出",
|
||||
"subHappAutoDetectDesc": "クライアントの User-Agent が Happ を示す場合、Happ のルーティングとヘッダーを自動的に挿入します。",
|
||||
"subHappProviderId": "プロバイダー ID",
|
||||
"subHappProviderIdDesc": "Happ クライアントの管理、リモート設定の紐付け、移行に使用する一意のプロバイダー識別子。",
|
||||
"subHappNewUrl": "新しいサブスクリプション URL",
|
||||
"subHappNewUrlDesc": "クライアントの自動移行先 URL。設定すると、Happ クライアントはこのサブスクリプションリンクへ移行します。",
|
||||
"subHappFallbackUrl": "フォールバック用サブスクリプション URL",
|
||||
"subHappFallbackUrlDesc": "プライマリのサブスクリプション URL に到達できなくなった場合に Happ が使用する予備のサブスクリプションアドレス。",
|
||||
"subHappSubInfoText": "バナーのお知らせテキスト",
|
||||
"subHappSubInfoTextDesc": "Happ クライアントの上部に表示されるカスタムのお知らせバナー (最大 200 文字)。",
|
||||
"subHappSubInfoColor": "バナーのアクセントカラー",
|
||||
"subHappSubInfoColorDesc": "お知らせバナーのカラーテーマ。",
|
||||
"subHappSubInfoButtonText": "バナーのボタンテキスト",
|
||||
"subHappSubInfoButtonTextDesc": "お知らせバナー内に表示されるボタンのラベル (最大 25 文字)。",
|
||||
"subHappSubInfoButtonLink": "バナーのボタンリンク",
|
||||
"subHappSubInfoButtonLinkDesc": "ユーザーがバナーのアクションボタンをクリックしたときに開く URL。",
|
||||
"subHappSubExpire": "期限切れサブスクリプションのバナー",
|
||||
"subHappSubExpireDesc": "ユーザーのトラフィックを使い切ったか有効期限が切れたときに、Happ に期限切れサブスクリプションのバナーを表示します。",
|
||||
"subHappSubExpireButtonLink": "更新リンク",
|
||||
"subHappSubExpireButtonLinkDesc": "期限切れのサブスクリプションで、ユーザーが更新ボタンをクリックしたときに開く URL。",
|
||||
"subHappNotificationExpire": "有効期限の通知",
|
||||
"subHappNotificationExpireDesc": "サブスクリプションの有効期限の 3 日前にユーザーへ通知するよう Happ に指示します。",
|
||||
"subHappNoLimit": "無制限モード",
|
||||
"subHappNoLimitDesc": "Happ の xray-core の RAM 上限を引き上げ、安定性とパフォーマンスを向上させます (ベータ)。",
|
||||
"subHappAlwaysHwid": "ハードウェア ID (HWID) を強制",
|
||||
"subHappAlwaysHwidDesc": "ユーザーが Happ の設定で HWID の送信をオフにできないようにします。",
|
||||
"subHappTunMode": "TUN モード",
|
||||
"subHappTunModeDesc": "デスクトップで TUN が使用するネットワークスタック: システム (OS のスタック) または gVisor (ユーザー空間スタック)。",
|
||||
"subHappTunType": "TUN エンジン",
|
||||
"subHappTunTypeDesc": "デスクトップで TUN 接続に使用するコア: sing-box、tun2proxy、デフォルト (Happ TUN)、または Xray。",
|
||||
"subHappExcludeRoutes": "CIDR ルートを除外",
|
||||
"subHappExcludeRoutesDesc": "VPN トンネルをバイパスする IP CIDR のカンマ区切りリスト (例: 192.168.0.0/16, 10.0.0.0/8)。",
|
||||
"subHappExcludeApns": "Apple APNs を除外",
|
||||
"subHappExcludeApnsDesc": "Apple プッシュ通知サービスをバイパスし、iOS でバックグラウンド通知を確実に受け取れるようにします。",
|
||||
"subHappColorProfile": "クライアントのカラーテーマ",
|
||||
"subHappColorProfileDesc": "iOS 用のカスタムカラーテーマを JSON 文字列で指定します。デフォルトの色に戻すには resetcolors を指定します。",
|
||||
"subHappPingType": "遅延の測定方法",
|
||||
"subHappPingTypeDesc": "Happ がノードの遅延を測定する方法: プロキシ経由 (GET または HEAD)、TCP、または ICMP。",
|
||||
"subHappAutoConnect": "起動時に自動接続",
|
||||
"subHappAutoConnectDesc": "アプリの起動時に VPN へ自動接続するよう Happ に指示します。",
|
||||
"subHappAutoConnectType": "自動接続先",
|
||||
"subHappAutoConnectTypeDesc": "自動接続で選択するサーバー: 最小遅延、最後に使用したノード、またはランダムなノード。",
|
||||
"subHappPerAppMode": "Android アプリ別プロキシモード",
|
||||
"subHappPerAppModeDesc": "Android アプリのルーティングを制御します: オフ、オン (リストされたアプリのみプロキシ)、またはバイパス (リストされたアプリを除外)。",
|
||||
"subHappPerAppList": "Android パッケージ名",
|
||||
"subHappPerAppListDesc": "対象または除外する Android アプリのパッケージ名をカンマ区切りで指定します (例: org.telegram.messenger)。",
|
||||
"subHappPresetIran": "イラン向けバイパス",
|
||||
"subHappPresetChina": "中国向け直接接続",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "フルプロキシ",
|
||||
"subHappPresetOff": "ルーティングを無効化 (happ://routing/off)",
|
||||
"subHappColorBlue": "ブルー (標準 / デフォルト)",
|
||||
"subHappColorGreen": "グリーン (成功)",
|
||||
"subHappColorRed": "レッド (警告 / 危険)",
|
||||
"subHappTunModeDefault": "デフォルト",
|
||||
"subHappTunModeSystem": "システム (標準OSスタック)",
|
||||
"subHappTunModeSystem": "システム (標準 OS スタック)",
|
||||
"subHappTunModeGvisor": "gVisor (ユーザー空間スタック)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "デフォルト (Happ TUN)",
|
||||
"subHappTunTypeXray": "Xray TUN",
|
||||
"subHappPingProxy": "プロキシ経由 (GET遅延)",
|
||||
"subHappPingProxyHead": "プロキシ経由 (HEAD遅延)",
|
||||
"subHappPingTcp": "TCPハンドシェイク Ping",
|
||||
"subHappPingIcmp": "ICMP Ping",
|
||||
"subHappPingProxy": "プロキシ経由 (GET 遅延)",
|
||||
"subHappPingProxyHead": "プロキシ経由 (HEAD 遅延)",
|
||||
"subHappPingTcp": "TCP ハンドシェイク ping",
|
||||
"subHappPingIcmp": "ICMP ping",
|
||||
"subHappAutoConnectLowestDelay": "最小遅延 (最速ノード)",
|
||||
"subHappAutoConnectLastUsed": "最後に使用したノード",
|
||||
"subHappAutoConnectRandom": "ランダムノード",
|
||||
"subHappAutoConnectRandom": "ランダムなノード",
|
||||
"subHappPerAppOff": "オフ",
|
||||
"subHappPerAppOn": "オン (リストされたアプリのみプロキシ)",
|
||||
"subHappPerAppBypass": "バイパス (リストされたアプリを除外)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "Happ プリセットをルーティングルールに適用しました",
|
||||
"subHappPresets": "ルーティングプリセット",
|
||||
"subHappPresetsDesc": "Happ クライアント向けに事前設定されたルーティングルールのプリセット。",
|
||||
"subHappVisualBuilder": "ビジュアルルールジェネレーター",
|
||||
"subHappVisualBuilderDesc": "ドメインと IP のリストからカスタムルーティングのディープリンクを作成します。",
|
||||
"subHappBuildDeeplink": "ディープリンクを生成",
|
||||
"subHappModalTitle": "Happ ビジュアルルーティングルールジェネレーター",
|
||||
"subHappDirectDomains": "直接接続するドメイン (バイパス)",
|
||||
"subHappProxyDomains": "プロキシするドメイン (トンネル)",
|
||||
"subHappBlockDomains": "ブロックするドメイン (広告/マルウェア)",
|
||||
"subHappDirectIPs": "直接接続する IP / CIDR",
|
||||
"subHappProxyIPs": "プロキシする IP / CIDR",
|
||||
"subHappBlockIPs": "ブロックする IP / CIDR",
|
||||
"subHappDeeplinkGenerated": "ディープリンクを生成し、ルーティングルールに適用しました",
|
||||
"subHappGroupLinks": "サブスクリプションリンク",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "ルーティングとルール",
|
||||
"subHappGroupBanners": "バナーとお知らせ",
|
||||
"subHappGroupNetwork": "ネットワークと TUN エンジン",
|
||||
"subHappGroupThemes": "外観とテーマ",
|
||||
"subHappGroupFailover": "移行とアプリ管理",
|
||||
"subHappGroupAndroid": "Android アプリ別プロキシ",
|
||||
"discordSettings": "Discord Bot",
|
||||
"discordBotEnable": "Discord通知を有効化",
|
||||
"discordBotEnableDesc": "Botを介してDiscordチャンネルにシステムおよびイベント通知を送信します",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Configurações de Noises",
|
||||
"trustedProxyCidrs": "CIDRs de proxy confiável",
|
||||
"trustedProxyCidrsDesc": "IPs/CIDRs separados por vírgula que podem definir os cabeçalhos host, proto e IP do cliente encaminhados.",
|
||||
"realityScanCandidates": "Candidatos de varredura Reality",
|
||||
"realityScanCandidatesDesc": "Lista de alvos host:port (ou CIDRs) separados por vírgula usada como padrão quando Procurar alvos roda com a busca vazia. Personalize com destinos que você usa com frequência.",
|
||||
"ldap": {
|
||||
"enable": "Habilitar sincronização LDAP",
|
||||
"host": "Host LDAP",
|
||||
@@ -1496,63 +1498,63 @@
|
||||
"subExpiredTemplateDesc": "Modelo para a configuração fictícia quando a assinatura expirou.",
|
||||
"subTrafficDepletedTemplate": "Modelo de tráfego esgotado",
|
||||
"subTrafficDepletedTemplateDesc": "Modelo para a configuração fictícia quando a cota de tráfego foi esgotada.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappAutoDetect": "Detecção automática de cabeçalhos do Happ",
|
||||
"subHappAutoDetectDesc": "Injeta automaticamente o roteamento e os cabeçalhos do Happ quando o User-Agent do cliente indicar o Happ.",
|
||||
"subHappProviderId": "ID do provedor (Provider ID)",
|
||||
"subHappProviderIdDesc": "Identificador único do provedor para gerenciamento de clientes Happ, vinculação de configuração remota e migração.",
|
||||
"subHappNewUrl": "Nova URL de assinatura",
|
||||
"subHappNewUrlDesc": "URL de destino para a migração automática de clientes. Quando definida, os clientes Happ migrarão para este link de assinatura.",
|
||||
"subHappFallbackUrl": "URL de assinatura de reserva",
|
||||
"subHappFallbackUrlDesc": "Endereço de assinatura de reserva usado pelo Happ se a URL de assinatura principal ficar inacessível.",
|
||||
"subHappSubInfoText": "Texto do banner de anúncio",
|
||||
"subHappSubInfoTextDesc": "Banner de anúncio personalizado exibido no topo do cliente Happ (máx. 200 caracteres).",
|
||||
"subHappSubInfoColor": "Cor de destaque do banner",
|
||||
"subHappSubInfoColorDesc": "Estilo de cor do banner de anúncio.",
|
||||
"subHappSubInfoButtonText": "Texto do botão do banner",
|
||||
"subHappSubInfoButtonTextDesc": "Rótulo do botão exibido dentro do banner de anúncio (máx. 25 caracteres).",
|
||||
"subHappSubInfoButtonLink": "Link do botão do banner",
|
||||
"subHappSubInfoButtonLinkDesc": "URL de destino aberta quando o usuário clica no botão de ação do banner.",
|
||||
"subHappSubExpire": "Banner de assinatura expirada",
|
||||
"subHappSubExpireDesc": "Exibe um banner de assinatura expirada no Happ quando o tráfego do usuário se esgotar ou a validade terminar.",
|
||||
"subHappSubExpireButtonLink": "Link de renovação",
|
||||
"subHappSubExpireButtonLinkDesc": "URL de destino aberta quando o usuário clica no botão de renovação de uma assinatura expirada.",
|
||||
"subHappNotificationExpire": "Notificações de expiração",
|
||||
"subHappNotificationExpireDesc": "Instrui o Happ a lembrar o usuário 3 dias antes de a assinatura expirar.",
|
||||
"subHappNoLimit": "Modo sem limites",
|
||||
"subHappNoLimitDesc": "Aumenta o limite de RAM do xray-core no Happ para mais estabilidade e desempenho (beta).",
|
||||
"subHappAlwaysHwid": "Forçar ID de hardware (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Impede que os usuários desativem o envio do HWID nas configurações do Happ.",
|
||||
"subHappTunMode": "Modo TUN",
|
||||
"subHappTunModeDesc": "Pilha de rede usada pelo TUN no desktop: sistema (pilha do SO) ou gVisor (pilha em espaço de usuário).",
|
||||
"subHappTunType": "Mecanismo TUN",
|
||||
"subHappTunTypeDesc": "Núcleo usado para a conexão TUN no desktop: sing-box, tun2proxy, padrão (Happ TUN) ou Xray.",
|
||||
"subHappExcludeRoutes": "Excluir rotas CIDR",
|
||||
"subHappExcludeRoutesDesc": "CIDRs de IP separados por vírgula (ex.: 192.168.0.0/16, 10.0.0.0/8) a serem desviados do túnel VPN.",
|
||||
"subHappExcludeApns": "Excluir APNs da Apple",
|
||||
"subHappExcludeApnsDesc": "Desvia do túnel os serviços de notificação push da Apple para manter as notificações em segundo plano confiáveis no iOS.",
|
||||
"subHappColorProfile": "Tema de cores do cliente",
|
||||
"subHappColorProfileDesc": "Tema de cores personalizado do iOS como string JSON, ou resetcolors para restaurar as cores padrão.",
|
||||
"subHappPingType": "Método de ping de latência",
|
||||
"subHappPingTypeDesc": "Como o Happ mede a latência dos nós: via proxy (GET ou HEAD), TCP ou ICMP.",
|
||||
"subHappAutoConnect": "Conectar automaticamente ao iniciar",
|
||||
"subHappAutoConnectDesc": "Instrui o Happ a conectar automaticamente à VPN quando o aplicativo for iniciado.",
|
||||
"subHappAutoConnectType": "Destino da conexão automática",
|
||||
"subHappAutoConnectTypeDesc": "Servidor escolhido para a conexão automática: menor latência, último usado ou um nó aleatório.",
|
||||
"subHappPerAppMode": "Modo de proxy por aplicativo no Android",
|
||||
"subHappPerAppModeDesc": "Controla o roteamento de aplicativos Android: desativado, ativado (proxy apenas nos apps listados) ou desviar (excluir apps listados).",
|
||||
"subHappPerAppList": "Nomes de pacotes Android",
|
||||
"subHappPerAppListDesc": "Nomes de pacotes de aplicativos Android separados por vírgula a incluir ou excluir (ex.: org.telegram.messenger).",
|
||||
"subHappPresetIran": "Irã (desvio)",
|
||||
"subHappPresetChina": "China (direto)",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "Proxy total",
|
||||
"subHappPresetOff": "Desativar roteamento (happ://routing/off)",
|
||||
"subHappColorBlue": "Azul (padrão)",
|
||||
"subHappColorGreen": "Verde (sucesso)",
|
||||
"subHappColorRed": "Vermelho (aviso / perigo)",
|
||||
"subHappTunModeDefault": "Padrão",
|
||||
"subHappTunModeSystem": "Sistema (pilha padrão do SO)",
|
||||
"subHappTunModeGvisor": "gVisor (pilha de espaço do usuário)",
|
||||
"subHappTunModeGvisor": "gVisor (pilha em espaço de usuário)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "Padrão (Happ TUN)",
|
||||
@@ -1565,29 +1567,29 @@
|
||||
"subHappAutoConnectLastUsed": "Último nó usado",
|
||||
"subHappAutoConnectRandom": "Nó aleatório",
|
||||
"subHappPerAppOff": "Desativado",
|
||||
"subHappPerAppOn": "Ativado (apenas apps listados)",
|
||||
"subHappPerAppOn": "Ativado (proxy apenas nos apps listados)",
|
||||
"subHappPerAppBypass": "Desviar (excluir apps listados)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "Predefinição do Happ aplicada às regras de roteamento",
|
||||
"subHappPresets": "Predefinições de roteamento",
|
||||
"subHappPresetsDesc": "Predefinições de regras de roteamento pré-configuradas para clientes Happ.",
|
||||
"subHappVisualBuilder": "Gerador visual de regras",
|
||||
"subHappVisualBuilderDesc": "Crie um deeplink de roteamento personalizado a partir de listas de domínios e IPs.",
|
||||
"subHappBuildDeeplink": "Gerar deeplink",
|
||||
"subHappModalTitle": "Gerador visual de regras de roteamento do Happ",
|
||||
"subHappDirectDomains": "Domínios diretos (desvio)",
|
||||
"subHappProxyDomains": "Domínios via proxy (túnel)",
|
||||
"subHappBlockDomains": "Domínios bloqueados (anúncios/malware)",
|
||||
"subHappDirectIPs": "IPs / CIDRs diretos",
|
||||
"subHappProxyIPs": "IPs / CIDRs via proxy",
|
||||
"subHappBlockIPs": "IPs / CIDRs bloqueados",
|
||||
"subHappDeeplinkGenerated": "Deeplink gerado e aplicado às regras de roteamento",
|
||||
"subHappGroupLinks": "Links de assinatura",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Roteamento e regras",
|
||||
"subHappGroupBanners": "Banners e anúncios",
|
||||
"subHappGroupNetwork": "Rede e mecanismo TUN",
|
||||
"subHappGroupThemes": "Aparência e tema",
|
||||
"subHappGroupFailover": "Migração e gerenciamento do app",
|
||||
"subHappGroupAndroid": "Proxy por aplicativo no Android",
|
||||
"discordSettings": "Bot do Discord",
|
||||
"discordBotEnable": "Ativar notificações do Discord",
|
||||
"discordBotEnableDesc": "Enviar alertas de sistema e eventos para um canal do Discord via bot",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Настройки Noises",
|
||||
"trustedProxyCidrs": "Доверенные CIDR прокси",
|
||||
"trustedProxyCidrsDesc": "IP/CIDR через запятую, которым разрешено устанавливать заголовки forwarded host, proto и client IP.",
|
||||
"realityScanCandidates": "Кандидаты сканирования Reality",
|
||||
"realityScanCandidatesDesc": "Список host:port (или CIDR) через запятую — используется по умолчанию в «Найти цели», если поиск пуст. Настройте под часто используемые цели.",
|
||||
"ldap": {
|
||||
"enable": "Включить LDAP-синхронизацию",
|
||||
"host": "LDAP-хост",
|
||||
@@ -1513,35 +1515,35 @@
|
||||
"subHappSubInfoButtonLink": "Ссылка кнопки баннера",
|
||||
"subHappSubInfoButtonLinkDesc": "URL-адрес, открывающийся при нажатии на кнопку баннера.",
|
||||
"subHappSubExpire": "Баннер об окончании подписки",
|
||||
"subHappSubExpireDesc": "Отображать баннер о скором окончании или истечении срока действия подписки.",
|
||||
"subHappSubExpireDesc": "Показывать в Happ баннер об истёкшей подписке, когда у пользователя закончился трафик или срок действия.",
|
||||
"subHappSubExpireButtonLink": "Ссылка для продления подписки",
|
||||
"subHappSubExpireButtonLinkDesc": "URL для кнопки «Продлить» при истечении срока подписки.",
|
||||
"subHappNotificationExpire": "Уведомление об окончании подписки",
|
||||
"subHappNotificationExpireDesc": "Отправлять напоминания пользователю за 3 дня до окончания подписки.",
|
||||
"subHappNoLimit": "Режим без ограничений (No Limit)",
|
||||
"subHappNoLimitDesc": "Увеличивает лимит оперативной памяти и снимает ограничения на количество правил.",
|
||||
"subHappNoLimit": "Режим No-Limit",
|
||||
"subHappNoLimitDesc": "Повышает лимит оперативной памяти xray-core в Happ для стабильности и производительности (бета).",
|
||||
"subHappAlwaysHwid": "Обязательный HWID",
|
||||
"subHappAlwaysHwidDesc": "Запрещает пользователю отключать передачу идентификатора устройства (HWID).",
|
||||
"subHappAlwaysHwidDesc": "Запрещает пользователю отключать отправку HWID в настройках Happ.",
|
||||
"subHappTunMode": "Режим TUN",
|
||||
"subHappTunModeDesc": "Сетевой стек для TUN: system (системный) или gvisor (пользовательский стек).",
|
||||
"subHappTunType": "Ядро туنнеля (TUN Type)",
|
||||
"subHappTunTypeDesc": "Выбор ядра туннеля: singbox, tun2proxy, default (Happ TUN) или xray.",
|
||||
"subHappTunModeDesc": "Сетевой стек TUN на десктопе: системный (стек ОС) или gVisor (пользовательский стек).",
|
||||
"subHappTunType": "Движок TUN",
|
||||
"subHappTunTypeDesc": "Ядро для TUN-подключения на десктопе: sing-box, tun2proxy, по умолчанию (Happ TUN) или Xray.",
|
||||
"subHappExcludeRoutes": "Исключения маршрутов (CIDR)",
|
||||
"subHappExcludeRoutesDesc": "Список подсетей и IP-адресов через запятую, трафик которых идет мимо туннеля.",
|
||||
"subHappExcludeRoutesDesc": "IP-подсети (CIDR) через запятую (например, 192.168.0.0/16, 10.0.0.0/8), трафик которых идёт мимо VPN-туннеля.",
|
||||
"subHappExcludeApns": "Исключить push-уведомления Apple (APNS)",
|
||||
"subHappExcludeApnsDesc": "Трафик уведомлений Apple направляется напрямую для надежной доставки на iOS.",
|
||||
"subHappColorProfile": "Цветовая тема клиента",
|
||||
"subHappColorProfileDesc": "Тема оформления интерфейса Happ: violet, turquoise, cyberpunk или свой JSON.",
|
||||
"subHappColorProfileDesc": "Своя цветовая тема для iOS в виде JSON-строки или resetcolors для сброса к стандартным цветам.",
|
||||
"subHappPingType": "Метод проверки пинга",
|
||||
"subHappPingTypeDesc": "Тип проверки задержки: via Proxy (GET), via Proxy (HEAD), TCP или ICMP.",
|
||||
"subHappPingTypeDesc": "Способ измерения задержки узлов в Happ: через прокси (GET или HEAD), TCP или ICMP.",
|
||||
"subHappAutoConnect": "Автоподключение при запуске",
|
||||
"subHappAutoConnectDesc": "Автоматически подключаться к серверу при запуске приложения.",
|
||||
"subHappAutoConnectType": "Критерий автоподключения",
|
||||
"subHappAutoConnectTypeDesc": "Сервер для автоподключения: lowestdelay (наименьший пинг), lastused (последний) или random.",
|
||||
"subHappAutoConnectTypeDesc": "Сервер для автоподключения: минимальная задержка, последний использованный или случайный узел.",
|
||||
"subHappPerAppMode": "Прокси для приложений (Android)",
|
||||
"subHappPerAppModeDesc": "Режим раздельного туннелирования: off (выкл), on (только выбранные) или bypass (все кроме выбранных).",
|
||||
"subHappPerAppModeDesc": "Маршрутизация приложений Android: выкл, вкл (прокси только для выбранных) или обход (исключить выбранные).",
|
||||
"subHappPerAppList": "Пакеты приложений Android",
|
||||
"subHappPerAppListDesc": "Список идентификаторов пакетов через запятую (например, org.telegram.messenger).",
|
||||
"subHappPerAppListDesc": "Имена пакетов Android-приложений для включения или исключения через запятую (например, org.telegram.messenger).",
|
||||
"subHappPresetIran": "Обход сайтов Ирана (Iran Bypass)",
|
||||
"subHappPresetChina": "Обход сайтов Китая (China Direct)",
|
||||
"subHappPresetAdblock": "Блокировка рекламы (AdBlock)",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Noises Ayarları",
|
||||
"trustedProxyCidrs": "Güvenilir Proxy CIDR'leri",
|
||||
"trustedProxyCidrsDesc": "İletilen host, proto ve istemci IP başlıklarını ayarlamasına izin verilen IP'ler/CIDR'ler (virgülle ayrılmış).",
|
||||
"realityScanCandidates": "Reality tarama adayları",
|
||||
"realityScanCandidatesDesc": "Arama boşken Hedef Bul için varsayılan olarak kullanılan, virgülle ayrılmış host:port hedefleri (veya CIDR). Sık kullandığınız hedeflere göre özelleştirin.",
|
||||
"ldap": {
|
||||
"enable": "LDAP senkronizasyonunu etkinleştir",
|
||||
"host": "LDAP sunucusu",
|
||||
@@ -1496,56 +1498,56 @@
|
||||
"subExpiredTemplateDesc": "Abonelik süresi dolduğunda sahte yapılandırma için kullanılacak şablon.",
|
||||
"subTrafficDepletedTemplate": "Trafik Tükendi Şablonu",
|
||||
"subTrafficDepletedTemplateDesc": "Abonelik trafik kotası bittiğinde sahte yapılandırma için kullanılacak şablon.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappAutoDetect": "Happ Başlıkları Otomatik Algılama",
|
||||
"subHappAutoDetectDesc": "İstemcinin User-Agent değeri Happ'i gösterdiğinde Happ yönlendirmesini ve başlıklarını otomatik olarak ekler.",
|
||||
"subHappProviderId": "Sağlayıcı Kimliği (Provider ID)",
|
||||
"subHappProviderIdDesc": "Happ istemci yönetimi, uzak yapılandırma bağlama ve geçiş için benzersiz sağlayıcı tanımlayıcısı.",
|
||||
"subHappNewUrl": "Yeni Abonelik URL'si",
|
||||
"subHappNewUrlDesc": "Otomatik istemci geçişi için hedef URL. Ayarlandığında Happ istemcileri bu abonelik bağlantısına geçer.",
|
||||
"subHappFallbackUrl": "Yedek Abonelik URL'si",
|
||||
"subHappFallbackUrlDesc": "Birincil abonelik URL'sine erişilemez hale gelirse Happ'in kullandığı yedek abonelik adresi.",
|
||||
"subHappSubInfoText": "Duyuru Afişi Metni",
|
||||
"subHappSubInfoTextDesc": "Happ istemcisinin üst kısmında görüntülenen özel duyuru afişi (en fazla 200 karakter).",
|
||||
"subHappSubInfoColor": "Afiş Vurgu Rengi",
|
||||
"subHappSubInfoColorDesc": "Duyuru afişinin renk teması.",
|
||||
"subHappSubInfoButtonText": "Afiş Düğmesi Metni",
|
||||
"subHappSubInfoButtonTextDesc": "Duyuru afişinin içinde görüntülenen düğme etiketi (en fazla 25 karakter).",
|
||||
"subHappSubInfoButtonLink": "Afiş Düğmesi Bağlantısı",
|
||||
"subHappSubInfoButtonLinkDesc": "Kullanıcı afişteki eylem düğmesine tıkladığında açılan hedef URL.",
|
||||
"subHappSubExpire": "Süresi Dolmuş Abonelik Afişi",
|
||||
"subHappSubExpireDesc": "Kullanıcının trafiği veya geçerlilik süresi bittiğinde Happ'te süresi dolmuş abonelik afişi gösterir.",
|
||||
"subHappSubExpireButtonLink": "Yenileme Bağlantısı",
|
||||
"subHappSubExpireButtonLinkDesc": "Kullanıcı süresi dolmuş bir abonelikte yenileme düğmesine tıkladığında açılan hedef URL.",
|
||||
"subHappNotificationExpire": "Son Kullanma Bildirimleri",
|
||||
"subHappNotificationExpireDesc": "Happ'in, abonelik süresi dolmadan 3 gün önce kullanıcıya hatırlatma yapmasını sağlar.",
|
||||
"subHappNoLimit": "Sınırsız Mod",
|
||||
"subHappNoLimitDesc": "Daha iyi kararlılık ve performans için Happ'te xray-core RAM sınırını yükseltir (beta).",
|
||||
"subHappAlwaysHwid": "Donanım Kimliğini (HWID) Zorunlu Kıl",
|
||||
"subHappAlwaysHwidDesc": "Kullanıcıların Happ ayarlarında HWID gönderimini kapatmasını engeller.",
|
||||
"subHappTunMode": "TUN Modu",
|
||||
"subHappTunModeDesc": "Masaüstünde TUN'un kullandığı ağ yığını: sistem (işletim sistemi yığını) veya gVisor (kullanıcı alanı yığını).",
|
||||
"subHappTunType": "TUN Motoru",
|
||||
"subHappTunTypeDesc": "Masaüstünde TUN bağlantısı için kullanılan çekirdek: sing-box, tun2proxy, varsayılan (Happ TUN) veya Xray.",
|
||||
"subHappExcludeRoutes": "CIDR Yönlendirmelerini Hariç Tut",
|
||||
"subHappExcludeRoutesDesc": "VPN tünelinin dışında tutulacak, virgülle ayrılmış IP CIDR'leri (ör. 192.168.0.0/16, 10.0.0.0/8).",
|
||||
"subHappExcludeApns": "Apple APNs'i Hariç Tut",
|
||||
"subHappExcludeApnsDesc": "iOS'ta arka plan bildirimlerinin güvenilir çalışması için Apple Push Notification hizmetlerini VPN'in dışında tutar.",
|
||||
"subHappColorProfile": "İstemci Renk Teması",
|
||||
"subHappColorProfileDesc": "JSON dizesi olarak özel iOS renk teması veya varsayılan renkleri geri yüklemek için resetcolors.",
|
||||
"subHappPingType": "Gecikme Ping Yöntemi",
|
||||
"subHappPingTypeDesc": "Happ'in düğüm gecikmesini ölçme yöntemi: proxy üzerinden (GET veya HEAD), TCP veya ICMP.",
|
||||
"subHappAutoConnect": "Açılışta Otomatik Bağlan",
|
||||
"subHappAutoConnectDesc": "Uygulama başladığında Happ'in VPN'e otomatik olarak bağlanmasını sağlar.",
|
||||
"subHappAutoConnectType": "Otomatik Bağlantı Hedefi",
|
||||
"subHappAutoConnectTypeDesc": "Otomatik bağlantı için seçilen sunucu: en düşük gecikme, son kullanılan veya rastgele düğüm.",
|
||||
"subHappPerAppMode": "Android Uygulama Başına Proxy Modu",
|
||||
"subHappPerAppModeDesc": "Android uygulama yönlendirmesini denetler: kapalı, açık (yalnızca listelenen uygulamalar proxy üzerinden) veya atla (listelenen uygulamaları hariç tut).",
|
||||
"subHappPerAppList": "Android Paket Adları",
|
||||
"subHappPerAppListDesc": "Dahil edilecek veya hariç tutulacak Android uygulamalarının virgülle ayrılmış paket adları (ör. org.telegram.messenger).",
|
||||
"subHappPresetIran": "İran'ı Atla",
|
||||
"subHappPresetChina": "Çin Doğrudan",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "Tam Proxy",
|
||||
"subHappPresetOff": "Yönlendirmeyi Devre Dışı Bırak (happ://routing/off)",
|
||||
"subHappColorBlue": "Mavi (Standart / Varsayılan)",
|
||||
"subHappColorGreen": "Yeşil (Başarılı)",
|
||||
@@ -1560,34 +1562,34 @@
|
||||
"subHappPingProxy": "Proxy Üzerinden (GET Gecikmesi)",
|
||||
"subHappPingProxyHead": "Proxy Üzerinden (HEAD Gecikmesi)",
|
||||
"subHappPingTcp": "TCP El Sıkışma Pingi",
|
||||
"subHappPingIcmp": "ICMP Ping",
|
||||
"subHappPingIcmp": "ICMP Pingi",
|
||||
"subHappAutoConnectLowestDelay": "En Düşük Gecikme (En Hızlı Düğüm)",
|
||||
"subHappAutoConnectLastUsed": "Son Kullanılan Düğüm",
|
||||
"subHappAutoConnectRandom": "Rastgele Düğüm",
|
||||
"subHappPerAppOff": "Kapalı",
|
||||
"subHappPerAppOn": "Açık (Yalnızca Listelenen Uygulamalar)",
|
||||
"subHappPerAppOn": "Açık (Yalnızca Listelenen Uygulamalar Proxy Üzerinden)",
|
||||
"subHappPerAppBypass": "Atla (Listelenen Uygulamaları Hariç Tut)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "Happ hazır ayarı yönlendirme kurallarına uygulandı",
|
||||
"subHappPresets": "Yönlendirme Hazır Ayarları",
|
||||
"subHappPresetsDesc": "Happ istemcilerine özel, önceden yapılandırılmış yönlendirme kuralı hazır ayarları.",
|
||||
"subHappVisualBuilder": "Görsel Kural Oluşturucu",
|
||||
"subHappVisualBuilderDesc": "Alan adı ve IP listelerinden özel yönlendirme derin bağlantısı oluşturur.",
|
||||
"subHappBuildDeeplink": "Derin Bağlantı Oluştur",
|
||||
"subHappModalTitle": "Happ Görsel Yönlendirme Kuralı Oluşturucu",
|
||||
"subHappDirectDomains": "Doğrudan Alan Adları (Atla)",
|
||||
"subHappProxyDomains": "Proxy Alan Adları (Tünel)",
|
||||
"subHappBlockDomains": "Engellenen Alan Adları (Reklam/Kötü Amaçlı Yazılım)",
|
||||
"subHappDirectIPs": "Doğrudan IP'ler / CIDR'ler",
|
||||
"subHappProxyIPs": "Proxy IP'ler / CIDR'ler",
|
||||
"subHappBlockIPs": "Engellenen IP'ler / CIDR'ler",
|
||||
"subHappDeeplinkGenerated": "Derin bağlantı oluşturuldu ve yönlendirme kurallarına uygulandı",
|
||||
"subHappGroupLinks": "Abonelik Bağlantıları",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Yönlendirme ve Kurallar",
|
||||
"subHappGroupBanners": "Afişler ve Duyurular",
|
||||
"subHappGroupNetwork": "Ağ ve TUN Motoru",
|
||||
"subHappGroupThemes": "Görünüm ve Tema",
|
||||
"subHappGroupFailover": "Geçiş ve Uygulama Yönetimi",
|
||||
"subHappGroupAndroid": "Android Uygulama Başına Proxy",
|
||||
"discordSettings": "Discord Botu",
|
||||
"discordBotEnable": "Discord Bildirimlerini Etkinleştir",
|
||||
"discordBotEnableDesc": "Sistem ve olay uyarılarını bot aracılığıyla bir Discord kanalına gönderin",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Налаштування Noises",
|
||||
"trustedProxyCidrs": "Довірені CIDR проксі",
|
||||
"trustedProxyCidrsDesc": "IP/CIDR через кому, яким дозволено встановлювати заголовки forwarded host, proto та client IP.",
|
||||
"realityScanCandidates": "Кандидати сканування Reality",
|
||||
"realityScanCandidatesDesc": "Список host:port (або CIDR) через кому — типовий список для «Знайти цілі», коли пошук порожній. Налаштуйте під часто використовувані цілі.",
|
||||
"ldap": {
|
||||
"enable": "Увімкнути LDAP-синхронізацію",
|
||||
"host": "LDAP-хост",
|
||||
@@ -1496,63 +1498,63 @@
|
||||
"subExpiredTemplateDesc": "Шаблон для фіктивного вузла, коли термін дії підписки закінчився.",
|
||||
"subTrafficDepletedTemplate": "Шаблон вичерпання трафіку",
|
||||
"subTrafficDepletedTemplateDesc": "Шаблон для фіктивного вузла, коли ліміт трафіку вичерпано.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappAutoDetect": "Автовизначення заголовків Happ",
|
||||
"subHappAutoDetectDesc": "Автоматично додавати маршрутизацію та заголовки Happ, коли User-Agent клієнта вказує на Happ.",
|
||||
"subHappProviderId": "Ідентифікатор провайдера (Provider ID)",
|
||||
"subHappProviderIdDesc": "Унікальний ідентифікатор провайдера для керування клієнтами Happ, прив'язки віддаленої конфігурації та міграції.",
|
||||
"subHappNewUrl": "Новий URL підписки",
|
||||
"subHappNewUrlDesc": "Цільовий URL для автоматичної міграції клієнтів. Якщо задано, клієнти Happ перейдуть на це посилання підписки.",
|
||||
"subHappFallbackUrl": "Резервний URL підписки",
|
||||
"subHappFallbackUrlDesc": "Резервна адреса підписки, яку Happ використовує, якщо основний URL підписки стане недоступним.",
|
||||
"subHappSubInfoText": "Текст оголошення в банері",
|
||||
"subHappSubInfoTextDesc": "Власний банер з оголошенням угорі клієнта Happ (макс. 200 символів).",
|
||||
"subHappSubInfoColor": "Акцентний колір банера",
|
||||
"subHappSubInfoColorDesc": "Колірне оформлення банера з оголошенням.",
|
||||
"subHappSubInfoButtonText": "Текст кнопки банера",
|
||||
"subHappSubInfoButtonTextDesc": "Напис на кнопці всередині банера з оголошенням (макс. 25 символів).",
|
||||
"subHappSubInfoButtonLink": "Посилання кнопки банера",
|
||||
"subHappSubInfoButtonLinkDesc": "Цільовий URL, який відкривається, коли користувач натискає кнопку дії банера.",
|
||||
"subHappSubExpire": "Банер про закінчення підписки",
|
||||
"subHappSubExpireDesc": "Показувати в Happ банер про закінчення підписки, коли в користувача закінчився трафік або термін дії.",
|
||||
"subHappSubExpireButtonLink": "Посилання для продовження",
|
||||
"subHappSubExpireButtonLinkDesc": "Цільовий URL, який відкривається, коли користувач натискає кнопку продовження простроченої підписки.",
|
||||
"subHappNotificationExpire": "Сповіщення про закінчення терміну",
|
||||
"subHappNotificationExpireDesc": "Доручити Happ нагадати користувачеві за 3 дні до закінчення підписки.",
|
||||
"subHappNoLimit": "Режим без обмежень",
|
||||
"subHappNoLimitDesc": "Підвищити ліміт оперативної пам'яті xray-core у Happ для кращої стабільності та продуктивності (бета).",
|
||||
"subHappAlwaysHwid": "Примусовий апаратний ідентифікатор (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Не дозволяти користувачам вимикати надсилання HWID у налаштуваннях Happ.",
|
||||
"subHappTunMode": "Режим TUN",
|
||||
"subHappTunModeDesc": "Мережевий стек TUN на комп'ютерах: системний (стек ОС) або gVisor (стек у просторі користувача).",
|
||||
"subHappTunType": "Рушій TUN",
|
||||
"subHappTunTypeDesc": "Ядро для TUN-з'єднання на комп'ютерах: sing-box, tun2proxy, за замовчуванням (Happ TUN) або Xray.",
|
||||
"subHappExcludeRoutes": "Виключити маршрути CIDR",
|
||||
"subHappExcludeRoutesDesc": "IP CIDR через кому (напр. 192.168.0.0/16, 10.0.0.0/8), трафік до яких обходить VPN-тунель.",
|
||||
"subHappExcludeApns": "Виключити Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Пропускати служби Apple Push Notification в обхід VPN для надійних фонових сповіщень на iOS.",
|
||||
"subHappColorProfile": "Колірна тема клієнта",
|
||||
"subHappColorProfileDesc": "Власна колірна тема iOS у вигляді рядка JSON або resetcolors для відновлення стандартних кольорів.",
|
||||
"subHappPingType": "Метод вимірювання затримки",
|
||||
"subHappPingTypeDesc": "Як Happ вимірює затримку вузлів: через проксі (GET або HEAD), TCP або ICMP.",
|
||||
"subHappAutoConnect": "Автопідключення під час запуску",
|
||||
"subHappAutoConnectDesc": "Доручити Happ автоматично підключатися до VPN під час запуску програми.",
|
||||
"subHappAutoConnectType": "Ціль автопідключення",
|
||||
"subHappAutoConnectTypeDesc": "Сервер для автопідключення: з найменшою затримкою, останній використаний або випадковий вузол.",
|
||||
"subHappPerAppMode": "Режим проксі для окремих програм Android",
|
||||
"subHappPerAppModeDesc": "Керування маршрутизацією програм Android: вимкнено, увімкнено (проксі лише для вказаних програм) або обхід (виключити вказані програми).",
|
||||
"subHappPerAppList": "Назви пакетів Android",
|
||||
"subHappPerAppListDesc": "Назви пакетів програм Android через кому для включення або виключення (напр. org.telegram.messenger).",
|
||||
"subHappPresetIran": "Обхід для Ірану",
|
||||
"subHappPresetChina": "Китай напряму",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "Усе через проксі",
|
||||
"subHappPresetOff": "Вимкнути маршрутизацію (happ://routing/off)",
|
||||
"subHappColorBlue": "Синій (стандартний / за замовчуванням)",
|
||||
"subHappColorGreen": "Зелений (успіх)",
|
||||
"subHappColorRed": "Червоний (попередження / небезпека)",
|
||||
"subHappTunModeDefault": "За замовчуванням",
|
||||
"subHappTunModeSystem": "Системний (стандартний стек ОС)",
|
||||
"subHappTunModeGvisor": "gVisor (користувацький стек)",
|
||||
"subHappTunModeGvisor": "gVisor (стек у просторі користувача)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "За замовчуванням (Happ TUN)",
|
||||
@@ -1565,29 +1567,29 @@
|
||||
"subHappAutoConnectLastUsed": "Останній використаний вузол",
|
||||
"subHappAutoConnectRandom": "Випадковий вузол",
|
||||
"subHappPerAppOff": "Вимк",
|
||||
"subHappPerAppOn": "Увімк (тільки обрані програми)",
|
||||
"subHappPerAppBypass": "Обхід (виключити обрані програми)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPerAppOn": "Увімк (проксі лише для вказаних програм)",
|
||||
"subHappPerAppBypass": "Обхід (виключити вказані програми)",
|
||||
"subHappPresetApplied": "Шаблон Happ застосовано до правил маршрутизації",
|
||||
"subHappPresets": "Шаблони маршрутизації",
|
||||
"subHappPresetsDesc": "Готові шаблони правил маршрутизації, адаптовані для клієнтів Happ.",
|
||||
"subHappVisualBuilder": "Візуальний генератор правил",
|
||||
"subHappVisualBuilderDesc": "Створіть власний діплінк маршрутизації зі списків доменів та IP.",
|
||||
"subHappBuildDeeplink": "Згенерувати діплінк",
|
||||
"subHappModalTitle": "Візуальний генератор правил маршрутизації Happ",
|
||||
"subHappDirectDomains": "Домени напряму (обхід)",
|
||||
"subHappProxyDomains": "Домени через проксі (тунель)",
|
||||
"subHappBlockDomains": "Заблоковані домени (реклама/шкідливе ПЗ)",
|
||||
"subHappDirectIPs": "IP / CIDR напряму",
|
||||
"subHappProxyIPs": "IP / CIDR через проксі",
|
||||
"subHappBlockIPs": "Заблоковані IP / CIDR",
|
||||
"subHappDeeplinkGenerated": "Діплінк згенеровано та застосовано до правил маршрутизації",
|
||||
"subHappGroupLinks": "Посилання на підписку",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Маршрутизація та правила",
|
||||
"subHappGroupBanners": "Банери та оголошення",
|
||||
"subHappGroupNetwork": "Мережа та рушій TUN",
|
||||
"subHappGroupThemes": "Зовнішній вигляд і тема",
|
||||
"subHappGroupFailover": "Міграція та керування програмою",
|
||||
"subHappGroupAndroid": "Проксі для окремих програм Android",
|
||||
"discordSettings": "Discord бот",
|
||||
"discordBotEnable": "Увімкнути сповіщення Discord",
|
||||
"discordBotEnableDesc": "Надсилати системні сповіщення та події в канал Discord через бота",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Cài đặt Noises",
|
||||
"trustedProxyCidrs": "CIDR proxy tin cậy",
|
||||
"trustedProxyCidrsDesc": "IPs/CIDRs cách nhau bằng dấu phẩy được phép đặt header host, proto và IP client chuyển tiếp.",
|
||||
"realityScanCandidates": "Danh sách ứng viên quét Reality",
|
||||
"realityScanCandidatesDesc": "Danh sách host:port (hoặc CIDR) cách nhau bằng dấu phẩy dùng làm mặc định khi Tìm mục tiêu chạy với ô tìm kiếm trống. Tuỳ chỉnh theo các đích bạn dùng thường xuyên.",
|
||||
"ldap": {
|
||||
"enable": "Bật đồng bộ LDAP",
|
||||
"host": "LDAP host",
|
||||
@@ -1496,56 +1498,56 @@
|
||||
"subExpiredTemplateDesc": "Mẫu cho cấu hình ảo khi tài khoản đăng ký đã hết hạn.",
|
||||
"subTrafficDepletedTemplate": "Mẫu hết dung lượng",
|
||||
"subTrafficDepletedTemplateDesc": "Mẫu cho cấu hình ảo khi tài khoản đăng ký đã dùng hết dung lượng.",
|
||||
"subHappAutoDetect": "Happ Header Auto-Detection",
|
||||
"subHappAutoDetectDesc": "Automatically inject Happ routing and headers when client User-Agent indicates Happ.",
|
||||
"subHappProviderId": "Provider ID",
|
||||
"subHappProviderIdDesc": "Unique provider identifier for Happ client management, remote configuration binding, and migration.",
|
||||
"subHappNewUrl": "New Subscription URL",
|
||||
"subHappNewUrlDesc": "Target URL for automatic client migration. When set, Happ clients will migrate to this subscription link.",
|
||||
"subHappFallbackUrl": "Fallback Subscription URL",
|
||||
"subHappFallbackUrlDesc": "Backup subscription address used by Happ if the primary subscription URL becomes unreachable.",
|
||||
"subHappSubInfoText": "Banner Announcement Text",
|
||||
"subHappSubInfoTextDesc": "Custom announcement banner displayed at the top of the Happ client (max 200 characters).",
|
||||
"subHappSubInfoColor": "Banner Accent Color",
|
||||
"subHappSubInfoColorDesc": "Color theme style for the announcement banner.",
|
||||
"subHappSubInfoButtonText": "Banner Button Text",
|
||||
"subHappSubInfoButtonTextDesc": "Button label displayed inside the announcement banner (max 25 characters).",
|
||||
"subHappSubInfoButtonLink": "Banner Button Link",
|
||||
"subHappSubInfoButtonLinkDesc": "Target URL opened when the user clicks the banner action button.",
|
||||
"subHappSubExpire": "Expired Subscription Banner",
|
||||
"subHappSubExpireDesc": "Show an expired subscription banner in Happ when the user's traffic or validity has ended.",
|
||||
"subHappSubExpireButtonLink": "Renewal Link",
|
||||
"subHappSubExpireButtonLinkDesc": "Target URL opened when the user clicks the renewal button on an expired subscription.",
|
||||
"subHappNotificationExpire": "Expiration Notifications",
|
||||
"subHappNotificationExpireDesc": "Instruct Happ to alert the user in advance before their subscription expires.",
|
||||
"subHappNoLimit": "Bypass Rule Limit",
|
||||
"subHappNoLimitDesc": "Allow routing rule count to exceed default mobile platform limits without truncation.",
|
||||
"subHappAlwaysHwid": "Enforce Hardware ID (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Bind subscription sessions to client device hardware identifier for enhanced security.",
|
||||
"subHappTunMode": "TUN Mode",
|
||||
"subHappTunModeDesc": "TUN virtual network interface routing mode: default, system, or strict.",
|
||||
"subHappTunType": "TUN Engine",
|
||||
"subHappTunTypeDesc": "Underlying network stack implementation for TUN: system, gVisor, or mixed.",
|
||||
"subHappExcludeRoutes": "Exclude CIDR Routes",
|
||||
"subHappExcludeRoutesDesc": "Comma-separated IP CIDRs (e.g. 192.168.0.0/16, 10.0.0.0/8) to bypass the VPN tunnel.",
|
||||
"subHappExcludeApns": "Exclude Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bypass Apple Push Notification services to maintain reliable background notifications on iOS.",
|
||||
"subHappColorProfile": "Client Color Theme",
|
||||
"subHappColorProfileDesc": "Client color theme profile: default, violet, turquoise, cyberpunk, or custom JSON theme.",
|
||||
"subHappPingType": "Latency Ping Method",
|
||||
"subHappPingTypeDesc": "Measurement protocol used by Happ for node latency testing: icmp, tcp, or http.",
|
||||
"subHappAutoConnect": "Auto-Connect on Launch",
|
||||
"subHappAutoConnectDesc": "Instruct Happ to automatically connect to VPN when the application starts.",
|
||||
"subHappAutoConnectType": "Auto-Connect Target",
|
||||
"subHappAutoConnectTypeDesc": "Connection target strategy for auto-connect: fastest node or last used node.",
|
||||
"subHappPerAppMode": "Android Per-App Proxy Mode",
|
||||
"subHappPerAppModeDesc": "Control Android application routing: off, include (proxy only listed apps), or exclude (bypass listed apps).",
|
||||
"subHappPerAppList": "Android Package Names",
|
||||
"subHappPerAppListDesc": "Comma-separated package names of Android applications to include or exclude (e.g. com.telegram.messenger).",
|
||||
"subHappPresetIran": "Iran Bypass",
|
||||
"subHappPresetChina": "China Direct",
|
||||
"subHappAutoDetect": "Tự động nhận diện header Happ",
|
||||
"subHappAutoDetectDesc": "Tự động chèn định tuyến và header Happ khi User-Agent của ứng dụng khách cho thấy đó là Happ.",
|
||||
"subHappProviderId": "ID nhà cung cấp (Provider ID)",
|
||||
"subHappProviderIdDesc": "Mã định danh duy nhất của nhà cung cấp, dùng để quản lý ứng dụng khách Happ, liên kết cấu hình từ xa và di chuyển.",
|
||||
"subHappNewUrl": "URL đăng ký mới",
|
||||
"subHappNewUrlDesc": "URL đích để tự động di chuyển ứng dụng khách. Khi được đặt, ứng dụng Happ sẽ chuyển sang liên kết đăng ký này.",
|
||||
"subHappFallbackUrl": "URL đăng ký dự phòng",
|
||||
"subHappFallbackUrlDesc": "Địa chỉ đăng ký dự phòng mà Happ dùng khi không thể truy cập URL đăng ký chính.",
|
||||
"subHappSubInfoText": "Nội dung biểu ngữ thông báo",
|
||||
"subHappSubInfoTextDesc": "Biểu ngữ thông báo tùy chỉnh hiển thị ở đầu ứng dụng Happ (tối đa 200 ký tự).",
|
||||
"subHappSubInfoColor": "Màu nhấn biểu ngữ",
|
||||
"subHappSubInfoColorDesc": "Kiểu màu chủ đề cho biểu ngữ thông báo.",
|
||||
"subHappSubInfoButtonText": "Chữ trên nút biểu ngữ",
|
||||
"subHappSubInfoButtonTextDesc": "Nhãn nút hiển thị bên trong biểu ngữ thông báo (tối đa 25 ký tự).",
|
||||
"subHappSubInfoButtonLink": "Liên kết nút biểu ngữ",
|
||||
"subHappSubInfoButtonLinkDesc": "URL đích được mở khi người dùng nhấn nút hành động trên biểu ngữ.",
|
||||
"subHappSubExpire": "Biểu ngữ đăng ký hết hạn",
|
||||
"subHappSubExpireDesc": "Hiển thị biểu ngữ đăng ký hết hạn trong Happ khi lưu lượng hoặc thời hạn của người dùng đã hết.",
|
||||
"subHappSubExpireButtonLink": "Liên kết gia hạn",
|
||||
"subHappSubExpireButtonLinkDesc": "URL đích được mở khi người dùng nhấn nút gia hạn trên đăng ký đã hết hạn.",
|
||||
"subHappNotificationExpire": "Thông báo hết hạn",
|
||||
"subHappNotificationExpireDesc": "Yêu cầu Happ nhắc người dùng 3 ngày trước khi đăng ký hết hạn.",
|
||||
"subHappNoLimit": "Chế độ không giới hạn",
|
||||
"subHappNoLimitDesc": "Nâng giới hạn RAM của xray-core trong Happ để tăng độ ổn định và hiệu năng (beta).",
|
||||
"subHappAlwaysHwid": "Bắt buộc ID phần cứng (HWID)",
|
||||
"subHappAlwaysHwidDesc": "Ngăn người dùng tắt việc gửi HWID trong cài đặt Happ.",
|
||||
"subHappTunMode": "Chế độ TUN",
|
||||
"subHappTunModeDesc": "Ngăn xếp mạng mà TUN dùng trên máy tính: hệ thống (ngăn xếp của hệ điều hành) hoặc gVisor (ngăn xếp không gian người dùng).",
|
||||
"subHappTunType": "Lõi TUN",
|
||||
"subHappTunTypeDesc": "Lõi dùng cho kết nối TUN trên máy tính: sing-box, tun2proxy, mặc định (Happ TUN) hoặc Xray.",
|
||||
"subHappExcludeRoutes": "Loại trừ tuyến CIDR",
|
||||
"subHappExcludeRoutesDesc": "Các IP CIDR cách nhau bằng dấu phẩy (ví dụ 192.168.0.0/16, 10.0.0.0/8) sẽ bỏ qua đường hầm VPN.",
|
||||
"subHappExcludeApns": "Loại trừ Apple APNs",
|
||||
"subHappExcludeApnsDesc": "Bỏ qua dịch vụ Apple Push Notification để thông báo nền trên iOS luôn ổn định.",
|
||||
"subHappColorProfile": "Chủ đề màu ứng dụng khách",
|
||||
"subHappColorProfileDesc": "Chủ đề màu iOS tùy chỉnh dưới dạng chuỗi JSON, hoặc resetcolors để khôi phục màu mặc định.",
|
||||
"subHappPingType": "Phương thức đo độ trễ",
|
||||
"subHappPingTypeDesc": "Cách Happ đo độ trễ của nút: qua proxy (GET hoặc HEAD), TCP hoặc ICMP.",
|
||||
"subHappAutoConnect": "Tự động kết nối khi khởi động",
|
||||
"subHappAutoConnectDesc": "Yêu cầu Happ tự động kết nối VPN khi ứng dụng khởi động.",
|
||||
"subHappAutoConnectType": "Mục tiêu tự động kết nối",
|
||||
"subHappAutoConnectTypeDesc": "Máy chủ được chọn khi tự động kết nối: độ trễ thấp nhất, dùng gần nhất hoặc một nút ngẫu nhiên.",
|
||||
"subHappPerAppMode": "Chế độ proxy theo ứng dụng Android",
|
||||
"subHappPerAppModeDesc": "Kiểm soát định tuyến ứng dụng Android: tắt, bật (chỉ proxy ứng dụng trong danh sách) hoặc bỏ qua (loại trừ ứng dụng trong danh sách).",
|
||||
"subHappPerAppList": "Tên gói Android",
|
||||
"subHappPerAppListDesc": "Tên gói ứng dụng Android cách nhau bằng dấu phẩy để bao gồm hoặc loại trừ (ví dụ org.telegram.messenger).",
|
||||
"subHappPresetIran": "Bỏ qua Iran",
|
||||
"subHappPresetChina": "Trực tiếp Trung Quốc",
|
||||
"subHappPresetAdblock": "AdBlock",
|
||||
"subHappPresetGlobal": "Full Proxy",
|
||||
"subHappPresetGlobal": "Proxy toàn bộ",
|
||||
"subHappPresetOff": "Tắt định tuyến (happ://routing/off)",
|
||||
"subHappColorBlue": "Xanh dương (Tiêu chuẩn / Mặc định)",
|
||||
"subHappColorGreen": "Xanh lá (Thành công)",
|
||||
@@ -1567,27 +1569,27 @@
|
||||
"subHappPerAppOff": "Tắt",
|
||||
"subHappPerAppOn": "Bật (Chỉ proxy ứng dụng trong danh sách)",
|
||||
"subHappPerAppBypass": "Bỏ qua (Loại trừ ứng dụng trong danh sách)",
|
||||
"subHappPresetApplied": "Happ preset applied to routing rules",
|
||||
"subHappPresets": "Routing Presets",
|
||||
"subHappPresetsDesc": "Pre-configured routing rule presets tailored for Happ clients.",
|
||||
"subHappVisualBuilder": "Visual Rule Generator",
|
||||
"subHappVisualBuilderDesc": "Create custom routing deeplink from domain and IP lists.",
|
||||
"subHappBuildDeeplink": "Generate Deeplink",
|
||||
"subHappModalTitle": "Happ Visual Routing Rule Generator",
|
||||
"subHappDirectDomains": "Direct Domains (Bypass)",
|
||||
"subHappProxyDomains": "Proxy Domains (Tunnel)",
|
||||
"subHappBlockDomains": "Blocked Domains (Ad/Malware)",
|
||||
"subHappDirectIPs": "Direct IPs / CIDRs",
|
||||
"subHappProxyIPs": "Proxy IPs / CIDRs",
|
||||
"subHappBlockIPs": "Blocked IPs / CIDRs",
|
||||
"subHappDeeplinkGenerated": "Deeplink generated and applied to routing rules",
|
||||
"subHappPresetApplied": "Đã áp dụng mẫu Happ vào quy tắc định tuyến",
|
||||
"subHappPresets": "Mẫu định tuyến",
|
||||
"subHappPresetsDesc": "Các mẫu quy tắc định tuyến cấu hình sẵn dành cho ứng dụng Happ.",
|
||||
"subHappVisualBuilder": "Trình tạo quy tắc trực quan",
|
||||
"subHappVisualBuilderDesc": "Tạo deeplink định tuyến tùy chỉnh từ danh sách tên miền và IP.",
|
||||
"subHappBuildDeeplink": "Tạo deeplink",
|
||||
"subHappModalTitle": "Trình tạo quy tắc định tuyến trực quan cho Happ",
|
||||
"subHappDirectDomains": "Tên miền trực tiếp (bỏ qua)",
|
||||
"subHappProxyDomains": "Tên miền proxy (đường hầm)",
|
||||
"subHappBlockDomains": "Tên miền bị chặn (quảng cáo/mã độc)",
|
||||
"subHappDirectIPs": "IP / CIDR trực tiếp",
|
||||
"subHappProxyIPs": "IP / CIDR proxy",
|
||||
"subHappBlockIPs": "IP / CIDR bị chặn",
|
||||
"subHappDeeplinkGenerated": "Đã tạo deeplink và áp dụng vào quy tắc định tuyến",
|
||||
"subHappGroupLinks": "Liên kết đăng ký",
|
||||
"subHappGroupRouting": "Routing & Rules",
|
||||
"subHappGroupBanners": "Banners & Announcements",
|
||||
"subHappGroupNetwork": "Network & TUN Engine",
|
||||
"subHappGroupThemes": "Appearance & Theme",
|
||||
"subHappGroupFailover": "Migration & App Management",
|
||||
"subHappGroupAndroid": "Android Per-App Proxy",
|
||||
"subHappGroupRouting": "Định tuyến & quy tắc",
|
||||
"subHappGroupBanners": "Biểu ngữ & thông báo",
|
||||
"subHappGroupNetwork": "Mạng & lõi TUN",
|
||||
"subHappGroupThemes": "Giao diện & chủ đề",
|
||||
"subHappGroupFailover": "Di chuyển & quản lý ứng dụng",
|
||||
"subHappGroupAndroid": "Proxy theo ứng dụng Android",
|
||||
"discordSettings": "Bot Discord",
|
||||
"discordBotEnable": "Bật thông báo Discord",
|
||||
"discordBotEnableDesc": "Gửi cảnh báo hệ thống và sự kiện đến kênh Discord qua bot",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Noises 设置",
|
||||
"trustedProxyCidrs": "可信代理 CIDR",
|
||||
"trustedProxyCidrsDesc": "允许设置转发 host、proto 和客户端 IP 标头的 IP/CIDR(逗号分隔)。",
|
||||
"realityScanCandidates": "Reality 扫描候选列表",
|
||||
"realityScanCandidatesDesc": "逗号分隔的 host:port 目标(或 CIDR),作为“查找目标”在搜索框为空时的默认列表。可按常用目标自定义。",
|
||||
"ldap": {
|
||||
"enable": "启用 LDAP 同步",
|
||||
"host": "LDAP host",
|
||||
@@ -1513,35 +1515,35 @@
|
||||
"subHappSubInfoButtonLink": "横幅按钮链接",
|
||||
"subHappSubInfoButtonLinkDesc": "点击横幅按钮时打开的目标网址或 DeepLink。",
|
||||
"subHappSubExpire": "订阅到期提醒横幅",
|
||||
"subHappSubExpireDesc": "当用户订阅即将到期或已过期时在 Happ 中显示续费提示横幅。",
|
||||
"subHappSubExpireDesc": "当用户流量用尽或订阅已过期时,在 Happ 中显示订阅过期横幅。",
|
||||
"subHappSubExpireButtonLink": "续费链接",
|
||||
"subHappSubExpireButtonLinkDesc": "到期横幅中点击「续费」按钮时跳转的支付或购买页面。",
|
||||
"subHappNotificationExpire": "订阅到期推送提醒",
|
||||
"subHappNotificationExpireDesc": "在订阅到期前 3 天向用户发送每日一次的客户端到期提醒。",
|
||||
"subHappNoLimit": "解除规则数量限制 (No Limit)",
|
||||
"subHappNoLimitDesc": "提升内核内存上限,允许应用超出移动端默认数量的复杂路由规则。",
|
||||
"subHappNotificationExpireDesc": "让 Happ 在订阅到期前 3 天提醒用户。",
|
||||
"subHappNoLimit": "No-Limit 模式",
|
||||
"subHappNoLimitDesc": "提高 Happ 中 xray-core 的内存上限,以提升稳定性与性能(测试版)。",
|
||||
"subHappAlwaysHwid": "强制绑定硬件标识 (HWID)",
|
||||
"subHappAlwaysHwidDesc": "禁止客户端关闭硬件标识符上报,强化多设备防盗刷安全。",
|
||||
"subHappAlwaysHwidDesc": "禁止用户在 Happ 设置中关闭 HWID 上报。",
|
||||
"subHappTunMode": "TUN 运行模式",
|
||||
"subHappTunModeDesc": "TUN 网络接口栈:system (系统网络栈) 或 gvisor (用户态协议栈)。",
|
||||
"subHappTunModeDesc": "桌面端 TUN 使用的网络栈:system (系统网络栈) 或 gVisor (用户态协议栈)。",
|
||||
"subHappTunType": "TUN 隧道内核 (TUN Type)",
|
||||
"subHappTunTypeDesc": "隧道实现引擎:singbox、tun2proxy、default (Happ 原生) 或 xray。",
|
||||
"subHappTunTypeDesc": "桌面端 TUN 连接使用的内核:sing-box、tun2proxy、默认 (Happ TUN) 或 Xray。",
|
||||
"subHappExcludeRoutes": "排除直连网段 (CIDR)",
|
||||
"subHappExcludeRoutesDesc": "逗号分隔的 IP/CIDR 地址段,此网段流量不走 VPN 隧道直连。",
|
||||
"subHappExcludeRoutesDesc": "逗号分隔的 IP/CIDR 网段(例如 192.168.0.0/16, 10.0.0.0/8),这些网段的流量不经过 VPN 隧道。",
|
||||
"subHappExcludeApns": "排除苹果推送服务 (APNs)",
|
||||
"subHappExcludeApnsDesc": "让 Apple APNs 流量直连,保障 iOS 设备在后台稳定接收推送通知。",
|
||||
"subHappColorProfile": "客户端外观主题",
|
||||
"subHappColorProfileDesc": "Happ 界面配色主题:violet、turquoise、cyberpunk 或自定义 JSON 调色板。",
|
||||
"subHappColorProfileDesc": "以 JSON 字符串自定义 iOS 配色主题,或填写 resetcolors 恢复默认颜色。",
|
||||
"subHappPingType": "延迟测速协议",
|
||||
"subHappPingTypeDesc": "节点测速协议:via Proxy (GET)、via Proxy (HEAD)、TCP 握手或 ICMP。",
|
||||
"subHappPingTypeDesc": "Happ 测量节点延迟的方式:经由代理 (GET 或 HEAD)、TCP 或 ICMP。",
|
||||
"subHappAutoConnect": "启动时自动连接",
|
||||
"subHappAutoConnectDesc": "Happ 客户端打开时自动连接代理节点。",
|
||||
"subHappAutoConnectType": "自动连接策略",
|
||||
"subHappAutoConnectTypeDesc": "连接目标选择:lowestdelay (最低延迟)、lastused (上次使用) 或 random。",
|
||||
"subHappAutoConnectTypeDesc": "自动连接选择的节点:最低延迟、上次使用或随机节点。",
|
||||
"subHappPerAppMode": "Android 分应用代理",
|
||||
"subHappPerAppModeDesc": "分应用代理模式:off (关闭)、on (仅代理选定应用) 或 bypass (绕过选定应用)。",
|
||||
"subHappPerAppModeDesc": "Android 分应用路由:关闭、开启 (仅代理列表中的应用) 或绕过 (排除列表中的应用)。",
|
||||
"subHappPerAppList": "Android 应用包名列表",
|
||||
"subHappPerAppListDesc": "以逗号分隔的应用包名(例如 org.telegram.messenger, com.google.android.youtube)。",
|
||||
"subHappPerAppListDesc": "以逗号分隔的 Android 应用包名,用于包含或排除(例如 org.telegram.messenger)。",
|
||||
"subHappPresetIran": "伊朗直连规则 (Iran Bypass)",
|
||||
"subHappPresetChina": "大陆直连规则 (China Direct)",
|
||||
"subHappPresetAdblock": "广告拦截规则 (AdBlock)",
|
||||
|
||||
@@ -1253,6 +1253,8 @@
|
||||
"noisesSett": "Noises 設定",
|
||||
"trustedProxyCidrs": "信任代理 CIDR",
|
||||
"trustedProxyCidrsDesc": "允許設定轉發 host、proto 與客戶端 IP 標頭的 IP/CIDR(逗號分隔)。",
|
||||
"realityScanCandidates": "Reality 掃描候選清單",
|
||||
"realityScanCandidatesDesc": "以逗號分隔的 host:port 目標(或 CIDR),作為「尋找目標」在搜尋框為空時的預設清單。可依常用目標自訂。",
|
||||
"ldap": {
|
||||
"enable": "啟用 LDAP 同步",
|
||||
"host": "LDAP host",
|
||||
@@ -1496,98 +1498,98 @@
|
||||
"subExpiredTemplateDesc": "使用者訂閱過期時提示配置的備註範本。",
|
||||
"subTrafficDepletedTemplate": "流量耗盡範本",
|
||||
"subTrafficDepletedTemplateDesc": "使用者訂閱流量用盡時提示配置的備註範本。",
|
||||
"subHappAutoDetect": "Happ 客户端请求头自动识别",
|
||||
"subHappAutoDetectDesc": "当客户端 User-Agent 包含 Happ 时自动注入专属路由规则与响应头。",
|
||||
"subHappProviderId": "服务提供商标识 (Provider ID)",
|
||||
"subHappProviderIdDesc": "Happ 客户端管理、远程配置绑定与订阅迁移所需的唯一标识符。",
|
||||
"subHappNewUrl": "新订阅地址 (迁移)",
|
||||
"subHappNewUrlDesc": "自动迁移的新订阅 URL。客户端收到后会自动将订阅地址切换为此链接。",
|
||||
"subHappFallbackUrl": "备用订阅地址 (Fallback)",
|
||||
"subHappFallbackUrlDesc": "主订阅服务器不可用时 Happ 自动切换的备份订阅链接。",
|
||||
"subHappSubInfoText": "横幅公告文本",
|
||||
"subHappSubInfoTextDesc": "显示在 Happ 客户端顶部的自定义通知横幅(最多 200 字符)。",
|
||||
"subHappSubInfoColor": "横幅配色主题",
|
||||
"subHappSubInfoColorDesc": "横幅主题颜色:blue (默认蓝色)、green (绿色)、red (红色警告)。",
|
||||
"subHappSubInfoButtonText": "横幅按钮文字",
|
||||
"subHappSubInfoButtonTextDesc": "通知横幅内的操作按钮标题(最多 25 字符)。",
|
||||
"subHappSubInfoButtonLink": "横幅按钮链接",
|
||||
"subHappSubInfoButtonLinkDesc": "点击横幅按钮时打开的目标网址或 DeepLink。",
|
||||
"subHappSubExpire": "订阅到期提醒横幅",
|
||||
"subHappSubExpireDesc": "当用户订阅即将到期或已过期时在 Happ 中显示续费提示横幅。",
|
||||
"subHappSubExpireButtonLink": "续费链接",
|
||||
"subHappSubExpireButtonLinkDesc": "到期横幅中点击「续费」按钮时跳转的支付或购买页面。",
|
||||
"subHappNotificationExpire": "订阅到期推送提醒",
|
||||
"subHappNotificationExpireDesc": "在订阅到期前 3 天向用户发送每日一次的客户端到期提醒。",
|
||||
"subHappNoLimit": "解除规则数量限制 (No Limit)",
|
||||
"subHappNoLimitDesc": "提升内核内存上限,允许应用超出移动端默认数量的复杂路由规则。",
|
||||
"subHappAlwaysHwid": "强制绑定硬件标识 (HWID)",
|
||||
"subHappAlwaysHwidDesc": "禁止客户端关闭硬件标识符上报,强化多设备防盗刷安全。",
|
||||
"subHappTunMode": "TUN 运行模式",
|
||||
"subHappTunModeDesc": "TUN 网络接口栈:system (系统网络栈) 或 gvisor (用户态协议栈)。",
|
||||
"subHappTunType": "TUN 隧道内核 (TUN Type)",
|
||||
"subHappTunTypeDesc": "隧道实现引擎:singbox、tun2proxy、default (Happ 原生) 或 xray。",
|
||||
"subHappExcludeRoutes": "排除直连网段 (CIDR)",
|
||||
"subHappExcludeRoutesDesc": "逗号分隔的 IP/CIDR 地址段,此网段流量不走 VPN 隧道直连。",
|
||||
"subHappExcludeApns": "排除苹果推送服务 (APNs)",
|
||||
"subHappExcludeApnsDesc": "让 Apple APNs 流量直连,保障 iOS 设备在后台稳定接收推送通知。",
|
||||
"subHappColorProfile": "客户端外观主题",
|
||||
"subHappColorProfileDesc": "Happ 界面配色主题:violet、turquoise、cyberpunk 或自定义 JSON 调色板。",
|
||||
"subHappPingType": "延迟测速协议",
|
||||
"subHappPingTypeDesc": "节点测速协议:via Proxy (GET)、via Proxy (HEAD)、TCP 握手或 ICMP。",
|
||||
"subHappAutoConnect": "启动时自动连接",
|
||||
"subHappAutoConnectDesc": "Happ 客户端打开时自动连接代理节点。",
|
||||
"subHappAutoConnectType": "自动连接策略",
|
||||
"subHappAutoConnectTypeDesc": "连接目标选择:lowestdelay (最低延迟)、lastused (上次使用) 或 random。",
|
||||
"subHappPerAppMode": "Android 分应用代理",
|
||||
"subHappPerAppModeDesc": "分应用代理模式:off (关闭)、on (仅代理选定应用) 或 bypass (绕过选定应用)。",
|
||||
"subHappPerAppList": "Android 应用包名列表",
|
||||
"subHappPerAppListDesc": "以逗号分隔的应用包名(例如 org.telegram.messenger, com.google.android.youtube)。",
|
||||
"subHappPresetIran": "伊朗直连规则 (Iran Bypass)",
|
||||
"subHappPresetChina": "大陆直连规则 (China Direct)",
|
||||
"subHappPresetAdblock": "广告拦截规则 (AdBlock)",
|
||||
"subHappPresetGlobal": "全局代理规则 (Global)",
|
||||
"subHappPresetOff": "停用路由 (happ://routing/off)",
|
||||
"subHappColorBlue": "藍色 (標準 / 預設)",
|
||||
"subHappColorGreen": "綠色 (成功)",
|
||||
"subHappColorRed": "紅色 (警告 / 危險)",
|
||||
"subHappAutoDetect": "Happ 標頭自動識別",
|
||||
"subHappAutoDetectDesc": "當用戶端 User-Agent 顯示為 Happ 時,自動注入 Happ 路由與標頭。",
|
||||
"subHappProviderId": "提供者 ID",
|
||||
"subHappProviderIdDesc": "用於 Happ 用戶端管理、遠端設定綁定與遷移的唯一提供者識別碼。",
|
||||
"subHappNewUrl": "新訂閱 URL",
|
||||
"subHappNewUrlDesc": "用戶端自動遷移的目標 URL。設定後,Happ 用戶端將遷移至此訂閱連結。",
|
||||
"subHappFallbackUrl": "備用訂閱 URL",
|
||||
"subHappFallbackUrlDesc": "主要訂閱 URL 無法連線時,Happ 使用的備用訂閱位址。",
|
||||
"subHappSubInfoText": "橫幅公告文字",
|
||||
"subHappSubInfoTextDesc": "顯示在 Happ 用戶端頂部的自訂公告橫幅(最多 200 個字元)。",
|
||||
"subHappSubInfoColor": "橫幅強調色",
|
||||
"subHappSubInfoColorDesc": "公告橫幅的顏色主題樣式。",
|
||||
"subHappSubInfoButtonText": "橫幅按鈕文字",
|
||||
"subHappSubInfoButtonTextDesc": "公告橫幅內顯示的按鈕文字(最多 25 個字元)。",
|
||||
"subHappSubInfoButtonLink": "橫幅按鈕連結",
|
||||
"subHappSubInfoButtonLinkDesc": "使用者點擊橫幅操作按鈕時開啟的目標 URL。",
|
||||
"subHappSubExpire": "訂閱過期橫幅",
|
||||
"subHappSubExpireDesc": "當使用者的流量用盡或有效期結束時,在 Happ 中顯示訂閱過期橫幅。",
|
||||
"subHappSubExpireButtonLink": "續訂連結",
|
||||
"subHappSubExpireButtonLinkDesc": "使用者在已過期訂閱上點擊續訂按鈕時開啟的目標 URL。",
|
||||
"subHappNotificationExpire": "到期通知",
|
||||
"subHappNotificationExpireDesc": "指示 Happ 在訂閱到期前 3 天提醒使用者。",
|
||||
"subHappNoLimit": "無限制模式",
|
||||
"subHappNoLimitDesc": "提高 Happ 中 xray-core 的記憶體上限,以提升穩定性與效能(測試版)。",
|
||||
"subHappAlwaysHwid": "強制啟用硬體識別碼(HWID)",
|
||||
"subHappAlwaysHwidDesc": "禁止使用者在 Happ 設定中關閉 HWID 傳送。",
|
||||
"subHappTunMode": "TUN 模式",
|
||||
"subHappTunModeDesc": "桌面版 TUN 使用的網路堆疊:系統(作業系統堆疊)或 gVisor(使用者空間堆疊)。",
|
||||
"subHappTunType": "TUN 引擎",
|
||||
"subHappTunTypeDesc": "桌面版 TUN 連線使用的核心:sing-box、tun2proxy、預設(Happ TUN)或 Xray。",
|
||||
"subHappExcludeRoutes": "排除 CIDR 路由",
|
||||
"subHappExcludeRoutesDesc": "以逗號分隔、要繞過 VPN 通道的 IP CIDR(例如 192.168.0.0/16, 10.0.0.0/8)。",
|
||||
"subHappExcludeApns": "排除 Apple APNs",
|
||||
"subHappExcludeApnsDesc": "讓 Apple 推播通知服務繞過 VPN,確保 iOS 在背景穩定接收通知。",
|
||||
"subHappColorProfile": "用戶端顏色主題",
|
||||
"subHappColorProfileDesc": "以 JSON 字串自訂 iOS 顏色主題,或填入 resetcolors 以還原預設顏色。",
|
||||
"subHappPingType": "延遲測試方式",
|
||||
"subHappPingTypeDesc": "Happ 測量節點延遲的方式:經由代理(GET 或 HEAD)、TCP 或 ICMP。",
|
||||
"subHappAutoConnect": "啟動時自動連線",
|
||||
"subHappAutoConnectDesc": "指示 Happ 在應用程式啟動時自動連線至 VPN。",
|
||||
"subHappAutoConnectType": "自動連線目標",
|
||||
"subHappAutoConnectTypeDesc": "自動連線時選擇的伺服器:最低延遲、最後使用或隨機節點。",
|
||||
"subHappPerAppMode": "Android 個別應用程式代理模式",
|
||||
"subHappPerAppModeDesc": "控制 Android 應用程式路由:關閉、開啟(僅代理清單中的應用程式)或繞過(排除清單中的應用程式)。",
|
||||
"subHappPerAppList": "Android 套件名稱",
|
||||
"subHappPerAppListDesc": "要納入或排除的 Android 應用程式套件名稱,以逗號分隔(例如 org.telegram.messenger)。",
|
||||
"subHappPresetIran": "伊朗直連",
|
||||
"subHappPresetChina": "中國直連",
|
||||
"subHappPresetAdblock": "廣告封鎖(AdBlock)",
|
||||
"subHappPresetGlobal": "全域代理",
|
||||
"subHappPresetOff": "停用路由(happ://routing/off)",
|
||||
"subHappColorBlue": "藍色(標準 / 預設)",
|
||||
"subHappColorGreen": "綠色(成功)",
|
||||
"subHappColorRed": "紅色(警告 / 危險)",
|
||||
"subHappTunModeDefault": "預設",
|
||||
"subHappTunModeSystem": "系統 (標準作業系統協議棧)",
|
||||
"subHappTunModeGvisor": "gVisor (使用者空間協議棧)",
|
||||
"subHappTunModeSystem": "系統(標準作業系統堆疊)",
|
||||
"subHappTunModeGvisor": "gVisor(使用者空間堆疊)",
|
||||
"subHappTunTypeSingbox": "sing-box",
|
||||
"subHappTunTypeTun2proxy": "tun2proxy",
|
||||
"subHappTunTypeDefault": "預設 (Happ TUN)",
|
||||
"subHappTunTypeDefault": "預設(Happ TUN)",
|
||||
"subHappTunTypeXray": "Xray TUN",
|
||||
"subHappPingProxy": "經由代理 (GET 延遲)",
|
||||
"subHappPingProxyHead": "經由代理 (HEAD 延遲)",
|
||||
"subHappPingTcp": "TCP 握手 Ping",
|
||||
"subHappPingProxy": "經由代理(GET 延遲)",
|
||||
"subHappPingProxyHead": "經由代理(HEAD 延遲)",
|
||||
"subHappPingTcp": "TCP 交握 Ping",
|
||||
"subHappPingIcmp": "ICMP Ping",
|
||||
"subHappAutoConnectLowestDelay": "最低延遲 (最快節點)",
|
||||
"subHappAutoConnectLowestDelay": "最低延遲(最快節點)",
|
||||
"subHappAutoConnectLastUsed": "最後使用的節點",
|
||||
"subHappAutoConnectRandom": "隨機節點",
|
||||
"subHappPerAppOff": "關閉",
|
||||
"subHappPerAppOn": "開啟 (僅代理列表中的應用)",
|
||||
"subHappPerAppBypass": "繞過 (排除列表中的應用)",
|
||||
"subHappPresetApplied": "Happ 预设规则已应用",
|
||||
"subHappPresets": "预设路由规则",
|
||||
"subHappPresetsDesc": "专为 Happ 客户端预设调优的常用分流规则。",
|
||||
"subHappVisualBuilder": "可视化规则生成器",
|
||||
"subHappVisualBuilderDesc": "通过域名与 IP 列表快速生成自定义 Happ 路由 DeepLink。",
|
||||
"subHappBuildDeeplink": "生成 DeepLink",
|
||||
"subHappModalTitle": "Happ 路由规则可视化生成器",
|
||||
"subHappDirectDomains": "直连域名 (Direct)",
|
||||
"subHappProxyDomains": "代理域名 (Proxy)",
|
||||
"subHappBlockDomains": "阻止域名 (Block)",
|
||||
"subHappDirectIPs": "直连 IP / CIDR",
|
||||
"subHappPerAppOn": "開啟(僅代理清單中的應用程式)",
|
||||
"subHappPerAppBypass": "繞過(排除清單中的應用程式)",
|
||||
"subHappPresetApplied": "已將 Happ 範本套用至路由規則",
|
||||
"subHappPresets": "路由範本",
|
||||
"subHappPresetsDesc": "為 Happ 用戶端量身打造的預先設定路由規則範本。",
|
||||
"subHappVisualBuilder": "視覺化規則產生器",
|
||||
"subHappVisualBuilderDesc": "從網域與 IP 清單建立自訂路由深層連結。",
|
||||
"subHappBuildDeeplink": "產生深層連結",
|
||||
"subHappModalTitle": "Happ 視覺化路由規則產生器",
|
||||
"subHappDirectDomains": "直連網域(繞過)",
|
||||
"subHappProxyDomains": "代理網域(通道)",
|
||||
"subHappBlockDomains": "封鎖網域(廣告 / 惡意軟體)",
|
||||
"subHappDirectIPs": "直連 IP / CIDR",
|
||||
"subHappProxyIPs": "代理 IP / CIDR",
|
||||
"subHappBlockIPs": "阻止 IP / CIDR",
|
||||
"subHappDeeplinkGenerated": "DeepLink 已生成并填入路由规则",
|
||||
"subHappBlockIPs": "封鎖 IP / CIDR",
|
||||
"subHappDeeplinkGenerated": "已產生深層連結並套用至路由規則",
|
||||
"subHappGroupLinks": "訂閱連結",
|
||||
"subHappGroupRouting": "路由分流与规则",
|
||||
"subHappGroupBanners": "横幅公告与通知",
|
||||
"subHappGroupNetwork": "网络与 TUN 引擎",
|
||||
"subHappGroupThemes": "界面与主题外观",
|
||||
"subHappGroupFailover": "迁移与客户端管理",
|
||||
"subHappGroupAndroid": "Android 分应用代理",
|
||||
"subHappGroupRouting": "路由與規則",
|
||||
"subHappGroupBanners": "橫幅與公告",
|
||||
"subHappGroupNetwork": "網路與 TUN 引擎",
|
||||
"subHappGroupThemes": "外觀與主題",
|
||||
"subHappGroupFailover": "遷移與應用程式管理",
|
||||
"subHappGroupAndroid": "Android 個別應用程式代理",
|
||||
"discordSettings": "Discord 機器人",
|
||||
"discordBotEnable": "啟用 Discord 通知",
|
||||
"discordBotEnableDesc": "透過機器人向 Discord 頻道發送系統與事件警報",
|
||||
|
||||
Reference in New Issue
Block a user