diff --git a/assets/translations/strings_en.i18n.json b/assets/translations/strings_en.i18n.json index c535d26..a90052d 100755 --- a/assets/translations/strings_en.i18n.json +++ b/assets/translations/strings_en.i18n.json @@ -9,6 +9,7 @@ "enterEmail": "Please enter email address", "enterCode": "Please enter verification code", "enterPassword": "Please enter password", + "enterPasswordForPhone": "Please enter password (Password Login)", "reenterPassword": "Please re-enter password", "forgotPassword": "Forgot Password", "codeLogin": "Code Login", @@ -18,6 +19,8 @@ "privacyPolicy": "Privacy Policy", "next": "Next", "registerNow": "Register Now", + "registerAccount": "Register Account", + "clickToRegister": "Click to Register", "setAndLogin": "Set and Login", "enterAccount": "Please enter account", "passwordMismatch": "The two passwords do not match", @@ -25,7 +28,9 @@ "codeSentCountdown": "Code sent {seconds}s", "and": "and", "enterInviteCode": "Enter invite code (optional)", - "registerSuccess": "Registration successful" + "registerSuccess": "Registration successful", + "search": "Search", + "selectOtherRegion": "Select other region" }, "failure": { "unexpected": "Unexpected Error", @@ -171,7 +176,8 @@ "friday": "Fri", "saturday": "Sat", "sunday": "Sun" - } + }, + "processTrafficFailed": "Failed to process traffic log data" }, "message": { "title": "Notifications", @@ -367,6 +373,7 @@ "initializing": "Initializing...", "networkConnectionFailure": "Network connection failed, please check and retry", "retry": "Retry", + "skip": "Skip", "networkPermissionFailed": "Failed to get network permission", "initializationFailed": "Initialization failed" }, @@ -467,5 +474,33 @@ "open_dashboard": "Open Dashboard", "copy_to_terminal": "Copy to Terminal", "exit_app": "Exit Application" + }, + "crisp": { + "initializingSystem": "Initializing customer service system...", + "initFailed": "Customer service system initialization failed" + }, + "common": { + "retry": "Retry", + "tryBrowser": "Try opening with browser", + "cannotOpenBrowser": "Cannot open browser", + "openLinkFailed": "Failed to open link, please try again later", + "cannotOpenTelegram": "Cannot open Telegram link" + }, + "subscribe": { + "pleaseSelectFirst": "Please select a subscription first", + "resetPeriodFailed": "Failed to reset subscription period", + "resetPeriodSuccess": "Subscription period reset successfully" + }, + "purchase": { + "noAvailablePlans": "No available plans" + }, + "payment": { + "cannotOpenLink": "Cannot open payment link", + "linkEmpty": "Payment link is empty", + "unsupportedType": "Unsupported payment type" + }, + "account": { + "accountRequired": "Account cannot be empty", + "deleteSuccess": "Account deleted successfully" } } \ No newline at end of file diff --git a/assets/translations/strings_es.i18n.json b/assets/translations/strings_es.i18n.json index 477ce43..dadf2bb 100755 --- a/assets/translations/strings_es.i18n.json +++ b/assets/translations/strings_es.i18n.json @@ -9,6 +9,7 @@ "enterEmail": "Please enter email address", "enterCode": "Por favor, ingresa el código de verificación", "enterPassword": "Por favor, ingresa la contraseña", + "enterPasswordForPhone": "Por favor ingrese la contraseña (Inicio de sesión con contraseña)", "reenterPassword": "Por favor, reingresa la contraseña", "forgotPassword": "Olvidé mi contraseña", "codeLogin": "Iniciar sesión con código", @@ -18,6 +19,8 @@ "privacyPolicy": "Política de privacidad", "next": "Siguiente", "registerNow": "Registrarse ahora", + "registerAccount": "Registrar Cuenta", + "clickToRegister": "Haga clic para registrarse", "setAndLogin": "Configurar e iniciar sesión", "enterAccount": "Por favor, ingresa la cuenta", "passwordMismatch": "Las dos contraseñas no coinciden", @@ -25,7 +28,9 @@ "codeSentCountdown": "Código enviado {seconds}s", "and": "y", "enterInviteCode": "Ingresa código de invitación (opcional)", - "registerSuccess": "Registro exitoso" + "registerSuccess": "Registro exitoso", + "search": "Buscar", + "selectOtherRegion": "Seleccionar otra región" }, "failure": { "unexpected": "Error inesperado", @@ -187,7 +192,8 @@ "friday": "Vie", "saturday": "Sáb", "sunday": "Dom" - } + }, + "processTrafficFailed": "Error al procesar datos de registro de tráfico" }, "message": { "title": "Notificaciones", @@ -373,6 +379,7 @@ "initializing": "Inicializando...", "networkConnectionFailure": "Error de conexión de red, verifique e intente nuevamente", "retry": "Reintentar", + "skip": "Saltar", "networkPermissionFailed": "Error al obtener permiso de red", "initializationFailed": "Error de inicialización" }, @@ -481,5 +488,33 @@ "open_dashboard": "Abrir panel", "copy_to_terminal": "Copiar al terminal", "exit_app": "Salir de la aplicación" + }, + "crisp": { + "initializingSystem": "Inicializando sistema de atención al cliente...", + "initFailed": "Error al inicializar el sistema de atención al cliente" + }, + "common": { + "retry": "Reintentar", + "tryBrowser": "Intentar abrir con navegador", + "cannotOpenBrowser": "No se puede abrir el navegador", + "openLinkFailed": "Error al abrir el enlace, inténtelo más tarde", + "cannotOpenTelegram": "No se puede abrir el enlace de Telegram" + }, + "subscribe": { + "pleaseSelectFirst": "Seleccione primero una suscripción", + "resetPeriodFailed": "Error al restablecer el período de suscripción", + "resetPeriodSuccess": "Período de suscripción restablecido exitosamente" + }, + "purchase": { + "noAvailablePlans": "No hay planes disponibles" + }, + "payment": { + "cannotOpenLink": "No se puede abrir el enlace de pago", + "linkEmpty": "El enlace de pago está vacío", + "unsupportedType": "Tipo de pago no compatible" + }, + "account": { + "accountRequired": "La cuenta no puede estar vacía", + "deleteSuccess": "Cuenta eliminada exitosamente" } } \ No newline at end of file diff --git a/assets/translations/strings_es.i18n.json.bak b/assets/translations/strings_es.i18n.json.bak deleted file mode 100755 index 2c18376..0000000 --- a/assets/translations/strings_es.i18n.json.bak +++ /dev/null @@ -1,441 +0,0 @@ -{ - "login": { - "welcome": "¡Bienvenido a Hi快VPN!", - "verifyPhone": "Verifica tu número de teléfono", - "verifyEmail": "Verifica tu correo electrónico", - "codeSent": "Se ha enviado un código de 6 dígitos a {account}. Por favor, ingrésalo en los próximos 30 minutos.", - "back": "Atrás", - "enterEmailOrPhone": "Ingresa correo o teléfono", - "enterCode": "Por favor, ingresa el código de verificación", - "enterPassword": "Por favor, ingresa la contraseña", - "reenterPassword": "Por favor, reingresa la contraseña", - "forgotPassword": "Olvidé mi contraseña", - "codeLogin": "Iniciar sesión con código", - "passwordLogin": "Iniciar sesión con contraseña", - "agreeTerms": "Iniciar sesión/Crear cuenta, acepto", - "termsOfService": "Términos de servicio", - "privacyPolicy": "Política de privacidad", - "next": "Siguiente", - "registerNow": "Registrarse ahora", - "setAndLogin": "Configurar e iniciar sesión", - "enterAccount": "Por favor, ingresa la cuenta", - "passwordMismatch": "Las dos contraseñas no coinciden", - "sendCode": "Enviar código", - "codeSentCountdown": "Código enviado {seconds}s", - "and": "y", - "enterInviteCode": "Ingresa código de invitación (opcional)", - "registerSuccess": "Registro exitoso" - }, - "failure": { - "unexpected": "Error inesperado", - "clash": { - "unexpected": "Error inesperado", - "core": "Error de Clash ${reason}" - }, - "singbox": { - "unexpected": "Error de servicio inesperado", - "serviceNotRunning": "Servicio no en ejecución", - "missingPrivilege": "Privilegios insuficientes", - "missingPrivilegeMsg": "El modo VPN requiere privilegios de administrador. Reinicia la aplicación como administrador o cambia el modo de servicio", - "missingGeoAssets": "Faltan recursos GEO", - "missingGeoAssetsMsg": "Faltan archivos de recursos GEO. Considera cambiar los recursos activos o descarga los recursos seleccionados en configuración.", - "invalidConfigOptions": "Opciones de configuración inválidas", - "invalidConfig": "Configuración inválida", - "create": "Error al crear servicio", - "start": "Error al iniciar servicio" - }, - "connectivity": { - "unexpected": "Fallo inesperado", - "missingVpnPermission": "Falta permiso VPN", - "missingNotificationPermission": "Falta permiso de notificaciones", - "core": "Error del núcleo" - }, - "profiles": { - "unexpected": "Error inesperado", - "notFound": "Perfil no encontrado", - "invalidConfig": "Configuración inválida", - "invalidUrl": "URL inválida" - }, - "connection": { - "unexpected": "Error de conexión inesperado", - "timeout": "Tiempo de conexión agotado", - "badResponse": "Respuesta incorrecta", - "connectionError": "Error de conexión", - "badCertificate": "Certificado inválido" - }, - "geoAssets": { - "unexpected": "Error inesperado", - "notUpdate": "No hay actualizaciones disponibles", - "activeNotFound": "No se encontraron recursos GEO activos" - } - }, - "userInfo": { - "title": "Mi información", - "bindingTip": "Correo/teléfono no vinculado", - "myAccount": "Mi cuenta", - "balance": "Saldo", - "noValidSubscription": "No tiene una suscripción válida", - "subscribeNow": "Suscribirse ahora", - "shortcuts": "Accesos directos", - "adBlock": "Bloqueo de anuncios", - "dnsUnlock": "Desbloqueo DNS", - "contactUs": "Contáctanos", - "others": "Otros", - "logout": "Cerrar sesión", - "logoutConfirmTitle": "Cerrar sesión", - "logoutConfirmMessage": "¿Estás seguro de que quieres cerrar sesión?", - "logoutCancel": "Cancelar", - "vpnWebsite": "Sitio web VPN", - "telegram": "Telegram", - "mail": "Correo", - "phone": "Teléfono", - "customerService": "Servicio al cliente", - "workOrder": "Enviar ticket", - "pleaseLogin": "Por favor, inicia sesión primero", - "subscriptionValid": "Suscripción válida", - "startTime": "Fecha de inicio:", - "expireTime": "Fecha de vencimiento:", - "loginNow": "Iniciar sesión ahora", - "trialPeriod": "Bienvenido a la prueba Premium", - "remainingTime": "Tiempo restante", - "trialExpired": "Prueba expirada, conexión desconectada", - "subscriptionExpired": "Suscripción expirada, conexión desconectada", - "copySuccess": "Copiado con éxito", - "notAvailable": "No disponible", - "deviceLimit": "Límite de dispositivos: {count}", - "reset": "Restablecer", - "trafficUsage": "Usado: {used} / {total}", - "trafficProgress": { - "title": "Uso de tráfico", - "unlimited": "Tráfico ilimitado", - "limited": "Tráfico usado" - }, - "switchSubscription": "Cambiar Suscripción", - "resetTrafficTitle": "Restablecer Tráfico", - "resetTrafficMessage": "Ejemplo de restablecimiento de tráfico del plan mensual: restablecer el tráfico del siguiente ciclo mensualmente, y el período de validez de la suscripción se adelantará de {currentTime} a {newTime}", - "trialStatus": "Estado de prueba", - "trialing": "En período de prueba", - "trialEndMessage": "No podrá continuar usando después de que expire el período de prueba", - "lastDaySubscriptionStatus": "Suscripción por expirar", - "lastDaySubscriptionMessage": "Por expirar", - "subscriptionEndMessage": "No podrá continuar usando después de que expire la suscripción", - "trialTimeWithDays": "{days}d {hours}h {minutes}m {seconds}s", - "trialTimeWithHours": "{hours}h {minutes}m {seconds}s", - "trialTimeWithMinutes": "{minutes}m {seconds}s", - "refreshLatency": "Actualizar latencia", - "testLatency": "Probar latencia", - "testing": "Probando latencia", - "refreshLatencyDesc": "Actualizar latencia de todos los nodos", - "testAllNodesLatency": "Probar la latencia de red de todos los nodos", - "autoSelect": "Selección automática", - "selected": "Seleccionado", - "willBeDeleted": "será eliminado", - "deleteAccountWarning": "La eliminación de la cuenta es permanente. Una vez que se elimine su cuenta, no podrá utilizar ninguna función. ¿Continuar?", - "requestDelete": "Solicitar eliminación" - }, - "setting": { - "title": "Configuración", - "vpnConnection": "Conexión VPN", - "general": "General", - "autoConnect": "Conexión automática", - "routeRule": "Reglas de ruta", - "countrySelector": "Seleccionar país", - "appearance": "Apariencia", - "notifications": "Notificaciones", - "helpImprove": "Ayúdanos a mejorar", - "helpImproveSubtitle": "Subtítulo de ayuda para mejorar", - "requestDeleteAccount": "Solicitar eliminación de cuenta", - "goToDelete": "Ir a eliminar", - "rateUs": "Califícanos en App Store", - "iosRating": "Calificación iOS", - "version": "Versión", - "switchLanguage": "Cambiar idioma", - "system": "Sistema", - "light": "Claro", - "dark": "Oscuro", - "vpnModeSmart": "Modo inteligente", - "mode": "Modo de salida", - "connectionTypeGlobal": "Proxy global", - "connectionTypeGlobalRemark": "Cuando está activado, todo el tráfico pasa por el proxy", - "connectionTypeRule": "Proxy inteligente", - "connectionTypeRuleRemark": "Cuando el [Modo de salida] está configurado en [Proxy inteligente], el sistema dividirá automáticamente el tráfico nacional e internacional según el país seleccionado: las IPs/dominios nacionales se conectan directamente, mientras que las solicitudes extranjeras se acceden a través del proxy", - "connectionTypeDirect": "Conexión directa", - "connectionTypeDirectRemark": "Cuando está activado, todo el tráfico evita el proxy", - "smartMode": "Modo inteligente", - "secureMode": "Modo seguro" - }, - "statistics": { - "title": "Estadísticas", - "vpnStatus": "Estado VPN", - "ipAddress": "Dirección IP", - "connectionTime": "Tiempo de conexión", - "protocol": "Protocolo", - "weeklyProtectionTime": "Tiempo de protección semanal", - "currentStreak": "Racha actual", - "highestStreak": "Mejor racha", - "longestConnection": "Conexión más larga", - "days": "{days} días", - "daysOfWeek": { - "monday": "Lun", - "tuesday": "Mar", - "wednesday": "Mié", - "thursday": "Jue", - "friday": "Vie", - "saturday": "Sáb", - "sunday": "Dom" - } - }, - "message": { - "title": "Notificaciones", - "system": "Mensajes del sistema", - "promotion": "Mensajes promocionales" - }, - "home": { - "welcome": "Bienvenido a Hi快VPN", - "disconnected": "Desconectado", - "connecting": "Conectando", - "connected": "Conectado", - "disconnecting": "Desconectando", - "currentConnectionTitle": "Conexión actual", - "switchNode": "Cambiar nodo", - "timeout": "Tiempo de espera agotado", - "loading": "Cargando...", - "error": "Error de carga", - "checkNetwork": "Verifique su conexión de red e intente nuevamente", - "retry": "Reintentar", - "connectionSectionTitle": "Método de conexión", - "dedicatedServers": "Servidores dedicados", - "countryRegion": "País/Región", - "serverListTitle": "Grupos de servidores dedicados", - "nodeListTitle": "Todos los nodos", - "countryListTitle": "Lista de países/regiones", - "noServers": "No hay servidores disponibles", - "noNodes": "No hay nodos disponibles", - "noRegions": "No hay regiones disponibles", - "subscriptionDescription": "Obtenga acceso premium a la red global de alta velocidad", - "subscribe": "Suscribirse", - "trialPeriod": "Bienvenido a la versión de prueba Premium", - "remainingTime": "Tiempo restante", - "trialExpired": "Período de prueba expirado, conexión terminada", - "subscriptionExpired": "Suscripción expirada, conexión terminada", - "subscriptionUpdated": "Suscripción actualizada", - "subscriptionUpdatedMessage": "Su información de suscripción ha sido actualizada, actualice para ver el último estado", - "trialStatus": "Estado de prueba", - "trialing": "En período de prueba", - "trialEndMessage": "No podrá continuar usando después de que expire el período de prueba", - "lastDaySubscriptionStatus": "Suscripción por expirar", - "lastDaySubscriptionMessage": "Por expirar", - "subscriptionEndMessage": "No podrá continuar usando después de que expire la suscripción", - "trialTimeWithDays": "{days}d {hours}h {minutes}m {seconds}s", - "trialTimeWithHours": "{hours}h {minutes}m {seconds}s", - "trialTimeWithMinutes": "{minutes}m {seconds}s", - "refreshLatency": "Actualizar latencia", - "testLatency": "Probar latencia", - "testing": "Probando latencia", - "refreshLatencyDesc": "Actualizar latencia de todos los nodos", - "testAllNodesLatency": "Probar la latencia de red de todos los nodos", - "autoSelect": "Selección automática", - "selected": "Seleccionado" - }, - "invite": { - "title": "Invitar amigos", - "progress": "Progreso de invitación", - "inviteStats": "Estadísticas de invitación", - "registers": "Registrados", - "totalCommission": "Comisión total", - "rewardDetails": "Detalles de recompensa >", - "steps": "Pasos de invitación", - "inviteFriend": "Invitar amigo", - "acceptInvite": "El amigo acepta la invitación\ny se registra", - "getReward": "Obtener recompensa", - "shareLink": "Compartir por enlace", - "shareQR": "Compartir por código QR", - "rules": "Reglas de invitación", - "rule1": "1. Puedes invitar amigos compartiendo tu enlace o código de invitación exclusivo.", - "rule2": "2. Después de que tu amigo complete el registro e inicie sesión, la recompensa por invitación se enviará automáticamente a tu cuenta.", - "pending": "Pendiente de descarga", - "processing": "En proceso", - "success": "Exitoso", - "expired": "Expirado", - "myInviteCode": "Mi código de invitación", - "inviteCodeCopied": "Código de invitación copiado al portapapeles" - }, - "purchaseMembership": { - "purchasePackage": "Comprar Paquete", - "noData": "No hay paquetes disponibles", - "myAccount": "Mi Cuenta", - "selectPackage": "Seleccionar Paquete", - "packageDescription": "Descripción del Paquete", - "paymentMethod": "Método de Pago", - "cancelAnytime": "Puedes cancelar en cualquier momento en la APP", - "startSubscription": "Comenzar Suscripción", - "renewNow": "Renovar Ahora", - "month": "{quantity} meses", - "year": "{quantity} años", - "day": "{quantity} días", - "unlimitedTraffic": "Tráfico Ilimitado", - "unlimitedDevices": "Dispositivos Ilimitados", - "devices": "{count} dispositivos", - "features": "Características del Paquete", - "expand": "Expandir", - "collapse": "Colapsar", - "confirmPurchase": "Confirmar Compra", - "confirmPurchaseDesc": "¿Está seguro de que desea comprar este paquete?" - }, - "orderStatus": { - "title": "Estado del Pedido", - "pending": { - "title": "Pago Pendiente", - "description": "Por favor complete el pago" - }, - "paid": { - "title": "Pago Recibido", - "description": "Procesando su pedido" - }, - "success": { - "title": "¡Felicitaciones! Pago Exitoso", - "description": "Su paquete ha sido comprado exitosamente" - }, - "closed": { - "title": "Pedido Cerrado", - "description": "Por favor realice un nuevo pedido" - }, - "failed": { - "title": "Pago Fallido", - "description": "Por favor intente el pago nuevamente" - }, - "unknown": { - "title": "Estado Desconocido", - "description": "Por favor contacte al servicio al cliente" - }, - "checkFailed": { - "title": "Verificación Fallida", - "description": "Por favor intente nuevamente más tarde" - }, - "initial": { - "title": "Procesando Pago", - "description": "Por favor espere mientras procesamos su pago" - } - }, - "dialog": { - "confirm": "Confirmar", - "cancel": "Cancelar", - "ok": "OK", - "iKnow": "Lo entiendo" - }, - "splash": { - "appName": "Hi快VPN", - "slogan": "Red global de alta velocidad", - "initializing": "Inicializando...", - "networkConnectionFailure": "Error de conexión de red, verifique e intente nuevamente", - "retry": "Reintentar", - "networkPermissionFailed": "Error al obtener permiso de red", - "initializationFailed": "Error de inicialización" - }, - "network": { - "status": { - "connected": "Conectado", - "disconnected": "Desconectado", - "connecting": "Conectando...", - "disconnecting": "Desconectando...", - "reconnecting": "Reconectando...", - "failed": "Error de conexión" - }, - "permission": { - "title": "Permiso de red", - "description": "Se requiere permiso de red para proporcionar el servicio VPN", - "goToSettings": "Ir a configuración", - "cancel": "Cancelar" - } - }, - "update": { - "title": "Actualización disponible", - "content": "¿Actualizar ahora?", - "updateNow": "Actualizar ahora", - "updateLater": "Más tarde", - "defaultContent": "1. Optimización del rendimiento de la aplicación\n2. Corrección de problemas conocidos\n3. Mejora de la experiencia del usuario" - }, - "kr_invite": { - "close": "Cerrar", - "saveQRCode": "Guardar código QR", - "qrCodeSaved": "Código QR guardado", - "shareLink": "Compartir enlace", - "shareQR": "Compartir código QR", - "myInviteCode": "Mi código de invitación" - }, - "country": { - "cn": "China", - "ir": "Irán", - "af": "Afganistán", - "ru": "Rusia", - "id": "Indonesia", - "tr": "Turquía", - "br": "Brasil" - }, - "error": { - "200": "Éxito", - "500": "Error interno del servidor", - "10001": "Error de consulta a la base de datos", - "10002": "Error de actualización de la base de datos", - "10003": "Error de inserción en la base de datos", - "10004": "Error de eliminación de la base de datos", - "20001": "El usuario ya existe", - "20002": "El usuario no existe", - "20003": "Contraseña de usuario incorrecta", - "20004": "Usuario deshabilitado", - "20005": "Saldo insuficiente", - "20006": "Registro detenido", - "20007": "Telegram no vinculado", - "20008": "Usuario no ha vinculado OAuth", - "20009": "Código de invitación incorrecto", - "30001": "El nodo ya existe", - "30002": "El nodo no existe", - "30003": "El grupo de nodos ya existe", - "30004": "El grupo de nodos no existe", - "30005": "El grupo de nodos no está vacío", - "400": "Error de parámetros", - "40002": "Token de usuario vacío", - "40003": "Token de usuario inválido", - "40004": "Token de usuario expirado", - "40005": "No ha iniciado sesión", - "401": "Demasiadas solicitudes", - "50001": "El cupón no existe", - "50002": "El cupón ya ha sido usado", - "50003": "El cupón no coincide", - "60001": "Suscripción expirada", - "60002": "Suscripción no disponible", - "60003": "El usuario ya tiene una suscripción", - "60004": "La suscripción ya ha sido usada", - "60005": "Límite de suscripción única excedido", - "60006": "Límite de cuota de suscripción", - "70001": "Código de verificación incorrecto", - "80001": "Error al encolar", - "90001": "Modo de depuración habilitado", - "90002": "Error al enviar SMS", - "90003": "Función SMS no habilitada", - "90004": "Función de correo electrónico no habilitada", - "90005": "Método de inicio de sesión no soportado", - "90006": "El autenticador no soporta este método", - "90007": "Código de país de teléfono vacío", - "90008": "Contraseña vacía", - "90009": "Código de país vacío", - "90010": "Se requiere contraseña o código de verificación", - "90011": "El correo electrónico ya existe", - "90012": "El número de teléfono ya existe", - "90013": "El dispositivo ya existe", - "90014": "Número de teléfono incorrecto", - "90015": "Este cuenta ha alcanzado el límite de envío hoy", - "90017": "El dispositivo no existe", - "90018": "ID de usuario no coincide", - "61001": "El pedido no existe", - "61002": "Método de pago no encontrado", - "61003": "Estado de pedido incorrecto", - "61004": "Período de reinicio insuficiente", - "61005": "Existe tráfico sin usar" - }, - "tray": { - "open_dashboard": "Abrir panel", - "copy_to_terminal": "Copiar al terminal", - "exit_app": "Salir de la aplicación" - } -} \ No newline at end of file diff --git a/assets/translations/strings_et.i18n.json b/assets/translations/strings_et.i18n.json index 5acc1c3..26a6fd8 100755 --- a/assets/translations/strings_et.i18n.json +++ b/assets/translations/strings_et.i18n.json @@ -9,6 +9,7 @@ "enterEmail": "Please enter email address", "enterCode": "Palun sisesta kinnituskood", "enterPassword": "Palun sisesta parool", + "enterPasswordForPhone": "Palun sisestage parool (Parooli sisselogimine)", "reenterPassword": "Palun sisesta parool uuesti", "forgotPassword": "Unustasid parooli", "codeLogin": "Koodiga sisselogimine", @@ -18,6 +19,8 @@ "privacyPolicy": "Privaatsuspoliitikaga", "next": "Edasi", "registerNow": "Registreeru kohe", + "registerAccount": "Registreeri konto", + "clickToRegister": "Klõpsa registreerimiseks", "setAndLogin": "Seadista ja logi sisse", "enterAccount": "Palun sisesta konto", "passwordMismatch": "Kaks sisestatud parooli ei ühti", @@ -25,7 +28,9 @@ "codeSentCountdown": "Kood saadetud {seconds}s", "and": "ja", "enterInviteCode": "Sisesta kutse kood (valikuline)", - "registerSuccess": "Registreerimine õnnestus" + "registerSuccess": "Registreerimine õnnestus", + "search": "Otsing", + "selectOtherRegion": "Valige teine piirkond" }, "failure": { "unexpected": "Ootamatu viga", @@ -171,7 +176,8 @@ "friday": "R", "saturday": "L", "sunday": "P" - } + }, + "processTrafficFailed": "Liikluslogiandmete töötlemine ebaõnnestus" }, "message": { "title": "Teavitused", @@ -364,6 +370,7 @@ "initializing": "Initsialiseerimine...", "networkConnectionFailure": "Võrguühenduse viga, kontrollige ja proovige uuesti", "retry": "Proovi uuesti", + "skip": "Jäta vahele", "networkPermissionFailed": "Võrguõiguse hankimine ebaõnnestus", "initializationFailed": "Initsialiseerimine ebaõnnestus" }, @@ -464,5 +471,33 @@ "open_dashboard": "Ava armatuurlaud", "copy_to_terminal": "Kopeeri terminali", "exit_app": "Välju rakendusest" + }, + "crisp": { + "initializingSystem": "Klienditeeninduse süsteemi initsialiseerimine...", + "initFailed": "Klienditeeninduse süsteemi initsialiseerimine ebaõnnestus" + }, + "common": { + "retry": "Proovi uuesti", + "tryBrowser": "Proovi brauseriga avada", + "cannotOpenBrowser": "Ei saa brauserit avada", + "openLinkFailed": "Lingi avamine ebaõnnestus, proovige hiljem uuesti", + "cannotOpenTelegram": "Ei saa Telegrami linki avada" + }, + "subscribe": { + "pleaseSelectFirst": "Palun valige esmalt tellimus", + "resetPeriodFailed": "Tellimisperioodi lähtestamine ebaõnnestus", + "resetPeriodSuccess": "Tellimisperiood edukalt lähtestatud" + }, + "purchase": { + "noAvailablePlans": "Saadaolevad plaanid puuduvad" + }, + "payment": { + "cannotOpenLink": "Ei saa makselinki avada", + "linkEmpty": "Makselink on tühi", + "unsupportedType": "Toetamata maksetüüp" + }, + "account": { + "accountRequired": "Konto ei saa olla tühi", + "deleteSuccess": "Konto edukalt kustutatud" } } \ No newline at end of file diff --git a/assets/translations/strings_et.i18n.json.bak b/assets/translations/strings_et.i18n.json.bak deleted file mode 100755 index 1f4ad8f..0000000 --- a/assets/translations/strings_et.i18n.json.bak +++ /dev/null @@ -1,423 +0,0 @@ -{ - "login": { - "welcome": "Tere tulemast Hi快VPN-i!", - "verifyPhone": "Kinnita oma telefoninumber", - "verifyEmail": "Kinnita oma e-post", - "codeSent": "6-kohaline kood on saadetud aadressile {account}. Palun sisesta see 30 minuti jooksul.", - "back": "Tagasi", - "enterEmailOrPhone": "Sisesta e-post või telefoninumber", - "enterCode": "Palun sisesta kinnituskood", - "enterPassword": "Palun sisesta parool", - "reenterPassword": "Palun sisesta parool uuesti", - "forgotPassword": "Unustasid parooli", - "codeLogin": "Koodiga sisselogimine", - "passwordLogin": "Parooliga sisselogimine", - "agreeTerms": "Logi sisse/Loo konto, nõustun", - "termsOfService": "Teenusetingimustega", - "privacyPolicy": "Privaatsuspoliitikaga", - "next": "Edasi", - "registerNow": "Registreeru kohe", - "setAndLogin": "Seadista ja logi sisse", - "enterAccount": "Palun sisesta konto", - "passwordMismatch": "Kaks sisestatud parooli ei ühti", - "sendCode": "Saada kood", - "codeSentCountdown": "Kood saadetud {seconds}s", - "and": "ja", - "enterInviteCode": "Sisesta kutse kood (valikuline)", - "registerSuccess": "Registreerimine õnnestus" - }, - "failure": { - "unexpected": "Ootamatu viga", - "clash": { - "unexpected": "Ootamatu viga", - "core": "Clash viga ${reason}" - }, - "singbox": { - "unexpected": "Ootamatu teenuse viga", - "serviceNotRunning": "Teenus ei tööta", - "missingPrivilege": "Puuduvad õigused", - "missingPrivilegeMsg": "VPN režiim vajab administraatori õigusi. Taaskäivitage rakendus administraatorina või muutke teenuse režiimi", - "missingGeoAssets": "Puuduvad GEO ressursid", - "missingGeoAssetsMsg": "Puuduvad GEO ressursifailid. Kaaluge aktiivsete ressursside muutmist või laadige valitud ressursid seadetest alla.", - "invalidConfigOptions": "Kehtetud seadistuse valikud", - "invalidConfig": "Kehtetu seadistus", - "create": "Teenuse loomise viga", - "start": "Teenuse käivitamise viga" - }, - "connectivity": { - "unexpected": "Ootamatu tõrge", - "missingVpnPermission": "Puudub VPN luba", - "missingNotificationPermission": "Puudub teavituste luba", - "core": "Tuuma viga" - }, - "profiles": { - "unexpected": "Ootamatu viga", - "notFound": "Profiili ei leitud", - "invalidConfig": "Kehtetu seadistus", - "invalidUrl": "Kehtetu URL" - }, - "connection": { - "unexpected": "Ootamatu ühenduse viga", - "timeout": "Ühenduse ajalõpp", - "badResponse": "Halb vastus", - "connectionError": "Ühenduse viga", - "badCertificate": "Kehtetu sertifikaat" - }, - "geoAssets": { - "unexpected": "Ootamatu viga", - "notUpdate": "Uuendusi pole saadaval", - "activeNotFound": "Aktiivseid GEO ressursse ei leitud" - } - }, - "userInfo": { - "title": "Minu info", - "bindingTip": "E-post/telefon sidumata", - "myAccount": "Minu konto", - "balance": "Jääk", - "noValidSubscription": "Teil pole kehtivat tellimust", - "subscribeNow": "Telli kohe", - "shortcuts": "Otseteed", - "adBlock": "Reklaami blokeerimine", - "dnsUnlock": "DNS avamine", - "contactUs": "Võta meiega ühendust", - "others": "Muu", - "logout": "Logi välja", - "logoutConfirmTitle": "Logi välja", - "logoutConfirmMessage": "Kas oled kindel, et soovid välja logida?", - "logoutCancel": "Tühista", - "vpnWebsite": "VPN veebileht", - "telegram": "Telegram", - "mail": "E-post", - "phone": "Telefon", - "customerService": "Klienditugi", - "workOrder": "Esita taotlus", - "pleaseLogin": "Palun logi esmalt sisse", - "subscriptionValid": "Tellimus kehtiv", - "startTime": "Algusaeg:", - "expireTime": "Aegumisaeg:", - "loginNow": "Logi kohe sisse", - "trialPeriod": "Tere tulemast Premium prooviperioodi", - "remainingTime": "Järelejäänud aeg", - "trialExpired": "Prooviperiood on lõppenud, ühendus katkestatud", - "subscriptionExpired": "Tellimus on aegunud, ühendus katkestatud", - "switchSubscription": "Vaheta tellimust", - "resetTrafficTitle": "Lähtesta liiklus", - "resetTrafficMessage": "Kuupaketi liikluse lähtestamise näide: lähtesta järgmise tsükli liiklus igakuiselt ja tellimuse kehtivusaeg edasi lükatakse {currentTime} kuni {newTime}", - "reset": "Lähtesta", - "deviceLimit": "Seadmete limiit: {count}", - "trafficUsage": "Kasutatud: {used} / {total}", - "trafficProgress": { - "title": "Liikluse kasutamine", - "unlimited": "Piiramatu liiklus", - "limited": "Kasutatud liiklus" - }, - "copySuccess": "Kopeeritud", - "notAvailable": "Pole saadaval", - "willBeDeleted": "kustutatakse", - "deleteAccountWarning": "Konto kustutamine on püsiv. Kui teie konto on kustutatud, ei saa te enam ühtegi funktsiooni kasutada. Jätkata?", - "requestDelete": "Taotle kustutamist" - }, - "setting": { - "title": "Seaded", - "vpnConnection": "VPN ühendus", - "general": "Üldine", - "autoConnect": "Automaatne ühendus", - "routeRule": "Marsruudi reeglid", - "countrySelector": "Vali riik", - "appearance": "Välimus", - "notifications": "Teavitused", - "helpImprove": "Aita meil paremaks muutuda", - "helpImproveSubtitle": "Aita meil paremaks muutuda alapealkiri", - "requestDeleteAccount": "Taotle konto kustutamist", - "goToDelete": "Mine kustutama", - "rateUs": "Hinda meid App Store'is", - "iosRating": "iOS hinnang", - "version": "Versioon", - "switchLanguage": "Vaheta keelt", - "system": "Süsteem", - "light": "Hele", - "dark": "Tume", - "vpnModeSmart": "Nutikas režiim", - "mode": "Väljundrežiim", - "connectionTypeGlobal": "Globaalne puhverserver", - "connectionTypeGlobalRemark": "Lubamisel suunatakse kogu liiklus puhverserveri kaudu", - "connectionTypeRule": "Nutikas puhverserver", - "connectionTypeRuleRemark": "Lubamisel, kui väljundrežiim on seatud nutikaks puhverserveriks, valitud riigi põhjal, jaotatakse liiklus automaatselt: kohalikud IP-d/domeenid ühenduvad otse, välismaised päringud suunatakse puhverserverisse", - "connectionTypeDirect": "Otsene ühendus", - "connectionTypeDirectRemark": "Lubamisel suunatakse kogu liiklus otse", - "smartMode": "Nutikas režiim", - "secureMode": "Turvaline režiim" - }, - "statistics": { - "title": "Statistika", - "vpnStatus": "VPN olek", - "ipAddress": "IP aadress", - "connectionTime": "Ühenduse aeg", - "protocol": "Protokoll", - "weeklyProtectionTime": "Iganädalane kaitseaeg", - "currentStreak": "Praegune seeria", - "highestStreak": "Parim seeria", - "longestConnection": "Pikim ühendus", - "days": "{days} päeva", - "daysOfWeek": { - "monday": "E", - "tuesday": "T", - "wednesday": "K", - "thursday": "N", - "friday": "R", - "saturday": "L", - "sunday": "P" - } - }, - "message": { - "title": "Teavitused", - "system": "Süsteemi sõnumid", - "promotion": "Kampaania sõnumid" - }, - "invite": { - "title": "Kutsu sõbrad", - "progress": "Kutse edenemine", - "inviteStats": "Kutse statistika", - "registers": "Registreeritud", - "totalCommission": "Kogu komisjonitasu", - "rewardDetails": "Tasu üksikasjad >", - "steps": "Kutse Sammud", - "inviteFriend": "Kutsu Sõbrad", - "acceptInvite": "Sõbrad aktsepteerivad kutset\nTee tellimus ja registreeru", - "getReward": "Saada Tasu", - "shareLink": "Jaga Linki", - "shareQR": "Jaga QR-koodi", - "rules": "Kutse Reeglid", - "rule1": "1. Saad kutsuda sõpru meiega liituma, jagades oma erilist kutselinki või kutsekoodi.", - "rule2": "2. Pärast seda, kui sõbrad on registreerunud ja sisse loginud, krediteeritakse kutsetasud automaatselt teie kontole.", - "pending": "Ootel", - "processing": "Töötlemisel", - "success": "Õnnestus", - "expired": "Aegunud", - "myInviteCode": "Minu Kutsekood", - "inviteCodeCopied": "Kutsekood kopeeritud lõikelauale", - "close": "Sulge", - "saveQRCode": "Salvesta QR-kood", - "qrCodeSaved": "QR-kood salvestatud", - "copiedToClipboard": "Kopeeritud lõikelauale", - "getInviteCodeFailed": "Kutsekoodi hankimine ebaõnnestus, proovi hiljem uuesti", - "generateQRCodeFailed": "QR-koodi genereerimine ebaõnnestus, proovi hiljem uuesti", - "generateShareLinkFailed": "Jagamislinki genereerimine ebaõnnestus, proovi hiljem uuesti" - }, - "purchaseMembership": { - "purchasePackage": "Paketi Ostmine", - "noData": "Saadaval pakette pole", - "myAccount": "Minu Konto", - "selectPackage": "Vali Pakett", - "packageDescription": "Paketi Kirjeldus", - "paymentMethod": "Makseviis", - "cancelAnytime": "Saad igal ajal rakenduses tühistada", - "startSubscription": "Alusta Tellimust", - "renewNow": "Uuenda Kohe", - "month": "{months} kuud", - "year": "{years} aastat", - "day": "{days} päeva", - "unlimitedTraffic": "Piiramatu Liiklus", - "unlimitedDevices": "Piiramatu Seadmete Arv", - "devices": "{count} seadet", - "features": "Paketi Funktsioonid", - "expand": "Laienda", - "collapse": "Sulge", - "confirmPurchase": "Kinnita Ost", - "confirmPurchaseDesc": "Kas olete kindel, et soovite selle paketi osta?" - }, - "orderStatus": { - "title": "Tellimuse olek", - "pending": { - "title": "Makse ootel", - "description": "Palun täitke makse" - }, - "paid": { - "title": "Makse vastu võetud", - "description": "Tellimust töödeldakse" - }, - "success": { - "title": "Palju õnne! Makse õnnestus", - "description": "Teie pakett on edukalt ostetud" - }, - "closed": { - "title": "Tellimus suletud", - "description": "Palun esitage uus tellimus" - }, - "failed": { - "title": "Makse ebaõnnestus", - "description": "Palun proovige makset uuesti" - }, - "unknown": { - "title": "Tundmatu olek", - "description": "Palun võtke ühendust klienditeenindusega" - }, - "checkFailed": { - "title": "Kontroll ebaõnnestus", - "description": "Palun proovige hiljem uuesti" - }, - "initial": { - "title": "Makset töödeldakse", - "description": "Palun oodake, kui töötleme teie makset" - } - }, - "home": { - "welcome": "Tere tulemast Hi快VPN-i", - "disconnected": "Ühendus katkestatud", - "connecting": "Ühendumine", - "connected": "Ühendatud", - "disconnecting": "Ühenduse katkestamine", - "currentConnectionTitle": "Praegune ühendus", - "switchNode": "Vaheta sõlme", - "timeout": "Aegumine", - "loading": "Laadimine...", - "error": "Laadimise viga", - "checkNetwork": "Kontrollige võrguühendust ja proovige uuesti", - "retry": "Proovi uuesti", - "connectionSectionTitle": "Ühendusviis", - "dedicatedServers": "Pühendatud serverid", - "countryRegion": "Riik/Regioon", - "serverListTitle": "Pühendatud serverite grupid", - "nodeListTitle": "Kõik sõlmed", - "countryListTitle": "Riikide/Regioonide nimekiri", - "noServers": "Saadaval pole ühtegi serverit", - "noNodes": "Saadaval pole ühtegi sõlme", - "noRegions": "Saadaval pole ühtegi regiooni", - "subscriptionDescription": "Hankige premium juurdepääs kiirele globaalsele võrgustikule", - "subscribe": "Telli", - "trialPeriod": "Tere tulemast Premium prooviversiooni", - "remainingTime": "Järelejäänud aeg", - "trialExpired": "Prooviaeg on lõppenud, ühendus katkestatud", - "subscriptionExpired": "Tellimus on aegunud, ühendus katkestatud", - "subscriptionUpdated": "Tellimus värskendatud", - "subscriptionUpdatedMessage": "Teie tellimuse teave on värskendatud, värskendage viimase oleku vaatamiseks", - "trialStatus": "Proovi olek", - "trialing": "Proovimas", - "trialEndMessage": "Prooviaja lõppedes ei saa enam kasutada", - "lastDaySubscriptionStatus": "Tellimus aegub varsti", - "lastDaySubscriptionMessage": "Aegub varsti", - "subscriptionEndMessage": "Tellimuse lõppedes ei saa enam kasutada", - "trialTimeWithDays": "{days}p {hours}t {minutes}m {seconds}s", - "trialTimeWithHours": "{hours}t {minutes}m {seconds}s", - "trialTimeWithMinutes": "{minutes}m {seconds}s", - "refreshLatency": "Värskenda latentsust", - "testLatency": "Testi latentsust", - "testing": "Latentsuse testimine", - "refreshLatencyDesc": "Värskenda kõigi sõlmede latentsust", - "testAllNodesLatency": "Testi kõigi sõlmede võrgu latentsust", - "autoSelect": "Automaatne valik", - "selected": "Valitud" - }, - "dialog": { - "confirm": "Kinnita", - "cancel": "Tühista", - "ok": "OK" - }, - "splash": { - "appName": "Hi快VPN", - "slogan": "Kiire globaalne võrgustik", - "initializing": "Initsialiseerimine...", - "networkConnectionFailure": "Võrguühenduse viga, kontrollige ja proovige uuesti", - "retry": "Proovi uuesti", - "networkPermissionFailed": "Võrguõiguse hankimine ebaõnnestus", - "initializationFailed": "Initsialiseerimine ebaõnnestus" - }, - "network": { - "status": { - "connected": "Ühendatud", - "disconnected": "Ühendus katkestatud", - "connecting": "Ühendumine...", - "disconnecting": "Ühenduse katkestamine...", - "reconnecting": "Ühenduse taastamine...", - "failed": "Ühenduse viga" - }, - "permission": { - "title": "Võrguõigus", - "description": "VPN teenuse pakkumiseks on vaja võrguõigust", - "goToSettings": "Mine seadetesse", - "cancel": "Tühista" - } - }, - "update": { - "title": "Uuendus saadaval", - "content": "Uuendada nüüd?", - "updateNow": "Uuenda nüüd", - "updateLater": "Hiljem", - "defaultContent": "1. Rakenduse jõudluse optimeerimine\n2. Teadaolevate probleemide parandamine\n3. Kasutajamugavuse parandamine" - }, - "country": { - "cn": "Hiina", - "ir": "Iraan", - "af": "Afganistan", - "ru": "Venemaa", - "id": "Indoneesia", - "tr": "Türgi", - "br": "Brasiilia" - }, - "error": { - "200": "Edukas", - "500": "Serveri sisemine viga", - "10001": "Andmebaasi päringu viga", - "10002": "Andmebaasi uuendamise viga", - "10003": "Andmebaasi sisestamise viga", - "10004": "Andmebaasi kustutamise viga", - "20001": "Kasutaja on juba olemas", - "20002": "Kasutajat pole olemas", - "20003": "Vale kasutaja parool", - "20004": "Kasutaja on keelatud", - "20005": "Ebapiisav saldo", - "20006": "Registreerimine peatatud", - "20007": "Telegram pole seotud", - "20008": "Kasutaja pole OAuth-i seostanud", - "20009": "Vale kutsekood", - "30001": "Sõlm on juba olemas", - "30002": "Sõlme pole olemas", - "30003": "Sõlme grupp on juba olemas", - "30004": "Sõlme gruppi pole olemas", - "30005": "Sõlme grupp pole tühi", - "400": "Parameetri viga", - "40002": "Kasutaja token on tühi", - "40003": "Vale kasutaja token", - "40004": "Kasutaja token on aegunud", - "40005": "Te pole sisse logitud", - "401": "Liiga palju päringuid", - "50001": "Kupongi pole olemas", - "50002": "Kupong on juba kasutatud", - "50003": "Kupong ei vasta", - "60001": "Tellimus on aegunud", - "60002": "Tellimus pole saadaval", - "60003": "Kasutajal on juba tellimus", - "60004": "Tellimus on juba kasutatud", - "60005": "Üksiku tellimuse režiimi limiit ületatud", - "60006": "Tellimuse kvoodi limiit", - "70001": "Vale kinnituskood", - "80001": "Järjekorda lisamise viga", - "90001": "Silumisrežiim on lubatud", - "90002": "SMS-i saatmise viga", - "90003": "SMS funktsioon pole lubatud", - "90004": "E-posti funktsioon pole lubatud", - "90005": "Toetamata sisselogimise meetod", - "90006": "Autentifikaator ei toeta seda meetodit", - "90007": "Telefoni riigi kood on tühi", - "90008": "Parool on tühi", - "90009": "Riigi kood on tühi", - "90010": "Parool või kinnituskood on vajalik", - "90011": "E-post on juba olemas", - "90012": "Telefoninumber on juba olemas", - "90013": "Seade on juba olemas", - "90014": "Vale telefoninumber", - "90015": "See konto on täna saavutanud saatmise limiidi", - "90017": "Seadet pole olemas", - "90018": "Kasutaja ID ei vasta", - "61001": "Tellimust pole olemas", - "61002": "Makseviisi ei leitud", - "61003": "Vale tellimuse olek", - "61004": "Ebapiisav lähtestamise periood", - "61005": "Kasutamata liiklus on olemas" - }, - "tray": { - "open_dashboard": "Ava armatuurlaud", - "copy_to_terminal": "Kopeeri terminali", - "exit_app": "Välju rakendusest" - } -} \ No newline at end of file diff --git a/assets/translations/strings_ja.i18n.json b/assets/translations/strings_ja.i18n.json index 22bdbb1..44f13c5 100755 --- a/assets/translations/strings_ja.i18n.json +++ b/assets/translations/strings_ja.i18n.json @@ -9,6 +9,7 @@ "enterEmail": "Please enter email address", "enterCode": "認証コードを入力してください", "enterPassword": "パスワードを入力してください", + "enterPasswordForPhone": "パスワードを入力してください (パスワードログイン)", "reenterPassword": "パスワードを再入力してください", "forgotPassword": "パスワードをお忘れの方", "codeLogin": "認証コードでログイン", @@ -18,6 +19,8 @@ "privacyPolicy": "プライバシーポリシー", "next": "次へ", "registerNow": "今すぐ登録", + "registerAccount": "アカウント登録", + "clickToRegister": "クリックして登録", "setAndLogin": "設定してログイン", "enterAccount": "アカウントを入力してください", "passwordMismatch": "2回のパスワード入力が一致しません", @@ -25,7 +28,9 @@ "codeSentCountdown": "認証コード送信済み {seconds}秒", "and": "および", "enterInviteCode": "招待コードを入力(任意)", - "registerSuccess": "登録成功" + "registerSuccess": "登録成功", + "search": "検索", + "selectOtherRegion": "他の地域を選択" }, "failure": { "unexpected": "予期せぬエラー", @@ -187,7 +192,8 @@ "friday": "金", "saturday": "土", "sunday": "日" - } + }, + "processTrafficFailed": "トラフィックログデータの処理に失敗しました" }, "message": { "title": "通知", @@ -381,6 +387,7 @@ "initializing": "初期化中...", "networkConnectionFailure": "ネットワーク接続エラー、確認して再試行してください", "retry": "再試行", + "skip": "スキップ", "networkPermissionFailed": "ネットワーク権限の取得に失敗しました", "initializationFailed": "初期化に失敗しました" }, @@ -481,5 +488,33 @@ "open_dashboard": "ダッシュボードを開く", "copy_to_terminal": "ターミナルにコピー", "exit_app": "アプリを終了" + }, + "crisp": { + "initializingSystem": "カスタマーサービスシステムを初期化しています...", + "initFailed": "カスタマーサービスシステムの初期化に失敗しました" + }, + "common": { + "retry": "再試行", + "tryBrowser": "ブラウザで開いてみる", + "cannotOpenBrowser": "ブラウザを開けません", + "openLinkFailed": "リンクを開けませんでした。後でもう一度お試しください", + "cannotOpenTelegram": "Telegramリンクを開けません" + }, + "subscribe": { + "pleaseSelectFirst": "最初にサブスクリプションを選択してください", + "resetPeriodFailed": "サブスクリプション期間のリセットに失敗しました", + "resetPeriodSuccess": "サブスクリプション期間が正常にリセットされました" + }, + "purchase": { + "noAvailablePlans": "利用可能なプランはありません" + }, + "payment": { + "cannotOpenLink": "支払いリンクを開けません", + "linkEmpty": "支払いリンクが空です", + "unsupportedType": "サポートされていない支払いタイプ" + }, + "account": { + "accountRequired": "アカウントは空にできません", + "deleteSuccess": "アカウントが正常に削除されました" } } \ No newline at end of file diff --git a/assets/translations/strings_ja.i18n.json.bak b/assets/translations/strings_ja.i18n.json.bak deleted file mode 100755 index 8296770..0000000 --- a/assets/translations/strings_ja.i18n.json.bak +++ /dev/null @@ -1,441 +0,0 @@ -{ - "login": { - "welcome": "Hi快VPNへようこそ!", - "verifyPhone": "電話番号を認証", - "verifyEmail": "メールアドレスを認証", - "codeSent": "{account}に6桁のコードを送信しました。30分以内に入力してください。", - "back": "戻る", - "enterEmailOrPhone": "メールアドレスまたは電話番号を入力", - "enterCode": "認証コードを入力してください", - "enterPassword": "パスワードを入力してください", - "reenterPassword": "パスワードを再入力してください", - "forgotPassword": "パスワードをお忘れの方", - "codeLogin": "認証コードでログイン", - "passwordLogin": "パスワードでログイン", - "agreeTerms": "ログイン/アカウント作成,に同意します", - "termsOfService": "利用規約", - "privacyPolicy": "プライバシーポリシー", - "next": "次へ", - "registerNow": "今すぐ登録", - "setAndLogin": "設定してログイン", - "enterAccount": "アカウントを入力してください", - "passwordMismatch": "2回のパスワード入力が一致しません", - "sendCode": "認証コードを送信", - "codeSentCountdown": "認証コード送信済み {seconds}秒", - "and": "および", - "enterInviteCode": "招待コードを入力(任意)", - "registerSuccess": "登録成功" - }, - "failure": { - "unexpected": "予期せぬエラー", - "clash": { - "unexpected": "予期せぬエラー", - "core": "Clashエラー ${reason}" - }, - "singbox": { - "unexpected": "予期せぬサービスエラー", - "serviceNotRunning": "サービスが実行されていません", - "missingPrivilege": "権限がありません", - "missingPrivilegeMsg": "VPNモードには管理者権限が必要です。管理者として再起動するか、サービスモードを変更してください", - "missingGeoAssets": "GEOリソースファイルがありません", - "missingGeoAssetsMsg": "GEOリソースファイルがありません。アクティブなリソースを変更するか、設定で選択したリソースをダウンロードしてください。", - "invalidConfigOptions": "設定オプションが無効です", - "invalidConfig": "無効な設定", - "create": "サービス作成エラー", - "start": "サービス起動エラー" - }, - "connectivity": { - "unexpected": "予期せぬ失敗", - "missingVpnPermission": "VPN権限がありません", - "missingNotificationPermission": "通知権限がありません", - "core": "コアエラー" - }, - "profiles": { - "unexpected": "予期せぬエラー", - "notFound": "プロファイルが見つかりません", - "invalidConfig": "無効な設定", - "invalidUrl": "無効なURL" - }, - "connection": { - "unexpected": "予期せぬ接続エラー", - "timeout": "接続タイムアウト", - "badResponse": "不正なレスポンス", - "connectionError": "接続エラー", - "badCertificate": "無効な証明書" - }, - "geoAssets": { - "unexpected": "予期せぬエラー", - "notUpdate": "利用可能な更新はありません", - "activeNotFound": "アクティブなGEOリソースファイルが見つかりません" - } - }, - "userInfo": { - "title": "マイ情報", - "bindingTip": "メール/電話番号が未登録です", - "myAccount": "マイアカウント", - "balance": "残高", - "noValidSubscription": "有効なサブスクリプションがありません", - "subscribeNow": "今すぐ購読", - "shortcuts": "ショートカット", - "adBlock": "広告ブロック", - "dnsUnlock": "DNSアンロック", - "contactUs": "お問い合わせ", - "others": "その他", - "logout": "ログアウト", - "logoutConfirmTitle": "ログアウト", - "logoutConfirmMessage": "ログアウトしますか?", - "logoutCancel": "キャンセル", - "vpnWebsite": "VPN公式サイト", - "telegram": "Telegram", - "mail": "メール", - "phone": "電話", - "customerService": "カスタマーサービス", - "workOrder": "チケット送信", - "pleaseLogin": "ログインしてください", - "subscriptionValid": "サブスクリプション有効", - "startTime": "開始時間:", - "expireTime": "有効期限:", - "loginNow": "今すぐログイン", - "trialPeriod": "トライアル期間", - "remainingTime": "残り時間", - "trialExpired": "トライアル期間が終了しました", - "subscriptionExpired": "サブスクリプションが期限切れです", - "copySuccess": "コピーしました", - "notAvailable": "利用不可", - "willBeDeleted": "削除されます", - "deleteAccountWarning": "アカウントの削除は永久的です。アカウントを削除すると、すべての機能が使用できなくなります。続行しますか?", - "requestDelete": "削除をリクエスト", - "deviceLimit": "デバイス制限:{count}", - "reset": "リセット", - "trafficUsage": "トラフィック:{used} / {total}", - "trafficProgress": { - "title": "トラフィック使用状況", - "unlimited": "無制限", - "limited": "使用済み" - }, - "switchSubscription": "サブスクリプションの切り替え", - "resetTrafficTitle": "トラフィックリセット", - "resetTrafficMessage": "月間プランのトラフィックリセット例:次のサイクルのトラフィックを月次でリセットし、サブスクリプションの有効期限が{currentTime}から{newTime}に繰り上げられます", - "trialStatus": "トライアル状態", - "trialing": "トライアル中", - "trialEndMessage": "トライアル期間終了後は使用できなくなります", - "lastDaySubscriptionStatus": "サブスクリプション期限切れ間近", - "lastDaySubscriptionMessage": "期限切れ間近", - "subscriptionEndMessage": "サブスクリプション終了後は使用できなくなります", - "trialTimeWithDays": "{days}日{hours}時間{minutes}分{seconds}秒", - "trialTimeWithHours": "{hours}時間{minutes}分{seconds}秒", - "trialTimeWithMinutes": "{minutes}分{seconds}秒", - "refreshLatency": "レイテンシーを更新", - "testLatency": "レイテンシーテスト", - "testing": "レイテンシーテスト中", - "refreshLatencyDesc": "すべてのノードのレイテンシーを更新", - "testAllNodesLatency": "すべてのノードのネットワークレイテンシーをテスト", - "autoSelect": "自動選択", - "selected": "選択済み" - }, - "setting": { - "title": "設定", - "vpnConnection": "VPN接続", - "countrySelector": "国を選択", - "general": "一般", - "autoConnect": "自動接続", - "routeRule": "ルーティングルール", - "appearance": "外観", - "notifications": "通知", - "helpImprove": "改善にご協力ください", - "helpImproveSubtitle": "改善にご協力くださいサブタイトル", - "requestDeleteAccount": "アカウント削除をリクエスト", - "goToDelete": "削除へ", - "rateUs": "App Storeで評価する", - "iosRating": "iOS評価", - "version": "バージョン", - "switchLanguage": "言語を切り替え", - "system": "システム", - "light": "ライト", - "dark": "ダーク", - "vpnModeSmart": "スマートモード", - "mode": "アウトバウンドモード", - "connectionTypeGlobal": "グローバルプロキシ", - "connectionTypeGlobalRemark": "有効時、すべてのトラフィックはプロキシ経由でルーティングされます", - "connectionTypeRule": "スマートプロキシ", - "connectionTypeRuleRemark": "[アウトバウンドモード]が[スマートプロキシ]に設定されている場合、システムは選択された国に基づいて国内と海外のトラフィックを自動的に分割します:国内IP/ドメインは直接接続、海外リクエストはプロキシ経由でアクセス", - "connectionTypeDirect": "ダイレクト接続", - "connectionTypeDirectRemark": "有効時、すべてのトラフィックはプロキシをバイパスします", - "smartMode": "スマートモード", - "secureMode": "セキュアモード" - }, - "statistics": { - "title": "統計", - "vpnStatus": "VPNステータス", - "ipAddress": "IPアドレス", - "connectionTime": "接続時間", - "protocol": "プロトコル", - "weeklyProtectionTime": "週間保護時間", - "currentStreak": "現在の連続記録", - "highestStreak": "最高記録", - "longestConnection": "最長接続時間", - "days": "{days}日", - "daysOfWeek": { - "monday": "月", - "tuesday": "火", - "wednesday": "水", - "thursday": "木", - "friday": "金", - "saturday": "土", - "sunday": "日" - } - }, - "message": { - "title": "通知", - "system": "システムメッセージ", - "promotion": "プロモーションメッセージ" - }, - "invite": { - "title": "友達を招待", - "progress": "招待の進捗", - "inviteStats": "招待統計", - "registers": "登録済み", - "totalCommission": "総報酬", - "rewardDetails": "報酬の詳細 >", - "steps": "招待の手順", - "inviteFriend": "友達を招待", - "acceptInvite": "友達が招待を受け入れ\n注文して登録", - "getReward": "報酬を獲得", - "shareLink": "リンクを共有", - "shareQR": "QRコードを共有", - "rules": "招待ルール", - "rule1": "1. 専用の招待リンクまたは招待コードを共有して、友達を招待できます。", - "rule2": "2. 友達が登録とログインを完了すると、招待報酬が自動的にアカウントに付与されます。", - "pending": "保留中", - "processing": "処理中", - "success": "成功", - "expired": "期限切れ", - "myInviteCode": "招待コード", - "inviteCodeCopied": "招待コードをクリップボードにコピーしました", - "close": "閉じる", - "saveQRCode": "QRコードを保存", - "qrCodeSaved": "QRコードを保存しました", - "copiedToClipboard": "クリップボードにコピーしました", - "getInviteCodeFailed": "招待コードの取得に失敗しました。後ほど再試行してください", - "generateQRCodeFailed": "QRコードの生成に失敗しました。後ほど再試行してください", - "generateShareLinkFailed": "共有リンクの生成に失敗しました。後ほど再試行してください" - }, - "purchaseMembership": { - "purchasePackage": "パッケージ購入", - "noData": "利用可能なパッケージはありません", - "myAccount": "マイアカウント", - "selectPackage": "パッケージを選択", - "packageDescription": "パッケージ説明", - "paymentMethod": "支払い方法", - "cancelAnytime": "アプリでいつでもキャンセル可能", - "startSubscription": "サブスクリプションを開始", - "renewNow": "今すぐ更新", - "month": "{months}ヶ月", - "year": "{years}年", - "day": "{days}日", - "unlimitedTraffic": "無制限トラフィック", - "unlimitedDevices": "無制限デバイス", - "devices": "{count}台", - "features": "パッケージ機能", - "expand": "展開", - "collapse": "折りたたむ", - "confirmPurchase": "購入を確認", - "confirmPurchaseDesc": "このパッケージを購入してもよろしいですか?", - "subscriptionPrivacyInfo": "サブスクリプションとプライバシー情報" - }, - "orderStatus": { - "title": "注文状態", - "pending": { - "title": "支払い待ち", - "description": "支払いを完了してください" - }, - "paid": { - "title": "支払い完了", - "description": "注文を処理中です" - }, - "success": { - "title": "おめでとうございます!支払い成功", - "description": "パッケージの購入が完了しました" - }, - "closed": { - "title": "注文キャンセル", - "description": "新規注文をお願いします" - }, - "failed": { - "title": "支払い失敗", - "description": "支払いを再試行してください" - }, - "unknown": { - "title": "不明な状態", - "description": "カスタマーサービスにお問い合わせください" - }, - "checkFailed": { - "title": "確認失敗", - "description": "後でもう一度お試しください" - }, - "initial": { - "title": "支払い処理中", - "description": "支払い処理中です。お待ちください" - } - }, - "home": { - "welcome": "Hi快VPNへようこそ", - "disconnected": "未接続", - "connecting": "接続中", - "connected": "接続済み", - "disconnecting": "切断中", - "currentConnectionTitle": "現在の接続", - "switchNode": "ノード切替", - "timeout": "タイムアウト", - "loading": "読み込み中...", - "error": "読み込みエラー", - "checkNetwork": "ネットワーク接続を確認して再試行してください", - "retry": "再試行", - "connectionSectionTitle": "接続方法", - "dedicatedServers": "専用サーバー", - "countryRegion": "国/地域", - "serverListTitle": "専用サーバーグループ", - "nodeListTitle": "全ノード", - "countryListTitle": "国/地域リスト", - "noServers": "利用可能なサーバーがありません", - "noNodes": "利用可能なノードがありません", - "noRegions": "利用可能な地域がありません", - "subscriptionDescription": "プレミアムアクセスで高速グローバルネットワークを利用", - "subscribe": "購読する", - "trialPeriod": "プレミアムトライアルへようこそ", - "remainingTime": "残り時間", - "trialExpired": "トライアル期間が終了し、接続が切断されました", - "subscriptionExpired": "サブスクリプションが期限切れとなり、接続が切断されました", - "subscriptionUpdated": "サブスクリプションが更新されました", - "subscriptionUpdatedMessage": "サブスクリプション情報が更新されました。最新の状態を確認するには更新してください", - "trialStatus": "トライアル状態", - "trialing": "トライアル中", - "trialEndMessage": "トライアル期間終了後は使用できなくなります", - "lastDaySubscriptionStatus": "サブスクリプション期限切れ間近", - "lastDaySubscriptionMessage": "期限切れ間近", - "subscriptionEndMessage": "サブスクリプション終了後は使用できなくなります", - "trialTimeWithDays": "{days}日{hours}時間{minutes}分{seconds}秒", - "trialTimeWithHours": "{hours}時間{minutes}分{seconds}秒", - "trialTimeWithMinutes": "{minutes}分{seconds}秒", - "refreshLatency": "レイテンシー更新", - "testLatency": "レイテンシーテスト", - "testing": "レイテンシーテスト中", - "refreshLatencyDesc": "全ノードのレイテンシーを更新", - "testAllNodesLatency": "全ノードのネットワークレイテンシーをテスト", - "autoSelect": "自動選択", - "selected": "選択済み" - }, - "dialog": { - "confirm": "確認", - "cancel": "キャンセル", - "ok": "OK", - "iKnow": "分かりました" - }, - "splash": { - "appName": "Hi快VPN", - "slogan": "高速グローバルネットワーク", - "initializing": "初期化中...", - "networkConnectionFailure": "ネットワーク接続エラー、確認して再試行してください", - "retry": "再試行", - "networkPermissionFailed": "ネットワーク権限の取得に失敗しました", - "initializationFailed": "初期化に失敗しました" - }, - "network": { - "status": { - "connected": "接続済み", - "disconnected": "未接続", - "connecting": "接続中...", - "disconnecting": "切断中...", - "reconnecting": "再接続中...", - "failed": "接続エラー" - }, - "permission": { - "title": "ネットワーク権限", - "description": "VPNサービスを提供するにはネットワーク権限が必要です", - "goToSettings": "設定へ", - "cancel": "キャンセル" - } - }, - "update": { - "title": "アップデートが利用可能", - "content": "今すぐアップデートしますか?", - "updateNow": "今すぐアップデート", - "updateLater": "後で", - "defaultContent": "1. アプリのパフォーマンス最適化\n2. 既知の問題の修正\n3. ユーザー体験の向上" - }, - "country": { - "cn": "中国", - "ir": "イラン", - "af": "アフガニスタン", - "ru": "ロシア", - "id": "インドネシア", - "tr": "トルコ", - "br": "ブラジル" - }, - "error": { - "200": "成功", - "500": "サーバー内部エラー", - "10001": "データベースクエリエラー", - "10002": "データベース更新エラー", - "10003": "データベース挿入エラー", - "10004": "データベース削除エラー", - "20001": "ユーザーは既に存在します", - "20002": "ユーザーが存在しません", - "20003": "ユーザーパスワードが間違っています", - "20004": "ユーザーは無効化されています", - "20005": "残高不足", - "20006": "登録は停止されています", - "20007": "Telegramが未連携です", - "20008": "ユーザーがOAuthを連携していません", - "20009": "招待コードが間違っています", - "30001": "ノードは既に存在します", - "30002": "ノードが存在しません", - "30003": "ノードグループは既に存在します", - "30004": "ノードグループが存在しません", - "30005": "ノードグループは空ではありません", - "400": "パラメータエラー", - "40002": "ユーザートークンが空です", - "40003": "ユーザートークンが無効です", - "40004": "ユーザートークンの有効期限が切れています", - "40005": "ログインしていません", - "401": "リクエストが多すぎます", - "50001": "クーポンが存在しません", - "50002": "クーポンは既に使用されています", - "50003": "クーポンが一致しません", - "60001": "サブスクリプションの有効期限が切れています", - "60002": "サブスクリプションは利用できません", - "60003": "ユーザーは既にサブスクリプションを持っています", - "60004": "サブスクリプションは既に使用されています", - "60005": "単一サブスクリプションモードの制限を超えています", - "60006": "サブスクリプションクォータ制限", - "70001": "認証コードが間違っています", - "80001": "キューイングエラー", - "90001": "デバッグモードが有効です", - "90002": "SMS送信エラー", - "90003": "SMS機能が有効になっていません", - "90004": "メール機能が有効になっていません", - "90005": "サポートされていないログイン方法", - "90006": "認証器がこの方法をサポートしていません", - "90007": "電話国番号が空です", - "90008": "パスワードが空です", - "90009": "国番号が空です", - "90010": "パスワードまたは認証コードが必要です", - "90011": "メールアドレスは既に存在します", - "90012": "電話番号は既に存在します", - "90013": "デバイスは既に存在します", - "90014": "電話番号が間違っています", - "90015": "このアカウントは本日の送信制限に達しました", - "90017": "デバイスが存在しません", - "90018": "ユーザーIDが一致しません", - "61001": "注文が存在しません", - "61002": "支払い方法が見つかりません", - "61003": "注文状態が間違っています", - "61004": "リセット期間が不足しています", - "61005": "未使用のトラフィックが存在します" - }, - "tray": { - "open_dashboard": "ダッシュボードを開く", - "copy_to_terminal": "ターミナルにコピー", - "exit_app": "アプリを終了" - } -} \ No newline at end of file diff --git a/assets/translations/strings_ru.i18n.json b/assets/translations/strings_ru.i18n.json index 1afc7a2..da7f3db 100755 --- a/assets/translations/strings_ru.i18n.json +++ b/assets/translations/strings_ru.i18n.json @@ -9,6 +9,7 @@ "enterEmail": "Please enter email address", "enterCode": "Введите код подтверждения", "enterPassword": "Введите пароль", + "enterPasswordForPhone": "Пожалуйста, введите пароль (Вход с паролем)", "reenterPassword": "Повторите пароль", "forgotPassword": "Забыли пароль", "codeLogin": "Вход по коду", @@ -18,6 +19,8 @@ "privacyPolicy": "Политикой конфиденциальности", "next": "Далее", "registerNow": "Зарегистрироваться", + "registerAccount": "Зарегистрировать аккаунт", + "clickToRegister": "Нажмите, чтобы зарегистрироваться", "setAndLogin": "Установить и войти", "enterAccount": "Введите аккаунт", "passwordMismatch": "Два введенных пароля не совпадают", @@ -25,7 +28,9 @@ "codeSentCountdown": "Код отправлен {seconds}с", "and": "и", "enterInviteCode": "Введите код приглашения (необязательно)", - "registerSuccess": "Регистрация успешна" + "registerSuccess": "Регистрация успешна", + "search": "Поиск", + "selectOtherRegion": "Выбрать другой регион" }, "failure": { "unexpected": "Непредвиденная ошибка", @@ -187,7 +192,8 @@ "friday": "Пт", "saturday": "Сб", "sunday": "Вс" - } + }, + "processTrafficFailed": "Не удалось обработать данные журнала трафика" }, "message": { "title": "Уведомления", @@ -464,6 +470,7 @@ "initializing": "Инициализация...", "networkConnectionFailure": "Ошибка подключения к сети, проверьте и повторите попытку", "retry": "Повторить", + "skip": "Пропустить", "networkPermissionFailed": "Не удалось получить разрешение на использование сети", "initializationFailed": "Ошибка инициализации" }, @@ -482,5 +489,33 @@ "goToSettings": "Перейти в настройки", "cancel": "Отмена" } + }, + "crisp": { + "initializingSystem": "Инициализация системы обслуживания клиентов...", + "initFailed": "Не удалось инициализировать систему обслуживания клиентов" + }, + "common": { + "retry": "Повторить", + "tryBrowser": "Попробовать открыть в браузере", + "cannotOpenBrowser": "Не удается открыть браузер", + "openLinkFailed": "Не удалось открыть ссылку, попробуйте позже", + "cannotOpenTelegram": "Не удается открыть ссылку Telegram" + }, + "subscribe": { + "pleaseSelectFirst": "Сначала выберите подписку", + "resetPeriodFailed": "Не удалось сбросить период подписки", + "resetPeriodSuccess": "Период подписки успешно сброшен" + }, + "purchase": { + "noAvailablePlans": "Нет доступных планов" + }, + "payment": { + "cannotOpenLink": "Не удается открыть ссылку для оплаты", + "linkEmpty": "Ссылка для оплаты пуста", + "unsupportedType": "Неподдерживаемый тип оплаты" + }, + "account": { + "accountRequired": "Учетная запись не может быть пустой", + "deleteSuccess": "Учетная запись успешно удалена" } } \ No newline at end of file diff --git a/assets/translations/strings_ru.i18n.json.bak b/assets/translations/strings_ru.i18n.json.bak deleted file mode 100755 index 81a50fb..0000000 --- a/assets/translations/strings_ru.i18n.json.bak +++ /dev/null @@ -1,442 +0,0 @@ -{ - "login": { - "welcome": "Добро пожаловать в Hi快VPN!", - "verifyPhone": "Подтвердите номер телефона", - "verifyEmail": "Подтвердите email", - "codeSent": "6-значный код отправлен на {account}. Введите его в течение 30 минут.", - "back": "Назад", - "enterEmailOrPhone": "Введите email или номер телефона", - "enterCode": "Введите код подтверждения", - "enterPassword": "Введите пароль", - "reenterPassword": "Повторите пароль", - "forgotPassword": "Забыли пароль", - "codeLogin": "Вход по коду", - "passwordLogin": "Вход по паролю", - "agreeTerms": "Вход/Создать аккаунт, я соглашаюсь с", - "termsOfService": "Условиями использования", - "privacyPolicy": "Политикой конфиденциальности", - "next": "Далее", - "registerNow": "Зарегистрироваться", - "setAndLogin": "Установить и войти", - "enterAccount": "Введите аккаунт", - "passwordMismatch": "Два введенных пароля не совпадают", - "sendCode": "Отправить код", - "codeSentCountdown": "Код отправлен {seconds}с", - "and": "и", - "enterInviteCode": "Введите код приглашения (необязательно)", - "registerSuccess": "Регистрация успешна" - }, - "failure": { - "unexpected": "Непредвиденная ошибка", - "clash": { - "unexpected": "Непредвиденная ошибка", - "core": "Ошибка Clash ${reason}" - }, - "singbox": { - "unexpected": "Непредвиденная ошибка сервиса", - "serviceNotRunning": "Сервис не запущен", - "missingPrivilege": "Отсутствуют привилегии", - "missingPrivilegeMsg": "Режим VPN требует прав администратора. Перезапустите приложение с правами администратора или измените режим сервиса", - "missingGeoAssets": "Отсутствуют GEO-ресурсы", - "missingGeoAssetsMsg": "Отсутствуют файлы GEO-ресурсов. Измените активные ресурсы или загрузите выбранные ресурсы в настройках.", - "invalidConfigOptions": "Недопустимые параметры конфигурации", - "invalidConfig": "Недопустимая конфигурация", - "create": "Ошибка создания сервиса", - "start": "Ошибка запуска сервиса" - }, - "connectivity": { - "unexpected": "Непредвиденный сбой", - "missingVpnPermission": "Отсутствует разрешение VPN", - "missingNotificationPermission": "Отсутствует разрешение на уведомления", - "core": "Ошибка ядра" - }, - "profiles": { - "unexpected": "Непредвиденная ошибка", - "notFound": "Профиль не найден", - "invalidConfig": "Недопустимая конфигурация", - "invalidUrl": "Недопустимый URL" - }, - "connection": { - "unexpected": "Непредвиденная ошибка подключения", - "timeout": "Тайм-аут подключения", - "badResponse": "Некорректный ответ", - "connectionError": "Ошибка подключения", - "badCertificate": "Недействительный сертификат" - }, - "geoAssets": { - "unexpected": "Непредвиденная ошибка", - "notUpdate": "Нет доступных обновлений", - "activeNotFound": "Активные GEO-ресурсы не найдены" - } - }, - "userInfo": { - "title": "Моя информация", - "bindingTip": "Email/телефон не привязаны", - "myAccount": "Мой аккаунт", - "balance": "Баланс", - "noValidSubscription": "Нет активной подписки", - "subscribeNow": "Подписаться сейчас", - "shortcuts": "Ярлыки", - "adBlock": "Блокировка рекламы", - "dnsUnlock": "Разблокировка DNS", - "contactUs": "Связаться с нами", - "others": "Прочее", - "logout": "Выйти", - "logoutConfirmTitle": "Выйти", - "logoutConfirmMessage": "Вы уверены, что хотите выйти?", - "logoutCancel": "Отмена", - "vpnWebsite": "Сайт VPN", - "telegram": "Telegram", - "mail": "Email", - "phone": "Телефон", - "customerService": "Служба поддержки", - "workOrder": "Создать заявку", - "pleaseLogin": "Пожалуйста, войдите", - "subscriptionValid": "Подписка активна", - "startTime": "Время начала:", - "expireTime": "Срок действия:", - "loginNow": "Войти сейчас", - "trialPeriod": "Добро пожаловать в пробную версию Premium", - "remainingTime": "Осталось времени", - "trialExpired": "Пробный период истёк, соединение разорвано", - "subscriptionExpired": "Подписка истекла, соединение разорвано", - "switchSubscription": "Сменить подписку", - "resetTrafficTitle": "Сброс трафика", - "resetTrafficMessage": "Пример сброса трафика месячного плана: сброс трафика следующего цикла ежемесячно, и срок действия подписки будет перенесен с {currentTime} на {newTime}", - "reset": "Сбросить", - "trafficUsage": "Использовано: {used} / {total}", - "trafficProgress": { - "title": "Использование трафика", - "unlimited": "Безлимитный трафик", - "limited": "Использованный трафик" - }, - "deviceLimit": "Лимит устройств: {count}", - "copySuccess": "Скопировано успешно", - "notAvailable": "Недоступно", - "willBeDeleted": "Будет удалено", - "deleteAccountWarning": "Удаление аккаунта необратимо. После удаления аккаунта вы не сможете использовать все функции. Продолжить?", - "requestDelete": "Запросить удаление", - "trialStatus": "Статус пробного периода", - "trialing": "Пробный период", - "trialEndMessage": "После окончания пробного периода использование будет невозможно", - "lastDaySubscriptionStatus": "Подписка скоро истечет", - "lastDaySubscriptionMessage": "Скоро истечет", - "subscriptionEndMessage": "После окончания подписки использование будет невозможно", - "trialTimeWithDays": "{days}д {hours}ч {minutes}м {seconds}с", - "trialTimeWithHours": "{hours}ч {minutes}м {seconds}с", - "trialTimeWithMinutes": "{minutes}м {seconds}с", - "refreshLatency": "Обновить задержку", - "testLatency": "Тест задержки", - "testing": "Тестирование задержки", - "refreshLatencyDesc": "Обновить задержку всех узлов", - "testAllNodesLatency": "Тест сетевой задержки всех узлов", - "autoSelect": "Автоматический выбор", - "selected": "Выбрано" - }, - "setting": { - "title": "Настройки", - "countrySelector": "Выбрать страну", - "vpnConnection": "VPN-подключение", - "general": "Общие", - "autoConnect": "Автоподключение", - "routeRule": "Правила маршрутизации", - "appearance": "Внешний вид", - "notifications": "Уведомления", - "helpImprove": "Помогите нам улучшить", - "helpImproveSubtitle": "Подзаголовок помощи в улучшении", - "requestDeleteAccount": "Запросить удаление аккаунта", - "goToDelete": "Перейти к удалению", - "rateUs": "Оцените нас в App Store", - "iosRating": "Оценка iOS", - "version": "Версия", - "switchLanguage": "Сменить язык", - "system": "Система", - "light": "Светлая", - "dark": "Тёмная", - "vpnModeSmart": "Умный режим", - "mode": "Исходящий режим", - "connectionTypeGlobal": "Глобальный прокси", - "connectionTypeGlobalRemark": "При включении весь трафик проходит через прокси", - "connectionTypeRule": "Умный прокси", - "connectionTypeRuleRemark": "Когда [Исходящий режим] установлен на [Умный прокси], система автоматически разделяет внутренний и международный трафик в соответствии с выбранной страной: внутренние IP/домены подключаются напрямую, а зарубежные запросы проходят через прокси", - "connectionTypeDirect": "Прямое подключение", - "connectionTypeDirectRemark": "При включении весь трафик обходит прокси", - "smartMode": "Умный режим", - "secureMode": "Безопасный режим" - }, - "statistics": { - "title": "Статистика", - "vpnStatus": "Статус VPN", - "ipAddress": "IP-адрес", - "connectionTime": "Время подключения", - "protocol": "Протокол", - "weeklyProtectionTime": "Время защиты за неделю", - "currentStreak": "Текущая серия", - "highestStreak": "Рекорд", - "longestConnection": "Самое долгое подключение", - "days": "{days} дн.", - "daysOfWeek": { - "monday": "Пн", - "tuesday": "Вт", - "wednesday": "Ср", - "thursday": "Чт", - "friday": "Пт", - "saturday": "Сб", - "sunday": "Вс" - } - }, - "message": { - "title": "Уведомления", - "system": "Системные сообщения", - "promotion": "Рекламные сообщения" - }, - "invite": { - "title": "Пригласить друзей", - "progress": "Прогресс приглашений", - "inviteStats": "Статистика приглашений", - "registers": "Зарегистрировано", - "totalCommission": "Общая комиссия", - "rewardDetails": "Детали вознаграждения >", - "steps": "Шаги Приглашения", - "inviteFriend": "Пригласить Друзей", - "acceptInvite": "Друзья принимают приглашение", - "getReward": "Получить Вознаграждение", - "shareLink": "Поделиться Ссылкой", - "shareQR": "Поделиться QR-кодом", - "rules": "Правила Приглашения", - "rule1": "1. Вы можете приглашать друзей присоединиться к нам, поделившись своей уникальной ссылкой или кодом приглашения.", - "rule2": "2. После того, как друзья завершат регистрацию и войдут в систему, вознаграждения за приглашение будут автоматически зачислены на ваш счет.", - "pending": "В Ожидании", - "processing": "В Обработке", - "success": "Успешно", - "expired": "Истекло", - "myInviteCode": "Мой Код Приглашения", - "inviteCodeCopied": "Код приглашения скопирован в буфер обмена", - "close": "Закрыть", - "saveQRCode": "Сохранить QR-код", - "qrCodeSaved": "QR-код сохранен", - "copiedToClipboard": "Скопировано в буфер обмена", - "getInviteCodeFailed": "Не удалось получить код приглашения, попробуйте позже", - "generateQRCodeFailed": "Не удалось сгенерировать QR-код, попробуйте позже", - "generateShareLinkFailed": "Не удалось сгенерировать ссылку для общего доступа, попробуйте позже" - }, - "purchaseMembership": { - "purchasePackage": "Купить Пакет", - "noData": "Нет доступных пакетов", - "myAccount": "Мой Аккаунт", - "selectPackage": "Выбрать Пакет", - "packageDescription": "Описание Пакета", - "paymentMethod": "Способ Оплаты", - "cancelAnytime": "Вы можете отменить в любое время в приложении", - "startSubscription": "Начать Подписку", - "subscriptionPrivacyInfo": "Информация о Подписке и Конфиденциальности", - "month": "{months} Месяц(ев)", - "year": "{years} Год(а)", - "day": "{days} день", - "unlimitedTraffic": "Безлимитный трафик", - "unlimitedDevices": "Безлимитные устройства", - "devices": "{count} устройств", - "trafficLimit": "Ограничение трафика", - "deviceLimit": "Лимит устройств: {count}", - "features": "Функции пакета", - "expand": "Развернуть", - "collapse": "Свернуть", - "confirmPurchase": "Подтвердить покупку", - "confirmPurchaseDesc": "Вы уверены, что хотите приобрести этот пакет?" - }, - "orderStatus": { - "title": "Статус заказа", - "pending": { - "title": "Ожидание оплаты", - "description": "Пожалуйста, завершите оплату" - }, - "paid": { - "title": "Оплата получена", - "description": "Обработка вашего заказа" - }, - "success": { - "title": "Поздравляем! Оплата успешна", - "description": "Ваш пакет успешно приобретен" - }, - "closed": { - "title": "Заказ закрыт", - "description": "Пожалуйста, сделайте новый заказ" - }, - "failed": { - "title": "Ошибка оплаты", - "description": "Пожалуйста, попробуйте оплату снова" - }, - "unknown": { - "title": "Неизвестный статус", - "description": "Пожалуйста, свяжитесь со службой поддержки" - }, - "checkFailed": { - "title": "Ошибка проверки", - "description": "Пожалуйста, попробуйте позже" - }, - "initial": { - "title": "Обработка оплаты", - "description": "Пожалуйста, подождите, пока мы обрабатываем вашу оплату" - } - }, - "home": { - "welcome": "Добро пожаловать в Hi快VPN", - "disconnected": "Не подключено", - "connecting": "Подключение", - "connected": "Подключено", - "disconnecting": "Отключение", - "currentConnectionTitle": "Текущее подключение", - "switchNode": "Сменить узел", - "timeout": "Тайм-аут", - "loading": "Загрузка...", - "error": "Ошибка загрузки", - "checkNetwork": "Проверьте подключение к сети и повторите попытку", - "retry": "Повторить", - "connectionSectionTitle": "Способ подключения", - "dedicatedServers": "Выделенные серверы", - "countryRegion": "Страна/Регион", - "serverListTitle": "Группы выделенных серверов", - "nodeListTitle": "Все узлы", - "countryListTitle": "Список стран/регионов", - "noServers": "Нет доступных серверов", - "noNodes": "Нет доступных узлов", - "noRegions": "Нет доступных регионов", - "subscriptionDescription": "Подпишитесь для доступа к глобальной высокоскоростной сети", - "subscribe": "Подписаться сейчас", - "trialPeriod": "Добро пожаловать в пробную версию Premium", - "remainingTime": "Осталось времени", - "trialExpired": "Пробный период истёк, соединение разорвано", - "subscriptionExpired": "Подписка истекла, соединение разорвано", - "subscriptionUpdated": "Подписка обновлена", - "subscriptionUpdatedMessage": "Ваша информация о подписке обновлена, пожалуйста, обновите страницу для просмотра последнего статуса", - "trialStatus": "Статус пробного периода", - "trialing": "Пробный период", - "trialEndMessage": "После окончания пробного периода сервис будет недоступен", - "lastDaySubscriptionStatus": "Подписка скоро истекает", - "lastDaySubscriptionMessage": "Скоро истекает", - "subscriptionEndMessage": "После окончания подписки сервис будет недоступен", - "trialTimeWithDays": "{days}д {hours}ч {minutes}м {seconds}с", - "trialTimeWithHours": "{hours}ч {minutes}м {seconds}с", - "trialTimeWithMinutes": "{minutes}м {seconds}с", - "testLatency": "Тест задержки", - "testing": "Тестирование задержки", - "refreshLatency": "Обновить задержку", - "refreshLatencyDesc": "Обновить задержку всех узлов", - "testAllNodesLatency": "Тест сетевой задержки всех узлов", - "autoSelect": "Автоматический выбор", - "selected": "Выбрано" - }, - "dialog": { - "confirm": "Подтвердить", - "cancel": "Отмена", - "ok": "OK", - "iKnow": "Я понял" - }, - "update": { - "title": "Доступна новая версия", - "content": "Хотите обновить сейчас?", - "updateNow": "Обновить сейчас", - "later": "Позже", - "defaultContent": "1. Оптимизация производительности приложения\n2. Исправление известных проблем\n3. Улучшение пользовательского опыта" - }, - "country": { - "cn": "Китай", - "ir": "Иран", - "af": "Афганистан", - "ru": "Россия", - "id": "Индонезия", - "tr": "Турция", - "br": "Бразилия" - }, - "error": { - "200": "Успех", - "500": "Внутренняя ошибка сервера", - "10001": "Ошибка запроса базы данных", - "10002": "Ошибка обновления базы данных", - "10003": "Ошибка вставки в базу данных", - "10004": "Ошибка удаления из базы данных", - "20001": "Пользователь уже существует", - "20002": "Пользователь не существует", - "20003": "Ошибка пароля пользователя", - "20004": "Пользователь отключен", - "20005": "Недостаточно средств", - "20006": "Регистрация остановлена", - "20007": "Telegram не привязан", - "20008": "Пользователь не привязал метод OAuth", - "20009": "Ошибка кода приглашения", - "30001": "Узел уже существует", - "30002": "Узел не существует", - "30003": "Группа узлов уже существует", - "30004": "Группа узлов не существует", - "30005": "Группа узлов не пуста", - "400": "Ошибка параметра", - "40002": "Токен пользователя пуст", - "40003": "Токен пользователя недействителен", - "40004": "Срок действия токена пользователя истек", - "40005": "Недопустимый доступ", - "401": "Слишком много запросов", - "50001": "Купон не существует", - "50002": "Купон был использован", - "50003": "Купон не совпадает", - "60001": "Подписка истекла", - "60002": "Подписка недоступна", - "60003": "У пользователя уже есть подписка", - "60004": "Подписка уже использована", - "60005": "Режим одной подписки превышает лимит", - "60006": "Лимит квоты подписки", - "70001": "Ошибка кода подтверждения", - "80001": "Ошибка постановки в очередь", - "90001": "Режим отладки включен", - "90002": "Ошибка отправки SMS", - "90003": "SMS не включены", - "90004": "Электронная почта не включена", - "90005": "Неподдерживаемый метод входа", - "90006": "Аутентификатор не поддерживает этот метод", - "90007": "Код телефонного региона пуст", - "90008": "Пароль пуст", - "90009": "Код региона пуст", - "90010": "Требуется пароль или код подтверждения", - "90011": "Электронная почта уже существует", - "90012": "Телефон уже существует", - "90013": "Устройство уже существует", - "90014": "Ошибка номера телефона", - "90015": "Этот аккаунт достиг лимита отправки на сегодня", - "90017": "Устройство не существует", - "90018": "ID пользователя не совпадает", - "61001": "Заказ не существует", - "61002": "Способ оплаты не найден", - "61003": "Ошибка статуса заказа", - "61004": "Недостаточный период сброса", - "61005": "Существует неиспользованный трафик" - }, - "tray": { - "open_dashboard": "Открыть панель", - "copy_to_terminal": "Копировать в терминал", - "exit_app": "Выйти из приложения" - }, - "splash": { - "appName": "Hi快VPN", - "slogan": "Высокоскоростная глобальная сеть", - "initializing": "Инициализация...", - "networkConnectionFailure": "Ошибка подключения к сети, проверьте и повторите попытку", - "retry": "Повторить", - "networkPermissionFailed": "Не удалось получить разрешение на использование сети", - "initializationFailed": "Ошибка инициализации" - }, - "network": { - "status": { - "connected": "Подключено", - "disconnected": "Отключено", - "connecting": "Подключение...", - "disconnecting": "Отключение...", - "reconnecting": "Переподключение...", - "failed": "Ошибка подключения" - }, - "permission": { - "title": "Разрешение сети", - "description": "Требуется разрешение на использование сети для предоставления VPN-сервиса", - "goToSettings": "Перейти в настройки", - "cancel": "Отмена" - } - } -} \ No newline at end of file diff --git a/assets/translations/strings_zh.i18n.json b/assets/translations/strings_zh.i18n.json index 7322427..d7d2cea 100755 --- a/assets/translations/strings_zh.i18n.json +++ b/assets/translations/strings_zh.i18n.json @@ -56,6 +56,7 @@ "enterEmail": "请输入电子邮箱", "enterCode": "请输入验证码", "enterPassword": "请输入密码", + "enterPasswordForPhone": "请输入密码 (密码登录)", "reenterPassword": "请再次输入密码", "forgotPassword": "忘记密码", "codeLogin": "验证码登录", @@ -65,6 +66,8 @@ "privacyPolicy": "隐私政策", "next": "下一步", "registerNow": "立即注册", + "registerAccount": "注册账号", + "clickToRegister": "点我注册", "setAndLogin": "设置并登录", "enterAccount": "请输入账户", "passwordMismatch": "两次密码输入不一致", @@ -73,6 +76,8 @@ "and": "和", "enterInviteCode": "请输入邀请码", "registerSuccess": "注册成功" + "search": "搜索", + "selectOtherRegion": "选择其他地区" }, "failure": { "unexpected": "意外错误", @@ -234,7 +239,8 @@ "friday": "周\n五", "saturday": "周\n六", "sunday": "周\n日" - } + }, + "processTrafficFailed": "处理流量日志数据失败" }, "message": { "title": "通知", @@ -264,6 +270,7 @@ "myInviteCode": "我的邀请码", "inviteCodeCopied": "邀请码已复制到剪贴板", "close": "关闭", + "pleaseLoginFirst": "请先登录后查看邀请码", "saveQRCode": "保存二维码", "qrCodeSaved": "二维码已保存", "copiedToClipboard": "已复制到剪贴板", @@ -383,6 +390,7 @@ "initializing": "正在初始化...", "networkConnectionFailure": "网络连接失败,请检查并重试", "retry": "重试", + "skip": "跳过", "networkPermissionFailed": "获取网络权限失败", "initializationFailed": "初始化失败" }, @@ -483,5 +491,33 @@ "open_dashboard": "打开面板", "copy_to_terminal": "复制到终端", "exit_app": "退出应用" + }, + "crisp": { + "initializingSystem": "正在初始化客服系统...", + "initFailed": "客服系统初始化失败" + }, + "common": { + "retry": "重试", + "tryBrowser": "尝试使用浏览器打开", + "cannotOpenBrowser": "无法打开浏览器", + "openLinkFailed": "打开链接失败,请稍后重试", + "cannotOpenTelegram": "无法打开Telegram链接" + }, + "subscribe": { + "pleaseSelectFirst": "请先选择订阅", + "resetPeriodFailed": "重置订阅周期失败", + "resetPeriodSuccess": "重置订阅周期成功" + }, + "purchase": { + "noAvailablePlans": "没有可用的套餐" + }, + "payment": { + "cannotOpenLink": "无法打开支付链接", + "linkEmpty": "支付链接为空", + "unsupportedType": "不支持的支付类型" + }, + "account": { + "accountRequired": "账号不能为空", + "deleteSuccess": "删除账号成功" } } \ No newline at end of file diff --git a/assets/translations/strings_zh_Hant.i18n.json b/assets/translations/strings_zh_Hant.i18n.json index ccedeed..3d54410 100755 --- a/assets/translations/strings_zh_Hant.i18n.json +++ b/assets/translations/strings_zh_Hant.i18n.json @@ -9,6 +9,7 @@ "enterEmail": "請輸入電子郵箱", "enterCode": "請輸入驗證碼", "enterPassword": "請輸入密碼", + "enterPasswordForPhone": "請輸入密碼 (密碼登錄)", "reenterPassword": "請再次輸入密碼", "forgotPassword": "忘記密碼", "codeLogin": "驗證碼登錄", @@ -18,6 +19,8 @@ "privacyPolicy": "隱私政策", "next": "下一步", "registerNow": "立即註冊", + "registerAccount": "註冊賬號", + "clickToRegister": "點我註冊", "setAndLogin": "設置並登錄", "enterAccount": "請輸入賬戶", "passwordMismatch": "兩次密碼輸入不一致", @@ -25,7 +28,9 @@ "codeSentCountdown": "驗證碼已發送 {seconds}s", "and": "和", "enterInviteCode": "請輸入邀請碼(選填)", - "registerSuccess": "註冊成功" + "registerSuccess": "註冊成功", + "search": "搜尋", + "selectOtherRegion": "選擇其他地區" }, "failure": { "unexpected": "意外錯誤", @@ -172,7 +177,8 @@ "friday": "週\n五", "saturday": "週\n六", "sunday": "週\n日" - } + }, + "processTrafficFailed": "處理流量日誌資料失敗" }, "message": { "title": "通知", @@ -448,6 +454,7 @@ "initializing": "正在初始化...", "networkConnectionFailure": "網絡連接失敗,請檢查並重試", "retry": "重試", + "skip": "跳過", "networkPermissionFailed": "獲取網絡權限失敗", "initializationFailed": "初始化失敗" }, @@ -466,5 +473,33 @@ "goToSettings": "前往設置", "cancel": "取消" } + }, + "crisp": { + "initializingSystem": "正在初始化客服系統...", + "initFailed": "客服系統初始化失敗" + }, + "common": { + "retry": "重試", + "tryBrowser": "嘗試使用瀏覽器開啟", + "cannotOpenBrowser": "無法開啟瀏覽器", + "openLinkFailed": "開啟連結失敗,請稍後重試", + "cannotOpenTelegram": "無法開啟Telegram連結" + }, + "subscribe": { + "pleaseSelectFirst": "請先選擇訂閱", + "resetPeriodFailed": "重置訂閱週期失敗", + "resetPeriodSuccess": "重置訂閱週期成功" + }, + "purchase": { + "noAvailablePlans": "沒有可用的套餐" + }, + "payment": { + "cannotOpenLink": "無法開啟支付連結", + "linkEmpty": "支付連結為空", + "unsupportedType": "不支援的支付類型" + }, + "account": { + "accountRequired": "帳號不能為空", + "deleteSuccess": "刪除帳號成功" } } \ No newline at end of file diff --git a/assets/translations/strings_zh_Hant.i18n.json.bak b/assets/translations/strings_zh_Hant.i18n.json.bak deleted file mode 100755 index 014e631..0000000 --- a/assets/translations/strings_zh_Hant.i18n.json.bak +++ /dev/null @@ -1,426 +0,0 @@ -{ - "login": { - "welcome": "歡迎使用 Hi快VPN!", - "verifyPhone": "驗證您的手機號", - "verifyEmail": "驗證您的郵箱", - "codeSent": "已向 {account} 發送6位數代碼。請在接下來的 30 分鐘內輸入。", - "back": "返回", - "enterEmailOrPhone": "輸入郵箱或者手機號", - "enterCode": "請輸入驗證碼", - "enterPassword": "請輸入密碼", - "reenterPassword": "請再次輸入密碼", - "forgotPassword": "忘記密碼", - "codeLogin": "驗證碼登錄", - "passwordLogin": "密碼登錄", - "agreeTerms": "登錄/創建賬戶,即表示我同意", - "termsOfService": "服務條款", - "privacyPolicy": "隱私政策", - "next": "下一步", - "registerNow": "立即註冊", - "setAndLogin": "設置並登錄", - "enterAccount": "請輸入賬戶", - "passwordMismatch": "兩次密碼輸入不一致", - "sendCode": "發送驗證碼", - "codeSentCountdown": "驗證碼已發送 {seconds}s", - "and": "和", - "enterInviteCode": "請輸入邀請碼(選填)", - "registerSuccess": "註冊成功" - }, - "failure": { - "unexpected": "意外錯誤", - "clash": { - "unexpected": "意外錯誤", - "core": "Clash 錯誤 ${reason}" - }, - "singbox": { - "unexpected": "意外服務錯誤", - "serviceNotRunning": "服務未運行", - "missingPrivilege": "缺少權限", - "missingPrivilegeMsg": "VPN 模式需要管理員權限。以管理員身份重新啟動應用程序或更改服務模式", - "missingGeoAssets": "缺失 GEO 資源文件", - "missingGeoAssetsMsg": "缺失 GEO 資源文件。請考慮更改激活的資源文件或在設置中下載所選資源文件。", - "invalidConfigOptions": "配置選項無效", - "invalidConfig": "無效配置", - "create": "服務創建錯誤", - "start": "服務啟動錯誤" - }, - "connectivity": { - "unexpected": "意外失敗", - "missingVpnPermission": "缺少 VPN 權限", - "missingNotificationPermission": "缺少通知權限", - "core": "核心錯誤" - }, - "profiles": { - "unexpected": "意外錯誤", - "notFound": "未找到配置文件", - "invalidConfig": "無效配置", - "invalidUrl": "網址無效" - }, - "connection": { - "unexpected": "意外連接錯誤", - "timeout": "連接超時", - "badResponse": "錯誤響應", - "connectionError": "連接錯誤", - "badCertificate": "證書無效" - }, - "geoAssets": { - "unexpected": "意外錯誤", - "notUpdate": "無可用更新", - "activeNotFound": "未找到激活的 GEO 資源文件" - } - }, - "userInfo": { - "title": "我的信息", - "bindingTip": "未綁定郵箱/手機號", - "myAccount": "我的賬號", - "balance": "餘額", - "noValidSubscription": "您沒有有效的訂閱", - "subscribeNow": "立即訂閱", - "shortcuts": "快捷鍵", - "adBlock": "廣告攔截", - "dnsUnlock": "DNS 解鎖", - "contactUs": "聯繫我們", - "others": "其他", - "logout": "退出登錄", - "logoutConfirmTitle": "退出登錄", - "logoutConfirmMessage": "確定要退出登錄嗎?", - "logoutCancel": "取消", - "vpnWebsite": "VPN 官網", - "telegram": "Telegram", - "mail": "郵箱", - "phone": "電話", - "customerService": "人工客服", - "workOrder": "填寫工單", - "pleaseLogin": "請先登錄賬號", - "subscriptionValid": "訂閱有效", - "startTime": "開始時間:", - "expireTime": "到期時間:", - "loginNow": "立即登錄", - "trialPeriod": "歡迎使用高級試用版", - "remainingTime": "剩餘時間", - "trialExpired": "試用期已結束,連接已斷開", - "subscriptionExpired": "訂閱已過期,連接已斷開", - "copySuccess": "複製成功", - "notAvailable": "暫無", - "willBeDeleted": "將被刪除", - "deleteAccountWarning": "賬號刪除是永久性的。一旦您的賬號被刪除,您將無法使用任何功能。是否繼續?", - "requestDelete": "請求刪除", - "switchSubscription": "切換訂閱", - "resetTrafficTitle": "重置流量", - "resetTrafficMessage": "月付套餐流量重置示例:將下一個週期的流量按月重置,訂閱有效期將從{currentTime}提前至{newTime}", - "reset": "重置", - "trafficUsage": "已用: {used} / {total}", - "trafficProgress": { - "title": "流量使用情況", - "unlimited": "不限流量", - "limited": "已用流量" - }, - "deviceLimit": "設備限制: {count}" - }, - "setting": { - "title": "設置", - "vpnConnection": "VPN連接", - "general": "通用", - "autoConnect": "自動連接", - "routeRule": "路由規則", - "countrySelector": "選擇國家", - "appearance": "外觀", - "notifications": "通知", - "helpImprove": "幫助我們改進", - "helpImproveSubtitle": "幫助我們改進的副標題", - "requestDeleteAccount": "請求刪除賬號", - "goToDelete": "去刪除", - "rateUs": "在 App Store 上為我們評分", - "iosRating": "iOS評分", - "version": "版本", - "switchLanguage": "切換語言", - "system": "系統", - "light": "淺色", - "dark": "深色", - "vpnModeSmart": "智能模式", - "mode": "出站模式", - "connectionTypeGlobal": "全域代理", - "connectionTypeGlobalRemark": "啟用後,所有流量均通過代理伺服器轉發", - "connectionTypeRule": "智能代理", - "connectionTypeRuleRemark": "當[出站模式]設置為[智能代理]時,根據所選國家,系統自動分流:國內IP/域名直連,境外請求透過代理訪問", - "connectionTypeDirect": "直連", - "connectionTypeDirectRemark": "啟用後,所有流量均不經代理直接訪問", - "smartMode": "智能模式", - "secureMode": "安全模式", - "deviceLimit": "設備限制: {count}" - }, - "statistics": { - "title": "統計", - "vpnStatus": "VPN 狀態", - "ipAddress": "IP地址", - "connectionTime": "連接時間", - "protocol": "協議", - "weeklyProtectionTime": "每週保護時間", - "currentStreak": "當前連續記錄", - "highestStreak": "最高記錄", - "longestConnection": "最長連接時間", - "days": "{days}天", - "daysOfWeek": { - "monday": "週\n一", - "tuesday": "週\n二", - "wednesday": "週\n三", - "thursday": "週\n四", - "friday": "週\n五", - "saturday": "週\n六", - "sunday": "週\n日" - } - }, - "message": { - "title": "通知", - "system": "系統消息", - "promotion": "促銷消息" - }, - "invite": { - "title": "邀請好友", - "progress": "邀請進度", - "inviteStats": "邀請統計", - "registers": "已註冊", - "totalCommission": "總佣金", - "rewardDetails": "獎勵明細 >", - "steps": "邀請步驟", - "inviteFriend": "邀請好友", - "acceptInvite": "好友接受邀請\n下單並註冊", - "getReward": "獲得獎勵", - "shareLink": "分享連結", - "shareQR": "分享二維碼", - "rules": "邀請規則", - "rule1": "1、您可以通過分享專屬邀請連結或邀請碼給好友,邀請他們加入我們。", - "rule2": "2、好友完成註冊並登錄後,邀請獎勵將自動發放至您的賬戶。", - "pending": "待下載", - "processing": "在路上", - "success": "已成功", - "expired": "已失效", - "myInviteCode": "我的邀請碼", - "inviteCodeCopied": "邀請碼已複製到剪貼板", - "close": "關閉", - "saveQRCode": "保存二維碼", - "qrCodeSaved": "二維碼已保存", - "copiedToClipboard": "已複製到剪貼板", - "getInviteCodeFailed": "獲取邀請碼失敗,請稍後重試", - "generateQRCodeFailed": "生成二維碼失敗,請稍後重試", - "generateShareLinkFailed": "生成分享連結失敗,請稍後重試" - }, - "purchaseMembership": { - "purchasePackage": "購買套餐", - "noData": "暫無可用套餐", - "myAccount": "我的賬號", - "selectPackage": "選擇套餐", - "packageDescription": "套餐描述", - "paymentMethod": "支付方式", - "cancelAnytime": "您可以隨時在APP上取消", - "startSubscription": "開始訂閱", - "renewNow": "立即續訂", - "month": "{months}個月", - "year": "{years}年", - "day": "{days}天", - "unlimitedTraffic": "不限流量", - "unlimitedDevices": "不限設備", - "devices": "{count}台", - "trafficLimit": "流量限制", - "deviceLimit": "設備限制", - "features": "套餐特性", - "expand": "展開", - "collapse": "收起", - "confirmPurchase": "確認購買", - "confirmPurchaseDesc": "您確定要購買此套餐嗎?" - }, - "home": { - "welcome": "歡迎使用 Hi快VPN", - "disconnected": "已斷開連接", - "connecting": "正在連接", - "connected": "已連接", - "disconnecting": "正在斷開連接", - "currentConnectionTitle": "當前連接", - "switchNode": "切換節點", - "timeout": "超時", - "loading": "載入中...", - "error": "載入失敗", - "checkNetwork": "請檢查網絡連接並重試", - "retry": "重試", - "connectionSectionTitle": "連接方式", - "dedicatedServers": "專用伺服器", - "countryRegion": "國家/地區", - "serverListTitle": "專用伺服器群組", - "nodeListTitle": "所有節點", - "countryListTitle": "國家/地區列表", - "noServers": "暫無可用伺服器", - "noNodes": "暫無可用節點", - "noRegions": "暫無可用地區", - "subscriptionDescription": "訂閱會員,暢享全球高速網絡", - "subscribe": "立即訂閱", - "trialPeriod": "歡迎使用 Premium 試用版", - "remainingTime": "剩餘時間", - "trialExpired": "試用期已結束,已斷開連接", - "subscriptionExpired": "訂閱已過期,已斷開連接", - "subscriptionUpdated": "訂閱已更新", - "subscriptionUpdatedMessage": "您的訂閱信息已更新,請刷新頁面查看最新狀態", - "trialStatus": "試用狀態", - "trialing": "試用中", - "trialEndMessage": "試用期結束後將無法使用", - "lastDaySubscriptionStatus": "訂閱即將到期", - "lastDaySubscriptionMessage": "即將到期", - "subscriptionEndMessage": "訂閱到期後將無法使用", - "trialTimeWithDays": "{days}天 {hours}時 {minutes}分 {seconds}秒", - "trialTimeWithHours": "{hours}時 {minutes}分 {seconds}秒", - "trialTimeWithMinutes": "{minutes}分 {seconds}秒", - "refreshLatency": "刷新延遲", - "testLatency": "測試延遲", - "testing": "正在測試延遲", - "refreshLatencyDesc": "刷新所有節點的延遲", - "testAllNodesLatency": "測試所有節點的網絡延遲", - "autoSelect": "自動選擇", - "selected": "已選擇" - }, - "dialog": { - "confirm": "確認", - "cancel": "取消", - "ok": "我知道了" - }, - "update": { - "title": "發現新版本", - "content": "是否立即更新?", - "updateNow": "立即更新", - "updateLater": "稍後", - "defaultContent": "1. 優化應用性能\n2. 修復已知問題\n3. 改進用戶體驗" - }, - "orderStatus": { - "title": "訂單狀態", - "pending": { - "title": "待支付", - "description": "請完成支付" - }, - "paid": { - "title": "已支付", - "description": "正在處理您的訂單" - }, - "success": { - "title": "恭喜你!支付成功", - "description": "您的套餐已經購買成功了" - }, - "closed": { - "title": "訂單已關閉", - "description": "請重新下單" - }, - "failed": { - "title": "支付失敗", - "description": "請重新嘗試支付" - }, - "unknown": { - "title": "未知狀態", - "description": "請聯繫客服" - }, - "checkFailed": { - "title": "檢查失敗", - "description": "請稍後重試" - }, - "initial": { - "title": "支付中", - "description": "請稍候,正在處理您的支付" - } - }, - "country": { - "cn": "中國", - "ir": "伊朗", - "af": "阿富汗", - "ru": "俄羅斯", - "id": "印尼", - "tr": "土耳其", - "br": "巴西" - }, - "error": { - "200": "成功", - "500": "服務器內部錯誤", - "10001": "數據庫查詢錯誤", - "10002": "數據庫更新錯誤", - "10003": "數據庫插入錯誤", - "10004": "數據庫刪除錯誤", - "20001": "用戶已存在", - "20002": "用戶不存在", - "20003": "用戶密碼錯誤", - "20004": "用戶已被禁用", - "20005": "餘額不足", - "20006": "註冊已暫停", - "20007": "未綁定 Telegram", - "20008": "用戶未綁定 OAuth", - "20009": "邀請碼錯誤", - "30001": "節點已存在", - "30002": "節點不存在", - "30003": "節點群組已存在", - "30004": "節點群組不存在", - "30005": "節點群組不為空", - "400": "參數錯誤", - "40002": "用戶令牌為空", - "40003": "用戶令牌無效", - "40004": "用戶令牌已過期", - "40005": "未登錄", - "401": "請求過多", - "50001": "優惠券不存在", - "50002": "優惠券已使用", - "50003": "優惠券不匹配", - "60001": "訂閱已過期", - "60002": "訂閱不可用", - "60003": "用戶已有訂閱", - "60004": "訂閱已使用", - "60005": "單次訂閱模式超出限制", - "60006": "訂閱配額限制", - "70001": "驗證碼錯誤", - "80001": "加入隊列錯誤", - "90001": "調試模式已啟用", - "90002": "發送短信錯誤", - "90003": "短信功能未啟用", - "90004": "郵件功能未啟用", - "90005": "不支持的登錄方式", - "90006": "驗證器不支持此方式", - "90007": "電話國家代碼為空", - "90008": "密碼為空", - "90009": "國家代碼為空", - "90010": "需要密碼或驗證碼", - "90011": "郵箱已存在", - "90012": "手機號已存在", - "90013": "設備已存在", - "90014": "手機號錯誤", - "90015": "該賬號今日已達到發送限制", - "90017": "設備不存在", - "90018": "用戶 ID 不匹配", - "61001": "訂閱不存在", - "61002": "未找到支付方式", - "61003": "訂閱狀態錯誤", - "61004": "重置期不足", - "61005": "存在未使用流量" - }, - "tray": { - "open_dashboard": "打開面板", - "copy_to_terminal": "複製到終端", - "exit_app": "退出應用" - }, - "splash": { - "appName": "Hi快VPN", - "slogan": "暢享全球高速網絡", - "initializing": "正在初始化...", - "networkConnectionFailure": "網絡連接失敗,請檢查並重試", - "retry": "重試", - "networkPermissionFailed": "獲取網絡權限失敗", - "initializationFailed": "初始化失敗" - }, - "network": { - "status": { - "connected": "已連接", - "disconnected": "已斷開連接", - "connecting": "正在連接...", - "disconnecting": "正在斷開連接...", - "reconnecting": "正在重新連接...", - "failed": "連接失敗" - }, - "permission": { - "title": "網絡權限", - "description": "需要網絡權限以提供 VPN 服務", - "goToSettings": "前往設置", - "cancel": "取消" - } - } -} \ No newline at end of file diff --git a/assets/translations/strings_zh_Hant.i18n.json.bak2 b/assets/translations/strings_zh_Hant.i18n.json.bak2 deleted file mode 100755 index e7c95d9..0000000 --- a/assets/translations/strings_zh_Hant.i18n.json.bak2 +++ /dev/null @@ -1,427 +0,0 @@ -{ - "login": { - "welcome": "歡迎使用 Hi快VPN!", - "verifyPhone": "驗證您的手機號", - "verifyEmail": "驗證您的郵箱", - "codeSent": "已向 {account} 發送6位數代碼。請在接下來的 30 分鐘內輸入。", - "back": "返回", - "enterEmailOrPhone": "輸入郵箱或者手機號", - "enterEmail": "Please enter email address", - "enterCode": "請輸入驗證碼", - "enterPassword": "請輸入密碼", - "reenterPassword": "請再次輸入密碼", - "forgotPassword": "忘記密碼", - "codeLogin": "驗證碼登錄", - "passwordLogin": "密碼登錄", - "agreeTerms": "登錄/創建賬戶,即表示我同意", - "termsOfService": "服務條款", - "privacyPolicy": "隱私政策", - "next": "下一步", - "registerNow": "立即註冊", - "setAndLogin": "設置並登錄", - "enterAccount": "請輸入賬戶", - "passwordMismatch": "兩次密碼輸入不一致", - "sendCode": "發送驗證碼", - "codeSentCountdown": "驗證碼已發送 {seconds}s", - "and": "和", - "enterInviteCode": "請輸入邀請碼(選填)", - "registerSuccess": "註冊成功" - }, - "failure": { - "unexpected": "意外錯誤", - "clash": { - "unexpected": "意外錯誤", - "core": "Clash 錯誤 ${reason}" - }, - "singbox": { - "unexpected": "意外服務錯誤", - "serviceNotRunning": "服務未運行", - "missingPrivilege": "缺少權限", - "missingPrivilegeMsg": "VPN 模式需要管理員權限。以管理員身份重新啟動應用程序或更改服務模式", - "missingGeoAssets": "缺失 GEO 資源文件", - "missingGeoAssetsMsg": "缺失 GEO 資源文件。請考慮更改激活的資源文件或在設置中下載所選資源文件。", - "invalidConfigOptions": "配置選項無效", - "invalidConfig": "無效配置", - "create": "服務創建錯誤", - "start": "服務啟動錯誤" - }, - "connectivity": { - "unexpected": "意外失敗", - "missingVpnPermission": "缺少 VPN 權限", - "missingNotificationPermission": "缺少通知權限", - "core": "核心錯誤" - }, - "profiles": { - "unexpected": "意外錯誤", - "notFound": "未找到配置文件", - "invalidConfig": "無效配置", - "invalidUrl": "網址無效" - }, - "connection": { - "unexpected": "意外連接錯誤", - "timeout": "連接超時", - "badResponse": "錯誤響應", - "connectionError": "連接錯誤", - "badCertificate": "證書無效" - }, - "geoAssets": { - "unexpected": "意外錯誤", - "notUpdate": "無可用更新", - "activeNotFound": "未找到激活的 GEO 資源文件" - } - }, - "userInfo": { - "title": "我的信息", - "bindingTip": "未綁定郵箱/手機號", - "myAccount": "我的賬號", - "balance": "餘額", - "noValidSubscription": "您沒有有效的訂閱", - "subscribeNow": "立即訂閱", - "shortcuts": "快捷鍵", - "adBlock": "廣告攔截", - "dnsUnlock": "DNS 解鎖", - "contactUs": "聯繫我們", - "others": "其他", - "logout": "退出登錄", - "logoutConfirmTitle": "退出登錄", - "logoutConfirmMessage": "確定要退出登錄嗎?", - "logoutCancel": "取消", - "vpnWebsite": "VPN 官網", - "telegram": "Telegram", - "mail": "郵箱", - "phone": "電話", - "customerService": "人工客服", - "workOrder": "填寫工單", - "pleaseLogin": "請先登錄賬號", - "subscriptionValid": "訂閱有效", - "startTime": "開始時間:", - "expireTime": "到期時間:", - "loginNow": "立即登錄", - "trialPeriod": "歡迎使用高級試用版", - "remainingTime": "剩餘時間", - "trialExpired": "試用期已結束,連接已斷開", - "subscriptionExpired": "訂閱已過期,連接已斷開", - "copySuccess": "複製成功", - "notAvailable": "暫無", - "willBeDeleted": "將被刪除", - "deleteAccountWarning": "賬號刪除是永久性的。一旦您的賬號被刪除,您將無法使用任何功能。是否繼續?", - "requestDelete": "請求刪除", - "switchSubscription": "切換訂閱", - "resetTrafficTitle": "重置流量", - "resetTrafficMessage": "月付套餐流量重置示例:將下一個週期的流量按月重置,訂閱有效期將從{currentTime}提前至{newTime}", - "reset": "重置", - "trafficUsage": "已用: {used} / {total}", - "trafficProgress": { - "title": "流量使用情況", - "unlimited": "不限流量", - "limited": "已用流量" - }, - "deviceLimit": "設備限制: {count}" - }, - "setting": { - "title": "設置", - "vpnConnection": "VPN連接", - "general": "通用", - "autoConnect": "自動連接", - "routeRule": "路由規則", - "countrySelector": "選擇國家", - "appearance": "外觀", - "notifications": "通知", - "helpImprove": "幫助我們改進", - "helpImproveSubtitle": "幫助我們改進的副標題", - "requestDeleteAccount": "請求刪除賬號", - "goToDelete": "去刪除", - "rateUs": "在 App Store 上為我們評分", - "iosRating": "iOS評分", - "version": "版本", - "switchLanguage": "切換語言", - "system": "系統", - "light": "淺色", - "dark": "深色", - "vpnModeSmart": "智能模式", - "mode": "出站模式", - "connectionTypeGlobal": "全域代理", - "connectionTypeGlobalRemark": "啟用後,所有流量均通過代理伺服器轉發", - "connectionTypeRule": "智能代理", - "connectionTypeRuleRemark": "當[出站模式]設置為[智能代理]時,根據所選國家,系統自動分流:國內IP/域名直連,境外請求透過代理訪問", - "connectionTypeDirect": "直連", - "connectionTypeDirectRemark": "啟用後,所有流量均不經代理直接訪問", - "smartMode": "智能模式", - "secureMode": "安全模式", - "deviceLimit": "設備限制: {count}" - }, - "statistics": { - "title": "統計", - "vpnStatus": "VPN 狀態", - "ipAddress": "IP地址", - "connectionTime": "連接時間", - "protocol": "協議", - "weeklyProtectionTime": "每週保護時間", - "currentStreak": "當前連續記錄", - "highestStreak": "最高記錄", - "longestConnection": "最長連接時間", - "days": "{days}天", - "daysOfWeek": { - "monday": "週\n一", - "tuesday": "週\n二", - "wednesday": "週\n三", - "thursday": "週\n四", - "friday": "週\n五", - "saturday": "週\n六", - "sunday": "週\n日" - } - }, - "message": { - "title": "通知", - "system": "系統消息", - "promotion": "促銷消息" - }, - "invite": { - "title": "邀請好友", - "progress": "邀請進度", - "inviteStats": "邀請統計", - "registers": "已註冊", - "totalCommission": "總佣金", - "rewardDetails": "獎勵明細 >", - "steps": "邀請步驟", - "inviteFriend": "邀請好友", - "acceptInvite": "好友接受邀請\n下單並註冊", - "getReward": "獲得獎勵", - "shareLink": "分享連結", - "shareQR": "分享二維碼", - "rules": "邀請規則", - "rule1": "1、您可以通過分享專屬邀請連結或邀請碼給好友,邀請他們加入我們。", - "rule2": "2、好友完成註冊並登錄後,邀請獎勵將自動發放至您的賬戶。", - "pending": "待下載", - "processing": "在路上", - "success": "已成功", - "expired": "已失效", - "myInviteCode": "我的邀請碼", - "inviteCodeCopied": "邀請碼已複製到剪貼板", - "close": "關閉", - "saveQRCode": "保存二維碼", - "qrCodeSaved": "二維碼已保存", - "copiedToClipboard": "已複製到剪貼板", - "getInviteCodeFailed": "獲取邀請碼失敗,請稍後重試", - "generateQRCodeFailed": "生成二維碼失敗,請稍後重試", - "generateShareLinkFailed": "生成分享連結失敗,請稍後重試" - }, - "purchaseMembership": { - "purchasePackage": "購買套餐", - "noData": "暫無可用套餐", - "myAccount": "我的賬號", - "selectPackage": "選擇套餐", - "packageDescription": "套餐描述", - "paymentMethod": "支付方式", - "cancelAnytime": "您可以隨時在APP上取消", - "startSubscription": "開始訂閱", - "renewNow": "立即續訂", - "month": "{months}個月", - "year": "{years}年", - "day": "{days}天", - "unlimitedTraffic": "不限流量", - "unlimitedDevices": "不限設備", - "devices": "{count}台", - "trafficLimit": "流量限制", - "deviceLimit": "設備限制", - "features": "套餐特性", - "expand": "展開", - "collapse": "收起", - "confirmPurchase": "確認購買", - "confirmPurchaseDesc": "您確定要購買此套餐嗎?" - }, - "home": { - "welcome": "歡迎使用 Hi快VPN", - "disconnected": "已斷開連接", - "connecting": "正在連接", - "connected": "已連接", - "disconnecting": "正在斷開連接", - "currentConnectionTitle": "當前連接", - "switchNode": "切換節點", - "timeout": "超時", - "loading": "載入中...", - "error": "載入失敗", - "checkNetwork": "請檢查網絡連接並重試", - "retry": "重試", - "connectionSectionTitle": "連接方式", - "dedicatedServers": "專用伺服器", - "countryRegion": "國家/地區", - "serverListTitle": "專用伺服器群組", - "nodeListTitle": "所有節點", - "countryListTitle": "國家/地區列表", - "noServers": "暫無可用伺服器", - "noNodes": "暫無可用節點", - "noRegions": "暫無可用地區", - "subscriptionDescription": "訂閱會員,暢享全球高速網絡", - "subscribe": "立即訂閱", - "trialPeriod": "歡迎使用 Premium 試用版", - "remainingTime": "剩餘時間", - "trialExpired": "試用期已結束,已斷開連接", - "subscriptionExpired": "訂閱已過期,已斷開連接", - "subscriptionUpdated": "訂閱已更新", - "subscriptionUpdatedMessage": "您的訂閱信息已更新,請刷新頁面查看最新狀態", - "trialStatus": "試用狀態", - "trialing": "試用中", - "trialEndMessage": "試用期結束後將無法使用", - "lastDaySubscriptionStatus": "訂閱即將到期", - "lastDaySubscriptionMessage": "即將到期", - "subscriptionEndMessage": "訂閱到期後將無法使用", - "trialTimeWithDays": "{days}天 {hours}時 {minutes}分 {seconds}秒", - "trialTimeWithHours": "{hours}時 {minutes}分 {seconds}秒", - "trialTimeWithMinutes": "{minutes}分 {seconds}秒", - "refreshLatency": "刷新延遲", - "testLatency": "測試延遲", - "testing": "正在測試延遲", - "refreshLatencyDesc": "刷新所有節點的延遲", - "testAllNodesLatency": "測試所有節點的網絡延遲", - "autoSelect": "自動選擇", - "selected": "已選擇" - }, - "dialog": { - "confirm": "確認", - "cancel": "取消", - "ok": "我知道了" - }, - "update": { - "title": "發現新版本", - "content": "是否立即更新?", - "updateNow": "立即更新", - "updateLater": "稍後", - "defaultContent": "1. 優化應用性能\n2. 修復已知問題\n3. 改進用戶體驗" - }, - "orderStatus": { - "title": "訂單狀態", - "pending": { - "title": "待支付", - "description": "請完成支付" - }, - "paid": { - "title": "已支付", - "description": "正在處理您的訂單" - }, - "success": { - "title": "恭喜你!支付成功", - "description": "您的套餐已經購買成功了" - }, - "closed": { - "title": "訂單已關閉", - "description": "請重新下單" - }, - "failed": { - "title": "支付失敗", - "description": "請重新嘗試支付" - }, - "unknown": { - "title": "未知狀態", - "description": "請聯繫客服" - }, - "checkFailed": { - "title": "檢查失敗", - "description": "請稍後重試" - }, - "initial": { - "title": "支付中", - "description": "請稍候,正在處理您的支付" - } - }, - "country": { - "cn": "中國", - "ir": "伊朗", - "af": "阿富汗", - "ru": "俄羅斯", - "id": "印尼", - "tr": "土耳其", - "br": "巴西" - }, - "error": { - "200": "成功", - "500": "服務器內部錯誤", - "10001": "數據庫查詢錯誤", - "10002": "數據庫更新錯誤", - "10003": "數據庫插入錯誤", - "10004": "數據庫刪除錯誤", - "20001": "用戶已存在", - "20002": "用戶不存在", - "20003": "用戶密碼錯誤", - "20004": "用戶已被禁用", - "20005": "餘額不足", - "20006": "註冊已暫停", - "20007": "未綁定 Telegram", - "20008": "用戶未綁定 OAuth", - "20009": "邀請碼錯誤", - "30001": "節點已存在", - "30002": "節點不存在", - "30003": "節點群組已存在", - "30004": "節點群組不存在", - "30005": "節點群組不為空", - "400": "參數錯誤", - "40002": "用戶令牌為空", - "40003": "用戶令牌無效", - "40004": "用戶令牌已過期", - "40005": "未登錄", - "401": "請求過多", - "50001": "優惠券不存在", - "50002": "優惠券已使用", - "50003": "優惠券不匹配", - "60001": "訂閱已過期", - "60002": "訂閱不可用", - "60003": "用戶已有訂閱", - "60004": "訂閱已使用", - "60005": "單次訂閱模式超出限制", - "60006": "訂閱配額限制", - "70001": "驗證碼錯誤", - "80001": "加入隊列錯誤", - "90001": "調試模式已啟用", - "90002": "發送短信錯誤", - "90003": "短信功能未啟用", - "90004": "郵件功能未啟用", - "90005": "不支持的登錄方式", - "90006": "驗證器不支持此方式", - "90007": "電話國家代碼為空", - "90008": "密碼為空", - "90009": "國家代碼為空", - "90010": "需要密碼或驗證碼", - "90011": "郵箱已存在", - "90012": "手機號已存在", - "90013": "設備已存在", - "90014": "手機號錯誤", - "90015": "該賬號今日已達到發送限制", - "90017": "設備不存在", - "90018": "用戶 ID 不匹配", - "61001": "訂閱不存在", - "61002": "未找到支付方式", - "61003": "訂閱狀態錯誤", - "61004": "重置期不足", - "61005": "存在未使用流量" - }, - "tray": { - "open_dashboard": "打開面板", - "copy_to_terminal": "複製到終端", - "exit_app": "退出應用" - }, - "splash": { - "appName": "Hi快VPN", - "slogan": "暢享全球高速網絡", - "initializing": "正在初始化...", - "networkConnectionFailure": "網絡連接失敗,請檢查並重試", - "retry": "重試", - "networkPermissionFailed": "獲取網絡權限失敗", - "initializationFailed": "初始化失敗" - }, - "network": { - "status": { - "connected": "已連接", - "disconnected": "已斷開連接", - "connecting": "正在連接...", - "disconnecting": "正在斷開連接...", - "reconnecting": "正在重新連接...", - "failed": "連接失敗" - }, - "permission": { - "title": "網絡權限", - "description": "需要網絡權限以提供 VPN 服務", - "goToSettings": "前往設置", - "cancel": "取消" - } - } -} \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 5b1adac..3ef676f 100755 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -78,7 +78,7 @@ SPEC CHECKSUMS: connectivity_plus: 481668c94744c30c53b8895afb39159d1e619bdf device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe EasyPermissionX: ff4c438f6ee80488f873b4cb921e32d982523067 - Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 flutter_udid: f7c3884e6ec2951efe4f9de082257fc77c4d15e9 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 diff --git a/lib/app/modules/kr_delete_account/controllers/kr_delete_account_controller.dart b/lib/app/modules/kr_delete_account/controllers/kr_delete_account_controller.dart index a18945c..1297e7c 100755 --- a/lib/app/modules/kr_delete_account/controllers/kr_delete_account_controller.dart +++ b/lib/app/modules/kr_delete_account/controllers/kr_delete_account_controller.dart @@ -50,7 +50,7 @@ class KRDeleteAccountController extends GetxController { Future kr_sendCode() async { final account = KRAppRunData.getInstance().kr_account.value; if (account == null || account.isEmpty) { - KRCommonUtil.kr_showToast('账号不能为空'); + KRCommonUtil.kr_showToast('account.accountRequired'.tr); return; } @@ -98,7 +98,7 @@ class KRDeleteAccountController extends GetxController { KRCommonUtil.kr_showToast(error.msg); }, (success) { - KRCommonUtil.kr_showToast('删除账号成功'); + KRCommonUtil.kr_showToast('account.deleteSuccess'.tr); KRAppRunData.getInstance().kr_loginOut(); }, ); diff --git a/lib/app/modules/kr_login/views/kr_search_area_code_view.dart b/lib/app/modules/kr_login/views/kr_search_area_code_view.dart index 035869d..bc9ff46 100755 --- a/lib/app/modules/kr_login/views/kr_search_area_code_view.dart +++ b/lib/app/modules/kr_login/views/kr_search_area_code_view.dart @@ -46,7 +46,7 @@ class KRSearchAreaView extends GetView { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - '选择其他地区', + 'login.selectOtherRegion'.tr, style: KrAppTextStyle( fontSize: 15.w, fontWeight: FontWeight.w500, @@ -57,7 +57,7 @@ class KRSearchAreaView extends GetView { onChanged: (value) => controller.searchQuery.value = value, decoration: InputDecoration( prefixIcon: Icon(Icons.search, color: Colors.grey), - hintText: '搜索', + hintText: 'login.search'.tr, hintStyle: TextStyle(color: Colors.grey), filled: true, // fillColor: Colors.grey.shade200, diff --git a/lib/app/modules/kr_setting/views/kr_setting_view.dart b/lib/app/modules/kr_setting/views/kr_setting_view.dart index be9d466..b2d21c4 100755 --- a/lib/app/modules/kr_setting/views/kr_setting_view.dart +++ b/lib/app/modules/kr_setting/views/kr_setting_view.dart @@ -248,7 +248,7 @@ class KRSettingView extends GetView { // 设备登录(游客模式),显示"点击这里登录/注册" return _kr_buildActionTile( context, - title: "登录/注册", + title: 'userInfo.loginRegister'.tr, trailing: "", onTap: () => Get.toNamed(Routes.MR_LOGIN), ); diff --git a/lib/app/modules/kr_splash/views/kr_splash_view.dart b/lib/app/modules/kr_splash/views/kr_splash_view.dart index 68f10a9..a816574 100755 --- a/lib/app/modules/kr_splash/views/kr_splash_view.dart +++ b/lib/app/modules/kr_splash/views/kr_splash_view.dart @@ -101,7 +101,7 @@ class KRSplashView extends GetView { ), ), child: Text( - '跳过', + 'splash.skip'.tr, style: KrAppTextStyle( fontSize: 14, color: Colors.grey, diff --git a/lib/app/modules/kr_statistics/controllers/kr_statistics_controller.dart b/lib/app/modules/kr_statistics/controllers/kr_statistics_controller.dart index d2adc3e..e07da53 100755 --- a/lib/app/modules/kr_statistics/controllers/kr_statistics_controller.dart +++ b/lib/app/modules/kr_statistics/controllers/kr_statistics_controller.dart @@ -154,7 +154,7 @@ class KRStatisticsController extends GetxController { } kr_weeklyData.value = weeklyHours; } catch (e) { - KRCommonUtil.kr_showToast('处理流量日志数据失败'); + KRCommonUtil.kr_showToast('statistics.processTrafficFailed'.tr); KRLogUtil.kr_e('处理流量日志数据失败: $e', tag: 'Statistics'); } } diff --git a/lib/app/modules/kr_user_info/views/kr_user_info_view.dart b/lib/app/modules/kr_user_info/views/kr_user_info_view.dart index d473d4f..afeb2d7 100755 --- a/lib/app/modules/kr_user_info/views/kr_user_info_view.dart +++ b/lib/app/modules/kr_user_info/views/kr_user_info_view.dart @@ -916,17 +916,17 @@ class KRUserInfoView extends GetView { } if (!launched) { - KRCommonUtil.kr_showToast("尝试使用浏览器打开"); + KRCommonUtil.kr_showToast("common.tryBrowser".tr); // 降级使用浏览器打开 try { final Uri webUrl = Uri.parse(tgUrl); if (await canLaunchUrl(webUrl)) { await launchUrl(webUrl, mode: LaunchMode.externalApplication); } else { - KRCommonUtil.kr_showToast("无法打开浏览器"); + KRCommonUtil.kr_showToast("common.cannotOpenBrowser".tr); } } catch (e) { - KRCommonUtil.kr_showToast("打开链接失败,请稍后重试"); + KRCommonUtil.kr_showToast("common.openLinkFailed".tr); } } } else { @@ -936,10 +936,10 @@ class KRUserInfoView extends GetView { if (await canLaunchUrl(webUrl)) { await launchUrl(webUrl); } else { - KRCommonUtil.kr_showToast("无法打开Telegram链接"); + KRCommonUtil.kr_showToast("common.cannotOpenTelegram".tr); } } catch (e) { - KRCommonUtil.kr_showToast("打开链接失败,请稍后重试"); + KRCommonUtil.kr_showToast("common.openLinkFailed".tr); } } break; diff --git a/lib/app/services/kr_subscribe_service.dart b/lib/app/services/kr_subscribe_service.dart index a01faf0..fb9b1c2 100755 --- a/lib/app/services/kr_subscribe_service.dart +++ b/lib/app/services/kr_subscribe_service.dart @@ -98,7 +98,7 @@ class KRSubscribeService { /// 重置订阅周期 Future kr_resetSubscribePeriod() async { if (kr_currentSubscribe.value == null) { - KRCommonUtil.kr_showToast('请先选择订阅'); + KRCommonUtil.kr_showToast('subscribe.pleaseSelectFirst'.tr); return; }