diff --git a/packages/i18n/src/locales/es/server/auth.yaml b/packages/i18n/src/locales/es/server/auth.yaml index d2e8c9af2..f3014c2e8 100644 --- a/packages/i18n/src/locales/es/server/auth.yaml +++ b/packages/i18n/src/locales/es/server/auth.yaml @@ -1,47 +1,200 @@ electronCallback: title: - loading: Completing sign-in - openingAiri: Opening AIRI - signedIn: You are signed in - signInFailed: Sign-in failed - finishSignInInAiri: Finish sign-in in AIRI - openAiriToContinue: Open AIRI to continue + loading: Finalizando inicio de sesión + openingAiri: Abriendo AIRI + signedIn: Has iniciado sesión + signInFailed: Error al iniciar sesión + finishSignInInAiri: Terminar sesión en AIRI + openAiriToContinue: Abrir AIRI para continuar message: - checkingResponse: Checking your sign-in response and preparing the handoff to AIRI. + checkingResponse: Comprobando su respuesta de inicio de sesión y preparando el handoff para AIRI. passingToAiri: Passing your sign-in back to AIRI now. This page should close in a moment. syncedAndSafeToClose: We notified AIRI client you signed from. - invalidResponse: We could not use this sign-in response. + invalidResponse: No pudimos utilizar esta respuesta de inicio de sesión. loopbackUnreachable: The browser could not reach AIRI through the local callback port. - tryOpenDirectly: We will try opening the local handoff directly. If that still fails, use the button below. - automaticHandoffFailed: Automatic handoff did not finish in this browser session. + tryOpenDirectly: Intentaremos abrir el handoff local directamente. Si esto todavía falla, utilice el botón de abajo. + automaticHandoffFailed: El handoff automático no ha finalizado en esta sesión del navegador. label: - signIn: Sign in - safeToClose: It is safe to close this tab now. - whyStillHere: Why this tab still here? + signIn: Iniciar sesión + safeToClose: Es seguro cerrar la pestaña ahora. + whyStillHere: '¿Por qué esta pestaña sigue aquí?' action: - openAiriManually: Open AIRI manually + openAiriManually: Abrir AIRI manualmente hint: - closeTabManually: Some browsers do not allow this page to close itself automatically. You can close it manually. + closeTabManually: Algunos navegadores no permiten que esta página se cierre automáticamente. Puede cerrarla manualmente. signIn: - title: Sign in + title: Iniciar sesión + step: + identify: + heading: Iniciar sesión + description: Introduce tu correo electrónico para iniciar sesión o crear una cuenta. + password: + heading: Bienvenido de vuelta + description: Continuar como {{email}}. + create: + heading: Crear tu cuenta + description: Crearemos una nueva cuenta para {email}. + email: + label: Correo electrónico + placeholder: tú{'@'}ejemplo.com + password: + label: Contraseña + placeholder: Tu contraseña + newPassword: + label: Crear contraseña + placeholder: Mínimo 8 caracteres + confirmPassword: + label: Confirmar contraseña + placeholder: Repetir tu contraseña + name: + label: Mostrar nombre + placeholder: Opcional, por defecto su correo electrónico + action: + continue: Continuar + signIn: Iniciar sesión + createAccount: Crear cuenta + forgotPassword: '¿Has olvidado la contraseña?' + useDifferentEmail: Usar un correo electrónico diferente + divider: + or: o error: - fallback: Sign in failed - unknown: An unknown error occurred - authFailed: Authentication failed. Please try again. + fallback: Error en el inicio de sesión + unknown: S produjo un error inesperado + authFailed: La autenticación ha fallado. Por favor inténtelo otra vez. + passwordMismatch: Las contraseñas no coinciden. + invalidEmail: Por favor, introduzca una dirección de correo electrónico válida. footer: - prefix: By continuing, you agree to our - terms: Terms - and: and - privacy: Privacy Policy + prefix: Al continuar, aceptas nuestros + terms: Términos + and: "y" + privacy: Política de Privacidad +verifyEmail: + title: + pending: Revisa tu bandeja de entrada + success: Correo electrónico verificado + failed: Falló la verificación + message: + pending: Hemos enviado un enlace de verificación a tu correo electrónico. Ábrelo para terminar de crear su cuenta — esta página continuará automáticamente una vez que haga clic en el enlace. + pendingWithAddress: Hemos enviado un enlace de verificación a {email}. Ábrelo para terminar de crear su cuenta — esta página continuará automáticamente una vez que haga clic en el enlace. + success: Tu correo electrónico ha sido verificado y has iniciado sesión. Puedes cerrar esta pestaña. + failed: No pudimos verificar tu correo electrónico ({error}). Intenta solicitar un nuevo enlace. + action: + backToSignIn: Volver al inicio de sesión +forgotPassword: + title: Restablecer contraseña + description: Escribe la dirección de email asociada a tu cuenta y te enviaremos un email para iniciar sesión. + email: + label: Correo electrónico + placeholder: tú{'@'}ejemplo.com + action: + send: Enviar enlace de reinicio + backToSignIn: Volver al inicio de sesión + message: + sent: Si {email} coincide con una cuenta, hay un enlace de restablecimiento en camino. + error: + fallback: No se pudo enviar el correo electrónico de reinicio. +deleteAccount: + title: + success: Account deleted + failed: Could not delete account + message: + success: Your account has been deleted. + action: + closeTab: You can close this tab. +resetPassword: + title: + default: Establecer nueva contraseña + success: Contraseña actualizada + password: + label: Nueva contraseña + placeholder: Mínimo 8 caracteres + confirmPassword: + label: Confirmar nueva contraseña + placeholder: Repetir contraseña + action: + reset: Actualizar contraseña + goSignIn: Go to sign in + message: + success: Your password has been updated. Sign in with your new password. + error: + fallback: We could not update your password. + missingToken: Reset link is invalid or has expired. + passwordMismatch: Password and confirmation do not match. +profile: + title: Account profile + description: Manage your avatar, display name, and connected accounts. + section: + profile: Profile + avatar: Avatar + password: Password + linkedAccounts: Connected accounts + field: + email: Email + emailVerified: Email status + createdAt: Joined + label: + verified: Verified + unverified: Unverified + name: + label: Display name + placeholder: How others see you + avatar: + altText: Profile avatar + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + password: + currentLabel: Current password + currentPlaceholder: Enter your current password + newLabel: New password + newPlaceholder: At least 8 characters + confirmLabel: Confirm new password + confirmPlaceholder: Repeat your new password + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + setLinkSent: Check {email} for the link to set your password. + setLinkFailed: We could not send the password setup link. + linkedAccounts: + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + action: + saveProfile: Save changes + changePassword: Change password + sendSetPasswordLink: Email me a link to set my password + signOut: Sign out + message: + loading: Loading your profile... + profileSaved: Profile updated. + passwordChanged: Password changed. Other sessions have been signed out. + error: + loadFailed: We could not load your profile. + saveFailed: We could not save your changes. + changePasswordFailed: We could not change your password. + signOutFailed: We could not sign you out. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. webCallback: title: - signIn: Sign in - errorLabel: We encountered an error while signing you in - loading: Signing in... + signIn: Iniciar sesión + errorLabel: Encontramos un error al iniciar sesión + loading: Iniciando sesión... message: - missingCodeOrState: Missing authorization code or state - missingFlowState: Missing OIDC flow state - please try logging in again - tokenExchangeFailed: Token exchange failed - finalizing: Finalizing authentication with AIRI. + missingCodeOrState: Falta el código de autorización o estado + missingFlowState: Falta el estado de flujo OIDC - por favor intente iniciar sesión de nuevo + tokenExchangeFailed: Fallo en el cambio de token + finalizing: Finalizando autenticación con AIRI. action: - tryAgain: Try again + tryAgain: Inténtalo de nuevo diff --git a/packages/i18n/src/locales/es/settings.yaml b/packages/i18n/src/locales/es/settings.yaml index c1a683fa6..d5d538d26 100644 --- a/packages/i18n/src/locales/es/settings.yaml +++ b/packages/i18n/src/locales/es/settings.yaml @@ -81,7 +81,7 @@ dialogs: language: title: Idioma description: | - UI language. You can set characters' language later. + Idioma de la UI. Puedes configurar el idioma de los caracteres más tarde. controls-island: icon-size: title: Tamaño de icono de la isla de controles @@ -149,9 +149,92 @@ pages: notLoggedIn: Inicia sesión para ver tu cuenta y acceder a todas las funciones login: Iniciar sesión logout: Cerrar sesión - fluxBalance: Flux Balance + fluxBalance: Saldo de Flux viewFluxDetails: Ver detalles signedInAs: Sesión iniciada como + profile: + tab: Perfil + title: Perfil + description: Administra tu nombre público. + name: + label: Mostrar nombre + placeholder: Cómo otros te ven + avatar: + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + action: + save: Guardar cambios + message: + saved: Perfil actualizado. + error: + fallback: No pudimos guardar sus cambios. + connections: + tab: Connected accounts + title: Connected accounts + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linked: '{provider} connected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + security: + tab: Seguridad + title: Seguridad + description: Cambia tu contraseña. Tus otros dispositivos cerrarán sesión. + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + currentPassword: + label: Contraseña actual + placeholder: Introduce tu contraseña actual + newPassword: + label: Nueva contraseña + placeholder: Mínimo 8 caracteres + confirmPassword: + label: Confirmar nueva contraseña + placeholder: Repite tu nueva contraseña + action: + changePassword: Cambiar contraseña + sendSetLink: Email me a link to set my password + message: + changed: Contraseña cambiada. Otras sesiones han sido desconectadas. + setLinkSent: Check {email} for the link to set your password. + error: + fallback: No pudimos cambiar tu contraseña. + setLinkFailed: We could not send the password setup link. + passwordMismatch: Las contraseñas no coinciden. + passwordSameAsCurrent: La nueva contraseña debe ser diferente de la actual. + danger: + tab: Zona peligrosa + title: Zona peligrosa + description: Irreversible account actions live here. + deleteAccount: + title: Eliminar cuenta + description: Permanently delete your account and personal data. + action: Delete account + modal: + title: Delete account? + warning: This cannot be undone. Active subscription will be canceled, Flux balance cleared. + confirmEmail: + label: Type your email to confirm + placeholder: '' + mismatch: Email does not match. + confirm: Send confirmation email + cancel: Cancel + message: + emailSent: Check {email} for the deletion link. + error: + fallback: Could not start deletion. Try again later. card: activate: Activar active: Activo @@ -358,33 +441,33 @@ pages: label: Calentamiento artistry: title: Artistry - description: Image generation, scene background and drawing. + description: Generación de imágenes, fondo de escena y dibujo. page: title: Artistry Provider Configuration description: Select the active backend provider for image generation. Characters can override this in their Card settings. providers: none: - name: None + name: Ninguno description: Bypass and disable the image generation module globally. comfyui: - name: ComfyUI (Local) + name: ConfyUI (local) description: Use a local ComfyUI instance via WSL for image generation. replicate: name: Replicate.ai (Cloud) description: Use cloud-based models via the Replicate API. nanobanana: - name: Nano Banana (Preview) + name: Nano Banana (Vista previa) description: Use Google AI Studio for image preview and reactions. card: description: Configure how AIRI generates images and visual content. comfyui_empty: No ComfyUI workflows configured. Go to Settings → Providers → ComfyUI to upload a workflow template. exposed_fields: '{count} exposed fields' - open_on_replicate: Open on Replicate + open_on_replicate: Abrir al replicar instruction_sync: title: ComfyUI Instruction Sync description: A specialized prompt is ready for your {workflowName} workflow. Applying this will overwrite current widget instructions so the AI knows how to use this specific template. apply: Apply Recommended Prompt - keep: Keep Existing + keep: Mantener existente provider: Artistry Provider spawn_mode: label: Manifestation Mode (Spawn Mode) @@ -399,7 +482,7 @@ pages: description: When enabled, the "Producer" runs in parallel to the character to decide if a visual is needed. This prevents the character from forgetting to manifest scenes. threshold: Manifestation Threshold threshold_description: Use {min} for aggressive scene creation or {max} to require stronger evidence before generating. - threshold_min: Always Generate (0%) + threshold_min: Generar siempre (0%) threshold_max: Strict (100%) model: label: Artistry Model (Optional Override) @@ -479,7 +562,7 @@ pages: Puedes encontrar las instrucciones para configurar el bot en el siguiente archivo runtime: title: - connection: Connection + connection: Conexión latest-context: Latest bot context waiting: Waiting for a fresh bot-originated context push. unknown: Unknown @@ -488,8 +571,8 @@ pages: empty: No Minecraft traffic observed yet. source: 'Source: {source}' status: - service-online: Service online - service-offline: Service offline + service-online: Servicio online + service-offline: Servicio offline no-runtime-context: No bot context observed yet last-context-seconds: 'Last bot context: {seconds}s ago' last-context-stale: 'Last bot context: Stale' @@ -620,7 +703,7 @@ pages: empty: No hay registros de transacción todavía. loadMore: Cargar más delayHint: Los registros de uso se pueden retrasar hasta 1 minuto - ttsRequests: requests + ttsRequests: peticiones packages: title: Paquetes de flujo buy: Carga @@ -722,27 +805,27 @@ pages: voice: title: Configuraciones de Voz labels: - recommended: Recommended + recommended: Recomendado filters: pricing: Pricing deployment: Deployment - all: All - free: Free - paid: Paid + all: Todo + free: Gratis + paid: Pagado internal: Internal local: Local - cloud: Cloud + cloud: Nube categories: chat: title: Chat - description: Text generation model providers. e.g. OpenRouter, OpenAI, Ollama. + description: Proveedores de modelos de generación de texto. ej. OpenRouter, OpenAI, Ollama. speech: title: Speech description: Speech (text-to-speech) model providers. e.g. ElevenLabs, Azure Speech. transcription: - title: Transcription + title: Transcripción description: >- - Transcription (speech-to-text) model providers. e.g. Whisper.cpp, OpenAI, Azure Speech + Proveedores de modelos de transcripción (voz a texto). ej. Whisper.cpp, OpenAI, Azure Speech artistry: title: Artistry description: Image generation and design model providers. e.g. ComfyUI, Replicate. @@ -784,8 +867,8 @@ pages: description: aws.amazon.com/bedrock config: api-key: - label: Bedrock API Key - description: Amazon Bedrock API key (generate in AWS Console → Bedrock → API Keys) + label: Clave API Bedrock + description: Clave API Bedrock de Amazon (generar en la consola AWS → Bedrock → Claves API) placeholder: bedrock-... region: label: AWS Region @@ -839,26 +922,26 @@ pages: description: Sin salida de voz. comfyui: settings: - title: ComfyUI (Local) + title: ConfyUI (local) heading: ComfyUI Native API description: Connect to your local ComfyUI and bring your own workflows. info: what_you_need: - label: What You Need + label: Lo que necesitas value: ComfyUI running locally or on your network. how_to_export: - label: How To Export + label: Cómo exportar value: Enable Dev Mode → "Save (API Format)". scope_boundary: label: Scope Boundary value: Model downloads & node installs are your job. connection: - title: Connection - connected: Connected - failed: Connection failed + title: Conexión + connected: Conectado + failed: Conexión fallida error_prefix: Error - test: Test - testing: Testing... + test: Probar + testing: Probando... unknown_error: Unknown connection error unknown_gpu: Unknown GPU server_url: @@ -904,8 +987,8 @@ pages: description: Fallback owner/model string to use if the character card doesn't specify one placeholder: black-forest-labs/flux-schnell aspect_ratio: - label: Aspect Ratio - description: Default image aspect ratio (e.g. 16:9, 1:1, 9:16) + label: Relación de aspecto + description: Relación de aspecto por defecto de la imagen (por ejemplo, 16:9, 1:1, 9:16) placeholder: '16:9' inference_steps: label: Inference Steps @@ -914,21 +997,21 @@ pages: settings: title: Nano Banana heading: Nano Banana (Google AI Studio) - description: Configure Google Gemini's native image generation capabilities. + description: Configurar las capacidades de generación de imágenes nativas de Google Gemini. api_key: - label: API Key - description: Your Google AI Studio API Key + label: Clave API + description: Tu clave API de Google AI Studio placeholder: AIpk... preferred_model: - label: Preferred Model + label: Modelo preferido description: The specific Gemini image preview model to use default_resolution: - label: Default Resolution + label: Resolución por defecto description: The target resolution for generated images model_options: - nano_banana_2: Nano Banana 2 (Gemini 3.1 Flash Image) - nano_banana_pro: Nano Banana Pro (Gemini 3 Pro Image) - nano_banana: Nano Banana (Gemini 2.5 Flash Image) + nano_banana_2: Nano Banana 2 (Imagen Flash Gemini 3.1) + nano_banana_pro: Nano Banana Pro (Imagen Flash Gemini 3) + nano_banana: Nano Banana (Imagen Flash Gemini 2.5) deepseek: description: deepseek.com title: DeepSeek @@ -1161,18 +1244,18 @@ pages: The QR code includes the auth token so Stage Pocket can authenticate after connecting. Do not share it publicly. errors: title: QR code unavailable - unavailable: Failed to prepare the connection QR code. + unavailable: Error al preparar el código QR de conexión. qr-scan: - title: Quick Connect - description: Scan the QR code from Tamagotchi to quick connect + title: Conexión rápida + description: Escanear el código QR desde Tamagotchi para conectarse rápidamente instructions: Point the camera at the AIRI connection QR code. - action: Scan + action: Escanear success: - title: Connected address saved - description: 'URL been used: {url}' + title: Dirección conectada guardada + description: 'URL utilizada: {url}' errors: - title: QR scan failed - failed: Failed to scan or connect with the QR code. + title: Escaneo QR fallido + failed: Fallo al escanear o conectar con el código QR. system: color-scheme: description: Cambiar el esquema de colores del escenario. @@ -1200,7 +1283,7 @@ pages: section: performance-visualizer: title: Performance Visualizer - description: Toggle FPS/long task/memory overlay + description: Cambiar FPS/tareas largas/superposición de memoria markdown-stress: title: Markdown Stress description: Stress markdown parsing and rendering with heavy chat payloads @@ -1208,7 +1291,7 @@ pages: title: useMagicKeys Tool description: Test shortcuts audio-record: - title: Audio Record + title: Grabación de Audio description: Test Audio related composables background-gradient-blending: title: Background Theme color blending @@ -1223,8 +1306,8 @@ pages: title: Gesture Circle (Desktop only) description: Test gesture recognition image: - title: Image - description: Image + title: Imagen + description: Imagen polaroid: title: Polaroid description: Utilidad para tomar fotos de modelos @@ -1322,26 +1405,26 @@ pages: credits: buy: Comprar scene: - title: Scenes - description: Customize the virtual environment for your characters. - beta_label: Scenes System - beta_description: Each character card specifies its own preferred background from this gallery. Setting it here will set it as the default for the currently active character. + title: Escenas + description: Personaliza el entorno virtual para tus personajes. + beta_label: Sistema de Escenas + beta_description: Cada carta de caracteres especifica su propio fondo preferido de esta galería. Si lo establece aquí se establecerá como predeterminado para el carácter activo actual. background_image: - title: Active Character Background - no_background: No background active for this character. Upload a square or landscape image for best results. - upload: Upload to Gallery - change: Change Background - clear: Clear Default + title: Fondo activo del personaje + no_background: No hay fondo activo para este personaje. Sube una imagen cuadrada o horizontal para mejores resultados. + upload: Subir a Galería + change: Cambiar fondo + clear: Borrar predeterminado gallery: - title: Scene Gallery - empty: No images in gallery yet. Upload one above! - set_as_global: Set as Character Default - delete: Delete from Gallery - global_badge: Character Default - active_badge: Current Scene + title: Galería de escenas + empty: Aún no hay imágenes en la galería. ¡Sube una arriba! + set_as_global: Establecer como personaje por defecto + delete: Borrar de la galería + global_badge: Personaje por defecto + active_badge: Escena actual delete_confirm: Are you sure you want to delete this background? tip: - label: Tip! + label: '¡Un consejo!' description: Using a square image will leverage cover cropping in portrait mode, focusing on the center of the scene. sections: section: @@ -1355,7 +1438,7 @@ title: Configuración voices: Voz vrm: render-scale: - title: Render scale + title: Escala de renderizado change-model: from-file: Cargar desde Archivo from-file-select: Seleccionar diff --git a/packages/i18n/src/locales/es/stage.yaml b/packages/i18n/src/locales/es/stage.yaml index 1f790cc8b..dec0a25eb 100644 --- a/packages/i18n/src/locales/es/stage.yaml +++ b/packages/i18n/src/locales/es/stage.yaml @@ -1,6 +1,6 @@ chat: actions: - retry: Retry + retry: Reintentar message: character-name: airi: AIRI @@ -49,7 +49,7 @@ promo-banner: watermark: Luna fallbackLabel: Regalo lunar title: 7 días de inicio de sesión - eventName: Sign in to claim stardust, avatar frames, and launch gifts. + eventName: Inicia sesión para reclamar stardust, marcos de avatar y regalos de lanzamiento. date: 03/28 - 04/10 reward: Hasta 120 Stardust cta: Iniciar sesión @@ -83,7 +83,7 @@ promo-banner: title: Actualización del tema primavera eventName: Desbloquea los temas de ventana, escritorio y lámparas nocturnas para actualizar tu habitación. date: 04/05 - 04/22 - reward: Free Theme Draw Ticket on Sign-in + reward: Ticket de Dibujo de Tema gratis al iniciar sesión cta: Ver temas waiting: Esperando... websocket-status: diff --git a/packages/i18n/src/locales/es/tamagotchi/stage.yaml b/packages/i18n/src/locales/es/tamagotchi/stage.yaml index 0d2af0f53..38c969866 100644 --- a/packages/i18n/src/locales/es/tamagotchi/stage.yaml +++ b/packages/i18n/src/locales/es/tamagotchi/stage.yaml @@ -25,17 +25,17 @@ docs: 'close': Cerrar 'expand': Expandir 'collapse': Contraer - 'login': Sign in - 'logging-in': Signing in... - 'account': Account - 'logout': Sign out + 'login': Iniciar sesión + 'logging-in': Iniciando sesión... + 'account': Cuenta + 'logout': Cerrar sesión widgets: - close: Close widget + close: Cerrar widget empty: - title: No widget active - description: Widgets will appear here when a tool or plugin spawns one. - loading: Loading widget… - waiting: Waiting for widget data for "{id}"… + title: Ningún widget activo + description: Los Widgets aparecerán aquí cuando una herramienta o plugin produzca uno. + loading: Cargando widget… + waiting: Esperando los datos del widget "{id}"… notice: 'fade-on-hover': title: Desvanecer al pasar el cursor @@ -52,47 +52,47 @@ notice: read-more: Leer más preview-title: '¿Qué es esto?' about: - subtitle: Desktop ver. - current-version: Current Version + subtitle: Versión de escritorio. + current-version: Versión actual common: - cancel: Cancel + cancel: Cancelar links: - title: Links - home: Home - documentation: Documentations + title: Enlaces + home: Inicio + documentation: Documentación github: GitHub update: lane: label: Update lane - description: Choose channel release to follow + description: Elija la versión del canal a seguir placeholder: Choose update lane channels: - auto: Auto - stable: Stable - alpha: Alpha + auto: Automático + stable: Estable + alpha: Alfa beta: Beta nightly: Nightly canary: Canary status: - downloading: Downloading update... + downloading: Descargando actualización... error-prefix: Error - latest: Up to date (v{version}). + latest: Actualizado (v{version}). downloaded: - windows: Update ready to install silently (v{version}). - restart: Update ready to install on restart (v{version}). + windows: Actualización lista para instalar silenciosamente (v{version}). + restart: Actualización lista para instalar al reiniciar (v{version}). actions: - download: Download Update - download-short: Download - confirm-download: Confirm Download - check-for-updates: Check for updates - checking: Checking... - latest-version: Latest version - disabled-dev: Updates disabled in Dev - retry-check: Retry Check - restart-silent: Restart to update silently - restart-install: Restart to install update - confirm-restart: Confirm Restart + download: Descargar actualización + download-short: Descargar + confirm-download: Confirmar descarga + check-for-updates: Buscar actualizaciones + checking: Verificando... + latest-version: Última versión + disabled-dev: Actualizaciones desactivadas en Dev + retry-check: Reintentar verificación + restart-silent: Reiniciar para actualizar silenciosamente + restart-install: Reiniciar e instalar actualización + confirm-restart: Confirmar reinicio dialog: - title: Update Available - description: A new version (v{version}) is available. - no-release-notes-markdown: _No release notes provided._ + title: Actualización disponible + description: Una nueva versión (v{version}) está disponible. + no-release-notes-markdown: _No se proporcionaron notas de lanzamiento._ diff --git a/packages/i18n/src/locales/fr/server/auth.yaml b/packages/i18n/src/locales/fr/server/auth.yaml index d2e8c9af2..5a161a22e 100644 --- a/packages/i18n/src/locales/fr/server/auth.yaml +++ b/packages/i18n/src/locales/fr/server/auth.yaml @@ -24,15 +24,168 @@ electronCallback: closeTabManually: Some browsers do not allow this page to close itself automatically. You can close it manually. signIn: title: Sign in + step: + identify: + heading: Sign in + description: Enter your email to sign in or create an account. + password: + heading: Welcome back + description: Continue as {email}. + create: + heading: Create your account + description: We will create a new account for {email}. + email: + label: Email + placeholder: you{'@'}example.com + password: + label: Password + placeholder: Your password + newPassword: + label: Create password + placeholder: At least 8 characters + confirmPassword: + label: Confirm password + placeholder: Repeat your password + name: + label: Display name + placeholder: Optional, defaults to your email handle + action: + continue: Continue + signIn: Sign in + createAccount: Create account + forgotPassword: Forgot password? + useDifferentEmail: Use a different email + divider: + or: or error: fallback: Sign in failed unknown: An unknown error occurred authFailed: Authentication failed. Please try again. + passwordMismatch: Password and confirmation do not match. + invalidEmail: Please enter a valid email address. footer: prefix: By continuing, you agree to our terms: Terms and: and privacy: Privacy Policy +verifyEmail: + title: + pending: Check your inbox + success: Email verified + failed: Verification failed + message: + pending: We sent a verification link to your email. Open it to finish creating your account — this page will continue automatically once you click the link. + pendingWithAddress: We sent a verification link to {email}. Open it to finish creating your account — this page will continue automatically once you click the link. + success: Your email has been verified and you are signed in. You can close this tab. + failed: We could not verify your email ({error}). Try requesting a new link. + action: + backToSignIn: Back to sign in +forgotPassword: + title: Reset your password + description: Enter the email address associated with your account and we will send you a reset link. + email: + label: Email + placeholder: you{'@'}example.com + action: + send: Send reset link + backToSignIn: Back to sign in + message: + sent: If {email} matches an account, a reset link is on the way. + error: + fallback: We could not send the reset email. +deleteAccount: + title: + success: Account deleted + failed: Could not delete account + message: + success: Your account has been deleted. + action: + closeTab: You can close this tab. +resetPassword: + title: + default: Set a new password + success: Password updated + password: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + reset: Update password + goSignIn: Go to sign in + message: + success: Your password has been updated. Sign in with your new password. + error: + fallback: We could not update your password. + missingToken: Reset link is invalid or has expired. + passwordMismatch: Password and confirmation do not match. +profile: + title: Account profile + description: Manage your avatar, display name, and connected accounts. + section: + profile: Profile + avatar: Avatar + password: Password + linkedAccounts: Connected accounts + field: + email: Email + emailVerified: Email status + createdAt: Joined + label: + verified: Verified + unverified: Unverified + name: + label: Display name + placeholder: How others see you + avatar: + altText: Profile avatar + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + password: + currentLabel: Current password + currentPlaceholder: Enter your current password + newLabel: New password + newPlaceholder: At least 8 characters + confirmLabel: Confirm new password + confirmPlaceholder: Repeat your new password + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + setLinkSent: Check {email} for the link to set your password. + setLinkFailed: We could not send the password setup link. + linkedAccounts: + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + action: + saveProfile: Save changes + changePassword: Change password + sendSetPasswordLink: Email me a link to set my password + signOut: Sign out + message: + loading: Loading your profile... + profileSaved: Profile updated. + passwordChanged: Password changed. Other sessions have been signed out. + error: + loadFailed: We could not load your profile. + saveFailed: We could not save your changes. + changePasswordFailed: We could not change your password. + signOutFailed: We could not sign you out. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. webCallback: title: signIn: Sign in diff --git a/packages/i18n/src/locales/fr/settings.yaml b/packages/i18n/src/locales/fr/settings.yaml index 6bb811da8..3ca0ca49e 100644 --- a/packages/i18n/src/locales/fr/settings.yaml +++ b/packages/i18n/src/locales/fr/settings.yaml @@ -152,6 +152,89 @@ pages: fluxBalance: Solde de Flux viewFluxDetails: Voir les détails signedInAs: Connecté en tant que + profile: + tab: Profile + title: Profile + description: Manage your public display name. + name: + label: Display name + placeholder: How others see you + avatar: + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + action: + save: Save changes + message: + saved: Profile updated. + error: + fallback: We could not save your changes. + connections: + tab: Connected accounts + title: Connected accounts + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linked: '{provider} connected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + security: + tab: Security + title: Security + description: Change your password. Your other devices will be signed out. + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + currentPassword: + label: Current password + placeholder: Enter your current password + newPassword: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + changePassword: Change password + sendSetLink: Email me a link to set my password + message: + changed: Password changed. Other sessions have been signed out. + setLinkSent: Check {email} for the link to set your password. + error: + fallback: We could not change your password. + setLinkFailed: We could not send the password setup link. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. + danger: + tab: Danger Zone + title: Danger Zone + description: Irreversible account actions live here. + deleteAccount: + title: Delete account + description: Permanently delete your account and personal data. + action: Delete account + modal: + title: Delete account? + warning: This cannot be undone. Active subscription will be canceled, Flux balance cleared. + confirmEmail: + label: Type your email to confirm + placeholder: '' + mismatch: Email does not match. + confirm: Send confirmation email + cancel: Cancel + message: + emailSent: Check {email} for the deletion link. + error: + fallback: Could not start deletion. Try again later. card: activate: Activer active: Actif diff --git a/packages/i18n/src/locales/ja/server/auth.yaml b/packages/i18n/src/locales/ja/server/auth.yaml index d2e8c9af2..5a161a22e 100644 --- a/packages/i18n/src/locales/ja/server/auth.yaml +++ b/packages/i18n/src/locales/ja/server/auth.yaml @@ -24,15 +24,168 @@ electronCallback: closeTabManually: Some browsers do not allow this page to close itself automatically. You can close it manually. signIn: title: Sign in + step: + identify: + heading: Sign in + description: Enter your email to sign in or create an account. + password: + heading: Welcome back + description: Continue as {email}. + create: + heading: Create your account + description: We will create a new account for {email}. + email: + label: Email + placeholder: you{'@'}example.com + password: + label: Password + placeholder: Your password + newPassword: + label: Create password + placeholder: At least 8 characters + confirmPassword: + label: Confirm password + placeholder: Repeat your password + name: + label: Display name + placeholder: Optional, defaults to your email handle + action: + continue: Continue + signIn: Sign in + createAccount: Create account + forgotPassword: Forgot password? + useDifferentEmail: Use a different email + divider: + or: or error: fallback: Sign in failed unknown: An unknown error occurred authFailed: Authentication failed. Please try again. + passwordMismatch: Password and confirmation do not match. + invalidEmail: Please enter a valid email address. footer: prefix: By continuing, you agree to our terms: Terms and: and privacy: Privacy Policy +verifyEmail: + title: + pending: Check your inbox + success: Email verified + failed: Verification failed + message: + pending: We sent a verification link to your email. Open it to finish creating your account — this page will continue automatically once you click the link. + pendingWithAddress: We sent a verification link to {email}. Open it to finish creating your account — this page will continue automatically once you click the link. + success: Your email has been verified and you are signed in. You can close this tab. + failed: We could not verify your email ({error}). Try requesting a new link. + action: + backToSignIn: Back to sign in +forgotPassword: + title: Reset your password + description: Enter the email address associated with your account and we will send you a reset link. + email: + label: Email + placeholder: you{'@'}example.com + action: + send: Send reset link + backToSignIn: Back to sign in + message: + sent: If {email} matches an account, a reset link is on the way. + error: + fallback: We could not send the reset email. +deleteAccount: + title: + success: Account deleted + failed: Could not delete account + message: + success: Your account has been deleted. + action: + closeTab: You can close this tab. +resetPassword: + title: + default: Set a new password + success: Password updated + password: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + reset: Update password + goSignIn: Go to sign in + message: + success: Your password has been updated. Sign in with your new password. + error: + fallback: We could not update your password. + missingToken: Reset link is invalid or has expired. + passwordMismatch: Password and confirmation do not match. +profile: + title: Account profile + description: Manage your avatar, display name, and connected accounts. + section: + profile: Profile + avatar: Avatar + password: Password + linkedAccounts: Connected accounts + field: + email: Email + emailVerified: Email status + createdAt: Joined + label: + verified: Verified + unverified: Unverified + name: + label: Display name + placeholder: How others see you + avatar: + altText: Profile avatar + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + password: + currentLabel: Current password + currentPlaceholder: Enter your current password + newLabel: New password + newPlaceholder: At least 8 characters + confirmLabel: Confirm new password + confirmPlaceholder: Repeat your new password + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + setLinkSent: Check {email} for the link to set your password. + setLinkFailed: We could not send the password setup link. + linkedAccounts: + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + action: + saveProfile: Save changes + changePassword: Change password + sendSetPasswordLink: Email me a link to set my password + signOut: Sign out + message: + loading: Loading your profile... + profileSaved: Profile updated. + passwordChanged: Password changed. Other sessions have been signed out. + error: + loadFailed: We could not load your profile. + saveFailed: We could not save your changes. + changePasswordFailed: We could not change your password. + signOutFailed: We could not sign you out. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. webCallback: title: signIn: Sign in diff --git a/packages/i18n/src/locales/ja/settings.yaml b/packages/i18n/src/locales/ja/settings.yaml index 2fbb69703..e00feb377 100644 --- a/packages/i18n/src/locales/ja/settings.yaml +++ b/packages/i18n/src/locales/ja/settings.yaml @@ -152,6 +152,89 @@ pages: fluxBalance: Flux 残高 viewFluxDetails: 詳細を見る signedInAs: サインイン済み + profile: + tab: Profile + title: Profile + description: Manage your public display name. + name: + label: Display name + placeholder: How others see you + avatar: + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + action: + save: Save changes + message: + saved: Profile updated. + error: + fallback: We could not save your changes. + connections: + tab: Connected accounts + title: Connected accounts + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linked: '{provider} connected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + security: + tab: Security + title: Security + description: Change your password. Your other devices will be signed out. + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + currentPassword: + label: Current password + placeholder: Enter your current password + newPassword: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + changePassword: Change password + sendSetLink: Email me a link to set my password + message: + changed: Password changed. Other sessions have been signed out. + setLinkSent: Check {email} for the link to set your password. + error: + fallback: We could not change your password. + setLinkFailed: We could not send the password setup link. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. + danger: + tab: Danger Zone + title: Danger Zone + description: Irreversible account actions live here. + deleteAccount: + title: Delete account + description: Permanently delete your account and personal data. + action: Delete account + modal: + title: Delete account? + warning: This cannot be undone. Active subscription will be canceled, Flux balance cleared. + confirmEmail: + label: Type your email to confirm + placeholder: '' + mismatch: Email does not match. + confirm: Send confirmation email + cancel: Cancel + message: + emailSent: Check {email} for the deletion link. + error: + fallback: Could not start deletion. Try again later. card: activate: 有効化 active: 有効 diff --git a/packages/i18n/src/locales/ko/server/auth.yaml b/packages/i18n/src/locales/ko/server/auth.yaml index fcc3faa3a..e4c19549e 100644 --- a/packages/i18n/src/locales/ko/server/auth.yaml +++ b/packages/i18n/src/locales/ko/server/auth.yaml @@ -24,15 +24,168 @@ electronCallback: closeTabManually: 일부 브라우저들은 이 창을 자동으로 닫는 것을 허용하지 않습니다. 수동으로 닫을 수 있습니다. signIn: title: 가입 + step: + identify: + heading: Sign in + description: Enter your email to sign in or create an account. + password: + heading: Welcome back + description: Continue as {email}. + create: + heading: Create your account + description: We will create a new account for {email}. + email: + label: Email + placeholder: you{'@'}example.com + password: + label: Password + placeholder: Your password + newPassword: + label: Create password + placeholder: At least 8 characters + confirmPassword: + label: Confirm password + placeholder: Repeat your password + name: + label: Display name + placeholder: Optional, defaults to your email handle + action: + continue: Continue + signIn: Sign in + createAccount: Create account + forgotPassword: Forgot password? + useDifferentEmail: Use a different email + divider: + or: or error: fallback: 가입 실패 unknown: 알 수 없는 오류가 발생했습니다 authFailed: 인증에 실패했습니다. 다시 시도해 주세요. + passwordMismatch: Password and confirmation do not match. + invalidEmail: Please enter a valid email address. footer: prefix: 계속하시려면, 저희의 terms: 이용 약관 and: 및 privacy: 정책 +verifyEmail: + title: + pending: Check your inbox + success: Email verified + failed: Verification failed + message: + pending: We sent a verification link to your email. Open it to finish creating your account — this page will continue automatically once you click the link. + pendingWithAddress: We sent a verification link to {email}. Open it to finish creating your account — this page will continue automatically once you click the link. + success: Your email has been verified and you are signed in. You can close this tab. + failed: We could not verify your email ({error}). Try requesting a new link. + action: + backToSignIn: Back to sign in +forgotPassword: + title: Reset your password + description: Enter the email address associated with your account and we will send you a reset link. + email: + label: Email + placeholder: you{'@'}example.com + action: + send: Send reset link + backToSignIn: Back to sign in + message: + sent: If {email} matches an account, a reset link is on the way. + error: + fallback: We could not send the reset email. +deleteAccount: + title: + success: Account deleted + failed: Could not delete account + message: + success: Your account has been deleted. + action: + closeTab: You can close this tab. +resetPassword: + title: + default: Set a new password + success: Password updated + password: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + reset: Update password + goSignIn: Go to sign in + message: + success: Your password has been updated. Sign in with your new password. + error: + fallback: We could not update your password. + missingToken: Reset link is invalid or has expired. + passwordMismatch: Password and confirmation do not match. +profile: + title: Account profile + description: Manage your avatar, display name, and connected accounts. + section: + profile: Profile + avatar: Avatar + password: Password + linkedAccounts: Connected accounts + field: + email: Email + emailVerified: Email status + createdAt: Joined + label: + verified: Verified + unverified: Unverified + name: + label: Display name + placeholder: How others see you + avatar: + altText: Profile avatar + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + password: + currentLabel: Current password + currentPlaceholder: Enter your current password + newLabel: New password + newPlaceholder: At least 8 characters + confirmLabel: Confirm new password + confirmPlaceholder: Repeat your new password + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + setLinkSent: Check {email} for the link to set your password. + setLinkFailed: We could not send the password setup link. + linkedAccounts: + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + action: + saveProfile: Save changes + changePassword: Change password + sendSetPasswordLink: Email me a link to set my password + signOut: Sign out + message: + loading: Loading your profile... + profileSaved: Profile updated. + passwordChanged: Password changed. Other sessions have been signed out. + error: + loadFailed: We could not load your profile. + saveFailed: We could not save your changes. + changePasswordFailed: We could not change your password. + signOutFailed: We could not sign you out. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. webCallback: title: signIn: 가입 diff --git a/packages/i18n/src/locales/ko/settings.yaml b/packages/i18n/src/locales/ko/settings.yaml index d41fe746e..8a48c3ef8 100644 --- a/packages/i18n/src/locales/ko/settings.yaml +++ b/packages/i18n/src/locales/ko/settings.yaml @@ -152,6 +152,89 @@ pages: fluxBalance: Flux Balance viewFluxDetails: View details signedInAs: Signed in as + profile: + tab: Profile + title: Profile + description: Manage your public display name. + name: + label: Display name + placeholder: How others see you + avatar: + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + action: + save: Save changes + message: + saved: Profile updated. + error: + fallback: We could not save your changes. + connections: + tab: Connected accounts + title: Connected accounts + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linked: '{provider} connected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + security: + tab: Security + title: Security + description: Change your password. Your other devices will be signed out. + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + currentPassword: + label: Current password + placeholder: Enter your current password + newPassword: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + changePassword: Change password + sendSetLink: Email me a link to set my password + message: + changed: Password changed. Other sessions have been signed out. + setLinkSent: Check {email} for the link to set your password. + error: + fallback: We could not change your password. + setLinkFailed: We could not send the password setup link. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. + danger: + tab: Danger Zone + title: Danger Zone + description: Irreversible account actions live here. + deleteAccount: + title: Delete account + description: Permanently delete your account and personal data. + action: Delete account + modal: + title: Delete account? + warning: This cannot be undone. Active subscription will be canceled, Flux balance cleared. + confirmEmail: + label: Type your email to confirm + placeholder: '' + mismatch: Email does not match. + confirm: Send confirmation email + cancel: Cancel + message: + emailSent: Check {email} for the deletion link. + error: + fallback: Could not start deletion. Try again later. card: activate: 활성화 active: 활성 diff --git a/packages/i18n/src/locales/ru/server/auth.yaml b/packages/i18n/src/locales/ru/server/auth.yaml index 1f117a0cc..b50734bae 100644 --- a/packages/i18n/src/locales/ru/server/auth.yaml +++ b/packages/i18n/src/locales/ru/server/auth.yaml @@ -24,15 +24,168 @@ electronCallback: closeTabManually: Некоторые браузеры не позволяют закрыть эту страницу автоматически. Вы можете закрыть ее вручную. signIn: title: Войти + step: + identify: + heading: Войти + description: Введите свой адрес электронной почты для входа или создания учетной записи. + password: + heading: С возвращением + description: Продолжить как {email}. + create: + heading: Создайте свой аккаунт + description: Мы создадим новую учетную запись для {email}. + email: + label: Email + placeholder: you{'@'}example.com + password: + label: Пароль + placeholder: Ваш пароль + newPassword: + label: Создать пароль + placeholder: Как минимум 8 символов + confirmPassword: + label: Подтверждение пароля + placeholder: Повторите пароль + name: + label: Отображаемое имя + placeholder: Необязательно, по умолчанию используется ваш адрес электронной почты + action: + continue: Продолжить + signIn: Войти + createAccount: Создать учетную запись + forgotPassword: Забыли пароль? + useDifferentEmail: Использовать другой email + divider: + or: или error: fallback: Войти не удалось unknown: Произошла неизвестная ошибка authFailed: Аутентификация не пройдена. Пожалуйста, попробуйте снова. + passwordMismatch: Пароли не совпадают. + invalidEmail: Пожалуйста, введите действительный email. footer: prefix: Продолжая, вы соглашаетесь с нашими политиками terms: Условия использования and: и privacy: Политика конфиденциальности +verifyEmail: + title: + pending: Проверьте свою почту + success: Почта подтверждена + failed: Проверка не удалась + message: + pending: Мы отправили ссылку для подтверждения на ваш email. Откройте его, чтобы закончить создание учетной записи — эта страница откроется автоматически, как только вы нажмете на ссылку. + pendingWithAddress: Мы отправили ссылку для подтверждения на {email}. Откройте её, чтобы закончить создание учетной записи — эта страница откроется автоматически, как только вы нажмете на ссылку. + success: Ваш адрес электронной почты подтвержден и вы вошли в систему. Вы можете закрыть эту вкладку. + failed: Мы не смогли подтвердить ваш адрес электронной почты ({error}). Попробуйте запросить новую ссылку. + action: + backToSignIn: Вернуться ко входу +forgotPassword: + title: Сбросить ваш пароль + description: Введите адрес электронной почты, связанный с вашей учетной записью, и мы вышлем вам ссылку для сброса. + email: + label: Email + placeholder: you{'@'}example.com + action: + send: Отправить ссылку для сброса + backToSignIn: Вернуться ко входу + message: + sent: Если {email} совпадает с учетной записью, ссылка для сброса уже отправлена. + error: + fallback: Не удалось отправить письмо для сброса. +deleteAccount: + title: + success: Учётная запись удалена + failed: Не удалось удалить аккаунт + message: + success: Ваш аккаунт был удалён. + action: + closeTab: Вкладку можно закрыть. +resetPassword: + title: + default: Установить новый пароль + success: Пароль обновлён + password: + label: Новый пароль + placeholder: Как минимум 8 символов + confirmPassword: + label: Подтвердить новый пароль + placeholder: Повторите новый пароль + action: + reset: Изменить пароль + goSignIn: Перейти к регистрации + message: + success: Ваш пароль был обновлен. Войдите с новым паролем. + error: + fallback: Мы не смогли изменить ваш пароль. + missingToken: Ссылка для сброса недействительна или устарела. + passwordMismatch: Пароли не совпадают. +profile: + title: Профиль аккаунта + description: Управление аватаром, отображаемым именем и подключенными аккаунтами. + section: + profile: Профиль + avatar: Аватар + password: Пароль + linkedAccounts: Подключенные аккаунты + field: + email: Email + emailVerified: Статус email + createdAt: Присоединился + label: + verified: Подтверждено + unverified: Не подтверждено + name: + label: Отображаемое имя + placeholder: Как видят вас другие + avatar: + altText: Аватар профиля + gravatarNotice: Аватар из Gravatar. + gravatarLink: Управление на gravatar.com + password: + currentLabel: Текущий пароль + currentPlaceholder: Введите ваш текущий пароль + newLabel: Новый пароль + newPlaceholder: Как минимум 8 символов + confirmLabel: Подтвердить новый пароль + confirmPlaceholder: Повторите новый пароль + setDescription: Вы вошли через социального провайдера, так что текущего пароля пока нет. Мы отправим по электронной почте ссылку, чтобы установить его. + setLinkSent: Проверьте {email} на наличие ссылки для установки пароля. + setLinkFailed: Не удалось отправить ссылку для установки пароля. + linkedAccounts: + description: Войдите в AIRI через этих поставщиков. Отмените связь, чтобы отозвать доступ, затем установите связь снова, чтобы переключиться на другую учетную запись. + status: + linked: Связанно + notLinked: Не привязано + linkedSince: Связанно в {date} + action: + link: Связать + unlink: Отвязать + message: + loading: Загрузка подключенных аккаунтов... + unlinked: '{provider} отключен.' + linkStarted: Перенаправление на {provider}… + error: + listFailed: Не удалось загрузить подключенные учетные записи. + unlinkFailed: Не удалось отвязать эту учетную запись. + linkFailed: Не удалось запустить поток ссылок. + lastAccount: Это единственный способ входа в систему. Установите пароль перед отсоединением. + action: + saveProfile: Сохранить изменения + changePassword: Изменить пароль + sendSetPasswordLink: Прислать мне ссылку для установки пароля + signOut: Выйти + message: + loading: Загрузка вашего профиля... + profileSaved: Профиль обновлен. + passwordChanged: Пароль изменен. Другие сессии были отключены. + error: + loadFailed: Не удалось загрузить ваш профиль. + saveFailed: Мы не смогли сохранить ваши изменения. + changePasswordFailed: Мы не смогли изменить ваш пароль. + signOutFailed: Мы не смогли выйти. + passwordMismatch: Пароли не совпадают. + passwordSameAsCurrent: Новый пароль должен отличаться от текущего. webCallback: title: signIn: Войти diff --git a/packages/i18n/src/locales/ru/settings.yaml b/packages/i18n/src/locales/ru/settings.yaml index 197b14316..01d1be6a6 100644 --- a/packages/i18n/src/locales/ru/settings.yaml +++ b/packages/i18n/src/locales/ru/settings.yaml @@ -152,6 +152,89 @@ pages: fluxBalance: Баланс Flux viewFluxDetails: Подробнее signedInAs: Вы вошли как + profile: + tab: Профиль + title: Профиль + description: Управление вашим публичным именем. + name: + label: Отображаемое имя + placeholder: Как видят вас другие + avatar: + gravatarNotice: Аватар из Gravatar. + gravatarLink: Управление на gravatar.com + action: + save: Сохранить изменения + message: + saved: Профиль обновлен. + error: + fallback: Мы не смогли сохранить ваши изменения. + connections: + tab: Подключенные аккаунты + title: Подключенные аккаунты + description: Войдите в AIRI через этих поставщиков. Отмените связь, чтобы отозвать доступ, затем установите связь снова, чтобы переключиться на другую учетную запись. + status: + linked: Связанно + notLinked: Не привязано + linkedSince: Связанно в {date} + action: + link: Связать + unlink: Отвязать + message: + loading: Загрузка подключенных аккаунтов... + unlinked: '{provider} отключен.' + linked: '{provider} подключен.' + linkStarted: Перенаправление на {provider}… + error: + listFailed: Не удалось загрузить подключенные учетные записи. + unlinkFailed: Не удалось отвязать эту учетную запись. + linkFailed: Не удалось запустить поток ссылок. + lastAccount: Это единственный способ входа в систему. Установите пароль перед отсоединением. + security: + tab: Безопасность + title: Безопасность + description: Измените пароль. Остальные устройства будут отключены. + setDescription: Вы вошли через социального провайдера, так что текущего пароля пока нет. Мы отправим по электронной почте ссылку, чтобы установить его. + currentPassword: + label: Текущий пароль + placeholder: Введите ваш текущий пароль + newPassword: + label: Новый пароль + placeholder: Как минимум 8 символов + confirmPassword: + label: Подтвердить новый пароль + placeholder: Повторите новый пароль + action: + changePassword: Изменить пароль + sendSetLink: Прислать мне ссылку для установки пароля + message: + changed: Пароль изменен. Другие сессии были отключены. + setLinkSent: Проверьте {email} на наличие ссылки для установки пароля. + error: + fallback: Мы не смогли изменить ваш пароль. + setLinkFailed: Не удалось отправить ссылку для установки пароля. + passwordMismatch: Пароли не совпадают. + passwordSameAsCurrent: Новый пароль должен отличаться от текущего. + danger: + tab: Опасная зона + title: Опасная зона + description: Необратимые действия учётных записей здесь. + deleteAccount: + title: Удалить аккаунт + description: Окончательно удалить учетную запись, сеансы и личные данные. + action: Удалить аккаунт + modal: + title: Удалить аккаунт? + warning: Это не может быть отменено. Активная подписка будет отменена, Flux баланс сброшен. + confirmEmail: + label: Введите ваш адрес электронной почты для подтверждения + placeholder: '' + mismatch: Адрес электронной почты не совпадает. + confirm: Отправить письмо с подтверждением + cancel: Отмена + message: + emailSent: Проверьте {email} на наличие ссылки на удаление. + error: + fallback: Не удалось начать удаление. Повторите попытку позже. card: activate: Активировать active: Активно @@ -221,7 +304,7 @@ pages: scenario: 'Ошибка: требуется сценарий.' systemprompt: 'Ошибка: укажите системный промпт.' posthistoryinstructions: 'Ошибка: требуется post-history промпт.' - invalid_artistry_json: 'Error: Artistry provider options contains invalid JSON.' + invalid_artistry_json: 'Ошибка: Параметры провайдера Artistry содержат недопустимые JSON.' modules: Модули name_asc: Имя (А-Я) name_desc: Имя (Я-А) @@ -358,64 +441,64 @@ pages: label: Разминка artistry: title: Artistry - description: Image generation, scene background and drawing. + description: Генерация изображения, фон сцены и рисование. page: - title: Artistry Provider Configuration - description: Select the active backend provider for image generation. Characters can override this in their Card settings. + title: Конфигурация поставщика Artistry + description: Выберите активный бэкэнд провайдер для создания изображений. Персонажи могут переопределить это в настройках карты. providers: none: - name: None - description: Bypass and disable the image generation module globally. + name: Отсутствует + description: Обход и отключение модуля генерации изображений глобально. comfyui: - name: ComfyUI (Local) - description: Use a local ComfyUI instance via WSL for image generation. + name: ComfyUI (локальный) + description: Используйте локальный экземпляр ComfyUI через WSL для генерации изображений. replicate: - name: Replicate.ai (Cloud) - description: Use cloud-based models via the Replicate API. + name: Replicate.ai (Облачный) + description: Использовать облачные модели через Replicate API. nanobanana: - name: Nano Banana (Preview) - description: Use Google AI Studio for image preview and reactions. + name: Nano Banana (Предпросмотр) + description: Используйте Google AI Studio для предварительного просмотра изображений и реакций. card: - description: Configure how AIRI generates images and visual content. - comfyui_empty: No ComfyUI workflows configured. Go to Settings → Providers → ComfyUI to upload a workflow template. - exposed_fields: '{count} exposed fields' - open_on_replicate: Open on Replicate + description: Настройте то, как AIRI генерирует изображения и визуальный контент. + comfyui_empty: Не настроены процессы ComfyUI. Перейдите в Настройки → Поставщики → ComfyUI для загрузки шаблона рабочего процесса. + exposed_fields: '{count} открытых полей' + open_on_replicate: Открыть на Replicate instruction_sync: - title: ComfyUI Instruction Sync - description: A specialized prompt is ready for your {workflowName} workflow. Applying this will overwrite current widget instructions so the AI knows how to use this specific template. - apply: Apply Recommended Prompt - keep: Keep Existing - provider: Artistry Provider + title: Синхронизация инструкций ComfyUI + description: Специализированная подсказка готова для вашего рабочего процесса {workflowName}. Применение этого перезапишет инструкции виджета так, чтоб ИИ знал, как использовать этот конкретный шаблон. + apply: Применить рекомендованный промпт + keep: Сохранить существующий + provider: Поставщик Artistry spawn_mode: - label: Manifestation Mode (Spawn Mode) - description: Choose how images are delivered to the interface. + label: Режим манифеста (Spawn Mode) + description: Выберите способ доставки изображений в интерфейс. options: - bg: Background Environment - inline: Inline Chat - widget: Overlay Widget - bg_widget: Dual (Background + Widget) + bg: Фоновое окружение + inline: Встроенный чат + widget: Виджет оверлея + bg_widget: Двойной (Background + Widget) autonomous: - title: Cinematic Autonomy (Autonomous Artist) - description: When enabled, the "Producer" runs in parallel to the character to decide if a visual is needed. This prevents the character from forgetting to manifest scenes. - threshold: Manifestation Threshold - threshold_description: Use {min} for aggressive scene creation or {max} to require stronger evidence before generating. - threshold_min: Always Generate (0%) - threshold_max: Strict (100%) + title: Кинематическая Автономия (Autonomous Artist) + description: Если включено, то "Продюсер" будет выполняться параллельно с персонажем, чтобы решить, требуется ли визуальное изображение. Это мешает персонажу забывать о сцене манифеста. + threshold: Порог манифестации + threshold_description: Используйте {min} для создания агрессивных сцен или {max}, чтобы получить более сильные доказательства перед генерацией. + threshold_min: Всегда генерировать (0%) + threshold_max: Строгий (100%) model: - label: Artistry Model (Optional Override) - description: Model identifier if needed by provider + label: Модель Artistry (опционально) + description: Идентификатор модели при необходимости поставщика prompt-prefix: - label: Artistry Prompt Default Prefix - description: Pre-pended to every prompt sent to the image generator. + label: Стандартный префикс Artistry по умолчанию + description: Приготовиться к каждому запросу, посланному генератору изображений. options: - label: Artistry Provider Options (JSON) + label: Опции поставщика Artistry (JSON) widget-instructions: - label: Widget System Prompt - description: Custom instructions for the AI on how to use the generation capabilities. + label: Системный запрос виджета + description: Инструкции для ИИ по использованию возможностей генерации. categories: - essential: Essential - messaging: Messaging - gaming: Gaming + essential: Основные + messaging: Сообщения + gaming: Игры artistry: Artistry consciousness: description: Личность, модель сознания и др. @@ -722,35 +805,35 @@ pages: voice: title: Настройки голоса labels: - recommended: Recommended + recommended: Рекомендуется filters: - pricing: Pricing - deployment: Deployment - all: All - free: Free - paid: Paid - internal: Internal - local: Local - cloud: Cloud + pricing: Цены + deployment: Развертывание + all: Все + free: Бесплатно + paid: Платно + internal: Встроенное + local: Локальное + cloud: Облачное categories: chat: - title: Chat - description: Text generation model providers. e.g. OpenRouter, OpenAI, Ollama. + title: Чат + description: Провайдеры текстовых моделей, напр. OpenRouter, OpenAI, Ollama. speech: - title: Speech - description: Speech (text-to-speech) model providers. e.g. ElevenLabs, Azure Speech. + title: Речь + description: Провайдеры речи (text-to-speech), напр. ElevenLabs, Azure Speech. transcription: - title: Transcription + title: Транскрипция description: >- - Transcription (speech-to-text) model providers. e.g. Whisper.cpp, OpenAI, Azure Speech + Провайдеры транскрипции (speech-to-text): Whisper.cpp, OpenAI, Azure Speech artistry: - title: Artistry - description: Image generation and design model providers. e.g. ComfyUI, Replicate. + title: Artistry + description: Поставщики моделей генерации и создания изображений, например ComfyUI, Replicate. items: comfyui: - description: Local image generation runner. + description: Генерирование локального изображения. replicate: - description: Cloud-based model inference service. + description: Облачный сервис моделей nanobanana: description: Google AI Studio Image Preview. helpinfo: @@ -839,92 +922,92 @@ pages: description: Вывод речи отсутствует. comfyui: settings: - title: ComfyUI (Local) - heading: ComfyUI Native API - description: Connect to your local ComfyUI and bring your own workflows. + title: ComfyUI (локальный) + heading: ComfyUI нативный API + description: Подключитесь к локальному ComfyUI и приносите свои собственные рабочие процессы. info: what_you_need: - label: What You Need - value: ComfyUI running locally or on your network. + label: Что вам нужно + value: ComfyUI работает локально или в вашей сети. how_to_export: - label: How To Export - value: Enable Dev Mode → "Save (API Format)". + label: Как Экспортировать + value: Включить режим Разработчика → "Сохранить (формат API)". scope_boundary: - label: Scope Boundary - value: Model downloads & node installs are your job. + label: Сфера охвата + value: Загрузка моделей и установка узлов ваша работа. connection: - title: Connection - connected: Connected - failed: Connection failed - error_prefix: Error - test: Test - testing: Testing... - unknown_error: Unknown connection error - unknown_gpu: Unknown GPU + title: Подключение + connected: Подключен + failed: Подключиться не удалось + error_prefix: Ошибка + test: Проверка + testing: Тестирование... + unknown_error: Неизвестная ошибка соединения + unknown_gpu: Неизвестный GPU server_url: - label: Server URL - description: The address where ComfyUI is running + label: URL сервера + description: Адрес, в котором запущен ComfyUI placeholder: http://localhost:8188 cors: - title: CORS Block Detected - description: ComfyUI blocks requests from other applications by default. To allow AIRI to connect, you must start ComfyUI with the `--enable-cors-header "*"` flag. + title: Обнаружен блок CORS + description: ComfyUI по умолчанию блокирует запросы от других приложений. Чтобы разрешить подключение AIRI, вы должны запустить ComfyUI с флагом `--enable-cors-header "*"`. command: python main.py --enable-cors-header "*" workflows: - title: Workflow Templates - upload: Upload Workflow - cancel_upload: Cancel - empty: No workflows uploaded yet. Click "Upload Workflow" to import a workflow_api.json from ComfyUI. - exposed_parameters: Exposed Parameters - summary: '{nodes} nodes · {fields} exposed fields' - remove: Remove - config_snippet: Artistry Config Snippet - copy_json: Copy JSON - paste_hint: Paste this into your AIRI Card artistry config to override these nodes. + title: Шаблоны рабочего процесса + upload: Загрузить рабочий процесс + cancel_upload: Отменить + empty: Пока нет загруженных рабочих процессов. Нажмите "Загрузить рабочий процесс", чтобы импортировать workflow_api.json из ComfyUI. + exposed_parameters: Открытые параметры + summary: '{nodes} узлы · {fields} открытые поля' + remove: Убрать + config_snippet: Фрагмент конфигурации Artistry + copy_json: Копировать JSON + paste_hint: Вставьте это в конфигурацию AIRI карт для переопределения этих узлов. upload: - prompt: Drop or select a workflow_api.json file - invalid_json: Invalid JSON + prompt: Перетащите или выберите файл workflow_api.json + invalid_json: Неверный JSON workflow_name: - label: Workflow Name - description: Give this workflow a recognizable name - placeholder: e.g. Anime Text2Img - select_fields: 'Select fields to expose to the AI agent:' - fields_exposed: '{count} field(s) exposed' - save: Save Workflow + label: Название рабочего процесса + description: Дайте этому процессу узнаваемое название + placeholder: напр. Anime Text2Img + select_fields: 'Выберите поля, чтобы открыть агенту ИИ:' + fields_exposed: '{count} Файл(ов) выбрано' + save: Сохранить рабочий процесс replicate: settings: title: Replicate.ai - heading: Replicate.ai Configuration - description: Configure your cloud image generation settings. + heading: Конфигурация Replicate.ai + description: Настройте параметры генерации изображений в облаке. api_key: - label: API Key - description: Your Replicate API token (starts with r8_) + label: API ключ + description: Ваш Replicate API токен (начинается с r8_) placeholder: r8_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX default_model: - label: Default Model - description: Fallback owner/model string to use if the character card doesn't specify one + label: Модель по умолчанию + description: Резервная строка владельца/модели используется, если карта персонажа не указана placeholder: black-forest-labs/flux-schnell aspect_ratio: - label: Aspect Ratio - description: Default image aspect ratio (e.g. 16:9, 1:1, 9:16) + label: Соотношение сторон + description: Соотношение сторон по умолчанию (например, 16:9, 1:1, 9:16) placeholder: '16:9' inference_steps: - label: Inference Steps - description: Number of steps for the diffusion process (lower is faster, higher is better quality) + label: Шаги осмотра + description: Количество шагов для процесса распространения (ниже - быстрее, выше - качество) nanobanana: settings: title: Nano Banana heading: Nano Banana (Google AI Studio) - description: Configure Google Gemini's native image generation capabilities. + description: Настроить возможности генерации изображений Google Gemini. api_key: - label: API Key - description: Your Google AI Studio API Key + label: API ключ + description: Ваш API ключ Google AI Studio placeholder: AIpk... preferred_model: - label: Preferred Model - description: The specific Gemini image preview model to use + label: Предпочитаемая модель + description: Конкретная модель Gemini image preview для использования default_resolution: - label: Default Resolution - description: The target resolution for generated images + label: Разрешение по умолчанию + description: Целевое разрешение для сгенерированных изображений model_options: nano_banana_2: Nano Banana 2 (Gemini 3.1 Flash Image) nano_banana_pro: Nano Banana Pro (Gemini 3 Pro Image) @@ -1322,27 +1405,27 @@ pages: credits: buy: Купить scene: - title: Scenes - description: Customize the virtual environment for your characters. - beta_label: Scenes System - beta_description: Each character card specifies its own preferred background from this gallery. Setting it here will set it as the default for the currently active character. + title: Сцены + description: Настройте виртуальную среду для персонажей. + beta_label: Система сцен + beta_description: Каждая карта персонажа указывает свой собственный фон из этой галереи. Установка её здесь будет означать значение по умолчанию для текущего активного персонажа. background_image: - title: Active Character Background - no_background: No background active for this character. Upload a square or landscape image for best results. - upload: Upload to Gallery - change: Change Background - clear: Clear Default + title: Активный фон персонажа + no_background: Для этого персонажа не активен фон. Загрузите квадрат или альбомное изображение, чтобы получить наилучший результат. + upload: Загрузить в галерею + change: Изменить фон + clear: Сбросить по умолчанию gallery: - title: Scene Gallery - empty: No images in gallery yet. Upload one above! - set_as_global: Set as Character Default - delete: Delete from Gallery - global_badge: Character Default - active_badge: Current Scene - delete_confirm: Are you sure you want to delete this background? + title: Галерея сцен + empty: В галерее пока нет изображений. Загрузите одно выше! + set_as_global: Установить как персонаж по умолчанию + delete: Удалить из галереи + global_badge: Персонаж по умолчанию + active_badge: Текущая сцена + delete_confirm: Вы уверены, что хотите удалить этот фон? tip: - label: Tip! - description: Using a square image will leverage cover cropping in portrait mode, focusing on the center of the scene. + label: Совет! + description: Использование квадратного изображения позволит использовать обрезку обложки в портретном режиме, фокусируясь на центре сцены. sections: section: general: diff --git a/packages/i18n/src/locales/ru/tamagotchi/stage.yaml b/packages/i18n/src/locales/ru/tamagotchi/stage.yaml index 95d572b4a..6de68765b 100644 --- a/packages/i18n/src/locales/ru/tamagotchi/stage.yaml +++ b/packages/i18n/src/locales/ru/tamagotchi/stage.yaml @@ -30,12 +30,12 @@ docs: 'account': Аккаунт 'logout': Выйти widgets: - close: Close widget + close: Закрыть виджет empty: - title: No widget active - description: Widgets will appear here when a tool or plugin spawns one. - loading: Loading widget… - waiting: Waiting for widget data for "{id}"… + title: Нет активных виджетов + description: Виджеты появятся здесь, когда появится инструмент или плагин. + loading: Загрузка виджета… + waiting: Ожидание данных виджета "{id}"… notice: 'fade-on-hover': title: Исчезать при наведении diff --git a/packages/i18n/src/locales/vi/server/auth.yaml b/packages/i18n/src/locales/vi/server/auth.yaml index bb55e4572..da1a48887 100644 --- a/packages/i18n/src/locales/vi/server/auth.yaml +++ b/packages/i18n/src/locales/vi/server/auth.yaml @@ -24,15 +24,168 @@ electronCallback: closeTabManually: Some browsers do not allow this page to close itself automatically. You can close it manually. signIn: title: Sign in + step: + identify: + heading: Sign in + description: Enter your email to sign in or create an account. + password: + heading: Welcome back + description: Continue as {email}. + create: + heading: Create your account + description: We will create a new account for {email}. + email: + label: Email + placeholder: you{'@'}example.com + password: + label: Password + placeholder: Your password + newPassword: + label: Create password + placeholder: At least 8 characters + confirmPassword: + label: Confirm password + placeholder: Repeat your password + name: + label: Display name + placeholder: Optional, defaults to your email handle + action: + continue: Continue + signIn: Sign in + createAccount: Create account + forgotPassword: Forgot password? + useDifferentEmail: Use a different email + divider: + or: or error: fallback: Sign in failed unknown: An unknown error occurred authFailed: Authentication failed. Please try again. + passwordMismatch: Password and confirmation do not match. + invalidEmail: Please enter a valid email address. footer: prefix: By continuing, you agree to our terms: Terms and: and privacy: Privacy Policy +verifyEmail: + title: + pending: Check your inbox + success: Email verified + failed: Verification failed + message: + pending: We sent a verification link to your email. Open it to finish creating your account — this page will continue automatically once you click the link. + pendingWithAddress: We sent a verification link to {email}. Open it to finish creating your account — this page will continue automatically once you click the link. + success: Your email has been verified and you are signed in. You can close this tab. + failed: We could not verify your email ({error}). Try requesting a new link. + action: + backToSignIn: Back to sign in +forgotPassword: + title: Reset your password + description: Enter the email address associated with your account and we will send you a reset link. + email: + label: Email + placeholder: you{'@'}example.com + action: + send: Send reset link + backToSignIn: Back to sign in + message: + sent: If {email} matches an account, a reset link is on the way. + error: + fallback: We could not send the reset email. +deleteAccount: + title: + success: Account deleted + failed: Could not delete account + message: + success: Your account has been deleted. + action: + closeTab: You can close this tab. +resetPassword: + title: + default: Set a new password + success: Password updated + password: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + reset: Update password + goSignIn: Go to sign in + message: + success: Your password has been updated. Sign in with your new password. + error: + fallback: We could not update your password. + missingToken: Reset link is invalid or has expired. + passwordMismatch: Password and confirmation do not match. +profile: + title: Account profile + description: Manage your avatar, display name, and connected accounts. + section: + profile: Profile + avatar: Avatar + password: Password + linkedAccounts: Connected accounts + field: + email: Email + emailVerified: Email status + createdAt: Joined + label: + verified: Verified + unverified: Unverified + name: + label: Display name + placeholder: How others see you + avatar: + altText: Profile avatar + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + password: + currentLabel: Current password + currentPlaceholder: Enter your current password + newLabel: New password + newPlaceholder: At least 8 characters + confirmLabel: Confirm new password + confirmPlaceholder: Repeat your new password + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + setLinkSent: Check {email} for the link to set your password. + setLinkFailed: We could not send the password setup link. + linkedAccounts: + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + action: + saveProfile: Save changes + changePassword: Change password + sendSetPasswordLink: Email me a link to set my password + signOut: Sign out + message: + loading: Loading your profile... + profileSaved: Profile updated. + passwordChanged: Password changed. Other sessions have been signed out. + error: + loadFailed: We could not load your profile. + saveFailed: We could not save your changes. + changePasswordFailed: We could not change your password. + signOutFailed: We could not sign you out. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. webCallback: title: signIn: Sign in diff --git a/packages/i18n/src/locales/vi/settings.yaml b/packages/i18n/src/locales/vi/settings.yaml index a021a0119..c4c131617 100644 --- a/packages/i18n/src/locales/vi/settings.yaml +++ b/packages/i18n/src/locales/vi/settings.yaml @@ -152,6 +152,89 @@ pages: fluxBalance: Flux Balance viewFluxDetails: View details signedInAs: Signed in as + profile: + tab: Profile + title: Profile + description: Manage your public display name. + name: + label: Display name + placeholder: How others see you + avatar: + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + action: + save: Save changes + message: + saved: Profile updated. + error: + fallback: We could not save your changes. + connections: + tab: Connected accounts + title: Connected accounts + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linked: '{provider} connected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + security: + tab: Security + title: Security + description: Change your password. Your other devices will be signed out. + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + currentPassword: + label: Current password + placeholder: Enter your current password + newPassword: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + changePassword: Change password + sendSetLink: Email me a link to set my password + message: + changed: Password changed. Other sessions have been signed out. + setLinkSent: Check {email} for the link to set your password. + error: + fallback: We could not change your password. + setLinkFailed: We could not send the password setup link. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. + danger: + tab: Danger Zone + title: Danger Zone + description: Irreversible account actions live here. + deleteAccount: + title: Delete account + description: Permanently delete your account and personal data. + action: Delete account + modal: + title: Delete account? + warning: This cannot be undone. Active subscription will be canceled, Flux balance cleared. + confirmEmail: + label: Type your email to confirm + placeholder: '' + mismatch: Email does not match. + confirm: Send confirmation email + cancel: Cancel + message: + emailSent: Check {email} for the deletion link. + error: + fallback: Could not start deletion. Try again later. card: activate: Kích hoạt active: Đang hoạt động diff --git a/packages/i18n/src/locales/zh-Hans/server/auth.yaml b/packages/i18n/src/locales/zh-Hans/server/auth.yaml index 4515f8ed8..c283a9306 100644 --- a/packages/i18n/src/locales/zh-Hans/server/auth.yaml +++ b/packages/i18n/src/locales/zh-Hans/server/auth.yaml @@ -16,7 +16,7 @@ electronCallback: automaticHandoffFailed: Automatic handoff did not finish in this browser session. label: signIn: 登录 - safeToClose: It is safe to close this tab now. + safeToClose: 现在可以安全地关闭此标签页了。 whyStillHere: 这个窗口还在吗? action: openAiriManually: 手动打开AIRI @@ -27,63 +27,107 @@ signIn: step: identify: heading: 登录 - description: 输入邮箱以登录或创建账号。 + description: Enter your email to sign in or create an account. password: heading: 欢迎回来 - description: 以 {email} 继续。 + description: 以 {email} 继续登录 create: - heading: 创建账号 - description: 我们会为 {email} 创建一个新账号。 + heading: 创建账户 + description: We will create a new account for {email}. email: label: 邮箱 placeholder: you{'@'}example.com password: label: 密码 - placeholder: 你的密码 + placeholder: 您的密码 newPassword: - label: 设置密码 - placeholder: 至少 8 位 + label: 创建密码 + placeholder: 至少 8 个字符 confirmPassword: label: 确认密码 - placeholder: 再次输入密码 + placeholder: 重新输入密码 name: - label: 显示名 - placeholder: 可选,默认使用邮箱前缀 + label: 昵称 + placeholder: Optional, defaults to your email handle action: continue: 继续 signIn: 登录 - createAccount: 创建账号 + createAccount: 创建账户 forgotPassword: 忘记密码? - useDifferentEmail: 换个邮箱 + useDifferentEmail: 使用其他邮箱 divider: or: 或 error: fallback: 登录失败 unknown: 发生了未知错误 authFailed: Authentication failed. Please try again. - passwordMismatch: 两次输入的密码不一致。 - invalidEmail: 请输入有效的邮箱地址。 + passwordMismatch: Password and confirmation do not match. + invalidEmail: Please enter a valid email address. footer: prefix: 继续之前,你需要同意我们的 terms: 服务条款 and: 和 privacy: 隐私政策 +verifyEmail: + title: + pending: Check your inbox + success: Email verified + failed: Verification failed + message: + pending: We sent a verification link to your email. Open it to finish creating your account — this page will continue automatically once you click the link. + pendingWithAddress: We sent a verification link to {email}. Open it to finish creating your account — this page will continue automatically once you click the link. + success: Your email has been verified and you are signed in. You can close this tab. + failed: We could not verify your email ({error}). Try requesting a new link. + action: + backToSignIn: Back to sign in +forgotPassword: + title: Reset your password + description: Enter the email address associated with your account and we will send you a reset link. + email: + label: Email + placeholder: you{'@'}example.com + action: + send: 发送重置链接 + backToSignIn: 返回登录 + message: + sent: If {email} matches an account, a reset link is on the way. + error: + fallback: We could not send the reset email. deleteAccount: title: - success: 账号已删除 - failed: 无法删除账号 + success: 帐户已删除 + failed: Could not delete account message: - success: 你的账号已被删除。 + success: Your account has been deleted. action: - closeTab: 你可以关闭此页面。 + closeTab: You can close this tab. +resetPassword: + title: + default: Set a new password + success: Password updated + password: + label: New password + placeholder: 至少 8 个字符 + confirmPassword: + label: 确认新密码 + placeholder: 重新输入新密码 + action: + reset: Update password + goSignIn: Go to sign in + message: + success: Your password has been updated. Sign in with your new password. + error: + fallback: We could not update your password. + missingToken: Reset link is invalid or has expired. + passwordMismatch: 密码和确认密码不匹配。 profile: - title: 账号资料 - description: 管理你的头像、显示名、密码和已绑定的社交账号。 + title: Account profile + description: 管理您的头像、显示名称和关联的帐户。 section: profile: 个人资料 avatar: 头像 password: 密码 - linkedAccounts: 已绑定的社交账号 + linkedAccounts: 已关联的账户 field: email: 邮箱 emailVerified: 邮箱状态 @@ -92,56 +136,56 @@ profile: verified: 已验证 unverified: 未验证 name: - label: 显示名 - placeholder: 别人看到的名字 + label: 昵称 + placeholder: 别人如何看到你 avatar: - altText: 用户头像 - gravatarNotice: 头像来自 Gravatar。 - gravatarLink: 在 gravatar.com 管理 + altText: 头像 + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com password: currentLabel: 当前密码 - currentPlaceholder: 输入当前密码 + currentPlaceholder: 输入您当前的密码 newLabel: 新密码 - newPlaceholder: 至少 8 位 + newPlaceholder: 至少 8 个字符 confirmLabel: 确认新密码 - confirmPlaceholder: 再次输入新密码 - setDescription: 你通过社交账号登录,还没有设置过密码。我们会向你的邮箱发送一个安全链接,用来设置密码。 - setLinkSent: 已向 {email} 发送了设置密码的链接,请前往查收。 - setLinkFailed: 无法发送设置密码链接。 + confirmPlaceholder: 重新输入新密码 + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + setLinkSent: Check {email} for the link to set your password. + setLinkFailed: We could not send the password setup link. linkedAccounts: - description: 通过这些渠道登录 AIRI。解绑可以撤销访问,再次绑定即可切换到其他账号。 + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. status: - linked: 已绑定 - notLinked: 未绑定 - linkedSince: 绑定于 {date} + linked: 已关联 + notLinked: 未关联 + linkedSince: 关联于 {date} action: - link: 绑定 - unlink: 解绑 + link: 关联 + unlink: 取消关联 message: - loading: 正在加载已绑定的社交账号... - unlinked: 已解除与 {provider} 的绑定。 - linkStarted: 正在跳转到 {provider}… + loading: 正在加载连接的帐户…… + unlinked: '{provider} disconnected.' + linkStarted: Redirecting to {provider}… error: - listFailed: 无法加载已绑定的社交账号。 - unlinkFailed: 无法解除绑定。 - linkFailed: 无法开始绑定流程。 - lastAccount: 这是你唯一的登录方式。请先设置密码再尝试解绑。 + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: 这是您唯一的登录方式。请先设置密码才能取消链接。 action: - saveProfile: 保存修改 + saveProfile: 保存更改 changePassword: 修改密码 - sendSetPasswordLink: 给我发送设置密码的邮件 + sendSetPasswordLink: 给我发一封邮件以设置密码 signOut: 退出登录 message: - loading: 正在加载你的资料... - profileSaved: 资料已更新。 - passwordChanged: 密码已修改。其他设备的登录会话已被注销。 + loading: 正在加载您的个人资料…… + profileSaved: 个人资料已更新 + passwordChanged: Password changed. Other sessions have been signed out. error: - loadFailed: 无法加载你的资料。 - saveFailed: 无法保存修改。 - changePasswordFailed: 无法修改密码。 - signOutFailed: 退出登录失败。 - passwordMismatch: 两次输入的新密码不一致。 - passwordSameAsCurrent: 新密码不能和当前密码相同。 + loadFailed: We could not load your profile. + saveFailed: We could not save your changes. + changePasswordFailed: We could not change your password. + signOutFailed: 我们无法将您登出。 + passwordMismatch: 新密码和确认密码不匹配。 + passwordSameAsCurrent: 新密码必须与当前密码不同。 webCallback: title: signIn: 登录 diff --git a/packages/i18n/src/locales/zh-Hans/settings.yaml b/packages/i18n/src/locales/zh-Hans/settings.yaml index 62fcf5fdb..1f9ea4542 100644 --- a/packages/i18n/src/locales/zh-Hans/settings.yaml +++ b/packages/i18n/src/locales/zh-Hans/settings.yaml @@ -147,94 +147,94 @@ pages: title: 账号 description: 查看您的个人资料并管理您的帐户 notLoggedIn: 登录以查看您的帐户并访问所有功能 - login: 登录 - logout: 退出登录 + login: Sign in + logout: Sign out fluxBalance: 剩余通量 viewFluxDetails: 查看详情 - signedInAs: 已登录为 + signedInAs: 登录 为 profile: - tab: 个人资料 - title: 个人资料 - description: 管理你公开显示的名字。 + tab: Profile + title: Profile + description: Manage your public display name. name: - label: 显示名 - placeholder: 别人看到的名字 + label: Display name + placeholder: How others see you avatar: - gravatarNotice: 头像来自 Gravatar。 - gravatarLink: 在 gravatar.com 管理 + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com action: - save: 保存修改 + save: Save changes message: - saved: 资料已更新。 + saved: Profile updated. error: - fallback: 无法保存修改。 + fallback: We could not save your changes. connections: - tab: 已连接的账号 - title: 已连接的账号 - description: 通过这些渠道登录 AIRI。解绑可以撤销访问,再次绑定即可切换到其他账号。 + tab: Connected accounts + title: Connected accounts + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. status: - linked: 已绑定 - notLinked: 未绑定 - linkedSince: 绑定于 {date} + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} action: - link: 绑定 - unlink: 解绑 + link: Link + unlink: Unlink message: - loading: 正在加载已绑定的社交账号... - unlinked: 已解除与 {provider} 的绑定。 - linked: 已与 {provider} 完成绑定。 - linkStarted: 正在跳转到 {provider}… + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linked: '{provider} connected.' + linkStarted: Redirecting to {provider}… error: - listFailed: 无法加载已绑定的社交账号。 - unlinkFailed: 无法解除绑定。 - linkFailed: 无法开始绑定流程。 - lastAccount: 这是你唯一的登录方式。请先设置密码再尝试解绑。 + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. security: - tab: 安全 - title: 安全 - description: 修改密码。其他设备的登录会话会被注销。 - setDescription: 你通过社交账号登录,还没有设置过密码。我们会向你的邮箱发送一个安全链接,用来设置密码。 + tab: Security + title: Security + description: Change your password. Your other devices will be signed out. + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. currentPassword: - label: 当前密码 - placeholder: 输入当前密码 + label: Current password + placeholder: Enter your current password newPassword: - label: 新密码 - placeholder: 至少 8 位 + label: New password + placeholder: At least 8 characters confirmPassword: - label: 确认新密码 - placeholder: 再次输入新密码 + label: Confirm new password + placeholder: Repeat your new password action: - changePassword: 修改密码 - sendSetLink: 给我发送设置密码的邮件 + changePassword: Change password + sendSetLink: Email me a link to set my password message: - changed: 密码已修改。其他设备的登录会话已被注销。 - setLinkSent: 已向 {email} 发送了设置密码的链接,请前往查收。 + changed: Password changed. Other sessions have been signed out. + setLinkSent: Check {email} for the link to set your password. error: - fallback: 无法修改密码。 - setLinkFailed: 无法发送设置密码链接。 - passwordMismatch: 两次输入的新密码不一致。 - passwordSameAsCurrent: 新密码不能和当前密码相同。 + fallback: We could not change your password. + setLinkFailed: We could not send the password setup link. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. danger: - tab: 危险操作 - title: 危险操作 - description: 这里的操作不可撤销,请谨慎使用。 + tab: Danger Zone + title: Danger Zone + description: Irreversible account actions live here. deleteAccount: - title: 删除账号 - description: 永久删除你的账号与个人数据。 - action: 删除账号 + title: Delete account + description: Permanently delete your account and personal data. + action: Delete account modal: - title: 确认删除账号? - warning: 此操作不可撤销。订阅将被取消,Flux 余额将清空。 + title: Delete account? + warning: This cannot be undone. Active subscription will be canceled, Flux balance cleared. confirmEmail: - label: 输入邮箱以确认 + label: Type your email to confirm placeholder: '' - mismatch: 邮箱不匹配。 - confirm: 发送确认邮件 - cancel: 取消 + mismatch: Email does not match. + confirm: Send confirmation email + cancel: Cancel message: - emailSent: 删除链接已发送至 {email}。 + emailSent: Check {email} for the deletion link. error: - fallback: 无法发起删除,请稍后重试。 + fallback: Could not start deletion. Try again later. card: activate: 激活 active: 已激活 diff --git a/packages/i18n/src/locales/zh-Hant/server/auth.yaml b/packages/i18n/src/locales/zh-Hant/server/auth.yaml index 05e458063..5639edf4c 100644 --- a/packages/i18n/src/locales/zh-Hant/server/auth.yaml +++ b/packages/i18n/src/locales/zh-Hant/server/auth.yaml @@ -24,15 +24,168 @@ electronCallback: closeTabManually: Some browsers do not allow this page to close itself automatically. You can close it manually. signIn: title: Sign in + step: + identify: + heading: Sign in + description: Enter your email to sign in or create an account. + password: + heading: Welcome back + description: Continue as {email}. + create: + heading: Create your account + description: We will create a new account for {email}. + email: + label: Email + placeholder: you{'@'}example.com + password: + label: Password + placeholder: Your password + newPassword: + label: Create password + placeholder: At least 8 characters + confirmPassword: + label: Confirm password + placeholder: Repeat your password + name: + label: Display name + placeholder: Optional, defaults to your email handle + action: + continue: Continue + signIn: Sign in + createAccount: Create account + forgotPassword: Forgot password? + useDifferentEmail: Use a different email + divider: + or: or error: fallback: Sign in failed unknown: An unknown error occurred authFailed: Authentication failed. Please try again. + passwordMismatch: Password and confirmation do not match. + invalidEmail: Please enter a valid email address. footer: prefix: By continuing, you agree to our terms: Terms and: and privacy: Privacy Policy +verifyEmail: + title: + pending: Check your inbox + success: Email verified + failed: Verification failed + message: + pending: We sent a verification link to your email. Open it to finish creating your account — this page will continue automatically once you click the link. + pendingWithAddress: We sent a verification link to {email}. Open it to finish creating your account — this page will continue automatically once you click the link. + success: Your email has been verified and you are signed in. You can close this tab. + failed: We could not verify your email ({error}). Try requesting a new link. + action: + backToSignIn: Back to sign in +forgotPassword: + title: Reset your password + description: Enter the email address associated with your account and we will send you a reset link. + email: + label: Email + placeholder: you{'@'}example.com + action: + send: Send reset link + backToSignIn: Back to sign in + message: + sent: If {email} matches an account, a reset link is on the way. + error: + fallback: We could not send the reset email. +deleteAccount: + title: + success: Account deleted + failed: Could not delete account + message: + success: Your account has been deleted. + action: + closeTab: You can close this tab. +resetPassword: + title: + default: Set a new password + success: Password updated + password: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + reset: Update password + goSignIn: Go to sign in + message: + success: Your password has been updated. Sign in with your new password. + error: + fallback: We could not update your password. + missingToken: Reset link is invalid or has expired. + passwordMismatch: Password and confirmation do not match. +profile: + title: Account profile + description: Manage your avatar, display name, and connected accounts. + section: + profile: Profile + avatar: Avatar + password: Password + linkedAccounts: Connected accounts + field: + email: Email + emailVerified: Email status + createdAt: Joined + label: + verified: Verified + unverified: Unverified + name: + label: Display name + placeholder: How others see you + avatar: + altText: Profile avatar + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + password: + currentLabel: Current password + currentPlaceholder: Enter your current password + newLabel: New password + newPlaceholder: At least 8 characters + confirmLabel: Confirm new password + confirmPlaceholder: Repeat your new password + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + setLinkSent: Check {email} for the link to set your password. + setLinkFailed: We could not send the password setup link. + linkedAccounts: + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + action: + saveProfile: Save changes + changePassword: Change password + sendSetPasswordLink: Email me a link to set my password + signOut: Sign out + message: + loading: Loading your profile... + profileSaved: Profile updated. + passwordChanged: Password changed. Other sessions have been signed out. + error: + loadFailed: We could not load your profile. + saveFailed: We could not save your changes. + changePasswordFailed: We could not change your password. + signOutFailed: We could not sign you out. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. webCallback: title: signIn: Sign in diff --git a/packages/i18n/src/locales/zh-Hant/settings.yaml b/packages/i18n/src/locales/zh-Hant/settings.yaml index b4f233f10..2247a6eff 100644 --- a/packages/i18n/src/locales/zh-Hant/settings.yaml +++ b/packages/i18n/src/locales/zh-Hant/settings.yaml @@ -152,6 +152,89 @@ pages: fluxBalance: Flux Balance viewFluxDetails: View details signedInAs: Signed in as + profile: + tab: Profile + title: Profile + description: Manage your public display name. + name: + label: Display name + placeholder: How others see you + avatar: + gravatarNotice: Avatar from Gravatar. + gravatarLink: Manage on gravatar.com + action: + save: Save changes + message: + saved: Profile updated. + error: + fallback: We could not save your changes. + connections: + tab: Connected accounts + title: Connected accounts + description: Sign in to AIRI through these providers. Unlink to revoke access, then link again to switch to a different account. + status: + linked: Linked + notLinked: Not linked + linkedSince: Linked on {date} + action: + link: Link + unlink: Unlink + message: + loading: Loading connected accounts... + unlinked: '{provider} disconnected.' + linked: '{provider} connected.' + linkStarted: Redirecting to {provider}… + error: + listFailed: Could not load connected accounts. + unlinkFailed: Could not unlink this account. + linkFailed: Could not start the link flow. + lastAccount: This is your only sign-in method. Set a password first before unlinking it. + security: + tab: Security + title: Security + description: Change your password. Your other devices will be signed out. + setDescription: You signed in via a social provider, so there is no current password yet. We'll email a secure link to set one. + currentPassword: + label: Current password + placeholder: Enter your current password + newPassword: + label: New password + placeholder: At least 8 characters + confirmPassword: + label: Confirm new password + placeholder: Repeat your new password + action: + changePassword: Change password + sendSetLink: Email me a link to set my password + message: + changed: Password changed. Other sessions have been signed out. + setLinkSent: Check {email} for the link to set your password. + error: + fallback: We could not change your password. + setLinkFailed: We could not send the password setup link. + passwordMismatch: New password and confirmation do not match. + passwordSameAsCurrent: New password must differ from the current one. + danger: + tab: Danger Zone + title: Danger Zone + description: Irreversible account actions live here. + deleteAccount: + title: Delete account + description: Permanently delete your account and personal data. + action: Delete account + modal: + title: Delete account? + warning: This cannot be undone. Active subscription will be canceled, Flux balance cleared. + confirmEmail: + label: Type your email to confirm + placeholder: '' + mismatch: Email does not match. + confirm: Send confirmation email + cancel: Cancel + message: + emailSent: Check {email} for the deletion link. + error: + fallback: Could not start deletion. Try again later. card: activate: 啟用 active: 已啟用