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: 已啟用