From d4e02676a14924aa1badd15f92f66499a0a2d5c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Luis=20Di=20Biase?= Date: Tue, 18 Jun 2024 18:03:09 -0300 Subject: [PATCH] i18n: initial spanish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Luis Di Biase --- src/assets/locale/es/common.json | 88 ++++++++ src/assets/locale/es/knowledge.json | 42 ++++ src/assets/locale/es/option.json | 12 ++ src/assets/locale/es/playground.json | 29 +++ src/assets/locale/es/settings.json | 289 +++++++++++++++++++++++++++ src/assets/locale/es/sidepanel.json | 7 + src/i18n/index.ts | 4 +- src/i18n/lang/es.ts | 15 ++ src/i18n/support-language.ts | 8 +- 9 files changed, 491 insertions(+), 3 deletions(-) create mode 100644 src/assets/locale/es/common.json create mode 100644 src/assets/locale/es/knowledge.json create mode 100644 src/assets/locale/es/option.json create mode 100644 src/assets/locale/es/playground.json create mode 100644 src/assets/locale/es/settings.json create mode 100644 src/assets/locale/es/sidepanel.json create mode 100644 src/i18n/lang/es.ts diff --git a/src/assets/locale/es/common.json b/src/assets/locale/es/common.json new file mode 100644 index 0000000..e316a0b --- /dev/null +++ b/src/assets/locale/es/common.json @@ -0,0 +1,88 @@ +{ + "pageAssist": "Page Assist", + "selectAModel": "Selecione un Modelo", + "save": "Guardar", + "saved": "Guardado", + "cancel": "Cancelar", + "retry": "Reintentar", + "share": { + "tooltip": { + "share": "Compartir" + }, + "modal": { + "title": "Compartir enlace para chat" + }, + "form": { + "defaultValue": { + "name": "Anónimo", + "title": "Chat sin título" + }, + "title": { + "label": "Título del Chat", + "placeholder": "Ingresar el título del Chat", + "required": "El título del Chat es obligatorio" + }, + "name": { + "label": "Tu nombre", + "placeholder": "Ingresar tu nombre", + "required": "Tu nombre es obligatorio" + }, + "btn": { + "save": "Generar enlace", + "saving": "Generando enlace..." + } + }, + "notification": { + "successGenerate": "Enlace copiado al Clipboard", + "failGenerate": "Fallo al generar el enlace" + } + }, + "copyToClipboard": "Copiar al clipboard", + "webSearch": "Buscando en la web", + "regenerate": "Regenerar", + "edit": "Editar", + "saveAndSubmit": "Guardar y Enviar", + "editMessage": { + "placeholder": "Ingresar un mensaje..." + }, + "submit": "Enviar", + "noData": "Sin datos", + "noHistory": "Chat sin histórico", + "chatWithCurrentPage": "Conversar con la página actual", + "beta": "Beta", + "tts": "Leer en voz alta", + "currentChatModelSettings": "Configuraciones del Modelo de Chat Actual", + "modelSettings": { + "label": "Configuraciones del Modelo", + "description": "Definir las opciones del modelo globalmente para todos los chats", + "form": { + "keepAlive": { + "label": "Mantener vivo", + "help": "controlar cuanto tiempo el modelo permanecera cargado en la memoria luego de su utilización (por defecto: 5m)", + "placeholder": "Ingresar duración para mantenerlo vivo (ej: 5m, 10m, 1h)" + }, + "temperature": { + "label": "Temperatura", + "placeholder": "Ingresar valor de la Temperatura (ej: 0.7, 1.0)" + }, + "numCtx": { + "label": "Cantidad de contextos", + "placeholder": "Ingresar el valor de tamaño de la ventana de contexto (por defecto: 2048)" + }, + "seed": { + "label": "Semilla", + "placeholder": "Ingresar el valor de la semilla (ej: 1234)", + "help": "Reproductibilidad de la salida del modelo" + }, + "topK": { + "label": "Top K", + "placeholder": "Ingresar el valor de Top K (ej: 40, 100)" + }, + "topP": { + "label": "Top P", + "placeholder": "Ingresar el valor de Top P (ej: 0.9, 0.95)" + } + }, + "advanced": "Más Configuraciones del Modelo" + } +} diff --git a/src/assets/locale/es/knowledge.json b/src/assets/locale/es/knowledge.json new file mode 100644 index 0000000..86ddbf3 --- /dev/null +++ b/src/assets/locale/es/knowledge.json @@ -0,0 +1,42 @@ +{ + "addBtn": "Agregar Nuevo Conocimiento", + "columns": { + "title": "Título", + "status": "Estado", + "embeddings": "Modelo de Embedding", + "createdAt": "Creado", + "action": "Acciones" + }, + "expandedColumns": { + "name": "Nombre" + }, + "tooltip": { + "delete": "Borrar" + }, + "confirm": { + "delete": "¿Esta seguro que desea borrar este conocimiento?" + }, + "deleteSuccess": "Conocimiento borrado", + "status": { + "pending": "Pendiente", + "finished": "Finalizado", + "processing": "Procesando" + }, + "addKnowledge": "Agregar Conocimiento", + "form": { + "title": { + "label": "Título del Conocimiento", + "placeholder": "Ingresar un título de conocimiento", + "required": "El Título de conocimiento es obligatorio" + }, + "uploadFile": { + "label": "Subir un Archivo", + "uploadText": "Arraste y suelte un archivo aquí o haga click para subirlo", + "uploadHint": "Tipos de archivo soportados: .pdf, .csv, .txt, .md, .docx", + "required": "El archivo es obligatorio" + }, + "submit": "Enviar", + "success": "Conocimiento agregado exitosamente" + }, + "noEmbeddingModel": "Por favor, agregue un modelo de embedding de la página de configuraciones de RAG primero" +} diff --git a/src/assets/locale/es/option.json b/src/assets/locale/es/option.json new file mode 100644 index 0000000..3c48761 --- /dev/null +++ b/src/assets/locale/es/option.json @@ -0,0 +1,12 @@ +{ + "newChat": "Nuevo Chat", + "selectAPrompt": "Selecione un Prompt", + "githubRepository": "Repositorio de GitHub", + "settings": "Configuraciones", + "sidebarTitle": "Histórico del Chat", + "error": "Error", + "somethingWentWrong": "Hubo un error", + "validationSelectModel": "Selecione un modelo para continuar", + "deleteHistoryConfirmation": "¿Esta seguro que quiere borrar éste histórico?", + "editHistoryTitle": "Ingrese un nuevo título" +} diff --git a/src/assets/locale/es/playground.json b/src/assets/locale/es/playground.json new file mode 100644 index 0000000..afc3771 --- /dev/null +++ b/src/assets/locale/es/playground.json @@ -0,0 +1,29 @@ +{ + "ollamaState": { + "searching": "Buscando tu Ollama 🦙", + "running": "Ollama está funcionando 🦙", + "notRunning": "No fue posible conectar con Ollama 🦙", + "connectionError": "Hubo un error de conexión. Por favor, consulte la documentación para solucionar el problema." + }, + "formError": { + "noModel": "Por favor, selecione un modelo", + "noEmbeddingModel": "Por favor, defina un modelo de embedding para la página de configuraciones > RAG" + }, + "form": { + "textarea": { + "placeholder": "Ingrese un mensaje..." + }, + "webSearch": { + "on": "On", + "off": "Off" + } + }, + "tooltip": { + "searchInternet": "Buscar en Internet", + "speechToText": "Voz a Texto", + "uploadImage": "Subir Imagén", + "stopStreaming": "Parar Transmisión", + "knowledge": "Conocimiento" + }, + "sendWhenEnter": "Enviar cuando presione Enter" +} diff --git a/src/assets/locale/es/settings.json b/src/assets/locale/es/settings.json new file mode 100644 index 0000000..e8c46cb --- /dev/null +++ b/src/assets/locale/es/settings.json @@ -0,0 +1,289 @@ +{ + "generalSettings": { + "title": "Configuraciones Generales", + "settings": { + "heading": "Configuraciones de la Interfaz Web", + "speechRecognitionLang": { + "label": "Idioma de Reconocimiento de Voz", + "placeholder": "Selecione un idioma" + }, + "language": { + "label": "Idioma", + "placeholder": "Selecione un idioma" + }, + "darkMode": { + "label": "Cambiar Tema", + "options": { + "light": "Claro", + "dark": "Oscuro" + } + }, + "copilotResumeLastChat": { + "label": "Retomar el último chat al abrir el Panel Lateral (Copilot)" + }, + "hideCurrentChatModelSettings": { + "label": "Ocultar Configuraciones del Modelo de Chat Actual" + } + }, + "webSearch": { + "heading": "Manejo de la busqueda Web", + "searchMode": { + "label": "Realizar busquedas Simples en Internet" + }, + "provider": { + "label": "Motor de Busqueda", + "placeholder": "Selecione un motor de busqueda" + }, + "totalSearchResults": { + "label": "Resultados totales de la busqueda", + "placeholder": "Ingresar el total de Resultados de la busqueda" + } + }, + "system": { + "heading": "Configuraciones del Sistema", + "deleteChatHistory": { + "label": "Borrar Histórico del Chat", + "button": "Borrar", + "confirm": "¿Esta seguro que desea borrar su histórico del chat? Esta acción no podra ser desecha." + }, + "export": { + "label": "Exportar Histórico del Chat, Base de Conocimiento y Prompts", + "button": "Exportar Datos", + "success": "Exportación exitosa" + }, + "import": { + "label": "Importar Histórico del Chat, Base de Conocimiento y Prompts", + "button": "Importar Datos", + "success": "Importación existosa", + "error": "Error de importación" + } + }, + "tts": { + "heading": "Configuraciones de Text-to-speech", + "ttsEnabled": { + "label": "Habilitar Texto-a-Voz" + }, + "ttsProvider": { + "label": "Proveedor de Text-to-speech", + "placeholder": "Selecione un proveedor" + }, + "ttsVoice": { + "label": "Voz de Text-to-speech", + "placeholder": "Selecione una voz" + }, + "ssmlEnabled": { + "label": "Habilitar SSML (Speech Synthesis Markup Language)" + } + } + }, + "manageModels": { + "title": "Administar de Modelos", + "addBtn": "Agregar Nuevo Modelo", + "columns": { + "name": "Nombre", + "digest": "Resumen", + "modifiedAt": "Modificado", + "size": "Tamaño", + "actions": "Acciones" + }, + "expandedColumns": { + "parentModel": "Modelo Padre", + "format": "Formato", + "family": "Familia", + "parameterSize": "Tamaño de Parametros", + "quantizationLevel": "Nível de Quantización" + }, + "tooltip": { + "delete": "Borrar Modelo", + "repull": "Traer nuevamente el Modelo" + }, + "confirm": { + "delete": "¿Esta seguro que desea borrar este modelos?", + "repull": "¿Esta seguro que desea traer nuevamente este modelo?" + }, + "modal": { + "title": "Traer Nuevo Modelo", + "placeholder": "Ingresar el nombre del modelo", + "pull": "Traer Modelo" + }, + "notification": { + "pullModel": "Trayendo Modelo", + "pullModelDescription": "Trayendo modelo {{modelName}}. Para más detalles, verifique el ícono de la extensión.", + "success": "Exito", + "error": "Error", + "successDescription": "Modelo traido exitosamente", + "successDeleteDescription": "Modelo borrado exitosamente", + "someError": "Hubo un error. Intente nuevamente más tarde" + } + }, + "managePrompts": { + "title": "Administrar de Prompts", + "addBtn": "Agregar Nuevo Prompt", + "option1": "Normal", + "option2": "RAG", + "questionPrompt": "Prompt de Pregunta", + "columns": { + "title": "Título", + "prompt": "Prompt", + "type": "Tipo de Prompt", + "actions": "Acciones" + }, + "systemPrompt": "Prompt del Sistema", + "quickPrompt": "Prompt Rápido", + "tooltip": { + "delete": "Borrar Prompt", + "edit": "Editar Prompt" + }, + "confirm": { + "delete": "¿Esta seguro que desea borrar este prompt? Esta acción no tiene vuelta a atrás." + }, + "modal": { + "addTitle": "Agregar Nuevo Prompt", + "editTitle": "Editar Prompt" + }, + "form": { + "title": { + "label": "Título", + "placeholder": "Mi Prompt genial", + "required": "Por favor, ingrese un título" + }, + "prompt": { + "label": "Prompt", + "placeholder": "Ingrese un prompt", + "required": "Por favor, ingrese un prompt", + "help": "Puede usar {key} como variable en su prompt." + }, + "isSystem": { + "label": "Es un Prompt del Sistema" + }, + "btnSave": { + "saving": "Agregando un Prompt...", + "save": "Agregar Prompt" + }, + "btnEdit": { + "saving": "Actualizando Prompt...", + "save": "Actualizar Prompt" + } + }, + "notification": { + "addSuccess": "Prompt Agregado", + "addSuccessDesc": "Prompt agregado exitosamente", + "error": "Error", + "someError": "Hubo un error. Intente nuevamente más tarde", + "updatedSuccess": "Prompt Actualizado", + "updatedSuccessDesc": "Prompt actualizado exitosamente", + "deletedSuccess": "Prompt Borrado", + "deletedSuccessDesc": "Prompt borrado exitosamente" + } + }, + "manageShare": { + "title": "Administrar los recursos compartidos", + "heading": "Configurar URL de Página Compartida", + "form": { + "url": { + "label": "URL de Página compartida", + "placeholder": "Ingresar URL de Página compartida", + "required": "Por favor, ingrese URL de Página compartida", + "help": "Por motivos de privacidad, podes hacer self-host de la página compartida y proveer una URL aqui. Aprende más." + } + }, + "webshare": { + "heading": "Compartir una Web", + "columns": { + "title": "Título", + "url": "URL", + "actions": "Acciones" + }, + "tooltip": { + "delete": "Borrar lo compartido" + }, + "confirm": { + "delete": "¿Esta seguro de desear borrar esta web compartida? Esta acción no tiene vuelta a atrás." + }, + "label": "Administrar páginas compartidas", + "description": "Habilitar o deshabilitar el recurso de páginas compartidas" + }, + "notification": { + "pageShareSuccess": "URL compartida actualizada exitosamente", + "someError": "Hubo un error. Intente nuevamente más tarde", + "webShareDeleteSuccess": "Web compartida borrada exitosamente com sucesso" + } + }, + "ollamaSettings": { + "title": "Configuraciones de Ollama", + "heading": "Configurar Ollama", + "settings": { + "ollamaUrl": { + "label": "URL de Ollama", + "placeholder": "Ingrese la URL de Ollama" + }, + "advanced": { + "label": "Configuración avanzada de URL de Ollama", + "urlRewriteEnabled": { + "label": "Habilitar o Deshabilitar URL Personalizada" + }, + "rewriteUrl": { + "label": "URL Personalizada", + "placeholder": "Ingresar URL Personalizada" + }, + "help": "Si tenes problemas de conexión con Ollama en Page Assist, podes configurar una URL de personalizada. Para saber más sobre la configuración, click aqui." + } + } + }, + "manageSearch": { + "title": "Administrar Busqueda Web", + "heading": "Configurar Busqueda Web" + }, + "about": { + "title": "Sobre", + "heading": "Sobre", + "chromeVersion": "Versión de Page Assist", + "ollamaVersion": "Versión de Ollama", + "support": "Podes apoyar el proyecto Page Assist haciendo donaciones o patrocinarnos a través de las seguientes plataformas:", + "koFi": "Apoyar en Ko-fi", + "githubSponsor": "Patrocinarnos en GitHub", + "githubRepo": "Repositorio de GitHub" + }, + "manageKnowledge": { + "title": "Administrar Conocimiento", + "heading": "Configurar Bases de Conocimiento" + }, + "rag": { + "title": "Configuraciones de RAG", + "ragSettings": { + "label": "Configuraciones de RAG", + "model": { + "label": "Modelo de embeddings", + "required": "Por favor, selecione un modelo", + "help": "Es recomendable usar modelos de embeddings como `nomic-embed-text`.", + "placeholder": "Selecione un modelo" + }, + "chunkSize": { + "label": "Tamaño del Chunk", + "placeholder": "Ingresar el tamaño del chunk", + "required": "Por favor, ingrese el tamaño del chunk" + }, + "chunkOverlap": { + "label": "Solapamiento del Chunk", + "placeholder": "Ingrese el solapamiento del chunk", + "required": "Por favor, ingresar el solapamiento del chunk" + } + }, + "prompt": { + "label": "Configurar el Prompt del RAG", + "option1": "Normal", + "option2": "Web", + "alert": "Es obsoleto configurar aquí el prompt del sistema. Por favor, use la sección de Administrar Prompts para agregar o editar prompts. Esta sección se quitará en una versión futura", + "systemPrompt": "Prompt del Sistema", + "systemPromptPlaceholder": "Ingresar el prompt del sistema", + "webSearchPrompt": "Prompt de la busqueda Web", + "webSearchPromptHelp": "No borre `{search_results}` del prompt.", + "webSearchPromptError": "Por favor, ingresar un prompt de busqueda web", + "webSearchPromptPlaceholder": "Ingrese un prompt de busqueda web", + "webSearchFollowUpPrompt": "Prompt de Seguimiento de busqueda Web", + "webSearchFollowUpPromptHelp": "No borre `{chat_history}` y `{question}` del prompt.", + "webSearchFollowUpPromptError": "Por favor, ingrese el prompt de seguimiento de la busqueda web", + "webSearchFollowUpPromptPlaceholder": "Su prompt de seguimiento de busqueda web" + } + } +} diff --git a/src/assets/locale/es/sidepanel.json b/src/assets/locale/es/sidepanel.json new file mode 100644 index 0000000..214c8b6 --- /dev/null +++ b/src/assets/locale/es/sidepanel.json @@ -0,0 +1,7 @@ +{ + "tooltip": { + "embed": "Puede demorar algunos minutos para incluir la página. Por favor, aguarde...", + "clear": "Borrar el histórico de conversación", + "history": "Histórico de la conversación" + } +} diff --git a/src/i18n/index.ts b/src/i18n/index.ts index 525ada9..6c5915f 100644 --- a/src/i18n/index.ts +++ b/src/i18n/index.ts @@ -8,6 +8,7 @@ import { ml } from "./lang/ml"; import { zh } from "./lang/zh"; import { ja } from "./lang/ja"; import { it } from "./lang/it"; +import { es } from "./lang/es"; import LanguageDetector from 'i18next-browser-languagedetector'; i18n @@ -16,6 +17,7 @@ i18n .init({ resources: { en: en, + es: es, fr: fr, "it": it, ml: ml, @@ -31,4 +33,4 @@ i18n lng: localStorage.getItem("i18nextLng") || "en", }) -export default i18n; \ No newline at end of file +export default i18n; diff --git a/src/i18n/lang/es.ts b/src/i18n/lang/es.ts new file mode 100644 index 0000000..c666286 --- /dev/null +++ b/src/i18n/lang/es.ts @@ -0,0 +1,15 @@ +import option from "@/assets/locale/es/option.json"; +import playground from "@/assets/locale/es/playground.json"; +import common from "@/assets/locale/es/common.json"; +import sidepanel from "@/assets/locale/es/sidepanel.json"; +import settings from "@/assets/locale/es/settings.json"; +import knowledge from "@/assets/locale/es/knowledge.json"; + +export const es = { + option, + playground, + common, + sidepanel, + settings, + knowledge +} diff --git a/src/i18n/support-language.ts b/src/i18n/support-language.ts index 89b0d97..7cd56a0 100644 --- a/src/i18n/support-language.ts +++ b/src/i18n/support-language.ts @@ -4,6 +4,10 @@ export const supportLanguage = [ label: "English", value: "en" }, + { + label: "Español", + value: "es" + }, { label: "Français", value: "fr" @@ -19,7 +23,7 @@ export const supportLanguage = [ { label: "Português (Brasil)", value: "pt-BR" - }, + }, { label: "മലയാളം", value: "ml" @@ -32,4 +36,4 @@ export const supportLanguage = [ label: "日本語", value: "ja-JP" } -] \ No newline at end of file +]