608 lines
20 KiB
TypeScript
608 lines
20 KiB
TypeScript
import type { PartialLocaleType } from './index';
|
||
import { SAAS_CHAT_UTM_URL } from '@/app/constant';
|
||
import { getClientConfig } from '../config/client';
|
||
import { SubmitKey } from '../store/config';
|
||
|
||
const isApp = !!getClientConfig()?.isApp;
|
||
|
||
const es: PartialLocaleType = {
|
||
WIP: 'En construcción...',
|
||
Error: {
|
||
Unauthorized: isApp
|
||
? `😆 La conversación encontró algunos problemas, no te preocupes:
|
||
\\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_UTM_URL})
|
||
\\ 2️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️`
|
||
: `😆 La conversación encontró algunos problemas, no te preocupes:
|
||
\ 1️⃣ Si deseas comenzar sin configuración, [haz clic aquí para empezar a chatear inmediatamente 🚀](${SAAS_CHAT_UTM_URL})
|
||
\ 2️⃣ Si estás utilizando una versión de implementación privada, haz clic [aquí](/#/auth) para ingresar la clave de acceso 🔑
|
||
\ 3️⃣ Si deseas usar tus propios recursos de OpenAI, haz clic [aquí](/#/settings) para modificar la configuración ⚙️
|
||
`,
|
||
},
|
||
Auth: {
|
||
Title: 'Se requiere contraseña',
|
||
Tips: 'El administrador ha habilitado la verificación de contraseña. Introduce el código de acceso a continuación',
|
||
SubTips: 'O ingresa tu clave API de OpenAI o Google',
|
||
Input: 'Introduce el código de acceso aquí',
|
||
Confirm: 'Confirmar',
|
||
Later: 'Más tarde',
|
||
Return: 'Regresar',
|
||
SaasTips:
|
||
'La configuración es demasiado complicada, quiero usarlo de inmediato',
|
||
TopTips:
|
||
'🥳 Oferta de lanzamiento de NextChat AI, desbloquea OpenAI o1, GPT-4o, Claude-3.5 y los últimos grandes modelos',
|
||
},
|
||
ChatItem: {
|
||
ChatItemCount: (count: number) => `${count} conversaciones`,
|
||
},
|
||
Chat: {
|
||
SubTitle: (count: number) => `Total de ${count} conversaciones`,
|
||
EditMessage: {
|
||
Title: 'Editar registro de mensajes',
|
||
Topic: {
|
||
Title: 'Tema de la conversación',
|
||
SubTitle: 'Cambiar el tema de la conversación actual',
|
||
},
|
||
},
|
||
Actions: {
|
||
ChatList: 'Ver lista de mensajes',
|
||
CompressedHistory: 'Ver historial de Prompts comprimidos',
|
||
Export: 'Exportar historial de chat',
|
||
Copy: 'Copiar',
|
||
Stop: 'Detener',
|
||
Retry: 'Reintentar',
|
||
Pin: 'Fijar',
|
||
PinToastContent:
|
||
'Se ha fijado 1 conversación a los prompts predeterminados',
|
||
PinToastAction: 'Ver',
|
||
Delete: 'Eliminar',
|
||
Edit: 'Editar',
|
||
RefreshTitle: 'Actualizar título',
|
||
RefreshToast: 'Se ha enviado la solicitud de actualización del título',
|
||
},
|
||
Commands: {
|
||
new: 'Nueva conversación',
|
||
newm: 'Nueva conversación desde la máscara',
|
||
next: 'Siguiente conversación',
|
||
prev: 'Conversación anterior',
|
||
clear: 'Limpiar contexto',
|
||
del: 'Eliminar conversación',
|
||
},
|
||
InputActions: {
|
||
Stop: 'Detener respuesta',
|
||
ToBottom: 'Ir al más reciente',
|
||
Theme: {
|
||
auto: 'Tema automático',
|
||
light: 'Modo claro',
|
||
dark: 'Modo oscuro',
|
||
},
|
||
Prompt: 'Comandos rápidos',
|
||
Masks: 'Todas las máscaras',
|
||
Clear: 'Limpiar chat',
|
||
Settings: 'Configuración de conversación',
|
||
UploadImage: 'Subir imagen',
|
||
},
|
||
Rename: 'Renombrar conversación',
|
||
Typing: 'Escribiendo…',
|
||
Input: (submitKey: string) => {
|
||
let inputHints = `${submitKey} para enviar`;
|
||
if (submitKey === String(SubmitKey.Enter)) {
|
||
inputHints += ',Shift + Enter para nueva línea';
|
||
}
|
||
return (
|
||
`${inputHints},/ para activar autocompletado,: para activar comandos`
|
||
);
|
||
},
|
||
Send: 'Enviar',
|
||
Config: {
|
||
Reset: 'Borrar memoria',
|
||
SaveAs: 'Guardar como máscara',
|
||
},
|
||
IsContext: 'Prompt predeterminado',
|
||
},
|
||
Export: {
|
||
Title: 'Compartir historial de chat',
|
||
Copy: 'Copiar todo',
|
||
Download: 'Descargar archivo',
|
||
Share: 'Compartir en ShareGPT',
|
||
MessageFromYou: 'Usuario',
|
||
MessageFromChatGPT: 'ChatGPT',
|
||
Format: {
|
||
Title: 'Formato de exportación',
|
||
SubTitle: 'Puedes exportar como texto Markdown o imagen PNG',
|
||
},
|
||
IncludeContext: {
|
||
Title: 'Incluir contexto de máscara',
|
||
SubTitle: 'Mostrar contexto de máscara en los mensajes',
|
||
},
|
||
Steps: {
|
||
Select: 'Seleccionar',
|
||
Preview: 'Vista previa',
|
||
},
|
||
Image: {
|
||
Toast: 'Generando captura de pantalla',
|
||
Modal: 'Mantén presionado o haz clic derecho para guardar la imagen',
|
||
},
|
||
},
|
||
Select: {
|
||
Search: 'Buscar mensajes',
|
||
All: 'Seleccionar todo',
|
||
Latest: 'Últimos mensajes',
|
||
Clear: 'Limpiar selección',
|
||
},
|
||
Memory: {
|
||
Title: 'Resumen histórico',
|
||
EmptyContent:
|
||
'El contenido de la conversación es demasiado corto para resumir',
|
||
Send: 'Comprimir automáticamente el historial de chat y enviarlo como contexto',
|
||
Copy: 'Copiar resumen',
|
||
Reset: '[no usado]',
|
||
ResetConfirm: '¿Confirmar para borrar el resumen histórico?',
|
||
},
|
||
Home: {
|
||
NewChat: 'Nueva conversación',
|
||
DeleteChat: '¿Confirmar la eliminación de la conversación seleccionada?',
|
||
DeleteToast: 'Conversación eliminada',
|
||
Revert: 'Deshacer',
|
||
},
|
||
Settings: {
|
||
Title: 'Configuración',
|
||
SubTitle: 'Todas las opciones de configuración',
|
||
|
||
Danger: {
|
||
Reset: {
|
||
Title: 'Restablecer todas las configuraciones',
|
||
SubTitle:
|
||
'Restablecer todas las configuraciones a los valores predeterminados',
|
||
Action: 'Restablecer ahora',
|
||
Confirm: '¿Confirmar el restablecimiento de todas las configuraciones?',
|
||
},
|
||
Clear: {
|
||
Title: 'Eliminar todos los datos',
|
||
SubTitle: 'Eliminar todos los chats y datos de configuración',
|
||
Action: 'Eliminar ahora',
|
||
Confirm:
|
||
'¿Confirmar la eliminación de todos los chats y datos de configuración?',
|
||
},
|
||
},
|
||
Lang: {
|
||
Name: 'Language', // ATENCIÓN: si deseas agregar una nueva traducción, por favor no traduzcas este valor, déjalo como `Language`
|
||
All: 'Todos los idiomas',
|
||
},
|
||
Avatar: 'Avatar',
|
||
FontSize: {
|
||
Title: 'Tamaño de fuente',
|
||
SubTitle: 'Tamaño de la fuente del contenido del chat',
|
||
},
|
||
FontFamily: {
|
||
Title: 'Fuente del Chat',
|
||
SubTitle:
|
||
'Fuente del contenido del chat, dejar vacío para aplicar la fuente predeterminada global',
|
||
Placeholder: 'Nombre de la Fuente',
|
||
},
|
||
InjectSystemPrompts: {
|
||
Title: 'Inyectar mensajes del sistema',
|
||
SubTitle:
|
||
'Forzar la adición de un mensaje del sistema simulado de ChatGPT al principio de cada lista de mensajes',
|
||
},
|
||
InputTemplate: {
|
||
Title: 'Preprocesamiento de entrada del usuario',
|
||
SubTitle: 'El último mensaje del usuario se rellenará en esta plantilla',
|
||
},
|
||
|
||
Update: {
|
||
Version: (x: string) => `Versión actual: ${x}`,
|
||
IsLatest: 'Ya estás en la última versión',
|
||
CheckUpdate: 'Buscar actualizaciones',
|
||
IsChecking: 'Buscando actualizaciones...',
|
||
FoundUpdate: (x: string) => `Nueva versión encontrada: ${x}`,
|
||
GoToUpdate: 'Ir a actualizar',
|
||
},
|
||
SendKey: 'Tecla de enviar',
|
||
Theme: 'Tema',
|
||
TightBorder: 'Modo sin borde',
|
||
SendPreviewBubble: {
|
||
Title: 'Vista previa del globo',
|
||
SubTitle:
|
||
'Previsualiza el contenido Markdown en un globo de vista previa',
|
||
},
|
||
AutoGenerateTitle: {
|
||
Title: 'Generar título automáticamente',
|
||
SubTitle: 'Generar un título adecuado basado en el contenido del chat',
|
||
},
|
||
Sync: {
|
||
CloudState: 'Datos en la nube',
|
||
NotSyncYet: 'Aún no se ha sincronizado',
|
||
Success: 'Sincronización exitosa',
|
||
Fail: 'Sincronización fallida',
|
||
|
||
Config: {
|
||
Modal: {
|
||
Title: 'Configurar sincronización en la nube',
|
||
Check: 'Verificar disponibilidad',
|
||
},
|
||
SyncType: {
|
||
Title: 'Tipo de sincronización',
|
||
SubTitle: 'Selecciona el servidor de sincronización preferido',
|
||
},
|
||
Proxy: {
|
||
Title: 'Habilitar proxy',
|
||
SubTitle:
|
||
'Debes habilitar el proxy para sincronizar en el navegador y evitar restricciones de CORS',
|
||
},
|
||
ProxyUrl: {
|
||
Title: 'Dirección del proxy',
|
||
SubTitle: 'Solo para el proxy CORS incluido en este proyecto',
|
||
},
|
||
|
||
WebDav: {
|
||
Endpoint: 'Dirección WebDAV',
|
||
UserName: 'Nombre de usuario',
|
||
Password: 'Contraseña',
|
||
},
|
||
|
||
UpStash: {
|
||
Endpoint: 'URL de REST de UpStash Redis',
|
||
UserName: 'Nombre de respaldo',
|
||
Password: 'Token de REST de UpStash Redis',
|
||
},
|
||
},
|
||
|
||
LocalState: 'Datos locales',
|
||
Overview: (overview: any) => {
|
||
return `${overview.chat} conversaciones, ${overview.message} mensajes, ${overview.prompt} prompts, ${overview.mask} máscaras`;
|
||
},
|
||
ImportFailed: 'Importación fallida',
|
||
},
|
||
Mask: {
|
||
Splash: {
|
||
Title: 'Pantalla de inicio de máscara',
|
||
SubTitle:
|
||
'Mostrar la pantalla de inicio de la máscara al iniciar un nuevo chat',
|
||
},
|
||
Builtin: {
|
||
Title: 'Ocultar máscaras integradas',
|
||
SubTitle:
|
||
'Ocultar las máscaras integradas en todas las listas de máscaras',
|
||
},
|
||
},
|
||
Prompt: {
|
||
Disable: {
|
||
Title: 'Deshabilitar autocompletado de prompts',
|
||
SubTitle:
|
||
'Escribe / al principio del campo de entrada para activar el autocompletado',
|
||
},
|
||
List: 'Lista de prompts personalizados',
|
||
ListCount: (builtin: number, custom: number) =>
|
||
`Integrados ${builtin}, definidos por el usuario ${custom}`,
|
||
Edit: 'Editar',
|
||
Modal: {
|
||
Title: 'Lista de prompts',
|
||
Add: 'Nuevo',
|
||
Search: 'Buscar prompts',
|
||
},
|
||
EditModal: {
|
||
Title: 'Editar prompt',
|
||
},
|
||
},
|
||
HistoryCount: {
|
||
Title: 'Número de mensajes históricos adjuntos',
|
||
SubTitle: 'Número de mensajes históricos enviados con cada solicitud',
|
||
},
|
||
CompressThreshold: {
|
||
Title: 'Umbral de compresión de mensajes históricos',
|
||
SubTitle:
|
||
'Cuando los mensajes históricos no comprimidos superan este valor, se realizará la compresión',
|
||
},
|
||
|
||
Usage: {
|
||
Title: 'Consulta de saldo',
|
||
SubTitle(used: any, total: any) {
|
||
return `Saldo usado este mes: $${used}, total suscrito: $${total}`;
|
||
},
|
||
IsChecking: 'Verificando…',
|
||
Check: 'Revisar de nuevo',
|
||
NoAccess:
|
||
'Introduce la clave API o la contraseña de acceso para ver el saldo',
|
||
},
|
||
|
||
Access: {
|
||
SaasStart: {
|
||
Title: 'Use NextChat AI',
|
||
Label: '(The most cost-effective solution)',
|
||
SubTitle:
|
||
'Officially maintained by NextChat, zero configuration ready to use, supports the latest large models like OpenAI o1, GPT-4o, and Claude-3.5',
|
||
ChatNow: 'Chat Now',
|
||
},
|
||
|
||
AccessCode: {
|
||
Title: 'Contraseña de acceso',
|
||
SubTitle: 'El administrador ha habilitado el acceso encriptado',
|
||
Placeholder: 'Introduce la contraseña de acceso',
|
||
},
|
||
CustomEndpoint: {
|
||
Title: 'Interfaz personalizada',
|
||
SubTitle: '¿Usar servicios personalizados de Azure u OpenAI?',
|
||
},
|
||
Provider: {
|
||
Title: 'Proveedor de modelos',
|
||
SubTitle: 'Cambiar entre diferentes proveedores',
|
||
},
|
||
OpenAI: {
|
||
ApiKey: {
|
||
Title: 'Clave API',
|
||
SubTitle:
|
||
'Usa una clave API de OpenAI personalizada para omitir la restricción de acceso por contraseña',
|
||
Placeholder: 'Clave API de OpenAI',
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: 'Dirección del endpoint',
|
||
SubTitle:
|
||
'Debe incluir http(s):// además de la dirección predeterminada',
|
||
},
|
||
},
|
||
Azure: {
|
||
ApiKey: {
|
||
Title: 'Clave de interfaz',
|
||
SubTitle:
|
||
'Usa una clave de Azure personalizada para omitir la restricción de acceso por contraseña',
|
||
Placeholder: 'Clave API de Azure',
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: 'Dirección del endpoint',
|
||
SubTitle: 'Ejemplo:',
|
||
},
|
||
|
||
ApiVerion: {
|
||
Title: 'Versión de la interfaz (versión de api de azure)',
|
||
SubTitle: 'Selecciona una versión específica',
|
||
},
|
||
},
|
||
Anthropic: {
|
||
ApiKey: {
|
||
Title: 'Clave de interfaz',
|
||
SubTitle:
|
||
'Usa una clave de Anthropic personalizada para omitir la restricción de acceso por contraseña',
|
||
Placeholder: 'Clave API de Anthropic',
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: 'Dirección del endpoint',
|
||
SubTitle: 'Ejemplo:',
|
||
},
|
||
|
||
ApiVerion: {
|
||
Title: 'Versión de la interfaz (versión de claude api)',
|
||
SubTitle: 'Selecciona una versión específica de la API',
|
||
},
|
||
},
|
||
Google: {
|
||
ApiKey: {
|
||
Title: 'Clave API',
|
||
SubTitle: 'Obtén tu clave API de Google AI',
|
||
Placeholder: 'Introduce tu clave API de Google AI Studio',
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: 'Dirección del endpoint',
|
||
SubTitle: 'Ejemplo:',
|
||
},
|
||
|
||
ApiVersion: {
|
||
Title: 'Versión de la API (solo para gemini-pro)',
|
||
SubTitle: 'Selecciona una versión específica de la API',
|
||
},
|
||
GoogleSafetySettings: {
|
||
Title: 'Nivel de filtrado de seguridad de Google',
|
||
SubTitle: 'Configura el nivel de filtrado de contenido',
|
||
},
|
||
},
|
||
Baidu: {
|
||
ApiKey: {
|
||
Title: 'Clave API',
|
||
SubTitle: 'Usa una clave API de Baidu personalizada',
|
||
Placeholder: 'Clave API de Baidu',
|
||
},
|
||
SecretKey: {
|
||
Title: 'Clave secreta',
|
||
SubTitle: 'Usa una clave secreta de Baidu personalizada',
|
||
Placeholder: 'Clave secreta de Baidu',
|
||
},
|
||
Endpoint: {
|
||
Title: 'Dirección del endpoint',
|
||
SubTitle:
|
||
'No admite personalización, dirígete a .env para configurarlo',
|
||
},
|
||
},
|
||
ByteDance: {
|
||
ApiKey: {
|
||
Title: 'Clave de interfaz',
|
||
SubTitle: 'Usa una clave API de ByteDance personalizada',
|
||
Placeholder: 'Clave API de ByteDance',
|
||
},
|
||
Endpoint: {
|
||
Title: 'Dirección del endpoint',
|
||
SubTitle: 'Ejemplo:',
|
||
},
|
||
},
|
||
Alibaba: {
|
||
ApiKey: {
|
||
Title: 'Clave de interfaz',
|
||
SubTitle: 'Usa una clave API de Alibaba Cloud personalizada',
|
||
Placeholder: 'Clave API de Alibaba Cloud',
|
||
},
|
||
Endpoint: {
|
||
Title: 'Dirección del endpoint',
|
||
SubTitle: 'Ejemplo:',
|
||
},
|
||
},
|
||
CustomModel: {
|
||
Title: 'Nombre del modelo personalizado',
|
||
SubTitle:
|
||
'Agrega opciones de modelos personalizados, separados por comas',
|
||
},
|
||
},
|
||
|
||
Model: 'Modelo (model)',
|
||
CompressModel: {
|
||
Title: 'Modelo de compresión',
|
||
SubTitle: 'Modelo utilizado para comprimir el historial',
|
||
},
|
||
Temperature: {
|
||
Title: 'Aleatoriedad (temperature)',
|
||
SubTitle: 'Cuanto mayor sea el valor, más aleatorio será el resultado',
|
||
},
|
||
TopP: {
|
||
Title: 'Muestreo por núcleo (top_p)',
|
||
SubTitle: 'Similar a la aleatoriedad, pero no cambies ambos a la vez',
|
||
},
|
||
MaxTokens: {
|
||
Title: 'Límite de tokens por respuesta (max_tokens)',
|
||
SubTitle: 'Número máximo de tokens utilizados en una sola interacción',
|
||
},
|
||
PresencePenalty: {
|
||
Title: 'Novedad de temas (presence_penalty)',
|
||
SubTitle:
|
||
'Cuanto mayor sea el valor, más probable es que se amplíen a nuevos temas',
|
||
},
|
||
FrequencyPenalty: {
|
||
Title: 'Penalización de frecuencia (frequency_penalty)',
|
||
SubTitle:
|
||
'Cuanto mayor sea el valor, más probable es que se reduzcan las palabras repetidas',
|
||
},
|
||
},
|
||
Store: {
|
||
DefaultTopic: 'Nuevo chat',
|
||
BotHello: '¿En qué puedo ayudarte?',
|
||
Error: 'Hubo un error, inténtalo de nuevo más tarde',
|
||
Prompt: {
|
||
History: (content: string) =>
|
||
`Este es un resumen del chat histórico como referencia: ${content}`,
|
||
Topic:
|
||
'Devuelve un tema breve de esta frase en cuatro a cinco palabras, sin explicación, sin puntuación, sin muletillas, sin texto adicional, sin negritas. Si no hay tema, devuelve \'charlas casuales\'',
|
||
Summarize:
|
||
'Resume brevemente el contenido de la conversación para usar como un prompt de contexto, manteniéndolo dentro de 200 palabras',
|
||
},
|
||
},
|
||
Copy: {
|
||
Success: 'Copiado al portapapeles',
|
||
Failed: 'Error al copiar, por favor otorga permisos al portapapeles',
|
||
},
|
||
Download: {
|
||
Success: 'Contenido descargado en tu directorio.',
|
||
Failed: 'Error al descargar.',
|
||
},
|
||
Context: {
|
||
Toast: (x: any) => `Contiene ${x} prompts predefinidos`,
|
||
Edit: 'Configuración del chat actual',
|
||
Add: 'Agregar una conversación',
|
||
Clear: 'Contexto borrado',
|
||
Revert: 'Restaurar contexto',
|
||
},
|
||
Plugin: {
|
||
Name: 'Complemento',
|
||
},
|
||
FineTuned: {
|
||
Sysmessage: 'Eres un asistente',
|
||
},
|
||
SearchChat: {
|
||
Name: 'Buscar',
|
||
Page: {
|
||
Title: 'Buscar en el historial de chat',
|
||
Search: 'Ingrese la palabra clave de búsqueda',
|
||
NoResult: 'No se encontraron resultados',
|
||
NoData: 'Sin datos',
|
||
Loading: 'Cargando',
|
||
|
||
SubTitle: (count: number) => `Se encontraron ${count} resultados`,
|
||
},
|
||
Item: {
|
||
View: 'Ver',
|
||
},
|
||
},
|
||
Mask: {
|
||
Name: 'Máscara',
|
||
Page: {
|
||
Title: 'Máscaras de rol predefinidas',
|
||
SubTitle: (count: number) => `${count} definiciones de rol predefinidas`,
|
||
Search: 'Buscar máscara de rol',
|
||
Create: 'Crear nuevo',
|
||
},
|
||
Item: {
|
||
Info: (count: number) => `Contiene ${count} conversaciones predefinidas`,
|
||
Chat: 'Chat',
|
||
View: 'Ver',
|
||
Edit: 'Editar',
|
||
Delete: 'Eliminar',
|
||
DeleteConfirm: '¿Confirmar eliminación?',
|
||
},
|
||
EditModal: {
|
||
Title: (readonly: boolean) =>
|
||
`Editar máscara predefinida ${readonly ? '(solo lectura)' : ''}`,
|
||
Download: 'Descargar predefinido',
|
||
Clone: 'Clonar predefinido',
|
||
},
|
||
Config: {
|
||
Avatar: 'Avatar del rol',
|
||
Name: 'Nombre del rol',
|
||
Sync: {
|
||
Title: 'Usar configuración global',
|
||
SubTitle:
|
||
'¿Usar la configuración global del modelo para la conversación actual?',
|
||
Confirm:
|
||
'La configuración personalizada de la conversación actual se sobrescribirá automáticamente, ¿confirmar habilitar la configuración global?',
|
||
},
|
||
HideContext: {
|
||
Title: 'Ocultar conversaciones predefinidas',
|
||
SubTitle:
|
||
'Las conversaciones predefinidas ocultas no aparecerán en la interfaz de chat',
|
||
},
|
||
Share: {
|
||
Title: 'Compartir esta máscara',
|
||
SubTitle: 'Generar un enlace directo a esta máscara',
|
||
Action: 'Copiar enlace',
|
||
},
|
||
},
|
||
},
|
||
NewChat: {
|
||
Return: 'Regresar',
|
||
Skip: 'Comenzar ahora',
|
||
NotShow: 'No mostrar más',
|
||
ConfirmNoShow:
|
||
'¿Confirmar desactivación? Puedes reactivar en la configuración en cualquier momento.',
|
||
Title: 'Selecciona una máscara',
|
||
SubTitle: 'Comienza ahora y colisiona con la mente detrás de la máscara',
|
||
More: 'Ver todo',
|
||
},
|
||
|
||
URLCommand: {
|
||
Code: 'Detectado un código de acceso en el enlace, ¿deseas autocompletarlo?',
|
||
Settings:
|
||
'Detectada configuración predefinida en el enlace, ¿deseas autocompletarla?',
|
||
},
|
||
|
||
UI: {
|
||
Confirm: 'Confirmar',
|
||
Cancel: 'Cancelar',
|
||
Close: 'Cerrar',
|
||
Create: 'Crear',
|
||
Edit: 'Editar',
|
||
Export: 'Exportar',
|
||
Import: 'Importar',
|
||
Sync: 'Sincronizar',
|
||
Config: 'Configurar',
|
||
},
|
||
Exporter: {
|
||
Description: {
|
||
Title: 'Solo se mostrarán los mensajes después de borrar el contexto',
|
||
},
|
||
Model: 'Modelo',
|
||
Messages: 'Mensajes',
|
||
Topic: 'Tema',
|
||
Time: 'Hora',
|
||
},
|
||
};
|
||
|
||
export default es;
|