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

client: Spanish Localization #1263

Merged
merged 7 commits into from
Jan 23, 2024
Merged
Show file tree
Hide file tree
Changes from 3 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
4 changes: 4 additions & 0 deletions client/src/components/navbar/LocaleSelector.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ const locales = [
text: "🇷🇺",
value: "ru",
},
{
text: "🇪🇸",
value: "sp",
Victor-M-Giraldo marked this conversation as resolved.
Show resolved Hide resolved
},
];

export const LocaleSelector = defineComponent({
Expand Down
378 changes: 378 additions & 0 deletions client/src/locales/sp.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,378 @@
import { OttWebsocketError, BehaviorOption, Role } from "ott-common/models/types";

export default {
"common": {

Check failure on line 4 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `····` with `↹`
"yes": "Si",

Check failure on line 5 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"no": "No",

Check failure on line 6 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"ok": "OK",

Check failure on line 7 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"cancel": "Cancelar",

Check failure on line 8 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"close": "Cerrar",

Check failure on line 9 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"close-all": "Cerrar Todos",

Check failure on line 10 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"add": "Agregar",

Check failure on line 11 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"remove": "Eliminar",

Check failure on line 12 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"delete": "Borrar",

Check failure on line 13 in client/src/locales/sp.ts

View workflow job for this annotation

GitHub Actions / lint (18.x)

Replace `········` with `↹↹`
"play": "Jugar",
"pause": "Pausar",
"save": "Guardar",
"search": "Buscar",
"undo": "Deshacer",
"copy": "Copiar",
"show": "Mostrar",
"hide": "Esconder",
"discard": "Desechar",
"loading": "Cargando...",
"view": "Mirar",
"restore": "Restaurar",
"success": "Éxito",
},
"landing": {
hero: {
title: "Disfrutar juntos.",
description:
"Reproducción sincronizada en tiempo real. Sistema de votación opcional.\nModo oscuro. No es necesario registrarse. Código fuente abierto.\nNunca ha sido tan fácil ver vídeos juntos.",
btns: {
create: "@:nav.create.title",
browse: "Navegar salas",
source: "Ver el código original",
},
},
intro: {
title: "Las fiestas de visualización remota ahora son mucho más fáciles",
name: "OpenTogetherTube",
text1: "Es una plataforma de sincronizacion de videos en tiempo real.\nEs fácil para usar y no tienes que inscribirte. Simplemente crea un sala, agrega videos y\ninvita a tus amigos. BOOM! Estás listo para disfrutar de videos con tus amigos hasta las 3 de la mañana",
text2: "El TogetherTube original fue amado por su interfaz simple,\ny lo fácil que fue empezar a ver vídeos de inmediato.\nOpenTogetherTube pretende ser igual de fácil de usar y luego mejoralo\npara hacerlo aún mejor.",
text3: "Actualmente, puedes ver videos en línea con tus amigos de Youtube, Vimeo, Dailymotion, enlaces directos a videos .mp4 y",
link: "hay más en camino",
},
features: {
"title": "Características Principales",
"syncronized-playback": {
title: "Reproducción sincronizada",
text: "Golpea play, y el video se reproduce para todos\nen la sala. Asi de simple",
},
"permanent-rooms": {
title: "Salas Permanentes",
text: "You and the squad come here often? Avoid the hastle\nof sending out a new link every time. Permanent\nrooms get a custom url that doesn't change.",
},
"dark-theme": {
title: "Modo Oscuro",
text: "¿Estás viendo recopilaciones de Vine a altas horas de la noche?\nOpenTogetherTube tiene un modo oscuro automáticamente\npara que tus ojos no sufran.",
},
"room-permissions": {
title: "Permisos de sala",
text: "¿Cansado de desconocidos que se unen a tu sala y\ny agregando videos ruidosos a tu sesión relaja de hip-hop lofi?\nSimplemente bloquéelos para que no agreguen videos.",
},
"voting-system": {
title: "Sistema de votación",
text: "¿No puedes decidir qué ver a continuación? Cambie la cola\nal sistema de votación y deje que la democracia haga\nlo que mejor sabe hacer.",
},
"playlist-copying": {
title: "Copia de lista de reproducción",
text: "Agregue listas de reproducción o canales completos a la cola de videos\nde una vez para no tener que quedarse sentado agregando\ncada video a la cola uno por uno. Es la mejor manera\nde ver ese nuevo canal con tus amigos.",
},
},
support: {
title: "Apoyar el Desarrollo",
description1:
"OpenTogetherTube no sería posible sin la ayuda de contribuyentes y seguidores como usted.",
description2:
"Participe en el desarrollo contribuyendo con sus ideas o código, o muestre su apoyo convirtiéndose en patrocinador. Todas las donaciones se utilizan para pagar los costos de alojamiento, para el desarrollo de OpenTogetherTube y para mantener OpenTogetherTube libre de publicidad.",
how: "¿Cómo puedo ayudar?",
sponsor: "Conviértete en patrocinador",
contribute: "Contribuir",
},
},
"footer": {
"disclaimer":
"Descargo de responsabilidad: El proyecto OpenTogetherTube no está asociado con TogetherTube ni con Watch2Gether.",
"made-in": "Hecho en America",
"thanks-to": "Agradecimientos especiales a",
"privacy-policy": "Política de privacidad",
"attribution": "Atribución",
},
"not-found": {
title: "Página no encontrada",
home: "@:nav.home",
browse: "@:landing.hero.btns.browse",
},
"quick-room": {
text: "Haciendo una sala temporaria para ti...",
},
"attribution": {
"sponsorblock-text": "Utiliza SponsorBlock datos de",
},
"nav": {
"home": "Página Principal",
"browse": "Navegar",
"faq": "FAQ",
"bug": "Reportar un Error",
"support": "Apoyarme!",
"login": "Registrarse",
"link-discord": "Conectar Discord",
"logout": "Cerrar Sesión",
"create": {
"title": "Crear Sala",
"temp": "Crear Sala Temporaria",
"temp-desc": "Comienza a ver videos con tus amigos ahora",
"perm": "Crear Sala Permanente",
"perm-desc": "Perfecto para visitantes frecuentes.",
},
},
"room-list": {
"no-rooms": "No hay salas en este momento......",
"create": "@:nav.create.title",
"no-description": "Sin descripción.",
"nothing-playing": "Nada Jugando.",
},
"room": {
"title-temp": "Sala Temporario",
"kick-me": "Sacame",
"rewind": "Devolver 10s",
"skip": "Adelantar 10s",
"play-pause": "Reproducir/Pausar",
"next-video": "Siguiente vídeo",
"next-video-vote": "Vota para saltar el vídeo",
"toggle-fullscreen": "Alternar pantalla completa",
"con-status": {
connecting: "Conectando...",
connected: "Conectado",
},
"tabs": {
queue: "Cola",
settings: "Ajustes",
},
"users": {
title: "Usuarios",
set: "Establece tu nombre",
empty: "Parece que no hay nadie más aquí. ¡Invita a algunos amigos!",
you: "Tu",
demote: "Degradar",
promote: "Promover",
kick: "Sacar",
},
},
"privacy": {
title: "@:footer.privacy-policy",
},
"chat": {
"title": "Hablar",
"type-here": "Escribe tu mensaje aquí...",
},
"share-invite": {
title: "Compartir Invitacion",
text: "Copia este enlace y compártelo con tus amigos!",
copied: "Copiado!",
},
"video": {
"add-explanation": "Add to the queue.",
"playnow": "Play Now",
"playnow-explanation":
"Play this video now, pushing the current video to the top of the queue.",
"no-video": "No video is playing.",
"no-video-text": 'Click "Add" below to add a video.',
},
"add-preview": {
"add-all": "Agregar a la cola",
"placeholder": "Escriba para buscar en YouTube o ingrese la URL de un video para agregarlo a la cola",
"title": "Que puedo agregar??",
"single-videos": "Vídeos Individuales",
"playlists": "Listas de reproducción",
"playlist": "Lista de reproducción",
"text": "O simplemente escriba texto para buscar en Youtube.",
"search-for": 'Busque "{search}" en YouTube presionando Intro o haciendo clic en Buscar.',
"platforms": {
"youtube-videos": "Vídeos de Youtube: {url}",
"vimeo-videos": "Vídeos de Vimeo: {url}",
"dailymotion-videos": "Vídeos de Dailymotion: {url}",
"any-mp4-videos": "Cualquier video público .mp4: {url}",
"youtube-playlists": "Listas de reproducción de youtube: {url}",
"youtube-channels": "Canales de Youtube: {url}",
"subreddits": "Subreddits: {url}",
},
"messages": {
"unknown-status": "Estado desconocido para agregar respuesta de vista previa: {status}.",
"unknown-error": "Se produjo un error desconocido al obtener la vista previa de agregar. Vuelve a intentarlo más tarde.",
"failed-to-get-add-preview":
"No se pudo obtener la vista previa para agregar. Probablemente es un error; consulte la consola para obtener más detalles.",
"failed-to-all-videos": "Error en todos los vídeos: {message}",
},
},
"processed-text": {
"link-hint": "Haga clic para copiar este enlace a la pestaña de agregar.",
},
"video-queue": {
"no-videos": "No hay vídeos en la cola.",
"add-video": "Agregar un vídeos",
"export": "Exportar",
"export-diag-title": "Exportar Cola",
"export-hint": 'Copie y pegue este texto en la pestaña "Agregar" para restaurar esta cola.',
"restore": "¿Quieres restaurar los vídeos de la cola anterior?",
"restore-queue": "¿Restaurar Cola?",
"restore-queue-hint":
"Esto es lo que estaba en la cola la última vez que esta sala estuvo activa. ¿Quieres restaurarlo?",
},
"video-queue-item": {
"experimental": "¡Soporte experimental para este servicio! Espere que se rompa mucho.",
"play-next": "Reproducir Próximo",
"play-last": "Reproducir Último",
"messages": {
"video-added": "Vídeo agregado",
"video-removed": "Vídeos borrado",
},
"start-at": "Empieza en {timestamp}",
},
"room-settings": {
"title": "@:create-room-form.title",
"description": "@:create-room-form.description",
"visibility": "@:create-room-form.visibility",
"public": "@:create-room-form.public",
"unlisted": "@:create-room-form.unlisted",
"queue-mode": "@:create-room-form.queue-mode",
"manual": "@:create-room-form.manual",
"manual-hint":
"Comportamiento normal predeterminado, funciona como lo piensas. Puedes reordenar manualmente los elementos en la cola.",
"vote": "@:create-room-form.vote",
"vote-hint": "El vídeo más votado se reproduce a continuación.",
"loop": "Loop",
"loop-hint": "Cuando termine el video, colóquelo al final de la cola.",
"dj": "DJ",
"dj-hint":
"Cuando termine el video, comience el mismo video desde el principio. Bueno para reproducir música de fondo.",
"auto-skip-text":
"Omitir automáticamente segmentos patrocinados, introducciones, autopromociones, etc. utilizando los datos de SponsorBlock.",
"permissions-not-available": "Los permisos no están disponibles en salas temporarias",
"room-needs-owner": "Esta sala necesita un propietario antes de poder modificar los permisos.",
"login-to-claim": "Inicie sesión para reclamar esta habitación.",
"arent-able-to-modify-permissions": "No puedes modificar los permisos en esta sala.",
"settings-applied": "Configuración aplicada",
"now-own-the-room": "Ahora eres dueño de la sala {room}.",
"load-failed": "No se pudo cargar la configuración de la sala.",
"restore-queue": "Restaurar la cola cuando la sala esté cargada.",
"enable-vote-skip": "Habilitar la omisión de votos",
},
"create-room-form": {
"card-title": "Create una Sala Permanente.",
"create-room": "Create Sala",
"name": "Nombre",
"name-hint": "Utilizado en la URL de la sala. No se puede cambiar más tarde.",
"title": "Título",
"title-hint": "Opcional",
"description": "Descripción",
"description-hint": "@:create-room-form.title-hint",
"visibility": "Visibilidad",
"visibility-hint": "Controla si la habitación aparece o no en la lista de salas.",
"queue-mode": "Modo de Cola",
"manual": "Manual",
"vote": "Votar",
"public": "Público",
"unlisted": "No incluido en listado",
"rules": {
"name": {
"name-required": "Se requiere el nombre.",
"no-spaces": "El nombre no debe contener espacios.",
"length": "El nombre debe tener entre 3 y 32 caracteres.",
"alphanumeric":
"El nombre solo debe contener caracteres alfanuméricos, guiones y guiones bajos.",
"taken": "Nombre ya esta en uso.",
},
"invalid-visibility": "Visibilidad no válida",
"invalid-queue": "Modo de cola no válido",
},
"unknown-error": "Un error desconocido ocurrió. Vuelve a intentarlo más tarde.",
},
"login-form": {
"login": "@:nav.login",
"register": "Registrar",
"login-discord": "iniciar sesión con Discord.",
"email": "Correo Electrónico",
"email-or-username": "Correo Electrónico o Nombre de Usuario",
"username": "Nombre de Usuario",
"password": "Contraseña",
"retype-password": "Vuelva a escribir la contraseña",
"email-optional":
"Dando un correo electrónico es opcional, pero hace imposible recuperar su cuenta si olvida su contraseña.",
"rules": {
"email-required": "Correo electronico es requerido",
"valid-email": "Debe ser un correo electrónico válido",
"username-required": "Se requiere nombre de usuario",
"username-length": "El nombre de usuario debe tener entre 1 y {length} caracteres",
"password-required": "Se requiere contraseña",
"password-length": "La contraseña debe tener al menos 10 caracteres",
"retype-password": "Por favor, escriba de nuevo su contraseña",
"passwords-match": "Las contraseñas deben coincidir",
},
"errors": {
"something-weird-happened":
"Algo extraño sucedió, pero ¿es posible que hayas iniciado sesión? Recarga la página.",
"login-failed-noserver":
"No se pudo iniciar sesión, pero el servidor no dijo por qué. Reportar esto como un error.",
"login-failed": "No pude iniciar sesión y no sé por qué. Reportar esto como un error.",
"register-failed-noserver":
"No se pudo registrar, pero el servidor no dijo por qué. Reportar esto como un error.",
"register-failed":
"No pude registrarme y no sé por qué. Verifique la consola y reportar esto como un error.",
"in-use": "Ya en uso.",
},
"change-password": {
title: "Cambiar la contraseña",
success: "Cambio de contraseña exitoso.",
forgot: "¿Olvidaste tu contraseña?",
prompt: "Ingrese la dirección de correo electrónico o el nombre de usuario asociado con su cuenta.",
reset: "Restablecer",
sent: "Correo electrónico de restablecimiento de contraseña enviado.",
failed: "No se puede restablecer la contraseña.",
},
},
"permissions-editor": {
"title": "Editor de permisos",
"text1":
"Todos los permisos concedidos a usuarios con menos privilegios se conceden automáticamente a usuarios con más privilegios.",
"text2":
"A los administradores se les concede todo. El propietario de la sala es automáticamente administrador y no puede ser degradado.",
"viewing-as": "Viendo como",
"permission": "Permisos",
},
"client-settings": {
"title": "Preferencias",
"description": "Estas configuraciones se guardan en su navegador y solo le afectan a usted.",
"activator": "@:client-settings.title",
"room-layout": "Diseño de la sala",
"theme": "Modo",
"sfx-enable": "Habilitar efectos de sonido",
"sfx-volume": "Volumen del efecto de sonido",
},
"connect-overlay": {
"title": "Desconectado",
"find-another": "Encuentra otra sala",
"dc-reasons": {
[OttWebsocketError.UNKNOWN]: "@:connect-overlay.dc-reasons.unknown",
[OttWebsocketError.ROOM_NOT_FOUND]: "Sala no encontrada.",
[OttWebsocketError.ROOM_UNLOADED]: "La sala fue descargada.",
[OttWebsocketError.MISSING_TOKEN]:
"No se proporcionó ninguna ficha. Actualiza la página y vuelve a intentarlo. Si continúa, abra un problema en GitHub.",
[OttWebsocketError.KICKED]: "Fuiste expulsado de la habitación por un usuario.",
unknown: "Algo pasó, pero no sabemos qué. Por favor, reporte esto como un error.",
},
},
"vote-skip": {
remaining: "{count} votos más para omitir",
},
"roles": {
[Role.Administrator]: "Administrador",
[Role.Moderator]: "Moderador",
[Role.TrustedUser]: "Usuario Confiado",
[Role.RegisteredUser]: "Usuario Registrado",
[Role.UnregisteredUser]: "Usuario no Registrado",
[Role.Owner]: "Dueño",
},
"errors": {
BadPasswordError:
"La contraseña no cumple con los requisitos mínimos. Debe tener al menos 8 caracteres y contener 2 de las siguientes categorías de caracteres: letras minúsculas, letras mayúsculas, números, caracteres especiales.",
BadApiArgumentException: "Mal argumento de API. Probablemente se trate de un error, Reportalo",
},
"player": {
"buffer-warn": {
spans: "Aún no has almacenado suficiente cantidad del vídeo. Intervalos de tiempo actuales almacenados en búfer: {range}",
},
},
};
Loading