From 57030dbdbb0a2dea43f2bb85afb848c934f7c4d3 Mon Sep 17 00:00:00 2001 From: Anastasiia Solop <35258279+anastasiya1155@users.noreply.github.com> Date: Fri, 11 Aug 2023 09:42:38 +0300 Subject: [PATCH] add Spanish localisation (#822) --- .../src/components/LanguageSelector/index.tsx | 1 + client/src/i18n.ts | 4 + client/src/locales/es.json | 264 ++++++++++++++++++ client/src/types/general.ts | 2 +- client/src/utils/index.ts | 4 +- 5 files changed, 273 insertions(+), 2 deletions(-) create mode 100644 client/src/locales/es.json diff --git a/client/src/components/LanguageSelector/index.tsx b/client/src/components/LanguageSelector/index.tsx index 021138df73..ae1384b670 100644 --- a/client/src/components/LanguageSelector/index.tsx +++ b/client/src/components/LanguageSelector/index.tsx @@ -8,6 +8,7 @@ const localesMap: Record = { en: { name: 'English', icon: '🇬🇧' }, ja: { name: '日本', icon: '🇯🇵' }, zhCN: { name: '简体中文', icon: '🇨🇳' }, + es: { name: 'Español', icon: '🇪🇸' }, }; const LanguageSelector = () => { diff --git a/client/src/i18n.ts b/client/src/i18n.ts index 93e4e069db..536e725c56 100644 --- a/client/src/i18n.ts +++ b/client/src/i18n.ts @@ -4,6 +4,7 @@ import backend from 'i18next-http-backend'; import en from './locales/en.json'; import ja from './locales/ja.json'; import zhCN from './locales/zh-CN.json'; +import es from './locales/es.json'; import { getPlainFromStorage, LANGUAGE_KEY } from './services/storage'; // the translations @@ -19,6 +20,9 @@ const resources = { zhCN: { translation: zhCN, }, + es: { + translation: es, + }, }; i18n diff --git a/client/src/locales/es.json b/client/src/locales/es.json new file mode 100644 index 0000000000..702fcb5d5f --- /dev/null +++ b/client/src/locales/es.json @@ -0,0 +1,264 @@ +{ + "Documentation": "Documentación", + "Showing # result_zero": "No hubo coincidencias para su búsqueda. ¡Prueba diferentes combinaciones!", + "Showing # result_one": "Mostrando {{count}} resultado", + "Showing # result_other": "Mostrando {{count}} resultados", + "bloop crashed unexpectedly": "bloop se estrelló inesperadamente", + "By submitting this crash report you agree to send it to bloop for investigation.": "Al enviar este informe de choque, acepta enviarlo a bloop para la investigación.", + "Close": "Cerca", + "Describe the bug to help us reproduce it...": "Describe el error para ayudarnos a reproducirlo ...", + "Discord": "Discordia", + "Email address": "Dirección de correo electrónico", + "Email is not valid": "El correo no es válido", + "Full name": "Nombre completo", + "General": "General", + "Got it!": "¡Entiendo!", + "Offline": "Desconectada", + "Online": "En línea", + "Preferences": "Preferencias", + "Problem details and System configuration": "Detalles del problema y configuración del sistema", + "Provide any steps necessary to reproduce the problem...": "Proporcione los pasos necesarios para reproducir el problema ...", + "Report a bug": "Reportar un error", + "Sign In": "Iniciar sesión", + "Sign in with GitHub": "Iniciar sesión con Github", + "Status": "Estado", + "Submit bug report": "Enviar informe de error", + "Submit crash report": "Enviar informe de bloqueo", + "Thank you!": "¡Gracias!", + "Use GitHub to sign in to your account": "Use GitHub para iniciar sesión en su cuenta", + "We want to make this the best experience for you. If you encountered a bug, please submit this bug report to us. Our team will investigate as soon as possible.": "Queremos hacer de esta la mejor experiencia para usted. Si encontró un error, envíenos este informe de error. Nuestro equipo investigará lo antes posible.", + "We’ll investigate and reach out back soon if necessary.": "Investigaremos y comunicaremos pronto si es necesario.", + "Syncing repository": "Repositorio de sincronización", + "Public repository": "Repositorio público", + "key": "llave", + "Add a repository from your local machine": "Agregue un repositorio de su máquina local", + "Your GitHub repository": "Su repositorio de Github", + "Any repository from you private GitHub account": "Cualquier repositorio de su cuenta privada de github", + "Local repository": "Repositorio local", + "Any public repository hosted on GitHub": "Cualquier repositorio público alojado en GitHub", + "Add": "Agregar", + "All repositories": "Todos los repositorios", + "Sign out": "Desconectar", + "Settings": "Ajustes", + "Manage how you will be called in bloop": "Administre cómo se le llamará en bloop", + "First and last name": "Primer y apellido", + "First name": "Nombre de pila", + "Your name": "Su nombre", + "Last name": "Apellido", + "Your last name": "Tu apellido", + "Used to sign in, syncing and product updates": "Se utiliza para iniciar sesión, sincronizar y actualizaciones de productos", + "Email": "Correo electrónico", + "Your email address": "Su dirección de correo electrónico", + "Save changes": "Guardar cambios", + "Theme": "Tema", + "Select your interface color scheme": "Seleccione el esquema de color de su interfaz", + "System Preference": "Preferencia del sistema", + "Atom One Dark Pro": "Atom One Dark Pro", + "Solarized Light": "Solarized Light", + "Default": "Tema Predeterminado", + "VSCode Dark": "VSCode Dark", + "Abyss": "Abyss", + "Darcula": "Darcula", + "Dracula": "Dracula", + "Material": "Material", + "GitHub Dark": "GitHub Dark", + "Gruvbox Dark": "Gruvbox Dark", + "Kimbie": "Kimbie", + "Solarized Dark": "Solarized Dark", + "Tomorrow Night Blue": "Tomorrow Night Blue", + "Default Light": "Claro Predeterminado", + "Monokai": "Monokai", + "Night Owl": "Night Owl", + "GitHub Light": "GitHub Light", + "Gruvbox Light": "Gruvbox Light", + "VSCode Light": "VSCode Light", + "Quiet Light": "Quiet Light", + "No repositories": "Sin repositorios", + "As soon as you add a repository it will appear here.": "Tan pronto como agregue un repositorio, aparecerá aquí.", + "Last updated ": "Última actualización", + "Re-sync": "Volver a sincronizar", + "Remove": "Eliminar", + "Cloning...": "Clonación ...", + "Queued...": "Puesto en cola...", + "Cancel": "Cancelar", + "Indexing...": "Indexación...", + "We are syncing your repository to bloop. This might take a couple of minutes": "Estamos sincronizando su repositorio para bloop. Esto podría tomar un par de minutos", + "complete": "completa", + "Confirm": "Confirmar", + "Cancelling...": "Cancelada...", + "Cancelled": "Cancelada", + "cancelling": "cancelada", + "done": "hecho", + "cancelled": "cancelada", + "syncing": "sincronización", + "indexing": "indexación", + "Error": "Error", + "Remote removed ": "Remoto eliminado", + "Not synced": "No sincronizado", + "Removed": "Remota", + "Select any private repository you would like to sync": "Seleccione cualquier repositorio privado que desee sincronizar", + "Private repository": "Repositorio privado", + "Search repository...": "Repositorio de búsqueda ...", + "Alphabetically": "Alfabéticamente", + "Last updated": "Última actualización", + "No results...": "No hay resultados...", + "Nothing matched your search. Try a different combination!": "Nada coincidió con tu búsqueda. ¡Prueba una combinación diferente!", + "Already synced": "Ya sincronizado", + "Sync": "Sincronización", + "Scan a folder to sync it’s repositories.": "Escanee una carpeta para sincronizar sus repositorios.", + "Select folder": "Seleccione la carpeta", + "Sync local repositories": "Repositorios locales sincronizados", + "Scan a folder": "Escanear una carpeta", + "Change folder": "Cambiar carpeta", + "Select the folders you want to add to bloop. You can always sync, unsync or remove unwanted repositories later.": "Seleccione las carpetas que desea agregar a bloop. Siempre puede sincronizar, unsync o eliminar repositorios no deseados más adelante.", + "Repository url...": "URL de repositorio ...", + "Sync repository": "Repositorio de sincronización", + "Paste a link to any public repository you would like to index.": "Pegue un enlace a cualquier repositorio público que desee indexar.", + "This is not a public repository / We couldn't find this repository": "Este no es un repositorio público / No pudimos encontrar este repositorio", + "Verifying access...": "Verificación de acceso ...", + "Synced": "Sincronizada", + "Files in": "Archivos", + "Files": "Archivos", + "Copy search query to clipboard": "Copiar la consulta de búsqueda en el portapapeles", + "Search for code using regex": "Buscar código usando regex", + "Clear search history": "Limpiar historial de búsqueda", + "Search branches...": "Buscar ramas ...", + "Switch branch": "Rama de interruptor", + "Upgrade now": "Actualizar ahora", + "Upgrade plan": "Plan de actualización", + "to seamlessly explore code across all branches in your GitHub repositories, maximizing your code discovery capabilities.": "Para explorar sin problemas el código en todas las ramas en sus repositorios de GitHub, maximizando sus capacidades de descubrimiento de código.", + "GitHub Branches": "Ramas de Github", + "Fold everything": "Doblar todo", + "Reset filters": "Restablecer filtros", + "Hide filters": "Ocultar filtros", + "Filter lang...": "Filtro lang ...", + "Select all": "Seleccionar todo", + "File Type": "Tipo de archivo", + "View all results": "Ver todos los resultados", + "Query suggestions": "Sugerencias de consulta", + "Result suggestions": "Sugerencias de resultados", + "Show fewer results": "Mostrar menos resultados", + "# match_one": "{{count}} coincidencia", + "# match_other": "{{count}} coincidencias", + "Today": "Hoy", + "Expand everything": "Expandir todo", + "Language": "Idioma", + "Results": "Resultados", + "No results": "No hay resultados", + "Suggested combinations": "Combinaciones sugeridas", + "Show filters": "Mostrar filtros", + "Filters": "Filtros", + "Apply filters": "Aplicar filtros", + "Show # more match_one": "Mostrar {{count}} más coincidencia", + "Show # more match_other": "Mostrar {{count}} más coincidencias", + "Show less": "Muestra menos", + "Previous page": "Pagina anterior", + "Next page": "Siguiente página", + "Showing page {{page}} of {{totalPages}}": "Mostrando la página {{page}} de {{totalPages}}", + "Deselect all": "Deseleccionar todo", + "File": "Archivo", + "Open in sidebar": "Abrir en la barra lateral", + "Open in full view": "Abierto a la vista completa", + "Open in modal": "Abrir en modal", + "The line of code where identifier is defined": "La línea de código donde se define el identificador", + "The line of code where the identifier is referenced": "La línea de código donde se hace referencia al identificador", + "We weren't able to identify any references at the moment": "No pudimos identificar ninguna referencia en este momento", + "No references or definitions found": "No se encontraron referencias ni definiciones", + "Definitions": "Definiciones", + "References": "Referencias", + "definition": "definición", + "reference": "referencia", + "In this file": "En este archivo", + "All conversations": "Todas conversaciones", + "Sorry, this repository is not ready for search": "Lo siento, este repositorio no está listo para la búsqueda", + "Wait for the repository to finish syncing and try again": "Espere a que el repositorio termine de sincronizar e intente nuevamente", + "Create new": "Crear nueva", + "Show": "Mostrar", + "Anything I can help you with?": "¿Algo en lo que pueda ayudarte?", + "Hide": "Ocultar", + "Conversations": "Conversaciones", + "Delete": "Borrar", + "Answer Ready": "Respuesta lista", + "View": "Vista", + "Reading ": "Lectura", + "avatar": "avatar", + "Submit": "Entregar", + "Generating response...": "Generando respuesta ...", + "Responding...": "Respondiendo ...", + "Reading": "Lectura", + "Bad": "Mala", + "Good": "Bien", + "Show more": "Mostrar más", + "How would you rate this response?": "¿Cómo calificaría esta respuesta?", + "What was the issue with this response? How could it be improved?": "¿Cuál fue el problema con esta respuesta? ¿Cómo puede ser mejorado?", + "Failed to get a response from OpenAI. Try again in a few moments.": "No pudo obtener una respuesta de OpenAI. Prueba otra vez en unos instantes.", + "Bad response": "Mala respuesta", + "Explain lines {{lineStart}} - {{lineEnd}} in {{filePath}}": "Explique las líneas {{lineStart}} - {{lineEnd}} en {{filePath}}", + "Select less code": "Seleccione menos código", + "Ask bloop": "Preguntar bloop", + "Explain": "Explicar", + "Something went wrong": "Algo salió mal", + "chats in bloop": "Chats en bloop", + "Setup bloop": "Configuración bloop", + "Please log into your GitHub account to complete setup": "Inicie sesión en su cuenta de GitHub para completar la configuración", + "Select color theme:": "Seleccione el tema de color:", + "Connect account": "Cuenta de conexión", + "Continue": "Continuar", + "Back": "Atrás", + "Code expires in {{tokenExpireIn}}": "El código expira en {{tokenExpireIn}}", + "After launching the GitHub login window, you’ll need to perform the following steps:": "Después de iniciar la ventana de inicio de sesión de GitHub, deberá realizar los siguientes pasos:", + "or visit: ": "o visitar:", + "Authorise bloop": "Autorizar bloop", + "Enter the device code": "Ingrese el código del dispositivo", + "Note: GitHub OAuth login doesn't support granular repo or organisation level access. The token has a wide scope, but only repos you explicitly choose will be synced, and your account credentials are always stored locally.": "Nota: El inicio de sesión de GitHub OAuth no admite el Repo granular o el acceso a nivel de organización. El token tiene un amplio alcance, pero solo los reposteres que elige explícitamente se sincronizará, y las credenciales de su cuenta siempre se almacenan localmente.", + "Launch GitHub Login": "Iniciar sesión de GitHub de inicio", + "Copy": "Copiar", + "Copied": "Copiada", + "Waiting for authentication...": "Esperando la autenticación ...", + "Code has expired": "El código ha expirado", + "Generate new code": "Generar nuevo código", + "Relaunch GitHub auth": "Autenticación de relanzamiento de github", + "Disconnect": "Desconectar", + "Terms & conditions": "Términos y condiciones", + "By continuing you accept our": "Al continuar, aceptas nuestro", + "and ": "y", + "Privacy policy": "Política de privacidad", + "Welcome to bloop": "Bienvenido a bloop", + "Query your codebase in a natural conversation style, just like you’d speak to ChatGPT": "Consulte su base de código en un estilo de conversación natural, al igual que hablaría con chatgpt", + "Regex matching": "Regex coincidente", + "bloop enhances your development workflow in three key ways": "bloop mejora su flujo de trabajo de desarrollo de tres maneras clave", + "Natural language search": "Búsqueda de lenguaje natural", + "Match code, identifiers, paths and repos with regex extremely quickly, especially on large codebases": "Código de coincidencia, identificadores, rutas y repositorios con Regex extremadamente rápido, especialmente en grandes bases de código", + "Available in 10+ languages to help you find references and definitions": "Disponible en más de 10 idiomas para ayudarlo a encontrar referencias y definiciones", + "Got it": "Entiendo", + "Precise code navigation": "Navegación de código preciso", + "Show search steps": "Mostrar pasos de búsqueda", + "Hide search steps": "Ocultar pasos de búsqueda", + "To update your app, please visit our releases page on GitHub and download the latest version manually. Thank you for being a valued user of our app.": "Para actualizar su aplicación, visite nuestra página de lanzamientos en GitHub y descargue la última versión manualmente. Gracias por ser un valor valioso de nuestra aplicación.", + "Update Required": "Actualización requerida", + "Restart the app": "Reiniciar la aplicación", + "or ": "o", + "visit the downloads page": "Visite la página de descargas", + "Open dropdown": "Abierto", + "Prompt guide": "Guía inmediata", + "Like ChatGPT, bloop responds best to certain prompts. We’ve compiled a really quick guide on how better to prompt bloop.": "Al igual que ChatGPT, bloop responde mejor a ciertas indicaciones. Hemos compilado una guía realmente rápida sobre cómo mejor para impulsar bloop.", + "Skip (Not recommended)": "Skip (no recomendado)", + "We couldn't answer your question. You can try asking again in a few moments, or rephrasing your question.": "No pudimos responder a su pregunta. Puede intentar volver a preguntar en unos momentos o reformular su pregunta.", + "Stop generating": "Deja de generar", + "Take a quick look": "Echar un vistazo", + "Go back": "Regresa", + "Repo home": "Repositorio", + "Go forward": "Avanzar", + "History": "Historia", + "Yesterday": "Ayer", + "Regex search...": "Búsqueda regex ...", + "Searching...": "Buscando...", + "The folder is empty": "La carpeta está vacía", + "We haven't found any files to index in this folder": "No hemos encontrado ningún archivo para indexar en esta carpeta", + "We've made some exciting enhancements to bloop! To continue enjoying the full functionality, including the natural language search feature, please update your app to the latest version.": "¡Hemos realizado algunas mejoras emocionantes para bloop! Para continuar disfrutando de la funcionalidad completa, incluida la función de búsqueda de lenguaje natural, actualice su aplicación a la última versión.", + "To update your app, please visit our releases page on GitHub and download the latest version manually. Thank you for using bloop.": "Para actualizar su aplicación, visite nuestra página de lanzamientos en GitHub y descargue la última versión manualmente. Gracias por usar bloop.", + "View in {{viewer}}": "Ver en {{viewer}}", + "Open file": "Abrir documento", + "Edit": "Editar", + "Editing a previously submitted question will discard all answers and questions following it.": "La edición de una pregunta enviada anteriormente descartará todas las respuestas y preguntas que lo sigan." +} diff --git a/client/src/types/general.ts b/client/src/types/general.ts index 3d309278e1..406d180d4c 100644 --- a/client/src/types/general.ts +++ b/client/src/types/general.ts @@ -309,4 +309,4 @@ export type FileHighlightsType = Record< ({ lines: [number, number]; color: string; index: number } | undefined)[] >; -export type LocaleType = 'en' | 'ja' | 'zhCN'; +export type LocaleType = 'en' | 'ja' | 'zhCN' | 'es'; diff --git a/client/src/utils/index.ts b/client/src/utils/index.ts index 77659f0f29..03cbc16d35 100644 --- a/client/src/utils/index.ts +++ b/client/src/utils/index.ts @@ -1,6 +1,6 @@ import { MouseEvent } from 'react'; import { v4 as uuidv4 } from 'uuid'; -import { ja, zhCN } from 'date-fns/locale'; +import { ja, zhCN, es } from 'date-fns/locale'; import { LocaleType, RepoType, RepoUi } from '../types/general'; import langs from './langs.json'; @@ -324,6 +324,8 @@ export const getDateFnsLocale = (locale: LocaleType) => { return { locale: ja }; case 'zhCN': return { locale: zhCN }; + case 'es': + return { locale: es }; default: return undefined; }