6f232d4043
ci-pangolin / Redline Scan — 脱敏 (UI 文案) (push) Successful in 25s
ci-pangolin / Cleartext Scan — Android 禁明文 (push) Successful in 19s
ci-pangolin / Portable SQL — 可移植性 (mysql/sqlite) (push) Successful in 18s
ci-pangolin / Golden — 视觉回归 (全量:components/auth/desktop/tablet) (push) Failing after 13m6s
ci-pangolin / Go — integration (mysql/redis testcontainers) (push) Failing after 13m16s
ci-pangolin / E2E Smoke — L4 进程级端到端 (push) Failing after 13m25s
ci-pangolin / Go — build + test (push) Failing after 13m35s
ci-pangolin / DS-flow — 原型/跨端同源/代码色单源闸 (push) Failing after 13m45s
ci-pangolin / Codegen Drift — token 生成物未漂移 (push) Failing after 13m54s
ci-pangolin / Flutter — analyze + test (push) Failing after 14m5s
ci-pangolin / OpenAPI Sync Check (push) Failing after 14m16s
ci-pangolin / Lint — shellcheck (push) Failing after 14m27s
分支审核发现两处 Important,合并前修复。
① [安全] direct 的 ip_cidr 用户规则可自伤式旁路整条隧道:
Validate 原先只校 CIDR 语法。用户提交 ip_cidr=0.0.0.0/0 action=direct
(或 172.16.0.0/12,含隧道 DNS 172.19.0.2)会并入 TUN 入站
route_exclude_address(OS/auto_route 层,位于系统强制层之下),被排除的
流量根本不进 sing-box → hijack-dns 与整条隧道被静默旁路,违反「系统层
用户不可越」铁律。
- Validate: direct 的 ip_cidr 拒绝 catch-all(/0)及与保留段 172.16.0.0/12
重叠(写入闸)。
- clientconfig 渲染层:新增 routing.SafeToExclude 守卫,只有安全的 direct
ip_cidr 才并入 route_exclude_address(纵深防护,兜底写入闸之前的历史坏行)。
- 测试 TestValidateDirectIPCIDRReservedGuard 钉死:拒 catch-all/隧道段重叠、
放行 proxy catch-all 与不重叠 direct。
② [健壮性] 客户端保存失败静默回滚 + 抛未捕获异步异常 + 对话框无字段校验:
_persist 失败会 rethrow(约定调用方 catch),但屏幕层所有回调
(setMode/setBuiltin/addRule/removeRule/reorder/resetToDefault)均未 catch,
规则闪现即消失、无提示,且 rethrow 变 zone 未处理异常。
- 新增 _guardSave 守卫:await + 失败弹 SnackBar(AuthApiException 显服务端
双语文案含校验错,其余回退通用「保存失败」),包裹全部变更类回调。
- 添加规则对话框:_valueError 字段级预校验(ip_cidr 用 InternetAddress
校验、geo 白名单仅 cn),非法即禁用保存并内联红字提示;语义级(保留段)
仍由服务端权威判定经 SnackBar 呈现。
- l10n 单源新增 routingSaveFailed / routingRuleValueInvalid(6 语),regen。
go test ./... 全绿;flutter analyze 无 error;flutter test 265 全过无 golden 回归;
codegen 幂等、原型 i18n 无漂移。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A79VtQA1BwTuQN1ThpvYpo
2539 lines
83 KiB
JSON
2539 lines
83 KiB
JSON
{
|
||
"_note": "l10n 单源(唯一真相源)。design/codegen/gen_l10n_dart.mjs 生成 client/lib/l10n/strings_*.dart;原型 serve.mjs 读同源。勿手改生成物;abstract 声明由 app_text.dart 手写(编译器强制 concrete⊆abstract)。",
|
||
"getters": {
|
||
"brand": {
|
||
"zh": "穿山甲",
|
||
"en": "Pangolin",
|
||
"ja": "Pangolin",
|
||
"ko": "Pangolin",
|
||
"ru": "Pangolin",
|
||
"es": "Pangolin"
|
||
},
|
||
"online": {
|
||
"zh": "● 在线",
|
||
"en": "● Online",
|
||
"ja": "● オンライン",
|
||
"ko": "● 온라인",
|
||
"ru": "● В сети",
|
||
"es": "● En línea"
|
||
},
|
||
"offline": {
|
||
"zh": "○ 离线",
|
||
"en": "○ Offline",
|
||
"ja": "○ オフライン",
|
||
"ko": "○ 오프라인",
|
||
"ru": "○ Не в сети",
|
||
"es": "○ Desconectado"
|
||
},
|
||
"capOff": {
|
||
"zh": "未连接 · 轻点连接",
|
||
"en": "Tap to connect",
|
||
"ja": "タップして接続",
|
||
"ko": "탭하여 연결",
|
||
"ru": "Нажмите для подключения",
|
||
"es": "Toca para conectar"
|
||
},
|
||
"capConnecting": {
|
||
"zh": "连接中…",
|
||
"en": "Connecting…",
|
||
"ja": "接続中…",
|
||
"ko": "연결 중…",
|
||
"ru": "Подключение…",
|
||
"es": "Conectando…"
|
||
},
|
||
"capOn": {
|
||
"zh": "已连接 · 网络已加密",
|
||
"en": "Connected · Encrypted",
|
||
"ja": "接続済み · 暗号化",
|
||
"ko": "연결됨 · 암호화",
|
||
"ru": "Подключено · Шифрование",
|
||
"es": "Conectado · Cifrado"
|
||
},
|
||
"connectNow": {
|
||
"zh": "点击连接",
|
||
"en": "CONNECT",
|
||
"ja": "接続",
|
||
"ko": "연결",
|
||
"ru": "ПОДКЛЮЧИТЬ",
|
||
"es": "CONECTAR"
|
||
},
|
||
"secure": {
|
||
"zh": "已加密",
|
||
"en": "SECURE",
|
||
"ja": "セキュア",
|
||
"ko": "보안",
|
||
"ru": "ЗАЩИЩЕНО",
|
||
"es": "SEGURO"
|
||
},
|
||
"tabConnect": {
|
||
"zh": "连接",
|
||
"en": "Connect",
|
||
"ja": "接続",
|
||
"ko": "연결",
|
||
"ru": "Подключение",
|
||
"es": "Conectar"
|
||
},
|
||
"tabServers": {
|
||
"zh": "节点",
|
||
"en": "Servers",
|
||
"ja": "サーバー",
|
||
"ko": "서버",
|
||
"ru": "Серверы",
|
||
"es": "Servidores"
|
||
},
|
||
"tabStats": {
|
||
"zh": "统计",
|
||
"en": "Stats",
|
||
"ja": "統計",
|
||
"ko": "통계",
|
||
"ru": "Статистика",
|
||
"es": "Estadísticas"
|
||
},
|
||
"tabMe": {
|
||
"zh": "我的",
|
||
"en": "Account",
|
||
"ja": "アカウント",
|
||
"ko": "계정",
|
||
"ru": "Аккаунт",
|
||
"es": "Cuenta"
|
||
},
|
||
"currentNode": {
|
||
"zh": "当前节点",
|
||
"en": "Current node",
|
||
"ja": "現在のノード",
|
||
"ko": "현재 노드",
|
||
"ru": "Текущий узел",
|
||
"es": "Nodo actual"
|
||
},
|
||
"download": {
|
||
"zh": "下载",
|
||
"en": "Down",
|
||
"ja": "下り",
|
||
"ko": "다운",
|
||
"ru": "Приём",
|
||
"es": "Bajada"
|
||
},
|
||
"upload": {
|
||
"zh": "上传",
|
||
"en": "Up",
|
||
"ja": "上り",
|
||
"ko": "업",
|
||
"ru": "Отдача",
|
||
"es": "Subida"
|
||
},
|
||
"latency": {
|
||
"zh": "延迟",
|
||
"en": "Ping",
|
||
"ja": "Ping",
|
||
"ko": "지연",
|
||
"ru": "Пинг",
|
||
"es": "Ping"
|
||
},
|
||
"quotaToday": {
|
||
"zh": "今日剩余",
|
||
"en": "Left today",
|
||
"ja": "本日の残り",
|
||
"ko": "오늘 남은 시간",
|
||
"ru": "Осталось сегодня",
|
||
"es": "Restante hoy"
|
||
},
|
||
"minutes": {
|
||
"zh": "分钟",
|
||
"en": "min",
|
||
"ja": "分",
|
||
"ko": "분",
|
||
"ru": "мин",
|
||
"es": "min"
|
||
},
|
||
"quotaFree": {
|
||
"zh": "免费版 · 每日 10 分钟",
|
||
"en": "Free · 10 min/day",
|
||
"ja": "無料 · 1日10分",
|
||
"ko": "무료 · 하루 10분",
|
||
"ru": "Бесплатно · 10 мин/день",
|
||
"es": "Gratis · 10 min/día"
|
||
},
|
||
"planFreeTag": {
|
||
"zh": "免费版",
|
||
"en": "Free",
|
||
"ja": "無料",
|
||
"ko": "무료",
|
||
"ru": "Бесплатно",
|
||
"es": "Gratis"
|
||
},
|
||
"watchAd": {
|
||
"zh": "看广告开始使用",
|
||
"en": "Watch ad to start",
|
||
"ja": "広告を見て開始",
|
||
"ko": "광고 시청 후 시작",
|
||
"ru": "Смотрите рекламу, чтобы начать",
|
||
"es": "Mira un anuncio para empezar"
|
||
},
|
||
"adUnlocked": {
|
||
"zh": "已解锁 · 今日可用",
|
||
"en": "Unlocked for today",
|
||
"ja": "本日は利用可能",
|
||
"ko": "오늘 사용 가능",
|
||
"ru": "Открыто на сегодня",
|
||
"es": "Desbloqueado por hoy"
|
||
},
|
||
"quotaLeftLabel": {
|
||
"zh": "剩余",
|
||
"en": "Left",
|
||
"ja": "残り",
|
||
"ko": "남음",
|
||
"ru": "Осталось",
|
||
"es": "Restante"
|
||
},
|
||
"quotaUsedUp": {
|
||
"zh": "今日免费时长已用完",
|
||
"en": "Daily free time used up",
|
||
"ja": "本日の無料時間を使い切りました",
|
||
"ko": "오늘 무료 시간을 모두 사용함",
|
||
"ru": "Дневной бесплатный лимит исчерпан",
|
||
"es": "Tiempo gratis diario agotado"
|
||
},
|
||
"watchAdMore": {
|
||
"zh": "看广告加时",
|
||
"en": "Watch ad for more time",
|
||
"ja": "広告を見て時間を追加",
|
||
"ko": "광고 시청으로 시간 추가",
|
||
"ru": "Смотрите рекламу, чтобы добавить время",
|
||
"es": "Mira un anuncio para más tiempo"
|
||
},
|
||
"quotaExhaustedNotice": {
|
||
"zh": "今日免费时长已用完,升级会员可继续使用",
|
||
"en": "You've used today's free time. Upgrade to keep connecting.",
|
||
"ja": "本日の無料時間を使い切りました。アップグレードすると続けて接続できます。",
|
||
"ko": "오늘 무료 시간을 모두 사용했습니다. 업그레이드하면 계속 연결할 수 있습니다.",
|
||
"ru": "Дневной бесплатный лимит исчерпан. Оформите подписку, чтобы продолжить подключение.",
|
||
"es": "Tiempo gratis diario agotado. Mejora tu plan para seguir conectado."
|
||
},
|
||
"adPlaying": {
|
||
"zh": "广告播放中…",
|
||
"en": "Ad playing…",
|
||
"ja": "広告を再生中…",
|
||
"ko": "광고 재생 중…",
|
||
"ru": "Реклама воспроизводится…",
|
||
"es": "Reproduciendo anuncio…"
|
||
},
|
||
"adFailed": {
|
||
"zh": "加时失败,请重试",
|
||
"en": "Failed to add time, please retry",
|
||
"ja": "時間の追加に失敗しました。もう一度お試しください",
|
||
"ko": "시간 추가에 실패했습니다. 다시 시도하세요",
|
||
"ru": "Не удалось добавить время, попробуйте ещё раз",
|
||
"es": "No se pudo añadir tiempo, inténtalo de nuevo"
|
||
},
|
||
"quotaDesktopTitle": {
|
||
"zh": "今日免费时长已用完",
|
||
"en": "Daily free time used up",
|
||
"ja": "本日の無料時間を使い切りました",
|
||
"ko": "오늘 무료 시간을 모두 사용함",
|
||
"ru": "Дневной бесплатный лимит исчерпан",
|
||
"es": "Tiempo gratis diario agotado"
|
||
},
|
||
"quotaDesktopBody": {
|
||
"zh": "前往移动端 App 看广告加时,或升级会员畅享无限时长。",
|
||
"en": "Watch ads in the mobile app to add time, or upgrade for unlimited access.",
|
||
"ja": "モバイルアプリで広告を見ると時間を追加できます。無制限に使うにはアップグレードしてください。",
|
||
"ko": "모바일 앱에서 광고를 시청해 시간을 추가하거나, 업그레이드하여 무제한으로 이용하세요.",
|
||
"ru": "Смотрите рекламу в мобильном приложении, чтобы добавить время, или оформите подписку для безлимитного доступа.",
|
||
"es": "Mira anuncios en la app móvil para añadir tiempo, o mejora tu plan para acceso ilimitado."
|
||
},
|
||
"gotIt": {
|
||
"zh": "知道了",
|
||
"en": "Got it",
|
||
"ja": "了解",
|
||
"ko": "확인",
|
||
"ru": "Понятно",
|
||
"es": "Entendido"
|
||
},
|
||
"chooseNode": {
|
||
"zh": "选择节点",
|
||
"en": "Choose server",
|
||
"ja": "サーバーを選択",
|
||
"ko": "서버 선택",
|
||
"ru": "Выбор сервера",
|
||
"es": "Elegir servidor"
|
||
},
|
||
"searchPh": {
|
||
"zh": "搜索国家 / 城市",
|
||
"en": "Search country / city",
|
||
"ja": "国・都市を検索",
|
||
"ko": "국가 / 도시 검색",
|
||
"ru": "Поиск страны / города",
|
||
"es": "Buscar país / ciudad"
|
||
},
|
||
"smartSelect": {
|
||
"zh": "智能选择",
|
||
"en": "Smart select",
|
||
"ja": "スマート選択",
|
||
"ko": "스마트 선택",
|
||
"ru": "Умный выбор",
|
||
"es": "Selección inteligente"
|
||
},
|
||
"nodeSwitchBody": {
|
||
"zh": "当前连接将断开并重连到该节点。",
|
||
"en": "This disconnects the current link and reconnects to this node.",
|
||
"ja": "現在の接続を切断し、このノードに再接続します。",
|
||
"ko": "현재 연결을 끊고 이 노드로 다시 연결합니다.",
|
||
"ru": "Текущее соединение будет разорвано и восстановлено через этот узел.",
|
||
"es": "Esto desconecta el enlace actual y reconecta a este nodo."
|
||
},
|
||
"nodeSwitchConfirm": {
|
||
"zh": "切换",
|
||
"en": "Switch",
|
||
"ja": "切り替える",
|
||
"ko": "전환",
|
||
"ru": "Переключить",
|
||
"es": "Cambiar"
|
||
},
|
||
"nodeUnhealthySwitched": {
|
||
"zh": "当前节点异常,已自动切换",
|
||
"en": "Current node unreachable — switched automatically",
|
||
"ja": "現在のノードに接続できないため、自動的に切り替えました",
|
||
"ko": "현재 노드에 연결할 수 없어 자동으로 전환했습니다",
|
||
"ru": "Текущий узел недоступен — переключение выполнено автоматически",
|
||
"es": "Nodo actual inaccesible: cambiado automáticamente"
|
||
},
|
||
"nodeUnhealthyError": {
|
||
"zh": "当前节点异常,请重连或更换节点",
|
||
"en": "Current node is unreachable — reconnect or switch node",
|
||
"ja": "現在のノードに接続できません。再接続するかノードを切り替えてください",
|
||
"ko": "현재 노드에 연결할 수 없습니다 — 재연결하거나 노드를 전환하세요",
|
||
"ru": "Текущий узел недоступен — переподключитесь или смените узел",
|
||
"es": "El nodo actual está inaccesible: reconecta o cambia de nodo"
|
||
},
|
||
"nodeReconnecting": {
|
||
"zh": "网络波动,正在重连…",
|
||
"en": "Network unstable, reconnecting…",
|
||
"ja": "ネットワークが不安定です。再接続中…",
|
||
"ko": "네트워크가 불안정하여 다시 연결 중…",
|
||
"ru": "Сеть нестабильна, переподключение…",
|
||
"es": "Red inestable, reconectando…"
|
||
},
|
||
"routingRulesReconnecting": {
|
||
"zh": "规则已更新,正在重连…",
|
||
"en": "Rules updated, reconnecting…",
|
||
"ja": "ルールが更新されました。再接続中…",
|
||
"ko": "규칙이 업데이트되어 다시 연결 중…",
|
||
"ru": "Правила обновлены, переподключение…",
|
||
"es": "Reglas actualizadas, reconectando…"
|
||
},
|
||
"smartSub": {
|
||
"zh": "根据当前网络环境,自动选择最优节点",
|
||
"en": "Picks the best node for your network",
|
||
"ja": "お使いのネットワークに最適なノードを選びます",
|
||
"ko": "네트워크에 가장 적합한 노드를 선택합니다",
|
||
"ru": "Подбирает лучший узел для вашей сети",
|
||
"es": "Elige el mejor nodo para tu red"
|
||
},
|
||
"recommended": {
|
||
"zh": "推荐",
|
||
"en": "Recommended",
|
||
"ja": "おすすめ",
|
||
"ko": "추천",
|
||
"ru": "Рекомендуется",
|
||
"es": "Recomendado"
|
||
},
|
||
"statsTitle": {
|
||
"zh": "使用统计",
|
||
"en": "Statistics",
|
||
"ja": "統計",
|
||
"ko": "통계",
|
||
"ru": "Статистика",
|
||
"es": "Estadísticas"
|
||
},
|
||
"trafficMonth": {
|
||
"zh": "本月流量",
|
||
"en": "Traffic",
|
||
"ja": "通信量",
|
||
"ko": "트래픽",
|
||
"ru": "Трафик",
|
||
"es": "Tráfico"
|
||
},
|
||
"avgPing": {
|
||
"zh": "平均延迟",
|
||
"en": "Avg ping",
|
||
"ja": "平均Ping",
|
||
"ko": "평균 지연",
|
||
"ru": "Средний пинг",
|
||
"es": "Ping medio"
|
||
},
|
||
"durMonth": {
|
||
"zh": "本月时长",
|
||
"en": "Time",
|
||
"ja": "接続時間",
|
||
"ko": "시간",
|
||
"ru": "Время",
|
||
"es": "Tiempo"
|
||
},
|
||
"weekTraffic": {
|
||
"zh": "本周流量 (GB)",
|
||
"en": "This week (GB)",
|
||
"ja": "今週 (GB)",
|
||
"ko": "이번 주 (GB)",
|
||
"ru": "На этой неделе (ГБ)",
|
||
"es": "Esta semana (GB)"
|
||
},
|
||
"byDevice": {
|
||
"zh": "设备明细",
|
||
"en": "By device",
|
||
"ja": "デバイス別",
|
||
"ko": "기기별",
|
||
"ru": "По устройствам",
|
||
"es": "Por dispositivo"
|
||
},
|
||
"noDeviceUsage": {
|
||
"zh": "暂无设备用量",
|
||
"en": "No device usage yet",
|
||
"ja": "デバイスの利用履歴はまだありません",
|
||
"ko": "아직 기기 사용 기록이 없습니다",
|
||
"ru": "Пока нет данных по устройствам",
|
||
"es": "Aún no hay uso por dispositivo"
|
||
},
|
||
"periodMonth": {
|
||
"zh": "本月",
|
||
"en": "This month",
|
||
"ja": "今月",
|
||
"ko": "이번 달",
|
||
"ru": "Этот месяц",
|
||
"es": "Este mes"
|
||
},
|
||
"periodWeek": {
|
||
"zh": "本周",
|
||
"en": "This week",
|
||
"ja": "今週",
|
||
"ko": "이번 주",
|
||
"ru": "Эта неделя",
|
||
"es": "Esta semana"
|
||
},
|
||
"periodToday": {
|
||
"zh": "今日",
|
||
"en": "Today",
|
||
"ja": "今日",
|
||
"ko": "오늘",
|
||
"ru": "Сегодня",
|
||
"es": "Hoy"
|
||
},
|
||
"statDown": {
|
||
"zh": "下行",
|
||
"en": "Download",
|
||
"ja": "ダウンロード",
|
||
"ko": "다운로드",
|
||
"ru": "Приём",
|
||
"es": "Descarga"
|
||
},
|
||
"statUp": {
|
||
"zh": "上行",
|
||
"en": "Upload",
|
||
"ja": "アップロード",
|
||
"ko": "업로드",
|
||
"ru": "Отдача",
|
||
"es": "Subida"
|
||
},
|
||
"statDuration": {
|
||
"zh": "使用时长",
|
||
"en": "Duration",
|
||
"ja": "接続時間",
|
||
"ko": "사용 시간",
|
||
"ru": "Длительность",
|
||
"es": "Duración"
|
||
},
|
||
"chartTwoWeeks": {
|
||
"zh": "最近两周流量",
|
||
"en": "Last 2 weeks",
|
||
"ja": "過去2週間",
|
||
"ko": "최근 2주",
|
||
"ru": "Последние 2 недели",
|
||
"es": "Últimas 2 semanas"
|
||
},
|
||
"allDevices": {
|
||
"zh": "全部设备",
|
||
"en": "All devices",
|
||
"ja": "すべてのデバイス",
|
||
"ko": "모든 기기",
|
||
"ru": "Все устройства",
|
||
"es": "Todos los dispositivos"
|
||
},
|
||
"meTitle": {
|
||
"zh": "我的",
|
||
"en": "Account",
|
||
"ja": "アカウント",
|
||
"ko": "계정",
|
||
"ru": "Аккаунт",
|
||
"es": "Cuenta"
|
||
},
|
||
"proMember": {
|
||
"zh": "PRO 会员",
|
||
"en": "PRO member",
|
||
"ja": "PRO会員",
|
||
"ko": "PRO 회원",
|
||
"ru": "PRO-подписка",
|
||
"es": "Miembro PRO"
|
||
},
|
||
"freePlanName": {
|
||
"zh": "免费版",
|
||
"en": "Free",
|
||
"ja": "無料",
|
||
"ko": "무료",
|
||
"ru": "Бесплатный",
|
||
"es": "Gratis"
|
||
},
|
||
"expires": {
|
||
"zh": "有效期至",
|
||
"en": "Expires",
|
||
"ja": "有効期限",
|
||
"ko": "만료일",
|
||
"ru": "Действует до",
|
||
"es": "Vence"
|
||
},
|
||
"upgradeBtn": {
|
||
"zh": "续费 / 升级",
|
||
"en": "Renew / Upgrade",
|
||
"ja": "更新 / アップグレード",
|
||
"ko": "갱신 / 업그레이드",
|
||
"ru": "Продлить / Улучшить",
|
||
"es": "Renovar / Mejorar"
|
||
},
|
||
"accInfoTitle": {
|
||
"zh": "账户信息",
|
||
"en": "Account info",
|
||
"ja": "アカウント情報",
|
||
"ko": "계정 정보",
|
||
"ru": "Данные аккаунта",
|
||
"es": "Información de la cuenta"
|
||
},
|
||
"accEmail": {
|
||
"zh": "邮箱",
|
||
"en": "Email",
|
||
"ja": "メールアドレス",
|
||
"ko": "이메일",
|
||
"ru": "Эл. почта",
|
||
"es": "Correo"
|
||
},
|
||
"accPassword": {
|
||
"zh": "密码",
|
||
"en": "Password",
|
||
"ja": "パスワード",
|
||
"ko": "비밀번호",
|
||
"ru": "Пароль",
|
||
"es": "Contraseña"
|
||
},
|
||
"accChange": {
|
||
"zh": "修改",
|
||
"en": "Change",
|
||
"ja": "変更",
|
||
"ko": "변경",
|
||
"ru": "Изменить",
|
||
"es": "Cambiar"
|
||
},
|
||
"deviceLimitTitle": {
|
||
"zh": "设备数已达上限",
|
||
"en": "Device limit reached",
|
||
"ja": "デバイス数の上限に達しました",
|
||
"ko": "기기 한도에 도달함",
|
||
"ru": "Достигнут лимит устройств",
|
||
"es": "Límite de dispositivos alcanzado"
|
||
},
|
||
"deviceLimitDesc": {
|
||
"zh": "你的套餐最多 %s 台设备,请移除一台以继续。",
|
||
"en": "Your plan allows up to %s devices. Remove one to continue.",
|
||
"ja": "現在のプランでは最大 %s 台まで利用できます。続けるには1台を削除してください。",
|
||
"ko": "현재 요금제는 최대 %s대의 기기를 허용합니다. 계속하려면 한 대를 삭제하세요.",
|
||
"ru": "Ваш тариф допускает до %s устройств. Удалите одно, чтобы продолжить.",
|
||
"es": "Tu plan permite hasta %s dispositivos. Elimina uno para continuar."
|
||
},
|
||
"deviceLimitRemoveOldest": {
|
||
"zh": "移除最久未用",
|
||
"en": "Remove least recently used",
|
||
"ja": "最後に使用したのが最も古いデバイスを削除",
|
||
"ko": "가장 오래 사용하지 않은 기기 삭제",
|
||
"ru": "Удалить давно неиспользуемое",
|
||
"es": "Eliminar el menos usado recientemente"
|
||
},
|
||
"myDevices": {
|
||
"zh": "我的设备",
|
||
"en": "My devices",
|
||
"ja": "マイデバイス",
|
||
"ko": "내 기기",
|
||
"ru": "Мои устройства",
|
||
"es": "Mis dispositivos"
|
||
},
|
||
"devicesSub": {
|
||
"zh": "PRO 套餐最多 3 台设备同时在线",
|
||
"en": "Up to 3 devices on PRO",
|
||
"ja": "PROでは最大3台まで",
|
||
"ko": "PRO는 최대 3대",
|
||
"ru": "До 3 устройств на PRO",
|
||
"es": "Hasta 3 dispositivos en PRO"
|
||
},
|
||
"thisDevice": {
|
||
"zh": "本机",
|
||
"en": "This device",
|
||
"ja": "このデバイス",
|
||
"ko": "이 기기",
|
||
"ru": "Это устройство",
|
||
"es": "Este dispositivo"
|
||
},
|
||
"remove": {
|
||
"zh": "移除",
|
||
"en": "Remove",
|
||
"ja": "削除",
|
||
"ko": "삭제",
|
||
"ru": "Удалить",
|
||
"es": "Eliminar"
|
||
},
|
||
"devOnline": {
|
||
"zh": "在线",
|
||
"en": "Online",
|
||
"ja": "オンライン",
|
||
"ko": "온라인",
|
||
"ru": "В сети",
|
||
"es": "En línea"
|
||
},
|
||
"devOffline": {
|
||
"zh": "离线",
|
||
"en": "Offline",
|
||
"ja": "オフライン",
|
||
"ko": "오프라인",
|
||
"ru": "Не в сети",
|
||
"es": "Desconectado"
|
||
},
|
||
"devLastOnline": {
|
||
"zh": "最后在线",
|
||
"en": "Last online",
|
||
"ja": "最終オンライン",
|
||
"ko": "마지막 접속",
|
||
"ru": "Был(а) в сети",
|
||
"es": "Última conexión"
|
||
},
|
||
"devNeverLogin": {
|
||
"zh": "从未登录",
|
||
"en": "Never logged in",
|
||
"ja": "ログイン履歴なし",
|
||
"ko": "로그인한 적 없음",
|
||
"ru": "Ни разу не входил(а)",
|
||
"es": "Nunca ha iniciado sesión"
|
||
},
|
||
"devForceLogout": {
|
||
"zh": "强制退出",
|
||
"en": "Force logout",
|
||
"ja": "強制ログアウト",
|
||
"ko": "강제 로그아웃",
|
||
"ru": "Принудительный выход",
|
||
"es": "Forzar cierre de sesión"
|
||
},
|
||
"devClearLogin": {
|
||
"zh": "清除登录信息",
|
||
"en": "Clear login info",
|
||
"ja": "ログイン情報を消去",
|
||
"ko": "로그인 정보 삭제",
|
||
"ru": "Очистить данные входа",
|
||
"es": "Borrar datos de sesión"
|
||
},
|
||
"devRename": {
|
||
"zh": "重命名",
|
||
"en": "Rename",
|
||
"ja": "名前を変更",
|
||
"ko": "이름 변경",
|
||
"ru": "Переименовать",
|
||
"es": "Renombrar"
|
||
},
|
||
"devRenameHint": {
|
||
"zh": "设备名称",
|
||
"en": "Device name",
|
||
"ja": "デバイス名",
|
||
"ko": "기기 이름",
|
||
"ru": "Имя устройства",
|
||
"es": "Nombre del dispositivo"
|
||
},
|
||
"devSave": {
|
||
"zh": "保存",
|
||
"en": "Save",
|
||
"ja": "保存",
|
||
"ko": "저장",
|
||
"ru": "Сохранить",
|
||
"es": "Guardar"
|
||
},
|
||
"devForceLogoutConfirm": {
|
||
"zh": "将吊销该设备的登录会话,它会被踢下线、需重新登录。设备仍保留在列表中。",
|
||
"en": "This revokes the device's login session — it will be kicked offline and must sign in again. The device stays in the list.",
|
||
"ja": "このデバイスのログインセッションを無効にします。オフラインになり、再度サインインが必要になります。デバイスはリストに残ります。",
|
||
"ko": "이 기기의 로그인 세션을 무효화합니다 — 오프라인으로 강제 종료되며 다시 로그인해야 합니다. 기기는 목록에 남아 있습니다.",
|
||
"ru": "Это завершит сеанс входа устройства — оно будет отключено и потребует повторного входа. Устройство останется в списке.",
|
||
"es": "Esto revoca la sesión del dispositivo: será desconectado y deberá iniciar sesión de nuevo. El dispositivo permanece en la lista."
|
||
},
|
||
"devClearLoginConfirm": {
|
||
"zh": "将从设备列表彻底移除此设备,并吊销其登录会话与数据面凭证。该设备需重新登录才能再次使用。",
|
||
"en": "This removes the device from the list entirely and revokes its login session and data-plane credential. The device must sign in again to be used.",
|
||
"ja": "このデバイスをリストから完全に削除し、ログインセッションとデータ通信の認証情報を無効にします。再び利用するには、もう一度サインインが必要です。",
|
||
"ko": "이 기기를 목록에서 완전히 삭제하고 로그인 세션과 데이터 전송 자격 증명을 무효화합니다. 다시 사용하려면 재로그인해야 합니다.",
|
||
"ru": "Это полностью удалит устройство из списка и отзовёт его сеанс входа и учётные данные передачи данных. Чтобы снова использовать устройство, нужно войти заново.",
|
||
"es": "Esto elimina el dispositivo de la lista por completo y revoca su sesión y su credencial del plano de datos. El dispositivo deberá iniciar sesión de nuevo para poder usarse."
|
||
},
|
||
"devCancel": {
|
||
"zh": "取消",
|
||
"en": "Cancel",
|
||
"ja": "キャンセル",
|
||
"ko": "취소",
|
||
"ru": "Отмена",
|
||
"es": "Cancelar"
|
||
},
|
||
"sessionRevokedTitle": {
|
||
"zh": "此设备已被强制下线",
|
||
"en": "This device was signed out",
|
||
"ja": "このデバイスはサインアウトされました",
|
||
"ko": "이 기기에서 로그아웃되었습니다",
|
||
"ru": "Это устройство было отключено",
|
||
"es": "Se cerró la sesión de este dispositivo"
|
||
},
|
||
"sessionRevokedBody": {
|
||
"zh": "你的账号在其他设备上将此设备强制退出,需要重新登录。",
|
||
"en": "Your account signed this device out from another device. Please sign in again.",
|
||
"ja": "別のデバイスから、このデバイスがサインアウトされました。もう一度サインインしてください。",
|
||
"ko": "다른 기기에서 이 기기를 로그아웃했습니다. 다시 로그인하세요.",
|
||
"ru": "Вход с этого устройства завершён с другого устройства вашего аккаунта. Пожалуйста, войдите снова.",
|
||
"es": "Tu cuenta cerró la sesión de este dispositivo desde otro dispositivo. Inicia sesión de nuevo."
|
||
},
|
||
"sessionRevokedOk": {
|
||
"zh": "重新登录",
|
||
"en": "Sign in again",
|
||
"ja": "再度サインイン",
|
||
"ko": "다시 로그인",
|
||
"ru": "Войти снова",
|
||
"es": "Iniciar sesión de nuevo"
|
||
},
|
||
"redeemEntry": {
|
||
"zh": "兑换",
|
||
"en": "Redeem",
|
||
"ja": "コード引き換え",
|
||
"ko": "코드 등록",
|
||
"ru": "Активация",
|
||
"es": "Canjear"
|
||
},
|
||
"contactEntry": {
|
||
"zh": "联系我们",
|
||
"en": "Contact us",
|
||
"ja": "お問い合わせ",
|
||
"ko": "문의하기",
|
||
"ru": "Связаться с нами",
|
||
"es": "Contáctanos"
|
||
},
|
||
"signOut": {
|
||
"zh": "退出登录",
|
||
"en": "Sign out",
|
||
"ja": "サインアウト",
|
||
"ko": "로그아웃",
|
||
"ru": "Выйти",
|
||
"es": "Cerrar sesión"
|
||
},
|
||
"language": {
|
||
"zh": "语言",
|
||
"en": "Language",
|
||
"ja": "言語",
|
||
"ko": "언어",
|
||
"ru": "Язык",
|
||
"es": "Idioma"
|
||
},
|
||
"darkAppearance": {
|
||
"zh": "深色外观",
|
||
"en": "Dark appearance",
|
||
"ja": "ダークモード",
|
||
"ko": "다크 모드",
|
||
"ru": "Тёмная тема",
|
||
"es": "Apariencia oscura"
|
||
},
|
||
"stateOn": {
|
||
"zh": "已开启",
|
||
"en": "On",
|
||
"ja": "オン",
|
||
"ko": "켜짐",
|
||
"ru": "Вкл.",
|
||
"es": "Activado"
|
||
},
|
||
"followLight": {
|
||
"zh": "跟随浅色",
|
||
"en": "Off",
|
||
"ja": "オフ",
|
||
"ko": "꺼짐",
|
||
"ru": "Выкл.",
|
||
"es": "Desactivado"
|
||
},
|
||
"protocol": {
|
||
"zh": "协议",
|
||
"en": "Protocol",
|
||
"ja": "プロトコル",
|
||
"ko": "프로토콜",
|
||
"ru": "Протокол",
|
||
"es": "Protocolo"
|
||
},
|
||
"settingsTitle": {
|
||
"zh": "设置",
|
||
"en": "Settings",
|
||
"ja": "設定",
|
||
"ko": "설정",
|
||
"ru": "Настройки",
|
||
"es": "Ajustes"
|
||
},
|
||
"autostart": {
|
||
"zh": "开机自启",
|
||
"en": "Launch at startup",
|
||
"ja": "スタートアップ時に起動",
|
||
"ko": "시작 시 실행",
|
||
"ru": "Запуск при старте системы",
|
||
"es": "Iniciar al arrancar"
|
||
},
|
||
"autostartSub": {
|
||
"zh": "系统启动时自动运行",
|
||
"en": "Run automatically on system start",
|
||
"ja": "システム起動時に自動的に実行",
|
||
"ko": "시스템 시작 시 자동으로 실행",
|
||
"ru": "Запускать автоматически при включении системы",
|
||
"es": "Ejecutar automáticamente al iniciar el sistema"
|
||
},
|
||
"autoConnect": {
|
||
"zh": "自动连接",
|
||
"en": "Auto-connect",
|
||
"ja": "自動接続",
|
||
"ko": "자동 연결",
|
||
"ru": "Автоподключение",
|
||
"es": "Conexión automática"
|
||
},
|
||
"autoConnectSub": {
|
||
"zh": "启动时自动连接节点",
|
||
"en": "Connect automatically on launch",
|
||
"ja": "起動時に自動的に接続",
|
||
"ko": "실행 시 자동으로 연결",
|
||
"ru": "Подключаться автоматически при запуске",
|
||
"es": "Conectar automáticamente al abrir"
|
||
},
|
||
"smartRoute": {
|
||
"zh": "智能分流",
|
||
"en": "Smart routing",
|
||
"ja": "スマートルーティング",
|
||
"ko": "스마트 라우팅",
|
||
"ru": "Умная маршрутизация",
|
||
"es": "Enrutamiento inteligente"
|
||
},
|
||
"smartRouteSub": {
|
||
"zh": "海外应用走加速,国内直连",
|
||
"en": "Accelerate abroad, direct at home",
|
||
"ja": "海外は高速化、国内は直接接続",
|
||
"ko": "해외는 가속, 국내는 직접 연결",
|
||
"ru": "Ускорение для зарубежных ресурсов, прямой доступ для локальных",
|
||
"es": "Acelera en el extranjero, directo en casa"
|
||
},
|
||
"killSwitch": {
|
||
"zh": "Kill Switch",
|
||
"en": "Kill Switch",
|
||
"ja": "キルスイッチ",
|
||
"ko": "Kill Switch",
|
||
"ru": "Kill Switch",
|
||
"es": "Kill Switch"
|
||
},
|
||
"killSwitchSub": {
|
||
"zh": "断线时阻断网络,防止泄露",
|
||
"en": "Block traffic if the link drops",
|
||
"ja": "接続が切れたら通信を遮断",
|
||
"ko": "연결이 끊기면 트래픽 차단",
|
||
"ru": "Блокировать трафик при разрыве соединения",
|
||
"es": "Bloquea el tráfico si se cae el enlace"
|
||
},
|
||
"checkUpdate": {
|
||
"zh": "检查更新",
|
||
"en": "Check for updates",
|
||
"ja": "アップデートを確認",
|
||
"ko": "업데이트 확인",
|
||
"ru": "Проверить обновления",
|
||
"es": "Buscar actualizaciones"
|
||
},
|
||
"webUserCenter": {
|
||
"zh": "用户中心(网页)",
|
||
"en": "User Center (Web)",
|
||
"ja": "ユーザーセンター (Web)",
|
||
"ko": "사용자 센터 (웹)",
|
||
"ru": "Личный кабинет (веб)",
|
||
"es": "Centro de usuario (Web)"
|
||
},
|
||
"updateNotesFallback": {
|
||
"zh": "本次更新修复了一些问题并提升了稳定性,建议尽快更新。",
|
||
"en": "This update includes fixes and stability improvements.",
|
||
"ja": "このアップデートには不具合の修正と安定性の向上が含まれています。",
|
||
"ko": "이번 업데이트에는 버그 수정과 안정성 개선이 포함되어 있습니다.",
|
||
"ru": "Это обновление включает исправления и улучшения стабильности.",
|
||
"es": "Esta actualización incluye correcciones y mejoras de estabilidad."
|
||
},
|
||
"updateLater": {
|
||
"zh": "稍后",
|
||
"en": "Later",
|
||
"ja": "後で",
|
||
"ko": "나중에",
|
||
"ru": "Позже",
|
||
"es": "Más tarde"
|
||
},
|
||
"updateDownload": {
|
||
"zh": "下载更新",
|
||
"en": "Download update",
|
||
"ja": "アップデートをダウンロード",
|
||
"ko": "업데이트 다운로드",
|
||
"ru": "Скачать обновление",
|
||
"es": "Descargar actualización"
|
||
},
|
||
"updateUpToDate": {
|
||
"zh": "已是最新版本",
|
||
"en": "You are up to date",
|
||
"ja": "最新の状態です",
|
||
"ko": "최신 버전입니다",
|
||
"ru": "У вас установлена последняя версия",
|
||
"es": "Ya tienes la última versión"
|
||
},
|
||
"updateCheckFailed": {
|
||
"zh": "检查更新失败,请稍后重试",
|
||
"en": "Update check failed, try again later",
|
||
"ja": "アップデートの確認に失敗しました。後でもう一度お試しください",
|
||
"ko": "업데이트 확인에 실패했습니다. 잠시 후 다시 시도하세요",
|
||
"ru": "Не удалось проверить обновления, попробуйте позже",
|
||
"es": "Falló la búsqueda de actualizaciones, inténtalo más tarde"
|
||
},
|
||
"freePlan": {
|
||
"zh": "免费版",
|
||
"en": "Free",
|
||
"ja": "無料",
|
||
"ko": "무료",
|
||
"ru": "Бесплатный",
|
||
"es": "Gratis"
|
||
},
|
||
"proPlan": {
|
||
"zh": "专业版",
|
||
"en": "Pro",
|
||
"ja": "Pro",
|
||
"ko": "Pro",
|
||
"ru": "Pro",
|
||
"es": "Pro"
|
||
},
|
||
"teamPlan": {
|
||
"zh": "团队版",
|
||
"en": "Team",
|
||
"ja": "Team",
|
||
"ko": "Team",
|
||
"ru": "Команда",
|
||
"es": "Equipo"
|
||
},
|
||
"perMonth": {
|
||
"zh": "/月",
|
||
"en": "/mo",
|
||
"ja": "/月",
|
||
"ko": "/월",
|
||
"ru": "/мес",
|
||
"es": "/mes"
|
||
},
|
||
"current": {
|
||
"zh": "当前",
|
||
"en": "Current",
|
||
"ja": "現在",
|
||
"ko": "현재",
|
||
"ru": "Текущий",
|
||
"es": "Actual"
|
||
},
|
||
"upgrade": {
|
||
"zh": "立即升级",
|
||
"en": "Upgrade",
|
||
"ja": "アップグレード",
|
||
"ko": "업그레이드",
|
||
"ru": "Улучшить",
|
||
"es": "Mejorar"
|
||
},
|
||
"choose": {
|
||
"zh": "选择",
|
||
"en": "Choose",
|
||
"ja": "選択",
|
||
"ko": "선택",
|
||
"ru": "Выбрать",
|
||
"es": "Elegir"
|
||
},
|
||
"mostPopular": {
|
||
"zh": "最受欢迎",
|
||
"en": "Popular",
|
||
"ja": "人気",
|
||
"ko": "인기",
|
||
"ru": "Популярный",
|
||
"es": "Popular"
|
||
},
|
||
"redeemTitle": {
|
||
"zh": "兑换 & 购买",
|
||
"en": "Redeem & buy",
|
||
"ja": "コード引き換え・購入",
|
||
"ko": "코드 등록 및 구매",
|
||
"ru": "Активация и покупка",
|
||
"es": "Canjear y comprar"
|
||
},
|
||
"redeemCodeTitle": {
|
||
"zh": "兑换激活码",
|
||
"en": "Redeem a code",
|
||
"ja": "コードを引き換える",
|
||
"ko": "코드 등록",
|
||
"ru": "Активировать код",
|
||
"es": "Canjear un código"
|
||
},
|
||
"redeemPh": {
|
||
"zh": "输入激活码",
|
||
"en": "Enter activation code",
|
||
"ja": "アクティベーションコードを入力",
|
||
"ko": "활성화 코드 입력",
|
||
"ru": "Введите код активации",
|
||
"es": "Introduce el código de activación"
|
||
},
|
||
"redeemBtn": {
|
||
"zh": "激活",
|
||
"en": "Redeem",
|
||
"ja": "引き換える",
|
||
"ko": "등록",
|
||
"ru": "Активировать",
|
||
"es": "Canjear"
|
||
},
|
||
"redeemOk": {
|
||
"zh": "激活成功 · PRO 已开通",
|
||
"en": "Activated · PRO unlocked",
|
||
"ja": "認証完了 · PROが利用可能に",
|
||
"ko": "활성화됨 · PRO 잠금 해제",
|
||
"ru": "Активировано · PRO открыт",
|
||
"es": "Activado · PRO desbloqueado"
|
||
},
|
||
"buyTitle": {
|
||
"zh": "购买渠道",
|
||
"en": "Where to buy",
|
||
"ja": "購入方法",
|
||
"ko": "구매처",
|
||
"ru": "Где купить",
|
||
"es": "Dónde comprar"
|
||
},
|
||
"buySub": {
|
||
"zh": "App 内不支持直接支付。请通过以下渠道获取激活码:",
|
||
"en": "In-app payment is unavailable. Get a code via:",
|
||
"ja": "アプリ内決済はご利用いただけません。以下からコードを入手してください:",
|
||
"ko": "앱 내 결제는 지원되지 않습니다. 다음 경로로 코드를 받으세요:",
|
||
"ru": "Оплата внутри приложения недоступна. Получить код можно через:",
|
||
"es": "El pago dentro de la app no está disponible. Consigue un código mediante:"
|
||
},
|
||
"chStore": {
|
||
"zh": "自助发卡商店",
|
||
"en": "Self-serve store",
|
||
"ja": "セルフサービスストア",
|
||
"ko": "셀프 스토어",
|
||
"ru": "Магазин самообслуживания",
|
||
"es": "Tienda autoservicio"
|
||
},
|
||
"chEmail": {
|
||
"zh": "邮箱客服",
|
||
"en": "Email support",
|
||
"ja": "メールサポート",
|
||
"ko": "이메일 지원",
|
||
"ru": "Поддержка по эл. почте",
|
||
"es": "Soporte por correo"
|
||
},
|
||
"contactTitle": {
|
||
"zh": "联系我们",
|
||
"en": "Contact us",
|
||
"ja": "お問い合わせ",
|
||
"ko": "문의하기",
|
||
"ru": "Связаться с нами",
|
||
"es": "Contáctanos"
|
||
},
|
||
"contactIntro": {
|
||
"zh": "遇到问题?通过以下任一渠道联系我们,通常数分钟内回复。",
|
||
"en": "Need help? Reach us via any channel below — usually replies in minutes.",
|
||
"ja": "お困りですか?以下のいずれかの方法でお問い合わせください。通常は数分以内に返信します。",
|
||
"ko": "도움이 필요하신가요? 아래 채널로 문의하세요 — 보통 몇 분 안에 답변드립니다.",
|
||
"ru": "Нужна помощь? Свяжитесь с нами любым способом ниже — обычно отвечаем за считанные минуты.",
|
||
"es": "¿Necesitas ayuda? Escríbenos por cualquiera de los canales de abajo: solemos responder en minutos."
|
||
},
|
||
"contactEmail": {
|
||
"zh": "邮箱客服",
|
||
"en": "Email support",
|
||
"ja": "メールサポート",
|
||
"ko": "이메일 지원",
|
||
"ru": "Поддержка по эл. почте",
|
||
"es": "Soporte por correo"
|
||
},
|
||
"contactStore": {
|
||
"zh": "自助发卡商店",
|
||
"en": "Self-serve store",
|
||
"ja": "セルフサービスストア",
|
||
"ko": "셀프 스토어",
|
||
"ru": "Магазин самообслуживания",
|
||
"es": "Tienda autoservicio"
|
||
},
|
||
"contactWebsite": {
|
||
"zh": "官网",
|
||
"en": "Website",
|
||
"ja": "公式サイト",
|
||
"ko": "공식 웹사이트",
|
||
"ru": "Веб-сайт",
|
||
"es": "Sitio web"
|
||
},
|
||
"contactHoursTitle": {
|
||
"zh": "服务时间",
|
||
"en": "Support hours",
|
||
"ja": "サポート時間",
|
||
"ko": "지원 시간",
|
||
"ru": "Часы поддержки",
|
||
"es": "Horario de soporte"
|
||
},
|
||
"contactHours": {
|
||
"zh": "每日 9:00 – 24:00 (GMT+8)",
|
||
"en": "Daily 9:00 – 24:00 (GMT+8)",
|
||
"ja": "毎日 9:00 – 24:00 (GMT+8)",
|
||
"ko": "매일 9:00 – 24:00 (GMT+8)",
|
||
"ru": "Ежедневно 9:00 – 24:00 (GMT+8)",
|
||
"es": "Todos los días 9:00 – 24:00 (GMT+8)"
|
||
},
|
||
"authTagline": {
|
||
"zh": "极速 · 稳定 · 省心",
|
||
"en": "Fast · Stable · Effortless",
|
||
"ja": "高速 · 安定 · かんたん",
|
||
"ko": "빠르게 · 안정적으로 · 손쉽게",
|
||
"ru": "Быстро · Стабильно · Без усилий",
|
||
"es": "Rápido · Estable · Sin complicaciones"
|
||
},
|
||
"tabLogin": {
|
||
"zh": "登录",
|
||
"en": "Log in",
|
||
"ja": "ログイン",
|
||
"ko": "로그인",
|
||
"ru": "Вход",
|
||
"es": "Iniciar sesión"
|
||
},
|
||
"tabRegister": {
|
||
"zh": "注册",
|
||
"en": "Sign up",
|
||
"ja": "新規登録",
|
||
"ko": "회원가입",
|
||
"ru": "Регистрация",
|
||
"es": "Registrarse"
|
||
},
|
||
"emailLabel": {
|
||
"zh": "邮箱",
|
||
"en": "Email",
|
||
"ja": "メールアドレス",
|
||
"ko": "이메일",
|
||
"ru": "Эл. почта",
|
||
"es": "Correo"
|
||
},
|
||
"emailPh": {
|
||
"zh": "你的邮箱地址",
|
||
"en": "your@email.com",
|
||
"ja": "your@email.com",
|
||
"ko": "your@email.com",
|
||
"ru": "your@email.com",
|
||
"es": "tu@correo.com"
|
||
},
|
||
"pwLabel": {
|
||
"zh": "密码",
|
||
"en": "Password",
|
||
"ja": "パスワード",
|
||
"ko": "비밀번호",
|
||
"ru": "Пароль",
|
||
"es": "Contraseña"
|
||
},
|
||
"pwPh": {
|
||
"zh": "输入密码",
|
||
"en": "Enter password",
|
||
"ja": "パスワードを入力",
|
||
"ko": "비밀번호 입력",
|
||
"ru": "Введите пароль",
|
||
"es": "Introduce la contraseña"
|
||
},
|
||
"setPwPh": {
|
||
"zh": "设置登录密码(用于多端登录)",
|
||
"en": "Set a password (for multi-device login)",
|
||
"ja": "パスワードを設定(複数デバイスでのログイン用)",
|
||
"ko": "비밀번호 설정 (다중 기기 로그인용)",
|
||
"ru": "Задайте пароль (для входа с нескольких устройств)",
|
||
"es": "Crea una contraseña (para acceso multidispositivo)"
|
||
},
|
||
"codeLabel": {
|
||
"zh": "邮箱验证码",
|
||
"en": "Verification code",
|
||
"ja": "確認コード",
|
||
"ko": "인증 코드",
|
||
"ru": "Код подтверждения",
|
||
"es": "Código de verificación"
|
||
},
|
||
"sendCode": {
|
||
"zh": "发送验证码",
|
||
"en": "Send code",
|
||
"ja": "コードを送信",
|
||
"ko": "코드 전송",
|
||
"ru": "Отправить код",
|
||
"es": "Enviar código"
|
||
},
|
||
"resend": {
|
||
"zh": "重新发送",
|
||
"en": "Resend",
|
||
"ja": "再送信",
|
||
"ko": "재전송",
|
||
"ru": "Отправить снова",
|
||
"es": "Reenviar"
|
||
},
|
||
"doLogin": {
|
||
"zh": "登录",
|
||
"en": "Log in",
|
||
"ja": "ログイン",
|
||
"ko": "로그인",
|
||
"ru": "Войти",
|
||
"es": "Iniciar sesión"
|
||
},
|
||
"doNext": {
|
||
"zh": "下一步",
|
||
"en": "Next",
|
||
"ja": "次へ",
|
||
"ko": "다음",
|
||
"ru": "Далее",
|
||
"es": "Siguiente"
|
||
},
|
||
"doCreate": {
|
||
"zh": "创建账户",
|
||
"en": "Create account",
|
||
"ja": "アカウントを作成",
|
||
"ko": "계정 만들기",
|
||
"ru": "Создать аккаунт",
|
||
"es": "Crear cuenta"
|
||
},
|
||
"forgotPw": {
|
||
"zh": "忘记密码?",
|
||
"en": "Forgot password?",
|
||
"ja": "パスワードをお忘れですか?",
|
||
"ko": "비밀번호를 잊으셨나요?",
|
||
"ru": "Забыли пароль?",
|
||
"es": "¿Olvidaste la contraseña?"
|
||
},
|
||
"tos": {
|
||
"zh": "继续即代表同意《服务条款》与《隐私政策》",
|
||
"en": "By continuing you agree to our Terms & Privacy Policy",
|
||
"ja": "続行すると、利用規約とプライバシーポリシーに同意したことになります",
|
||
"ko": "계속하면 이용약관 및 개인정보 처리방침에 동의하는 것입니다",
|
||
"ru": "Продолжая, вы принимаете наши Условия и Политику конфиденциальности",
|
||
"es": "Al continuar aceptas nuestros Términos y Política de privacidad"
|
||
},
|
||
"obSkip": {
|
||
"zh": "跳过",
|
||
"en": "Skip",
|
||
"ja": "スキップ",
|
||
"ko": "건너뛰기",
|
||
"ru": "Пропустить",
|
||
"es": "Omitir"
|
||
},
|
||
"obNext": {
|
||
"zh": "下一步",
|
||
"en": "Next",
|
||
"ja": "次へ",
|
||
"ko": "다음",
|
||
"ru": "Далее",
|
||
"es": "Siguiente"
|
||
},
|
||
"obAllow": {
|
||
"zh": "允许并继续",
|
||
"en": "Allow & continue",
|
||
"ja": "許可して続行",
|
||
"ko": "허용하고 계속",
|
||
"ru": "Разрешить и продолжить",
|
||
"es": "Permitir y continuar"
|
||
},
|
||
"obStart": {
|
||
"zh": "开始使用",
|
||
"en": "Get started",
|
||
"ja": "始める",
|
||
"ko": "시작하기",
|
||
"ru": "Начать",
|
||
"es": "Empezar"
|
||
},
|
||
"ob1Title": {
|
||
"zh": "一键连接全球",
|
||
"en": "Connect worldwide",
|
||
"ja": "世界中に接続",
|
||
"ko": "전 세계로 연결",
|
||
"ru": "Подключение по всему миру",
|
||
"es": "Conéctate en todo el mundo"
|
||
},
|
||
"ob1Sub": {
|
||
"zh": "80+ 节点,智能选择最快线路,稳定不掉线。",
|
||
"en": "80+ locations, auto-fastest routing, rock-solid.",
|
||
"ja": "80以上の拠点、最速ルートを自動選択、抜群の安定性。",
|
||
"ko": "80개 이상의 지역, 자동 최적 경로, 안정적인 연결.",
|
||
"ru": "80+ локаций, автоматический выбор самого быстрого маршрута, надёжная стабильность.",
|
||
"es": "Más de 80 ubicaciones, enrutamiento al más rápido automático, sólido como una roca."
|
||
},
|
||
"ob2Title": {
|
||
"zh": "授权网络配置",
|
||
"en": "Allow network setup",
|
||
"ja": "ネットワーク設定を許可",
|
||
"ko": "네트워크 설정 허용",
|
||
"ru": "Разрешите настройку сети",
|
||
"es": "Permite la configuración de red"
|
||
},
|
||
"ob2Sub": {
|
||
"zh": "系统会请求添加一个网络配置,用于建立加密隧道。",
|
||
"en": "The system will ask to add a network profile to build the encrypted tunnel.",
|
||
"ja": "暗号化トンネルを構築するため、システムがネットワークプロファイルの追加を求めます。",
|
||
"ko": "암호화된 터널을 구성하기 위해 시스템이 네트워크 프로필 추가를 요청합니다.",
|
||
"ru": "Система запросит добавление сетевого профиля для создания зашифрованного туннеля.",
|
||
"es": "El sistema te pedirá añadir un perfil de red para crear el túnel cifrado."
|
||
},
|
||
"ob3Title": {
|
||
"zh": "安全 · 无日志",
|
||
"en": "Private by design",
|
||
"ja": "設計段階からプライバシー重視",
|
||
"ko": "설계부터 프라이버시",
|
||
"ru": "Приватность по умолчанию",
|
||
"es": "Privado por diseño"
|
||
},
|
||
"ob3Sub": {
|
||
"zh": "端到端加密,我们不记录你的任何浏览数据。",
|
||
"en": "End-to-end encrypted. We keep zero browsing logs.",
|
||
"ja": "エンドツーエンドで暗号化。閲覧ログは一切保持しません。",
|
||
"ko": "종단 간 암호화. 브라우징 기록을 전혀 저장하지 않습니다.",
|
||
"ru": "Сквозное шифрование. Мы не храним журналы просмотров.",
|
||
"es": "Cifrado de extremo a extremo. No guardamos ningún registro de navegación."
|
||
},
|
||
"purchaseTitle": {
|
||
"zh": "购买套餐",
|
||
"en": "Purchase",
|
||
"ja": "プランを購入",
|
||
"ko": "요금제 구매",
|
||
"ru": "Купить тариф",
|
||
"es": "Comprar plan"
|
||
},
|
||
"paymentTitle": {
|
||
"zh": "支付",
|
||
"en": "Payment",
|
||
"ja": "お支払い",
|
||
"ko": "결제",
|
||
"ru": "Оплата",
|
||
"es": "Pago"
|
||
},
|
||
"buyNow": {
|
||
"zh": "立即购买",
|
||
"en": "Buy now",
|
||
"ja": "今すぐ購入",
|
||
"ko": "지금 구매",
|
||
"ru": "Купить",
|
||
"es": "Comprar ahora"
|
||
},
|
||
"payMethodAlipay": {
|
||
"zh": "支付宝",
|
||
"en": "Alipay",
|
||
"ja": "Alipay",
|
||
"ko": "Alipay",
|
||
"ru": "Alipay",
|
||
"es": "Alipay"
|
||
},
|
||
"payMethodCrypto": {
|
||
"zh": "USDT (TRC20)",
|
||
"en": "USDT (TRC20)",
|
||
"ja": "USDT (TRC20)",
|
||
"ko": "USDT (TRC20)",
|
||
"ru": "USDT (TRC20)",
|
||
"es": "USDT (TRC20)"
|
||
},
|
||
"choosePayMethod": {
|
||
"zh": "选择支付方式",
|
||
"en": "Choose payment method",
|
||
"ja": "お支払い方法を選択",
|
||
"ko": "결제 수단 선택",
|
||
"ru": "Выберите способ оплаты",
|
||
"es": "Elige un método de pago"
|
||
},
|
||
"proMonthly": {
|
||
"zh": "专业版·月付",
|
||
"en": "Pro · Monthly",
|
||
"ja": "Pro・月額",
|
||
"ko": "Pro · 월간",
|
||
"ru": "Pro · Помесячно",
|
||
"es": "Pro · Mensual"
|
||
},
|
||
"proQuarterly": {
|
||
"zh": "专业版·季付",
|
||
"en": "Pro · Quarterly",
|
||
"ja": "Pro · 3か月",
|
||
"ko": "Pro · 분기",
|
||
"ru": "Pro · Квартал",
|
||
"es": "Pro · Trimestral"
|
||
},
|
||
"proYearly": {
|
||
"zh": "专业版·年付",
|
||
"en": "Pro · Yearly",
|
||
"ja": "Pro · 年額",
|
||
"ko": "Pro · 연간",
|
||
"ru": "Pro · Год",
|
||
"es": "Pro · Anual"
|
||
},
|
||
"perQuarter": {
|
||
"zh": "/季",
|
||
"en": "/quarter",
|
||
"ja": "/3か月",
|
||
"ko": "/분기",
|
||
"ru": "/квартал",
|
||
"es": "/trimestre"
|
||
},
|
||
"perYear": {
|
||
"zh": "/年",
|
||
"en": "/year",
|
||
"ja": "/年",
|
||
"ko": "/년",
|
||
"ru": "/год",
|
||
"es": "/año"
|
||
},
|
||
"payAmountLabel": {
|
||
"zh": "转账金额",
|
||
"en": "Amount",
|
||
"ja": "送金額",
|
||
"ko": "송금액",
|
||
"ru": "Сумма перевода",
|
||
"es": "Importe a transferir"
|
||
},
|
||
"payAddressLabel": {
|
||
"zh": "收款地址",
|
||
"en": "Address",
|
||
"ja": "送金先アドレス",
|
||
"ko": "입금 주소",
|
||
"ru": "Адрес для оплаты",
|
||
"es": "Dirección de pago"
|
||
},
|
||
"payNetworkLabel": {
|
||
"zh": "网络",
|
||
"en": "Network",
|
||
"ja": "ネットワーク",
|
||
"ko": "네트워크",
|
||
"ru": "Сеть",
|
||
"es": "Red"
|
||
},
|
||
"payExactAmountHint": {
|
||
"zh": "金额须精确一致,到账后自动开通",
|
||
"en": "Send the exact amount; activates automatically",
|
||
"ja": "正確な金額をお送りください。着金後、自動で有効になります",
|
||
"ko": "정확한 금액을 보내주세요. 입금 확인 후 자동으로 활성화됩니다",
|
||
"ru": "Отправьте точную сумму — активация произойдёт автоматически",
|
||
"es": "Envía el importe exacto; se activa automáticamente"
|
||
},
|
||
"copied": {
|
||
"zh": "已复制",
|
||
"en": "Copied",
|
||
"ja": "コピーしました",
|
||
"ko": "복사됨",
|
||
"ru": "Скопировано",
|
||
"es": "Copiado"
|
||
},
|
||
"openAlipay": {
|
||
"zh": "打开支付宝支付",
|
||
"en": "Pay with Alipay",
|
||
"ja": "Alipayで支払う",
|
||
"ko": "Alipay로 결제",
|
||
"ru": "Оплатить через Alipay",
|
||
"es": "Pagar con Alipay"
|
||
},
|
||
"openAlipayHint": {
|
||
"zh": "完成支付后返回,本页会自动刷新",
|
||
"en": "Return after paying; this page refreshes automatically",
|
||
"ja": "お支払い後に戻ると、このページは自動的に更新されます",
|
||
"ko": "결제 후 돌아오면 이 페이지가 자동으로 새로고침됩니다",
|
||
"ru": "Вернитесь после оплаты — страница обновится автоматически",
|
||
"es": "Vuelve tras pagar; esta página se actualiza automáticamente"
|
||
},
|
||
"openAlipayFailed": {
|
||
"zh": "无法打开支付宝,请检查是否已安装或稍后重试",
|
||
"en": "Couldn't open Alipay; check it's installed or try again",
|
||
"ja": "Alipayを開けませんでした。インストール済みか確認するか、後でもう一度お試しください",
|
||
"ko": "Alipay를 열 수 없습니다. 설치되어 있는지 확인하거나 다시 시도하세요",
|
||
"ru": "Не удалось открыть Alipay. Проверьте, установлен ли он, или повторите",
|
||
"es": "No se pudo abrir Alipay; comprueba que esté instalado o inténtalo de nuevo"
|
||
},
|
||
"awaitingPayment": {
|
||
"zh": "等待付款",
|
||
"en": "Awaiting payment",
|
||
"ja": "お支払い待ち",
|
||
"ko": "결제 대기 중",
|
||
"ru": "Ожидание оплаты",
|
||
"es": "Esperando el pago"
|
||
},
|
||
"paySucceeded": {
|
||
"zh": "已开通",
|
||
"en": "Activated",
|
||
"ja": "有効になりました",
|
||
"ko": "활성화됨",
|
||
"ru": "Активировано",
|
||
"es": "Activado"
|
||
},
|
||
"payExpiresAt": {
|
||
"zh": "有效期至",
|
||
"en": "Valid until",
|
||
"ja": "有効期限",
|
||
"ko": "유효기간",
|
||
"ru": "Действует до",
|
||
"es": "Válido hasta"
|
||
},
|
||
"payDone": {
|
||
"zh": "完成",
|
||
"en": "Done",
|
||
"ja": "完了",
|
||
"ko": "완료",
|
||
"ru": "Готово",
|
||
"es": "Listo"
|
||
},
|
||
"payFailed": {
|
||
"zh": "支付失败",
|
||
"en": "Payment failed",
|
||
"ja": "お支払いに失敗しました",
|
||
"ko": "결제 실패",
|
||
"ru": "Оплата не удалась",
|
||
"es": "El pago falló"
|
||
},
|
||
"payRetry": {
|
||
"zh": "重试",
|
||
"en": "Retry",
|
||
"ja": "再試行",
|
||
"ko": "다시 시도",
|
||
"ru": "Повторить",
|
||
"es": "Reintentar"
|
||
},
|
||
"switchPayMethod": {
|
||
"zh": "换一种支付方式",
|
||
"en": "Switch payment method",
|
||
"ja": "別のお支払い方法に変更",
|
||
"ko": "다른 결제 수단으로 변경",
|
||
"ru": "Сменить способ оплаты",
|
||
"es": "Cambiar método de pago"
|
||
},
|
||
"cancelOrder": {
|
||
"zh": "取消订单",
|
||
"en": "Cancel order",
|
||
"ja": "注文をキャンセル",
|
||
"ko": "주문 취소",
|
||
"ru": "Отменить заказ",
|
||
"es": "Cancelar pedido"
|
||
},
|
||
"qrNotSupported": {
|
||
"zh": "请复制内容后在支付宝内打开",
|
||
"en": "Copy and open in Alipay",
|
||
"ja": "内容をコピーしてAlipayで開いてください",
|
||
"ko": "내용을 복사해 Alipay에서 여세요",
|
||
"ru": "Скопируйте и откройте в Alipay",
|
||
"es": "Copia el contenido y ábrelo en Alipay"
|
||
},
|
||
"orderCreateFailed": {
|
||
"zh": "下单失败,请稍后重试",
|
||
"en": "Failed to create order, please retry",
|
||
"ja": "注文の作成に失敗しました。しばらくして再試行してください",
|
||
"ko": "주문 생성에 실패했습니다. 잠시 후 다시 시도하세요",
|
||
"ru": "Не удалось создать заказ, повторите попытку позже",
|
||
"es": "Error al crear el pedido, inténtalo de nuevo más tarde"
|
||
},
|
||
"payUnsupportedRenderType": {
|
||
"zh": "暂不支持,请换支付方式",
|
||
"en": "Unsupported, switch payment method",
|
||
"ja": "未対応です。支払い方法を変更してください",
|
||
"ko": "지원되지 않습니다. 결제 방법을 변경하세요",
|
||
"ru": "Не поддерживается, смените способ оплаты",
|
||
"es": "No compatible, cambia el método de pago"
|
||
},
|
||
"payNoActiveOrder": {
|
||
"zh": "暂无进行中的订单",
|
||
"en": "No active order",
|
||
"ja": "進行中の注文はありません",
|
||
"ko": "진행 중인 주문이 없습니다",
|
||
"ru": "Нет активных заказов",
|
||
"es": "No hay pedidos activos"
|
||
},
|
||
"payChannel": {
|
||
"zh": "支付渠道",
|
||
"en": "Payment channel",
|
||
"ja": "支払いチャネル",
|
||
"ko": "결제 채널",
|
||
"ru": "Способ оплаты",
|
||
"es": "Canal de pago"
|
||
},
|
||
"payChannelUsdt": {
|
||
"zh": "USDT · 加密货币",
|
||
"en": "USDT · Crypto",
|
||
"ja": "USDT · 暗号資産",
|
||
"ko": "USDT · 암호화폐",
|
||
"ru": "USDT · Крипто",
|
||
"es": "USDT · Cripto"
|
||
},
|
||
"payChannelCny": {
|
||
"zh": "人民币 · 支付宝",
|
||
"en": "CNY · Alipay",
|
||
"ja": "人民元 · Alipay",
|
||
"ko": "위안화 · Alipay",
|
||
"ru": "Юань · Alipay",
|
||
"es": "CNY · Alipay"
|
||
},
|
||
"perMonthSuffix": {
|
||
"zh": " /月",
|
||
"en": " /mo",
|
||
"ja": " /月",
|
||
"ko": " /월",
|
||
"ru": " /мес",
|
||
"es": " /mes"
|
||
},
|
||
"ordersTitle": {
|
||
"zh": "我的订单",
|
||
"en": "My orders",
|
||
"ja": "注文履歴",
|
||
"ko": "내 주문",
|
||
"ru": "Мои заказы",
|
||
"es": "Mis pedidos"
|
||
},
|
||
"orderDetailTitle": {
|
||
"zh": "订单详情",
|
||
"en": "Order details",
|
||
"ja": "注文の詳細",
|
||
"ko": "주문 상세",
|
||
"ru": "Детали заказа",
|
||
"es": "Detalles del pedido"
|
||
},
|
||
"ordersEmpty": {
|
||
"zh": "暂无订单",
|
||
"en": "No orders yet",
|
||
"ja": "注文はありません",
|
||
"ko": "주문이 없습니다",
|
||
"ru": "Заказов пока нет",
|
||
"es": "Aún no hay pedidos"
|
||
},
|
||
"orderNoLabel": {
|
||
"zh": "订单号",
|
||
"en": "Order no.",
|
||
"ja": "注文番号",
|
||
"ko": "주문 번호",
|
||
"ru": "Номер заказа",
|
||
"es": "N.º de pedido"
|
||
},
|
||
"orderPlanLabel": {
|
||
"zh": "套餐",
|
||
"en": "Plan",
|
||
"ja": "プラン",
|
||
"ko": "플랜",
|
||
"ru": "Тариф",
|
||
"es": "Plan"
|
||
},
|
||
"orderMethodLabel": {
|
||
"zh": "支付方式",
|
||
"en": "Payment method",
|
||
"ja": "支払い方法",
|
||
"ko": "결제 수단",
|
||
"ru": "Способ оплаты",
|
||
"es": "Método de pago"
|
||
},
|
||
"orderAmountLabel": {
|
||
"zh": "金额",
|
||
"en": "Amount",
|
||
"ja": "金額",
|
||
"ko": "금액",
|
||
"ru": "Сумма",
|
||
"es": "Importe"
|
||
},
|
||
"orderCreatedLabel": {
|
||
"zh": "创建时间",
|
||
"en": "Created",
|
||
"ja": "作成日時",
|
||
"ko": "생성 시각",
|
||
"ru": "Создан",
|
||
"es": "Creado"
|
||
},
|
||
"orderPaidLabel": {
|
||
"zh": "付款时间",
|
||
"en": "Paid at",
|
||
"ja": "支払日時",
|
||
"ko": "결제 시각",
|
||
"ru": "Оплачен",
|
||
"es": "Pagado"
|
||
},
|
||
"orderStatusPaid": {
|
||
"zh": "已开通",
|
||
"en": "Activated",
|
||
"ja": "有効化済み",
|
||
"ko": "활성화됨",
|
||
"ru": "Активирован",
|
||
"es": "Activado"
|
||
},
|
||
"orderStatusCanceled": {
|
||
"zh": "已取消",
|
||
"en": "Canceled",
|
||
"ja": "キャンセル済み",
|
||
"ko": "취소됨",
|
||
"ru": "Отменён",
|
||
"es": "Cancelado"
|
||
},
|
||
"orderContinuePay": {
|
||
"zh": "继续支付",
|
||
"en": "Continue payment",
|
||
"ja": "支払いを続ける",
|
||
"ko": "결제 계속",
|
||
"ru": "Продолжить оплату",
|
||
"es": "Continuar pago"
|
||
},
|
||
"orderRefresh": {
|
||
"zh": "刷新状态",
|
||
"en": "Refresh",
|
||
"ja": "更新",
|
||
"ko": "새로고침",
|
||
"ru": "Обновить",
|
||
"es": "Actualizar"
|
||
},
|
||
"orderRebuy": {
|
||
"zh": "重新购买",
|
||
"en": "Buy again",
|
||
"ja": "再購入",
|
||
"ko": "다시 구매",
|
||
"ru": "Купить снова",
|
||
"es": "Comprar de nuevo"
|
||
},
|
||
"payMethodNezha": {
|
||
"zh": "哪吒支付",
|
||
"en": "Nazhapay",
|
||
"ja": "Nazhapay",
|
||
"ko": "Nazhapay",
|
||
"ru": "Nazhapay",
|
||
"es": "Nazhapay"
|
||
},
|
||
"inviteEntry": {
|
||
"zh": "邀请好友得会员",
|
||
"en": "Invite friends, earn membership",
|
||
"ja": "友達を招待してメンバーシップを獲得",
|
||
"ko": "친구 초대하고 멤버십 받기",
|
||
"ru": "Приглашайте друзей и получайте членство",
|
||
"es": "Invita a amigos y gana membresía"
|
||
},
|
||
"inviteEntrySub": {
|
||
"zh": "好友注册 · 双方都得会员天数",
|
||
"en": "Friend signs up · both earn days",
|
||
"ja": "友達が登録 · 双方に会員日数を付与",
|
||
"ko": "친구가 가입하면 · 양쪽 모두 회원 일수 획득",
|
||
"ru": "Друг регистрируется · оба получают дни подписки",
|
||
"es": "El amigo se registra · ambos ganan días"
|
||
},
|
||
"inviteTitle": {
|
||
"zh": "邀请好友",
|
||
"en": "Invite friends",
|
||
"ja": "友達を招待",
|
||
"ko": "친구 초대",
|
||
"ru": "Пригласить друзей",
|
||
"es": "Invitar amigos"
|
||
},
|
||
"inviteCodeLabel": {
|
||
"zh": "邀请码",
|
||
"en": "Invite code",
|
||
"ja": "招待コード",
|
||
"ko": "초대 코드",
|
||
"ru": "Код приглашения",
|
||
"es": "Código de invitación"
|
||
},
|
||
"inviteLinkLabel": {
|
||
"zh": "邀请链接",
|
||
"en": "Invite link",
|
||
"ja": "招待リンク",
|
||
"ko": "초대 링크",
|
||
"ru": "Ссылка приглашения",
|
||
"es": "Enlace de invitación"
|
||
},
|
||
"inviteCopyCode": {
|
||
"zh": "复制邀请码",
|
||
"en": "Copy code",
|
||
"ja": "コードをコピー",
|
||
"ko": "코드 복사",
|
||
"ru": "Скопировать код",
|
||
"es": "Copiar código"
|
||
},
|
||
"inviteCopyLink": {
|
||
"zh": "复制链接",
|
||
"en": "Copy link",
|
||
"ja": "リンクをコピー",
|
||
"ko": "링크 복사",
|
||
"ru": "Скопировать ссылку",
|
||
"es": "Copiar enlace"
|
||
},
|
||
"inviteRewardsTitle": {
|
||
"zh": "奖励规则",
|
||
"en": "Rewards",
|
||
"ja": "特典ルール",
|
||
"ko": "보상 규칙",
|
||
"ru": "Правила наград",
|
||
"es": "Reglas de recompensas"
|
||
},
|
||
"inviteRewardRegister": {
|
||
"zh": "好友注册 · 双方各得 3 天",
|
||
"en": "Sign up · +3 days each",
|
||
"ja": "友達が登録 · 双方に3日間付与",
|
||
"ko": "친구 가입 · 양쪽 각 3일 지급",
|
||
"ru": "Регистрация друга · +3 дня каждому",
|
||
"es": "Registro de amigo · +3 días cada uno"
|
||
},
|
||
"inviteRewardFirstBuy": {
|
||
"zh": "好友首购 · 双方各得 7 天",
|
||
"en": "First purchase · +7 days each",
|
||
"ja": "友達が初回購入 · 双方に7日間付与",
|
||
"ko": "친구 첫 구매 · 양쪽 각 7일 지급",
|
||
"ru": "Первая покупка друга · +7 дней каждому",
|
||
"es": "Primera compra del amigo · +7 días cada uno"
|
||
},
|
||
"inviteRewardJoinTg": {
|
||
"zh": "加入 TG 频道 · 得 3 天",
|
||
"en": "Join TG · +3 days",
|
||
"ja": "TGチャンネルに参加 · 3日間付与",
|
||
"ko": "TG 채널 가입 · 3일 지급",
|
||
"ru": "Вступление в TG-канал · +3 дня",
|
||
"es": "Unirse al canal de TG · +3 días"
|
||
},
|
||
"inviteProgressTitle": {
|
||
"zh": "我的奖励",
|
||
"en": "My rewards",
|
||
"ja": "獲得した特典",
|
||
"ko": "내 보상",
|
||
"ru": "Мои награды",
|
||
"es": "Mis recompensas"
|
||
},
|
||
"inviteTasksTitle": {
|
||
"zh": "更多得会员",
|
||
"en": "More ways to earn",
|
||
"ja": "もっと会員特典を得る",
|
||
"ko": "더 많은 혜택 받기",
|
||
"ru": "Больше способов заработать",
|
||
"es": "Más formas de ganar"
|
||
},
|
||
"inviteJoinTgTitle": {
|
||
"zh": "加入 Telegram 频道",
|
||
"en": "Join Telegram channel",
|
||
"ja": "Telegramチャンネルに参加",
|
||
"ko": "Telegram 채널 가입",
|
||
"ru": "Вступить в Telegram-канал",
|
||
"es": "Unirse al canal de Telegram"
|
||
},
|
||
"inviteJoinTgBtn": {
|
||
"zh": "加入频道",
|
||
"en": "Join channel",
|
||
"ja": "チャンネルに参加",
|
||
"ko": "채널 가입",
|
||
"ru": "Вступить в канал",
|
||
"es": "Unirse al canal"
|
||
},
|
||
"inviteVerifyBtn": {
|
||
"zh": "验证领取",
|
||
"en": "Verify & claim",
|
||
"ja": "確認して受け取る",
|
||
"ko": "확인하고 받기",
|
||
"ru": "Проверить и получить",
|
||
"es": "Verificar y reclamar"
|
||
},
|
||
"inviteTaskDone": {
|
||
"zh": "已领 +3 天",
|
||
"en": "Claimed +3 days",
|
||
"ja": "受け取り済み +3日",
|
||
"ko": "수령 완료 +3일",
|
||
"ru": "Получено +3 дня",
|
||
"es": "Reclamado +3 días"
|
||
},
|
||
"inviteStatInvited": {
|
||
"zh": "已邀请",
|
||
"en": "Invited",
|
||
"ja": "招待した人数",
|
||
"ko": "초대 수",
|
||
"ru": "Приглашено",
|
||
"es": "Invitados"
|
||
},
|
||
"inviteStatConverted": {
|
||
"zh": "已转化",
|
||
"en": "Converted",
|
||
"ja": "転換した人数",
|
||
"ko": "전환 수",
|
||
"ru": "Конвертировано",
|
||
"es": "Convertidos"
|
||
},
|
||
"inviteStatDays": {
|
||
"zh": "累计获赠(天)",
|
||
"en": "Days earned",
|
||
"ja": "累計獲得日数",
|
||
"ko": "누적 획득(일)",
|
||
"ru": "Всего получено (дней)",
|
||
"es": "Días acumulados"
|
||
},
|
||
"inviteCodeFieldLabel": {
|
||
"zh": "邀请码(选填)",
|
||
"en": "Invite code (optional)",
|
||
"ja": "招待コード(任意)",
|
||
"ko": "초대 코드(선택)",
|
||
"ru": "Код приглашения (необязательно)",
|
||
"es": "Código de invitación (opcional)"
|
||
},
|
||
"notifTitle": {
|
||
"zh": "通知",
|
||
"en": "Notifications",
|
||
"ja": "通知",
|
||
"ko": "알림",
|
||
"ru": "Уведомления",
|
||
"es": "Notificaciones"
|
||
},
|
||
"notifEmpty": {
|
||
"zh": "暂无通知",
|
||
"en": "No notifications",
|
||
"ja": "通知はありません",
|
||
"ko": "알림이 없습니다",
|
||
"ru": "Пока нет уведомлений",
|
||
"es": "Aún no hay notificaciones"
|
||
},
|
||
"notifTypeNews": {
|
||
"zh": "新闻",
|
||
"en": "News",
|
||
"ja": "ニュース",
|
||
"ko": "소식",
|
||
"ru": "Новости",
|
||
"es": "Noticias"
|
||
},
|
||
"notifTypeFeature": {
|
||
"zh": "功能",
|
||
"en": "Feature",
|
||
"ja": "新機能",
|
||
"ko": "기능",
|
||
"ru": "Функции",
|
||
"es": "Función"
|
||
},
|
||
"notifTypeImportant": {
|
||
"zh": "重要",
|
||
"en": "Important",
|
||
"ja": "重要",
|
||
"ko": "중요",
|
||
"ru": "Важное",
|
||
"es": "Importante"
|
||
},
|
||
"notifTypeReward": {
|
||
"zh": "到账",
|
||
"en": "Credited",
|
||
"ja": "入金",
|
||
"ko": "적립",
|
||
"ru": "Начислено",
|
||
"es": "Acreditado"
|
||
},
|
||
"notifTypeVersion": {
|
||
"zh": "版本",
|
||
"en": "Update",
|
||
"ja": "アップデート",
|
||
"ko": "업데이트",
|
||
"ru": "Обновление",
|
||
"es": "Actualización"
|
||
},
|
||
"notifTypePromo": {
|
||
"zh": "活动",
|
||
"en": "Promo",
|
||
"ja": "キャンペーン",
|
||
"ko": "프로모션",
|
||
"ru": "Акция",
|
||
"es": "Promoción"
|
||
},
|
||
"settingsGroupConn": {
|
||
"zh": "连接",
|
||
"en": "Connection",
|
||
"ja": "接続",
|
||
"ko": "연결",
|
||
"ru": "Подключение",
|
||
"es": "Conexión"
|
||
},
|
||
"settingsGroupAppearance": {
|
||
"zh": "外观",
|
||
"en": "Appearance",
|
||
"ja": "外観",
|
||
"ko": "화면",
|
||
"ru": "Внешний вид",
|
||
"es": "Apariencia"
|
||
},
|
||
"settingsGroupAbout": {
|
||
"zh": "关于",
|
||
"en": "About",
|
||
"ja": "このアプリについて",
|
||
"ko": "정보",
|
||
"ru": "О приложении",
|
||
"es": "Acerca de"
|
||
},
|
||
"orderStatusExpired": {
|
||
"zh": "已过期",
|
||
"en": "Expired",
|
||
"ja": "期限切れ",
|
||
"ko": "만료됨",
|
||
"ru": "Истёк",
|
||
"es": "Caducado"
|
||
},
|
||
"promoBadge": {
|
||
"zh": "限时优惠",
|
||
"en": "Limited-time offer",
|
||
"ja": "期間限定オファー",
|
||
"ko": "한정 특가",
|
||
"ru": "Спецпредложение",
|
||
"es": "Oferta especial"
|
||
},
|
||
"promoOriginalPrice": {
|
||
"zh": "原价",
|
||
"en": "Was",
|
||
"ja": "通常価格",
|
||
"ko": "정가",
|
||
"ru": "Было",
|
||
"es": "Antes"
|
||
},
|
||
"routingRulesTitle": {
|
||
"zh": "分流规则",
|
||
"en": "Routing rules",
|
||
"ja": "ルーティングルール",
|
||
"ko": "라우팅 규칙",
|
||
"ru": "Правила маршрутизации",
|
||
"es": "Reglas de enrutamiento"
|
||
},
|
||
"routingRulesSub": {
|
||
"zh": "自定义直连 / 走隧道 / 拒绝",
|
||
"en": "Custom direct / tunnel / reject",
|
||
"ja": "直接接続 / トンネル / 拒否をカスタム",
|
||
"ko": "직접 연결 / 터널 / 거부 사용자 지정",
|
||
"ru": "Настройка: напрямую / туннель / отклонить",
|
||
"es": "Personalizar: directo / túnel / rechazar"
|
||
},
|
||
"routingLanDirect": {
|
||
"zh": "局域网 / 私网直连",
|
||
"en": "LAN & private direct",
|
||
"ja": "LAN・プライベート直接接続",
|
||
"ko": "LAN / 사설망 직접 연결",
|
||
"ru": "Локальная и частная сеть напрямую",
|
||
"es": "LAN y red privada directas"
|
||
},
|
||
"routingLanForced": {
|
||
"zh": "强制,不可关",
|
||
"en": "Always on",
|
||
"ja": "常時オン",
|
||
"ko": "항상 켜짐",
|
||
"ru": "Всегда включено",
|
||
"es": "Siempre activo"
|
||
},
|
||
"routingForcedPill": {
|
||
"zh": "🔒 强制",
|
||
"en": "🔒 Forced",
|
||
"ja": "🔒 強制",
|
||
"ko": "🔒 강제",
|
||
"ru": "🔒 Принудительно",
|
||
"es": "🔒 Forzado"
|
||
},
|
||
"routingProxyMode": {
|
||
"zh": "代理模式",
|
||
"en": "Proxy mode",
|
||
"ja": "プロキシモード",
|
||
"ko": "프록시 모드",
|
||
"ru": "Режим прокси",
|
||
"es": "Modo de proxy"
|
||
},
|
||
"routingModeGlobal": {
|
||
"zh": "全局代理",
|
||
"en": "Global",
|
||
"ja": "グローバル",
|
||
"ko": "전체",
|
||
"ru": "Глобально",
|
||
"es": "Global"
|
||
},
|
||
"routingModeSmart": {
|
||
"zh": "智能分流",
|
||
"en": "Smart",
|
||
"ja": "スマート",
|
||
"ko": "스마트",
|
||
"ru": "Умный",
|
||
"es": "Inteligente"
|
||
},
|
||
"routingModeDirect": {
|
||
"zh": "全部直连",
|
||
"en": "Direct",
|
||
"ja": "直接",
|
||
"ko": "직접",
|
||
"ru": "Напрямую",
|
||
"es": "Directo"
|
||
},
|
||
"routingBuiltin": {
|
||
"zh": "内置规则",
|
||
"en": "Built-in rules",
|
||
"ja": "組み込みルール",
|
||
"ko": "기본 규칙",
|
||
"ru": "Встроенные правила",
|
||
"es": "Reglas integradas"
|
||
},
|
||
"routingCnDirect": {
|
||
"zh": "国内直连",
|
||
"en": "China direct",
|
||
"ja": "国内は直接接続",
|
||
"ko": "국내 직접 연결",
|
||
"ru": "Прямой доступ внутри страны",
|
||
"es": "Directo nacional"
|
||
},
|
||
"routingMyRulesOrdered": {
|
||
"zh": "我的规则 · 有序,首命中生效",
|
||
"en": "My rules · ordered, first match wins",
|
||
"ja": "マイルール · 順序あり、最初の一致が有効",
|
||
"ko": "내 규칙 · 순서대로, 첫 일치 적용",
|
||
"ru": "Мои правила · по порядку, срабатывает первое совпадение",
|
||
"es": "Mis reglas · en orden, gana la primera coincidencia"
|
||
},
|
||
"routingMyRulesFirst": {
|
||
"zh": "我的规则 · 首命中生效",
|
||
"en": "My rules · first match wins",
|
||
"ja": "マイルール · 最初の一致が有効",
|
||
"ko": "내 규칙 · 첫 일치 적용",
|
||
"ru": "Мои правила · срабатывает первое совпадение",
|
||
"es": "Mis reglas · gana la primera coincidencia"
|
||
},
|
||
"routingFinalLong": {
|
||
"zh": "最终(未命中任何规则)",
|
||
"en": "Final (no rule matched)",
|
||
"ja": "最終(どのルールにも一致しない)",
|
||
"ko": "최종(일치하는 규칙 없음)",
|
||
"ru": "Итог (ни одно правило не совпало)",
|
||
"es": "Final (ninguna regla coincide)"
|
||
},
|
||
"routingFinalShort": {
|
||
"zh": "最终(未命中)",
|
||
"en": "Final (no match)",
|
||
"ja": "最終(一致なし)",
|
||
"ko": "최종(일치 없음)",
|
||
"ru": "Итог (нет совпадений)",
|
||
"es": "Final (sin coincidencia)"
|
||
},
|
||
"routingFinalFallback": {
|
||
"zh": "FINAL 兜底",
|
||
"en": "FINAL fallback",
|
||
"ja": "FINAL フォールバック",
|
||
"ko": "FINAL 폴백",
|
||
"ru": "FINAL — резерв",
|
||
"es": "FINAL — reserva"
|
||
},
|
||
"routingTypeDomainSuffix": {
|
||
"zh": "域名后缀",
|
||
"en": "Domain suffix",
|
||
"ja": "ドメインサフィックス",
|
||
"ko": "도메인 접미사",
|
||
"ru": "Суффикс домена",
|
||
"es": "Sufijo de dominio"
|
||
},
|
||
"routingTypeDomainSuffixCi": {
|
||
"zh": "域名后缀 · CI 源",
|
||
"en": "Domain suffix · CI source",
|
||
"ja": "ドメインサフィックス · CI ソース",
|
||
"ko": "도메인 접미사 · CI 소스",
|
||
"ru": "Суффикс домена · CI-источник",
|
||
"es": "Sufijo de dominio · fuente CI"
|
||
},
|
||
"routingTypeDomainSuffixMirror": {
|
||
"zh": "域名后缀 · 镜像",
|
||
"en": "Domain suffix · Mirror",
|
||
"ja": "ドメインサフィックス · ミラー",
|
||
"ko": "도메인 접미사 · 미러",
|
||
"ru": "Суффикс домена · зеркало",
|
||
"es": "Sufijo de dominio · espejo"
|
||
},
|
||
"routingTypeGeosite": {
|
||
"zh": "GeoSite 规则集",
|
||
"en": "GeoSite rule-set",
|
||
"ja": "GeoSite ルールセット",
|
||
"ko": "GeoSite 규칙 세트",
|
||
"ru": "Набор правил GeoSite",
|
||
"es": "Conjunto de reglas GeoSite"
|
||
},
|
||
"routingTypeDomain": {
|
||
"zh": "域名",
|
||
"en": "Domain",
|
||
"ja": "ドメイン",
|
||
"ko": "도메인",
|
||
"ru": "Домен",
|
||
"es": "Dominio"
|
||
},
|
||
"routingTypeDomainKeyword": {
|
||
"zh": "域名关键字",
|
||
"en": "Domain keyword",
|
||
"ja": "ドメインキーワード",
|
||
"ko": "도메인 키워드",
|
||
"ru": "Ключевое слово домена",
|
||
"es": "Palabra clave de dominio"
|
||
},
|
||
"routingTypeIpCidr": {
|
||
"zh": "IP 段(CIDR)",
|
||
"en": "IP range (CIDR)",
|
||
"ja": "IP範囲(CIDR)",
|
||
"ko": "IP 대역(CIDR)",
|
||
"ru": "Диапазон IP (CIDR)",
|
||
"es": "Rango de IP (CIDR)"
|
||
},
|
||
"routingTypeGeoip": {
|
||
"zh": "GeoIP 规则集",
|
||
"en": "GeoIP rule-set",
|
||
"ja": "GeoIP ルールセット",
|
||
"ko": "GeoIP 규칙 세트",
|
||
"ru": "Набор правил GeoIP",
|
||
"es": "Conjunto de reglas GeoIP"
|
||
},
|
||
"routingActDirect": {
|
||
"zh": "直连",
|
||
"en": "Direct",
|
||
"ja": "直接接続",
|
||
"ko": "직접 연결",
|
||
"ru": "Напрямую",
|
||
"es": "Directo"
|
||
},
|
||
"routingActProxy": {
|
||
"zh": "走隧道",
|
||
"en": "Tunnel",
|
||
"ja": "トンネル",
|
||
"ko": "터널",
|
||
"ru": "Туннель",
|
||
"es": "Túnel"
|
||
},
|
||
"routingActReject": {
|
||
"zh": "拒绝",
|
||
"en": "Reject",
|
||
"ja": "拒否",
|
||
"ko": "거부",
|
||
"ru": "Отклонить",
|
||
"es": "Rechazar"
|
||
},
|
||
"routingForcedRow": {
|
||
"zh": "⚠ 该域名由系统强制走隧道,此规则不生效",
|
||
"en": "⚠ Forced to tunnel by the system; this rule is inactive",
|
||
"ja": "⚠ このドメインはシステムにより強制的にトンネル経由となり、このルールは無効です",
|
||
"ko": "⚠ 이 도메인은 시스템에 의해 강제로 터널을 사용하며, 이 규칙은 적용되지 않습니다",
|
||
"ru": "⚠ Домен принудительно направлен через туннель системой; правило неактивно",
|
||
"es": "⚠ El sistema fuerza el túnel para este dominio; esta regla no se aplica"
|
||
},
|
||
"routingRuleShadowed": {
|
||
"zh": "已被上面规则覆盖",
|
||
"en": "Overridden by a rule above",
|
||
"ja": "上のルールに上書きされました",
|
||
"ko": "위 규칙에 의해 재정의됨",
|
||
"ru": "Перекрыто правилом выше",
|
||
"es": "Sustituida por una regla anterior"
|
||
},
|
||
"routingModeNote": {
|
||
"zh": "「我的规则」仅在智能分流模式生效;全局代理 / 全部直连为一刀切,忽略自定义规则(系统强制层仍保留)。",
|
||
"en": "\"My rules\" only take effect in Smart mode. Global / Direct mode ignores custom rules entirely (system-forced rules still apply).",
|
||
"ja": "「マイルール」はスマート分流モードでのみ有効です。全体プロキシ / 全体直接接続では独自ルールは無視されます(システム強制ルールは引き続き適用)。",
|
||
"ko": "\"내 규칙\"은 스마트 분산 모드에서만 적용됩니다. 전체 프록시 / 전체 직접 연결에서는 사용자 규칙이 무시됩니다(시스템 강제 규칙은 계속 적용).",
|
||
"ru": "«Мои правила» действуют только в режиме умной маршрутизации. Глобальный прокси / прямое соединение игнорируют пользовательские правила (принудительные системные правила по-прежнему применяются).",
|
||
"es": "\"Mis reglas\" solo se aplican en modo Inteligente. El modo Global / Directo ignora las reglas personalizadas (las reglas forzadas por el sistema siguen aplicándose)."
|
||
},
|
||
"routingRuleValueHint": {
|
||
"zh": "如 example.com 或 192.168.1.0/24",
|
||
"en": "e.g. example.com or 192.168.1.0/24",
|
||
"ja": "例:example.com または 192.168.1.0/24",
|
||
"ko": "예: example.com 또는 192.168.1.0/24",
|
||
"ru": "например, example.com или 192.168.1.0/24",
|
||
"es": "p. ej. example.com o 192.168.1.0/24"
|
||
},
|
||
"routingNoRules": {
|
||
"zh": "暂无自定义规则",
|
||
"en": "No custom rules yet",
|
||
"ja": "カスタムルールはまだありません",
|
||
"ko": "아직 사용자 규칙이 없습니다",
|
||
"ru": "Пользовательских правил пока нет",
|
||
"es": "Aún no hay reglas personalizadas"
|
||
},
|
||
"routingAddRule": {
|
||
"zh": "添加规则",
|
||
"en": "Add rule",
|
||
"ja": "ルールを追加",
|
||
"ko": "규칙 추가",
|
||
"ru": "Добавить правило",
|
||
"es": "Añadir regla"
|
||
},
|
||
"routingSaveFailed": {
|
||
"zh": "保存失败,请重试",
|
||
"en": "Save failed, please try again",
|
||
"ja": "保存に失敗しました。もう一度お試しください",
|
||
"ko": "저장에 실패했습니다. 다시 시도하세요",
|
||
"ru": "Не удалось сохранить, попробуйте ещё раз",
|
||
"es": "Error al guardar, inténtalo de nuevo"
|
||
},
|
||
"routingRuleValueInvalid": {
|
||
"zh": "格式不正确",
|
||
"en": "Invalid format",
|
||
"ja": "形式が正しくありません",
|
||
"ko": "형식이 올바르지 않습니다",
|
||
"ru": "Неверный формат",
|
||
"es": "Formato no válido"
|
||
},
|
||
"routingImport": {
|
||
"zh": "从文本导入",
|
||
"en": "Import from text",
|
||
"ja": "テキストから読み込み",
|
||
"ko": "텍스트에서 가져오기",
|
||
"ru": "Импорт из текста",
|
||
"es": "Importar desde texto"
|
||
},
|
||
"routingReset": {
|
||
"zh": "重置默认",
|
||
"en": "Reset defaults",
|
||
"ja": "デフォルトに戻す",
|
||
"ko": "기본값 재설정",
|
||
"ru": "Сбросить настройки",
|
||
"es": "Restablecer"
|
||
},
|
||
"routingResetConfirmTitle": {
|
||
"zh": "重置为默认规则?",
|
||
"en": "Reset to defaults?",
|
||
"ja": "デフォルトのルールに戻しますか?",
|
||
"ko": "기본 규칙으로 재설정할까요?",
|
||
"ru": "Сбросить к правилам по умолчанию?",
|
||
"es": "¿Restablecer las reglas predeterminadas?"
|
||
},
|
||
"routingResetConfirmBody": {
|
||
"zh": "将清除你自定义的所有规则,恢复到出厂分流表。",
|
||
"en": "This clears all your custom rules and restores the factory routing table.",
|
||
"ja": "カスタムルールをすべて削除し、出荷時の分流テーブルに戻します。",
|
||
"ko": "사용자 지정 규칙을 모두 삭제하고 초기 분산 규칙으로 복원합니다.",
|
||
"ru": "Это удалит все ваши пользовательские правила и восстановит заводскую таблицу маршрутизации.",
|
||
"es": "Esto borra todas tus reglas personalizadas y restaura la tabla de enrutamiento de fábrica."
|
||
},
|
||
"routingResetConfirmAction": {
|
||
"zh": "重置",
|
||
"en": "Reset",
|
||
"ja": "リセット",
|
||
"ko": "재설정",
|
||
"ru": "Сбросить",
|
||
"es": "Restablecer"
|
||
},
|
||
"routingBack": {
|
||
"zh": "返回设置",
|
||
"en": "Back to settings",
|
||
"ja": "設定に戻る",
|
||
"ko": "설정으로 돌아가기",
|
||
"ru": "Назад к настройкам",
|
||
"es": "Volver a ajustes"
|
||
}
|
||
},
|
||
"lists": {
|
||
"days7": {
|
||
"zh": [
|
||
"一",
|
||
"二",
|
||
"三",
|
||
"四",
|
||
"五",
|
||
"六",
|
||
"日"
|
||
],
|
||
"en": [
|
||
"M",
|
||
"T",
|
||
"W",
|
||
"T",
|
||
"F",
|
||
"S",
|
||
"S"
|
||
],
|
||
"ja": [
|
||
"月",
|
||
"火",
|
||
"水",
|
||
"木",
|
||
"金",
|
||
"土",
|
||
"日"
|
||
],
|
||
"ko": [
|
||
"월",
|
||
"화",
|
||
"수",
|
||
"목",
|
||
"금",
|
||
"토",
|
||
"일"
|
||
],
|
||
"ru": [
|
||
"Пн",
|
||
"Вт",
|
||
"Ср",
|
||
"Чт",
|
||
"Пт",
|
||
"Сб",
|
||
"Вс"
|
||
],
|
||
"es": [
|
||
"L",
|
||
"M",
|
||
"X",
|
||
"J",
|
||
"V",
|
||
"S",
|
||
"D"
|
||
]
|
||
},
|
||
"featsFree": {
|
||
"zh": [
|
||
"仅 1 个基础节点",
|
||
"每日 10 分钟时长",
|
||
"使用前观看广告",
|
||
"注册享 7 天免费试用"
|
||
],
|
||
"en": [
|
||
"1 basic node only",
|
||
"10 min per day",
|
||
"Watch an ad to start",
|
||
"7-day free trial on sign-up"
|
||
],
|
||
"ja": [
|
||
"基本ノード1つのみ",
|
||
"1日10分",
|
||
"広告を見て開始",
|
||
"登録で7日間無料トライアル"
|
||
],
|
||
"ko": [
|
||
"기본 노드 1개",
|
||
"하루 10분",
|
||
"광고 시청 후 시작",
|
||
"가입 시 7일 무료 체험"
|
||
],
|
||
"ru": [
|
||
"Только 1 базовый узел",
|
||
"10 минут в день",
|
||
"Смотрите рекламу, чтобы начать",
|
||
"7 дней бесплатно при регистрации"
|
||
],
|
||
"es": [
|
||
"Solo 1 nodo básico",
|
||
"10 min al día",
|
||
"Mira un anuncio para empezar",
|
||
"Prueba gratis de 7 días al registrarte"
|
||
]
|
||
},
|
||
"featsPro": {
|
||
"zh": [
|
||
"80+ 全球节点",
|
||
"无限流量 · 极速",
|
||
"5 台设备同时在线",
|
||
"流媒体优化"
|
||
],
|
||
"en": [
|
||
"80+ locations",
|
||
"Unlimited · fast",
|
||
"5 devices",
|
||
"Streaming optimized"
|
||
],
|
||
"ja": [
|
||
"80以上の拠点",
|
||
"無制限 · 高速",
|
||
"5台のデバイス",
|
||
"ストリーミング最適化"
|
||
],
|
||
"ko": [
|
||
"80개 이상 지역",
|
||
"무제한 · 빠른 속도",
|
||
"기기 5대",
|
||
"스트리밍 최적화"
|
||
],
|
||
"ru": [
|
||
"80+ локаций",
|
||
"Безлимитно · быстро",
|
||
"5 устройств",
|
||
"Оптимизация для стриминга"
|
||
],
|
||
"es": [
|
||
"Más de 80 ubicaciones",
|
||
"Ilimitado · rápido",
|
||
"5 dispositivos",
|
||
"Optimizado para streaming"
|
||
]
|
||
},
|
||
"featsTeam": {
|
||
"zh": [
|
||
"专业版全部功能",
|
||
"10 个成员席位",
|
||
"集中计费与管理",
|
||
"优先客服"
|
||
],
|
||
"en": [
|
||
"Everything in Pro",
|
||
"10 seats",
|
||
"Central billing",
|
||
"Priority support"
|
||
],
|
||
"ja": [
|
||
"Proのすべての機能",
|
||
"10ライセンス",
|
||
"一括請求",
|
||
"優先サポート"
|
||
],
|
||
"ko": [
|
||
"Pro의 모든 기능",
|
||
"10인 좌석",
|
||
"통합 결제",
|
||
"우선 지원"
|
||
],
|
||
"ru": [
|
||
"Всё из Pro",
|
||
"10 мест",
|
||
"Единый счёт",
|
||
"Приоритетная поддержка"
|
||
],
|
||
"es": [
|
||
"Todo lo de Pro",
|
||
"10 plazas",
|
||
"Facturación centralizada",
|
||
"Soporte prioritario"
|
||
]
|
||
}
|
||
},
|
||
"methods": {
|
||
"adRewarded": {
|
||
"args": "int minutes",
|
||
"tpl": {
|
||
"zh": "已加 $minutes 分钟",
|
||
"en": "+$minutes min added",
|
||
"ja": "+$minutes 分を追加しました",
|
||
"ko": "+$minutes분 추가됨",
|
||
"ru": "+$minutes мин добавлено",
|
||
"es": "+$minutes min añadidos"
|
||
}
|
||
},
|
||
"nodeSwitchTitle": {
|
||
"args": "String name",
|
||
"tpl": {
|
||
"zh": "切换到「$name」?",
|
||
"en": "Switch to $name?",
|
||
"ja": "$name に切り替えますか?",
|
||
"ko": "$name(으)로 전환할까요?",
|
||
"ru": "Переключиться на $name?",
|
||
"es": "¿Cambiar a $name?"
|
||
}
|
||
},
|
||
"autoConnectingTo": {
|
||
"args": "String name",
|
||
"tpl": {
|
||
"zh": "正在自动连接到 $name…",
|
||
"en": "Auto-connecting to $name…",
|
||
"ja": "$name に自動接続中…",
|
||
"ko": "$name(으)로 자동 연결 중…",
|
||
"ru": "Автоподключение к $name…",
|
||
"es": "Conectando automáticamente a $name…"
|
||
}
|
||
},
|
||
"updateAvailableTitle": {
|
||
"args": "String version",
|
||
"tpl": {
|
||
"zh": "发现新版本 v$version",
|
||
"en": "New version v$version available",
|
||
"ja": "新しいバージョン v$version が利用可能です",
|
||
"ko": "새 버전 v$version 사용 가능",
|
||
"ru": "Доступна новая версия v$version",
|
||
"es": "Nueva versión v$version disponible"
|
||
}
|
||
},
|
||
"codeSentTo": {
|
||
"args": "String email",
|
||
"tpl": {
|
||
"zh": "验证码已发送至 $email",
|
||
"en": "Code sent to $email",
|
||
"ja": "$email に確認コードを送信しました",
|
||
"ko": "$email(으)로 코드를 보냈습니다",
|
||
"ru": "Код отправлен на $email",
|
||
"es": "Código enviado a $email"
|
||
}
|
||
}
|
||
}
|
||
}
|