Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: add spanish (es) locale #390

Merged
merged 2 commits into from
Mar 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frontend/next-i18next.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module.exports = {
debug: false,
i18n: {
defaultLocale: "en",
locales: ["en", "ko", "fr", "pt-BR", "pt-PT"],
locales: ["en", "ko", "fr", "pt-BR", "pt-PT", "es"],
},
fallbackLng: {
default: ["en"],
Expand Down
11 changes: 11 additions & 0 deletions frontend/public/locales/es/activity.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"title": "Historial de eventos",
"subtitle": "Historial de eventos para este proyecto de Infisical.",
"event": {
"readSecrets": "Secrets vistas",
"updateSecrets": "Secrets actualizadas",
"addSecrets": "Secrets añadidas",
"deleteSecrets": "Secrets eliminadas"
},
"ip-address": "Dirección IP"
}
28 changes: 28 additions & 0 deletions frontend/public/locales/es/billing.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Uso & Facturación",
"description": "Visualiza y gestiona la suscripción de tu organización",
"subscription": "Suscripción",
"starter": {
"name": "Starter",
"price-explanation": "hasta 5 miembros",
"text": "¡Hasta 5 personas gratis!",
"subtext": "Después, $5 por miembro/mes."
},
"professional": {
"name": "Professional",
"price-explanation": "/miembro/mes",
"subtext": "Includes unlimited projects & members.",
"text": "Mantén la gestión de claves a medida que creces."
},
"enterprise": {
"name": "Enterprise",
"text": "Mantén la gestión de claves a medida que creces."
},
"current-usage": "Uso actual",
"free": "Gratis",
"downgrade": "Reducir",
"upgrade": "Mejorar",
"learn-more": "Saber más",
"custom-pricing": "A medida",
"schedule-demo": "Solicitar una demo"
}
34 changes: 34 additions & 0 deletions frontend/public/locales/es/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"head-title": "{{title}} | Infisical",
"error_project-already-exists": "Ya existe un proyecto con este nombre.",
"no-mobile": "Para usar Infisical, inicia sesión con un dispositivo de mayores dimesiones.",
"email": "Correo electrónico",
"password": "Contraseña",
"first-name": "Nombre",
"last-name": "Apellidos",
"logout": "Cerrar sesión",
"validate-required": "Por favor, introduce tu {{name}}",
"maintenance-alert": "Estamos experimentando problemas técnicos. Estamos trabajando para resolverlos. Por favor, vuelve en unos minutos.",
"click-to-copy": "Click para copiar",
"project-id": "ID de proyecto",
"save-changes": "Guardar cambios",
"saved": "Guardado",
"drop-zone": "Arrastra y suelta un archivo .env, .json o .yml aquí.",
"drop-zone-keys": "Arrastra y suelta un archivo .env, .json, or .yml aquí para añadir más secrets.",
"role": "Rol",
"role_admin": "admin",
"display-name": "Nombre visible",
"environment": "Entorno",
"expired-in": "Expira en",
"language": "Idioma",
"search": "Buscar...",
"note": "Nota",
"view-more": "Ver más",
"end-of-history": "Fin del historial",
"select-event": "Selecciona un evento",
"event": "Evento",
"user": "Usuario",
"source": "Fuente",
"time": "Hora",
"timestamp": "Marca temporal"
}
35 changes: 35 additions & 0 deletions frontend/public/locales/es/dashboard.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"title": "Secrets",
"og-title": "Gestiona tus archivos .env en segundos",
"og-description": "Infisical es una solución cifrada de extremo a extremo que habilita a los equipos a compartir archivos .env de forma sencilla.",
"search-keys": "Buscar claves...",
"add-key": "Añadir clave",
"personal": "Personal",
"personal-description": "Las claves personales solo son visibles para ti",
"shared": "Compartido",
"shared-description": "Claves compartidas son visibles para todo tu equipo",
"make-shared": "Hacer compartida",
"make-personal": "Hacer personal",
"add-secret": "Añadir una nueva clave",
"check-docs": {
"button": "Comprueba la documentación",
"title": "¡Buen trabajo!",
"line1": "Enhorabuena por añadir claves.",
"line2": "Averigua como usarlo desde tu código."
},
"sidebar": {
"secret": "Secret",
"key": "Clave",
"value": "valor",
"override": "Sobreescribir valor con el valor personal",
"version-history": "Historial de versiones",
"comments": "Comentarios & Notas",
"personal-explanation": "Esta clave es personal. No será compartida con ninguno de tus compañeros.",
"generate-random-hex": "Generar Hex aleatorio",
"digits": "dígitos",
"delete-key-dialog": {
"title": "Eliminar clave",
"confirm-delete-message": "¿Estás seguro de que quieres eliminar esta clave? Esta operación no se puede deshacer."
}
}
}
16 changes: 16 additions & 0 deletions frontend/public/locales/es/integrations.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"title": "Integraciones del proyecto",
"description": "Gestiona tus integraciones de Infisical con aplicaciones de terceros.",
"no-integrations1": "No tienes ninguna integración configurada. Cuando las tengas, aparecerán aquí.",
"no-integrations2": "Para empezar haz click en cualquiera de las opciones siguientes. Se necesitan tan solo 5 pasos.",
"available": "Integraciones con la nube",
"available-text1": "Haz click en la integración que quieras conectar. Esto hará que las variables de entorno se configuren automáticamente en los servicios de terceros seleccionados.",
"available-text2": "Nota: en la integración con Heroku, por motivos de seguridad, es imposible mantener el cifrado de extremo a extremo. En teoría, esto permite a Infisical descifrar tus variables de entorno. En la práctica, te podemos asegurar que esto nunca va a suceder. El núcleo del servicio Infisical siempre estará cifrado de extremo a extremo. Si tienes dudas, escríbenos a [email protected].",
"cloud-integrations": "Integraciones con la nube",
"framework-integrations": "Integraciones con frameworks",
"click-to-start": "Haz click en una integración para empezar a sincronizar las claves.",
"click-to-setup": "Haz click en un framework para ver las instrucciones de uso.",
"grant-access-to-secrets": "Autorizar Infisical el acceso a tus claves",
"why-infisical-needs-access": "La mayoría de las integraciones en la nube requieren a Infisical tener permiso para descifrar tus claves, para que puedan ser enviadas.",
"grant-access-button": "Autorizar acceso"
}
10 changes: 10 additions & 0 deletions frontend/public/locales/es/login.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"title": "Iniciar sesión",
"og-title": "Iniciar sesión en Infisical",
"og-description": "Infisical a simple end-to-end encrypted platform that enables teams to sync and manage their .env files.",
"login": "Iniciar sesión",
"need-account": "¿Necesitas una cuenta de Infisical?",
"create-account": "Crea una cuenta",
"forgot-password": "¿Has olvidado tu contraseña?",
"error-login": "Datos incorrectos."
}
28 changes: 28 additions & 0 deletions frontend/public/locales/es/mfa.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Registrarse",
"og-title": "Reemplaza los archivos .env con una línea de código. Regístrate en Infisical en solo 3 minutos.",
"og-description": "Infisical es una plataforma sencilla cifrada de extremo a extremo que permite a equipos sincronizar y gestionar API-keys y variables de entorno. Funciona con Node.js, Next.js, Gatsby, Nest.js...",
"signup": "Registrarse",
"already-have-account": "¿Ya tienes una cuenta? Inicia sesión",
"forgot-password": "¿Has olvidado tu contraseña?",
"verify": "Verificar",
"step1-start": "Vamos a empezar",
"step1-privacy": "Al crear la cuenta, aceptas nuestros Términos y has leído y comprendido nuestra Política de privacidad.",
"step1-submit": "Empezar",
"step2-message": "Hemos enviado un código a",
"step2-code-error": "Oops. Tu código es incorrecto. Intentos restantes:",
"step2-resend-alert": "¿No ves el código?",
"step2-resend-submit": "Volver a enviar",
"step2-resend-progress": "Reenviando...",
"step2-spam-alert": "Asegúrate de comprobar la carpeta de spam.",
"step3-message": "¡Casi hemos terminado!",
"step4-message": "Guarda tu Kit de emergencia",
"step4-description1": "Si pierdes el acceso a tu cuenta, tu Kit de emergencia es la única forma de iniciar sesión.",
"step4-description2": "Te recomendamos que lo descargues y lo guardes en un sitio seguro.",
"step4-description3": "Contiene tu Clave secreta, a la que no tenemos acceso y tampoco podemos recuperar si la pierdes.",
"step4-download": "Descargar PDF",
"step5-send-invites": "Enviar invitaciones",
"step5-invite-team": "Invita a tu equipo",
"step5-subtitle": "Infisical está pensado para usarlo con tus compañeros. Invítalos a probarlo.",
"step5-skip": "Saltar"
}
22 changes: 22 additions & 0 deletions frontend/public/locales/es/nav.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"support": {
"slack": "Unirse al Slack",
"docs": "Leer documentación",
"issue": "Abrir una Github Issue",
"email": "Envíanos un correo electrónico"
},
"user": {
"signed-in-as": "INICIADO COMO",
"current-organization": "ORGANIZACIÓN ACTUAL",
"usage-billing": "Uso & Facturación",
"invite": "Invitar miembros",
"other-organizations": "OTRA ORGANIZACIÓN"
},
"menu": {
"project": "PROYECTO",
"secrets": "Claves",
"members": "Miembros",
"integrations": "Integraciones",
"project-settings": "Configuración del proyecto"
}
}
13 changes: 13 additions & 0 deletions frontend/public/locales/es/section-api-key.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"api-keys": "Tokens de servicio",
"api-keys-description": "Cada token de servicio es específico para ti, para cada proyecto y para cada entorno en este proyecto.",
"add-new": "Añadir nuevo token",
"add-dialog": {
"title": "Añadir una API Key",
"description": "Especifica el nombre y el período de expiración. Cuando una API key es generada, solo podrás verla una vez hasta que desaparezca. Asegúrate de guardarla en algún lado.",
"name": "Nombre de la API Key",
"add": "Añadir API Key",
"copy-service-token": "Copia tu API key",
"copy-service-token-description": "Una vez que cierres esta ventana, no volverás a ver tu API key"
}
}
11 changes: 11 additions & 0 deletions frontend/public/locales/es/section-incident.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"incident-contacts": "Contactos de incidencias",
"incident-contacts-description": "Estos contactos serán notificados en caso de una incidencia grave.",
"no-incident-contacts": "No se han encontrado contactos para incidencias.",
"add-contact": "Añadir contacto",
"add-dialog": {
"title": "Añadir un contacto de incidencias",
"description": "Este contacto será notificado en el caso de una incidencia grave.",
"add-incident": "Añadir contacto de incidencias"
}
}
14 changes: 14 additions & 0 deletions frontend/public/locales/es/section-members.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"add-member": "Añadir miembro",
"org-members": "Miembros de la organización",
"org-members-description": "Gestiona los miembros de tu organización. Estos usuarios podrán ser agrupados en proyectos más tarde.",
"search-members": "Buscar miembros...",
"add-dialog": {
"add-member-to-project": "Añadir un miembro al proyecto",
"already-all-invited": "Todos los uaurios en tu organización han sido invitados.",
"add-user-org-first": "Añadir primero más usuarios a la organización.",
"user-will-email": "El usuario recibirá un correo electrónico con la invitación.",
"looking-add": "<0>Si quieres añadir usuarios a tu organización, haz</0><1>click aquí</1>",
"add-user-to-org": "Añadir usuarios a la organización"
}
}
11 changes: 11 additions & 0 deletions frontend/public/locales/es/section-password.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"password": "Contraseña",
"change": "Cambiar contraseña",
"current": "Contraseña actual",
"current-wrong": "La contraseña actual puede puede que sea incorrecta",
"new": "Nueva contraseña",
"validate-base": "La contraseña debe contener como mínimo:",
"validate-length": "14 caracteres",
"validate-case": "1 letra en minúsculas",
"validate-number": "1 número"
}
13 changes: 13 additions & 0 deletions frontend/public/locales/es/section-token.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"service-tokens": "Tokens de servicio",
"service-tokens-description": "Cada token de servicio es específico para ti, para cada proyecto y para cada entorno en este proyectos.",
"add-new": "Añadir nuevo token",
"add-dialog": {
"title": "Añade un nuevo token de servicio para {{target}}",
"description": "Cuando se genera un token, solo podrás verlo una vez antes de que desaparezca. Asegúrate de guardarlo en algún lugar.",
"name": "Nombre del token de servicio",
"add": "Añadir token de servicio",
"copy-service-token": "Copiar tu token de servicio",
"copy-service-token-description": "Una vez cierres esta ventana, no volverás a ver tu token de nuevo"
}
}
4 changes: 4 additions & 0 deletions frontend/public/locales/es/settings-members.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Miembros del proyecto",
"description": "Esta página muestra los miembros del proyecto seleccionado, y permite modificar sus permisos."
}
4 changes: 4 additions & 0 deletions frontend/public/locales/es/settings-org.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"title": "Configuración de la organización",
"description": "Gestiona los miembros de tu organización. Estos usuarios podrán ser gestionados en proyectos más adelante."
}
16 changes: 16 additions & 0 deletions frontend/public/locales/es/settings-personal.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"title": "Preferencias personales",
"description": "Visualiza y gestiona aquí tu información personal.",
"emergency": {
"name": "Kit de emergencia",
"text1": "Tu Kit de emergencia contiene la información que necesitarás para iniciar sesión en tu cuenta de Infisical.",
"text2": "Solo el último Kit de emergencia descargado es válido. Para conseguir uno nuevo, introduce tu contraseña.",
"download": "Descargar Kit de emergencia"
},
"change-language": "Cambiar idioma",
"api-keys": {
"title": "API Keys",
"description": "Gestiona tus API Keys personales para acceder a la API de Infisical.",
"add-new": "Añadir"
}
}
15 changes: 15 additions & 0 deletions frontend/public/locales/es/settings-project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"title": "Configuración de proyecto",
"description": "Esta configuración solo afecta al proyecto seleccionado.",
"danger-zone": "Zona de peligro",
"delete-project": "Eliminar proyecto",
"project-to-delete": "Proyecto a eliminar",
"danger-zone-note": "Tan pronto como elimines el proyecto, no podrás volver atrás. Esto eliminará todas las claves. Si aún quieres hacerlo, introduce el nombre del proyecto a continuación.",
"delete-project-note": "Nota: Solo puedes eliminar un proyecto si tienes más de uno",
"project-id-description": "Para integrar Infisical en tu aplicación y obtener la inyección automática de variables de entorno, debes usar el siguiente ID de Proyecto.",
"project-id-description2": "Para más guías, incluyendo ejemplos de código en diferentes lenguajes y frameworks, visita ",
"auto-generated": "Este es el ID único y autogenerado de proyecto. No se puede modificar.",
"docs": "Documentación de Infisical",
"auto-capitalization": "Mayúsculas automáticas",
"auto-capitalization-description": "De acuerdo con los estándares, Infisical pondrá en mayúsculas tus claves. Si quieres desactivar esta funcionalidad, lo puedes hacer aquí."
}
28 changes: 28 additions & 0 deletions frontend/public/locales/es/signup.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Registrarse",
"og-title": "Reemplaza los archivos .env con una línea de código. Regístrate en Infisical en solo 3 minutos.",
"og-description": "Infisical es una plataforma sencilla cifrada de extremo a extremo que permite a equipos sincronizar y gestionar API-keys y variables de entorno. Funciona con Node.js, Next.js, Gatsby, Nest.js...",
"signup": "Registrarse",
"already-have-account": "¿Ya tienes una cuenta? Inicia sesión",
"forgot-password": "¿Has olvidado tu contraseña?",
"verify": "Verificar",
"step1-start": "Vamos a empezar",
"step1-privacy": "Al crear la cuenta, aceptas nuestros Términos y has leído y comprendido nuestra Política de privacidad.",
"step1-submit": "Empezar",
"step2-message": "Hemos enviado un código a",
"step2-code-error": "Oops. Tu código es incorrecto. Intentos restantes:",
"step2-resend-alert": "¿No ves el código?",
"step2-resend-submit": "Volver a enviar",
"step2-resend-progress": "Reenviando...",
"step2-spam-alert": "Asegúrate de comprobar la carpeta de spam.",
"step3-message": "¡Casi hemos terminado!",
"step4-message": "Guarda tu Kit de emergencia",
"step4-description1": "Si pierdes el acceso a tu cuenta, tu Kit de emergencia es la única forma de iniciar sesión.",
"step4-description2": "Te recomendamos que lo descargues y lo guardes en un sitio seguro.",
"step4-description3": "Contiene tu Clave secreta, a la que no tenemos acceso y tampoco podemos recuperar si la pierdes.",
"step4-download": "Descargar PDF",
"step5-send-invites": "Enviar invitaciones",
"step5-invite-team": "Invita a tu equipo",
"step5-subtitle": "Infisical está pensado para usarlo con tus compañeros. Invítalos a probarlo.",
"step5-skip": "Saltar"
}
2 changes: 1 addition & 1 deletion frontend/src/pages/settings/personal/[id].tsx
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ export default function PersonalSettings() {
<ListBox
isSelected={lang}
onChange={setLanguage}
data={['en', 'ko', 'fr']}
data={['en', 'ko', 'fr', 'es']}
text={`${t('common:language')}: `}
/>
</div>
Expand Down