Skip to content

Commit

Permalink
fix(translations): pr portuguese translations (#933)
Browse files Browse the repository at this point in the history
* ✨ add typing to translations

* 🐛 add removed brain key in some languages

* 🐛 put correct translations for fr/es/ru

* fix(translation): missing a few

---------

Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
  • Loading branch information
gozineb and StanGirard committed Aug 12, 2023
1 parent 59ddfb4 commit d80178a
Show file tree
Hide file tree
Showing 19 changed files with 423 additions and 394 deletions.
31 changes: 28 additions & 3 deletions frontend/lib/config/LocaleConfig/resources.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable max-lines */
// import all namespaces English
import brain_en from "../../../public/locales/en/brain.json";
Expand Down Expand Up @@ -71,8 +70,34 @@ import updatePassword_ru from "../../../public/locales/ru/updatePassword.json";
import upload_ru from "../../../public/locales/ru/upload.json";
import user_ru from "../../../public/locales/ru/user.json";

type BrainTranslations = typeof import("../../../public/locales/en/brain.json");
//type all translations
export type Translations = {
brain: BrainTranslations;
chat: typeof import("../../../public/locales/en/chat.json");
config: typeof import("../../../public/locales/en/config.json");
delete_brain: typeof import("../../../public/locales/en/deleteBrain.json");
explore: typeof import("../../../public/locales/en/explore.json");
invitation: typeof import("../../../public/locales/en/invitation.json");
login: typeof import("../../../public/locales/en/login.json");
logout: typeof import("../../../public/locales/en/logout.json");
signUp: typeof import("../../../public/locales/en/signUp.json");
translation: typeof import("../../../public/locales/en/translation.json");
updatePassword: typeof import("../../../public/locales/en/updatePassword.json");
upload: typeof import("../../../public/locales/en/upload.json");
user: typeof import("../../../public/locales/en/user.json");
};

enum SupportedLanguages {
en = "en",
es = "es",
fr = "fr",
ptbr = "ptbr",
ru = "ru",
}

export const defaultNS = "translation";
export const resources = {
export const resources: Record<SupportedLanguages, Translations> = {
en: {
brain: brain_en,
chat: chat_en,
Expand Down Expand Up @@ -118,7 +143,7 @@ export const resources = {
user: user_fr,
delete_brain: delete_brain_fr,
},
pt: {
ptbr: {
brain: brain_ptbr,
chat: chat_ptbr,
config: config_ptbr,
Expand Down
40 changes: 20 additions & 20 deletions frontend/public/locales/es/brain.json
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
{
"searchBrain": "Buscar un cerebro",
"selectBrain": "Por favor, selecciona un cerebro",
"brainCreated": "Cerebro creado correctamente",
"newBrain": "Agregar nuevo cerebro",
"newBrainTitle": "Agregar nuevo cerebro",
"newBrainSubtitle": "Crea un nuevo espacio para tus datos",
"brainName": "Nombre del cerebro",
"brainNamePlaceholder": "Ejemplo: Anotaciones de historia",
"brainDescription": "Descripción",
"brainDescriptionPlaceholder": "Mi nuevo cerebro es acerca de...",
"shareBrain": "Compartir cerebro {{name}}",
"shareBrainUsers": "Usuarios con acceso",
"shareBrainLink": "Click para copiar y compartir tu cerebro",
"inviteUsers": "Agrega nuevos usuarios",
"brainName": "Nombre del cerebro",
"brainNamePlaceholder": "Ejemplo: Anotaciones de historia",
"brainUndefined": "Cerebro no definido",
"copiedToClipboard": "Copiado al portapeles",
"usersInvited": "Usuarios invitados correctamente",
"defaultBrain": "Cerebro por defecto",
"errorCreatingBrain": "Error al crear cerebro",
"errorFetchingBrainUsers": "Error al obtener usuarios del cerebro",
"errorSendingInvitation": "Un error ocurrió al enviar invitaciones",
"usersWithAccess": "Usuarios con acceso",
"brainUndefined": "Cerebro no definido",
"inviteUsers": "Agrega nuevos usuarios",
"newBrain": "Agregar nuevo cerebro",
"newBrainSubtitle": "Crea un nuevo espacio para tus datos",
"newBrainTitle": "Agregar nuevo cerebro",
"noBrainUsers": "Sin usuarios del cerebro",
"errorFetchingBrainUsers": "Error al obtener usuarios del cerebro",
"userRoleUpdated": "Actualizado {{email}} a {{newRole}}",
"userRoleUpdateFailed": "Error actualizado {{email}} a {{newRole}} ",
"searchBrain": "Buscar un cerebro",
"selectBrain": "Por favor, selecciona un cerebro",
"setDefaultBrain": "Asignar cerebro por defecto",
"shareBrain": "Compartir cerebro {{name}}",
"shareBrainLink": "Click para copiar y compartir tu cerebro",
"shareBrainUsers": "Usuarios con acceso",
"userRemoved": "Eliminado {{email}} del cerebro",
"userRemoveFailed": "Error al eliminar {{email}} del cerebro",
"defaultBrain": "Cerebro por defecto",
"setDefaultBrain": "Asignar cerebro por defecto",
"errorCreatingBrain": "Error al crear cerebro"
"userRoleUpdated": "Actualizado {{email}} a {{newRole}}",
"userRoleUpdateFailed": "Error actualizado {{email}} a {{newRole}} ",
"usersInvited": "Usuarios invitados correctamente",
"usersWithAccess": "Usuarios con acceso"
}
67 changes: 34 additions & 33 deletions frontend/public/locales/es/chat.json
Original file line number Diff line number Diff line change
@@ -1,35 +1,36 @@
{
"title": "Conversa con {{brain}}",
"knowledge": "conocimiento",
"keyboard_shortcuts": "Atajos de teclado",
"brains": "cerebros",
"subtitle": "Habla con un modelo de lenguaje acerca de tus datos subidos",
"limit_reached": "Has alcanzado el límite de peticiones, intente de nuevo más tarde",
"error_occurred": "Error al obtener respuesta",
"noCurrentBrain": "Sin cerebro seleccionado",
"errorParsingData": "Error al transformar datos",
"resposeBodyNull": "Cuerpo de respuesta vacío",
"receivedResponse": "Respuesta recibida. Iniciando gestión de stream...",
"errorCallingAPI": "Error al llamar a la API",
"ask": "Has una pregunta o describe un tarea.",
"begin_conversation_placeholder": "Inicia la conversación aquí...",
"thinking": "Pensando...",
"chat": "Conversar",
"errorFetching": "Error al obtener tus chats",
"chatDeleted": "Chat borrado correstamente. Id: {{id}}",
"errorDeleting": "Error al borrar chat: {{error}}",
"chatNameUpdated": "Nombre de chat actualizado",
"shortcut_select_brain": "@: Seleccionar un cerebro para hablar",
"shortcut_select_file": "/: Seleccionar un archivo para hablar",
"shortcut_choose_prompt": "#: Elegir una instrucción específica",
"shortcut_create_brain": "@+: Crear un nuevo cerebro",
"shortcut_feed_brain": "/+: Alimentar un cerebro con conocimiento",
"shortcut_create_prompt": "#+: Crear una nueva instrucción personalizada",
"shortcut_manage_brains": "CMDB: Administrar tus cerebros",
"shortcut_go_to_user_page": "CMDU: Ir a la página de usuario",
"shortcut_go_to_shortcuts": "CMDK: Ir a los atajos",
"chat_title_intro": "Chatea con tus",
"empty_brain_title_prefix": "Carga archivos en un",
"empty_brain_title_suffix": "y chatea con ellos",
"actions_bar_placeholder": "Haz una pregunta a @brains o /files y elige tu #indicación"
"actions_bar_placeholder": "Haz una pregunta a @brains o /files y elige tu #indicación",
"ask": "Has una pregunta o describe un tarea.",
"begin_conversation_placeholder": "Inicia la conversación aquí...",
"brain": "cerebro",
"brains": "cerebros",
"chat": "Conversar",
"chat_title_intro": "Conversación con",
"chatDeleted": "Chat borrado correstamente. Id: {{id}}",
"chatNameUpdated": "Nombre de chat actualizado",
"empty_brain_title_intro": "Chatea con tus",
"empty_brain_title_prefix": "Carga archivos en un",
"empty_brain_title_suffix": "y chatea con ellos",
"error_occurred": "Error al obtener respuesta",
"errorCallingAPI": "Error al llamar a la API",
"errorDeleting": "Error al borrar chat: {{error}}",
"errorFetching": "Error al obtener tus chats",
"errorParsingData": "Error al transformar datos",
"keyboard_shortcuts": "Atajos de teclado",
"limit_reached": "Has alcanzado el límite de peticiones, intente de nuevo más tarde",
"noCurrentBrain": "Sin cerebro seleccionado",
"receivedResponse": "Respuesta recibida. Iniciando gestión de stream...",
"resposeBodyNull": "Cuerpo de respuesta vacío",
"shortcut_choose_prompt": "#: Elegir una instrucción específica",
"shortcut_create_brain": "@+: Crear un nuevo cerebro",
"shortcut_create_prompt": "#+: Crear una nueva instrucción personalizada",
"shortcut_feed_brain": "/+: Alimentar un cerebro con conocimiento",
"shortcut_go_to_shortcuts": "CMDK: Ir a los atajos",
"shortcut_go_to_user_page": "CMDU: Ir a la página de usuario",
"shortcut_manage_brains": "CMDB: Administrar tus cerebros",
"shortcut_select_brain": "@: Seleccionar un cerebro para hablar",
"shortcut_select_file": "/: Seleccionar un archivo para hablar",
"subtitle": "Habla con un modelo de lenguaje acerca de tus datos subidos",
"thinking": "Pensando...",
"title": "Conversa con {{brain}}"
}
96 changes: 48 additions & 48 deletions frontend/public/locales/es/config.json
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
{
"title": "Configuración",
"subtitle": "Gestiona tu cerebro",
"settings": "Configuración",
"people": "Personas",
"knowledge": "Conocimiento",
"modelSection": "Configuración de Modelo",
"openAiKeyLabel": "Clave de Open AI",
"openAiKeyPlaceholder": "sk-xxx",
"modelLabel": "Modelo",
"anthropicKeyPlaceholder":"Clave de la API de Anthropic",
"anthropicKeyLabel":"Clave de la API de Anthropic",
"temperature": "Temperatura",
"maxTokens": "Tokens máximo",
"accountSection": "Tu Cuenta",
"signedInAs": "Sesión iniciada como",
"backendSection": "Configuración de Backend",
"backendUrlPlaceHolder": "URL del Backend",
"backendUrlLabel": "URL del Backend",
"supabaseURLPlaceHolder": "URL de Supabase",
"supabaseURLLabel": "URL de Supabase",
"supabaseKeyPlaceHolder": "Clave de Supabase",
"supabaseKeyLabel": "Clave de Supabase",
"keepInLocal": "Mantener localmente",
"customPromptSection": "Indicadores personalizados",
"selectQuivrPersonalityBtn": "Select a Quivr Personality",
"promptName": "Título del indicador",
"promptNamePlaceholder": "El nombre de mi súper indicador",
"promptContent": "Contenido del indicador",
"promptContentPlaceholder": "Como una IA, tu...",
"promptRemoved": "Indicador eliminado correctamente",
"errorRemovingPrompt": "Error eliminando indicador",
"removePrompt": "Quitar indicador",
"newAPIKey": "Crea una nueva clave",
"configSaved": "Configuración guardada",
"configReset": "Configuración restaurada",
"invalidOpenAiKey": "Clave de OpenAI inválida",
"error.createApiKey": "No se pudo crear la clave API",
"error.copy": "No se pudo copiar",
"updatingBrainSettings": "Actualizando configuración del cerebro...",
"defaultBrainSet": "Cerebro asignado como predeterminado",
"nameRequired": "El nombre es necesario",
"promptFieldsRequired": "Título y contenido de indicador son necesarios",
"brainUpdated": "Cerebro actualizado correctamente",
"publicPrompts": "Selecciona un indicador público",
"roleRequired": "No tienen el rol necesario para acceder a esta pestaña 🧠💡🥲.",
"requireAccess": "Por favor, solicita acceso al dueño",
"ohno": "¡Oh no!",
"noUser": "Sin usuarios"
"accountSection": "Tu Cuenta",
"anthropicKeyLabel": "Clave de la API de Anthropic",
"anthropicKeyPlaceholder": "Clave de la API de Anthropic",
"backendSection": "Configuración de Backend",
"backendUrlLabel": "URL del Backend",
"backendUrlPlaceHolder": "URL del Backend",
"brainUpdated": "Cerebro actualizado correctamente",
"configReset": "Configuración restaurada",
"configSaved": "Configuración guardada",
"customPromptSection": "Indicadores personalizados",
"defaultBrainSet": "Cerebro asignado como predeterminado",
"error.copy": "No se pudo copiar",
"error.createApiKey": "No se pudo crear la clave API",
"errorRemovingPrompt": "Error eliminando indicador",
"invalidOpenAiKey": "Clave de OpenAI inválida",
"keepInLocal": "Mantener localmente",
"knowledge": "Conocimiento",
"maxTokens": "Tokens máximo",
"modelLabel": "Modelo",
"modelSection": "Configuración de Modelo",
"nameRequired": "El nombre es necesario",
"newAPIKey": "Crea una nueva clave",
"noUser": "Sin usuarios",
"ohno": "¡Oh no!",
"openAiKeyLabel": "Clave de Open AI",
"openAiKeyPlaceholder": "sk-xxx",
"people": "Personas",
"promptContent": "Contenido del indicador",
"promptContentPlaceholder": "Como una IA, tu...",
"promptFieldsRequired": "Título y contenido de indicador son necesarios",
"promptName": "Título del indicador",
"promptNamePlaceholder": "El nombre de mi súper indicador",
"promptRemoved": "Indicador eliminado correctamente",
"publicPrompts": "Selecciona un indicador público",
"removePrompt": "Quitar indicador",
"requireAccess": "Por favor, solicita acceso al dueño",
"roleRequired": "No tienen el rol necesario para acceder a esta pestaña 🧠💡🥲.",
"selectQuivrPersonalityBtn": "Selecciona una Personalidad Quivr",
"settings": "Configuración",
"signedInAs": "Sesión iniciada como",
"subtitle": "Gestiona tu cerebro",
"supabaseKeyLabel": "Clave de Supabase",
"supabaseKeyPlaceHolder": "Clave de Supabase",
"supabaseURLLabel": "URL de Supabase",
"supabaseURLPlaceHolder": "URL de Supabase",
"temperature": "Temperatura",
"title": "Configuración",
"updatingBrainSettings": "Actualizando configuración del cerebro..."
}
18 changes: 9 additions & 9 deletions frontend/public/locales/es/explore.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"title": "Explora datos subidos",
"subtitle": "Ver o borrar datos guardados usados por tu cerebro",
"empty": "¡Oh No!, Tu Cerebro está vacío",
"noBrain": "Id de Cerebro no encontrado",
"sessionNotFound": "Sesión no encontrada",
"chunkNumber": "No. de partes: {{quantity}}",
"deleteConfirmText": "¿Realmente quieres eliminar?",
"deleteConfirmTitle": "Confirmar",
"deleted": "{{fileName}} borrado del cerebro {{brain}}",
"empty": "¡Oh No!, Tu Cerebro está vacío",
"errorDeleting": "Error borrando {{fileName}}",
"view": "Ver",
"chunkNumber": "No. de partes: {{quantity}}",
"noBrain": "Id de Cerebro no encontrado",
"notAvailable": "No disponible",
"deleteConfirmTitle": "Confirmar",
"deleteConfirmText": "¿Realmente quieres eliminar?"
"sessionNotFound": "Sesión no encontrada",
"subtitle": "Ver o borrar datos guardados usados por tu cerebro",
"title": "Explora datos subidos",
"view": "Ver"
}
16 changes: 8 additions & 8 deletions frontend/public/locales/es/invitation.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"wellcome": "Bienvenido/a a {{brain}}!",
"invitationMessage": "Te han invitado a unirte a este cerebro como un {{role}} y empezar a explorar. ¿Aceptas este entusiasmante viaje?",
"processingRequest": "Procesando tu pedido...",
"accept": "¡Sí, cuenta conmigo!",
"reject": "No, gracias",
"invitationNotFound": "Esta invitación no es válida",
"errorCheckingInvitation": "Ocurrió un error durante la comprobación de la invitación",
"accepted": "Invitación aceptada",
"errorAccepting": "Ocurrió un error aceptando la invitación",
"declined": "Invitación rechazada",
"errorDeclining": "Ocurrió un error rechazando la invitación"
"errorAccepting": "Ocurrió un error aceptando la invitación",
"errorCheckingInvitation": "Ocurrió un error durante la comprobación de la invitación",
"errorDeclining": "Ocurrió un error rechazando la invitación",
"invitationMessage": "Te han invitado a unirte a este cerebro como un {{role}} y empezar a explorar. ¿Aceptas este entusiasmante viaje?",
"invitationNotFound": "Esta invitación no es válida",
"processingRequest": "Procesando tu pedido...",
"reject": "No, gracias",
"wellcome": "Bienvenido/a a {{brain}}!"
}
18 changes: 9 additions & 9 deletions frontend/public/locales/es/login.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
{
"title": "Iniciar sesión",
"subtitle": "Un gusto tenerte de vuelta",
"signup": "¿No tienes una cuenta? Registrate aquí",
"errorMailMissed": "Por favor ingresa tu dirección de email",
"Failedtofetch": "Error al obtener datos",
"forgottenPassword": "Olvidé mi contraseña",
"googleLogin": "Iniciar con Google",
"magicLink": "Enviar Enlace Mágico",
"Invalidlogincredentials": "Credenciales inválidas",
"loginSuccess": "Sesión iniciada correctamente",
"errorMailMissed": "Por favor ingresa tu dirección de email",
"recoveryMailSended": "El correo de recuperación será enviado si el email es reconocido",
"Invalidlogincredentials" : "Credenciales inválidas",
"password.updated": "¡Contraseña actualizada!",
"magicLink": "Enviar Enlace Mágico",
"new_password": "Nueva contraseña",
"Failedtofetch": "Error al obtener datos"
"password.updated": "¡Contraseña actualizada!",
"recoveryMailSended": "El correo de recuperación será enviado si el email es reconocido",
"signup": "¿No tienes una cuenta? Registrate aquí",
"subtitle": "Un gusto tenerte de vuelta",
"title": "Iniciar sesión"
}
6 changes: 3 additions & 3 deletions frontend/public/locales/es/logout.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"title": "Cerrar sesión",
"subtitle": "Hasta pronto",
"areYouSure": "¿Seguro que quieres cerrar la sesión?",
"cancel": "Regresar",
"error": "Error al cerrar sesión {{errorMessage}}",
"loggedOut": "Sesión finalizada"
"loggedOut": "Sesión finalizada",
"subtitle": "Hasta pronto",
"title": "Cerrar sesión"
}
16 changes: 8 additions & 8 deletions frontend/public/locales/es/signUp.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"title": "Registrarse",
"subtitle": "Crea tu cuenta",
"email": "Correo electrónico",
"password": "Contraseña",
"errorSignUp": "Error al registrarse: {{errorMessage}}",
"googleLogin": "Iniciar con Google",
"login": "¿Ya tienes una cuenta? Inicia sesión",
"loginButton": "Iniciar sesión",
"signUpButton": "Registrarse",
"mailSended": "Correo de confirmación enviado, por favor verifica tu buzón",
"or": "o",
"login": "¿Ya tienes una cuenta? Inicia sesión",
"googleLogin": "Iniciar con Google",
"errorSignUp": "Error al registrarse: {{errorMessage}}",
"mailSended": "Correo de confirmación enviado, por favor verifica tu buzón"
"password": "Contraseña",
"signUpButton": "Registrarse",
"subtitle": "Crea tu cuenta",
"title": "Registrarse"
}

0 comments on commit d80178a

Please sign in to comment.