|
| 1 | +import { OttWebsocketError, BehaviorOption, Role } from "ott-common/models/types"; |
| 2 | + |
| 3 | +export default { |
| 4 | + "common": { |
| 5 | + "yes": "Si", |
| 6 | + "no": "No", |
| 7 | + "ok": "OK", |
| 8 | + "cancel": "Cancelar", |
| 9 | + "close": "Cerrar", |
| 10 | + "close-all": "Cerrar Todos", |
| 11 | + "add": "Agregar", |
| 12 | + "remove": "Eliminar", |
| 13 | + "delete": "Borrar", |
| 14 | + "play": "Jugar", |
| 15 | + "pause": "Pausar", |
| 16 | + "save": "Guardar", |
| 17 | + "search": "Buscar", |
| 18 | + "undo": "Deshacer", |
| 19 | + "copy": "Copiar", |
| 20 | + "show": "Mostrar", |
| 21 | + "hide": "Esconder", |
| 22 | + "discard": "Desechar", |
| 23 | + "loading": "Cargando...", |
| 24 | + "view": "Mirar", |
| 25 | + "restore": "Restaurar", |
| 26 | + "success": "Éxito", |
| 27 | + }, |
| 28 | + "landing": { |
| 29 | + hero: { |
| 30 | + title: "Disfrutar juntos.", |
| 31 | + description: |
| 32 | + "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.", |
| 33 | + btns: { |
| 34 | + create: "@:nav.create.title", |
| 35 | + browse: "Navegar salas", |
| 36 | + source: "Ver el código original", |
| 37 | + }, |
| 38 | + }, |
| 39 | + intro: { |
| 40 | + title: "Las fiestas de visualización remota ahora son mucho más fáciles", |
| 41 | + name: "OpenTogetherTube", |
| 42 | + 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", |
| 43 | + 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.", |
| 44 | + text3: "Actualmente, puedes ver videos en línea con tus amigos de Youtube, Vimeo, Dailymotion, enlaces directos a videos .mp4 y", |
| 45 | + link: "hay más en camino", |
| 46 | + }, |
| 47 | + features: { |
| 48 | + "title": "Características Principales", |
| 49 | + "syncronized-playback": { |
| 50 | + title: "Reproducción sincronizada", |
| 51 | + text: "Golpea play, y el video se reproduce para todos\nen la sala. Asi de simple", |
| 52 | + }, |
| 53 | + "permanent-rooms": { |
| 54 | + title: "Salas Permanentes", |
| 55 | + text: "¿Tú y el equipo vienen aquí bastante? Evite la molestia\nde enviar un enlace nuevo cada vez. Las salas\npermanentes obtienen una URL personalizada que no cambia.", |
| 56 | + }, |
| 57 | + "dark-theme": { |
| 58 | + title: "Modo Oscuro", |
| 59 | + 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.", |
| 60 | + }, |
| 61 | + "room-permissions": { |
| 62 | + title: "Permisos de sala", |
| 63 | + 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.", |
| 64 | + }, |
| 65 | + "voting-system": { |
| 66 | + title: "Sistema de votación", |
| 67 | + 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.", |
| 68 | + }, |
| 69 | + "playlist-copying": { |
| 70 | + title: "Copia de lista de reproducción", |
| 71 | + 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.", |
| 72 | + }, |
| 73 | + }, |
| 74 | + support: { |
| 75 | + title: "Apoyar el Desarrollo", |
| 76 | + description1: |
| 77 | + "OpenTogetherTube no sería posible sin la ayuda de contribuyentes y seguidores como usted.", |
| 78 | + description2: |
| 79 | + "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.", |
| 80 | + how: "¿Cómo puedo ayudar?", |
| 81 | + sponsor: "Conviértete en patrocinador", |
| 82 | + contribute: "Contribuir", |
| 83 | + }, |
| 84 | + }, |
| 85 | + "footer": { |
| 86 | + "disclaimer": |
| 87 | + "Descargo de responsabilidad: El proyecto OpenTogetherTube no está asociado con TogetherTube ni con Watch2Gether.", |
| 88 | + "made-in": "Hecho en America", |
| 89 | + "thanks-to": "Agradecimientos especiales a", |
| 90 | + "privacy-policy": "Política de privacidad", |
| 91 | + "attribution": "Atribución", |
| 92 | + }, |
| 93 | + "not-found": { |
| 94 | + title: "Página no encontrada", |
| 95 | + home: "@:nav.home", |
| 96 | + browse: "@:landing.hero.btns.browse", |
| 97 | + }, |
| 98 | + "quick-room": { |
| 99 | + text: "Haciendo una sala temporaria para ti...", |
| 100 | + }, |
| 101 | + "attribution": { |
| 102 | + "sponsorblock-text": "Utiliza SponsorBlock datos de", |
| 103 | + }, |
| 104 | + "nav": { |
| 105 | + "home": "Página Principal", |
| 106 | + "browse": "Navegar", |
| 107 | + "faq": "FAQ", |
| 108 | + "bug": "Reportar un Error", |
| 109 | + "support": "Apoyarme!", |
| 110 | + "login": "Registrarse", |
| 111 | + "link-discord": "Conectar Discord", |
| 112 | + "logout": "Cerrar Sesión", |
| 113 | + "create": { |
| 114 | + "title": "Crear Sala", |
| 115 | + "temp": "Crear Sala Temporaria", |
| 116 | + "temp-desc": "Comienza a ver videos con tus amigos ahora", |
| 117 | + "perm": "Crear Sala Permanente", |
| 118 | + "perm-desc": "Perfecto para visitantes frecuentes.", |
| 119 | + }, |
| 120 | + }, |
| 121 | + "room-list": { |
| 122 | + "no-rooms": "No hay salas en este momento......", |
| 123 | + "create": "@:nav.create.title", |
| 124 | + "no-description": "Sin descripción.", |
| 125 | + "nothing-playing": "Nada Jugando.", |
| 126 | + }, |
| 127 | + "room": { |
| 128 | + "title-temp": "Sala Temporario", |
| 129 | + "kick-me": "Sacame", |
| 130 | + "rewind": "Devolver 10s", |
| 131 | + "skip": "Adelantar 10s", |
| 132 | + "play-pause": "Reproducir/Pausar", |
| 133 | + "next-video": "Siguiente vídeo", |
| 134 | + "next-video-vote": "Vota para saltar el vídeo", |
| 135 | + "toggle-fullscreen": "Alternar pantalla completa", |
| 136 | + "con-status": { |
| 137 | + connecting: "Conectando...", |
| 138 | + connected: "Conectado", |
| 139 | + }, |
| 140 | + "tabs": { |
| 141 | + queue: "Cola", |
| 142 | + settings: "Ajustes", |
| 143 | + }, |
| 144 | + "users": { |
| 145 | + title: "Usuarios", |
| 146 | + set: "Establece tu nombre", |
| 147 | + empty: "Parece que no hay nadie más aquí. ¡Invita a algunos amigos!", |
| 148 | + you: "Tu", |
| 149 | + demote: "Degradar", |
| 150 | + promote: "Promover", |
| 151 | + kick: "Sacar", |
| 152 | + }, |
| 153 | + }, |
| 154 | + "privacy": { |
| 155 | + title: "@:footer.privacy-policy", |
| 156 | + }, |
| 157 | + "chat": { |
| 158 | + "title": "Hablar", |
| 159 | + "type-here": "Escribe tu mensaje aquí...", |
| 160 | + }, |
| 161 | + "share-invite": { |
| 162 | + title: "Compartir Invitacion", |
| 163 | + text: "Copia este enlace y compártelo con tus amigos!", |
| 164 | + copied: "Copiado!", |
| 165 | + }, |
| 166 | + "video": { |
| 167 | + "add-explanation": "Agregar a la cola.", |
| 168 | + "playnow": "Reproducir ahora", |
| 169 | + "playnow-explanation": |
| 170 | + "Reproduce este video ahora, empujando el video actual al principio de la cola.", |
| 171 | + "no-video": "No se está reproduciendo ningún video.", |
| 172 | + "no-video-text": 'Haz clic en "Agregar" para añadir un video.', |
| 173 | + }, |
| 174 | + "add-preview": { |
| 175 | + "add-all": "Agregar a la cola", |
| 176 | + "placeholder": |
| 177 | + "Escriba para buscar en YouTube o ingrese la URL de un video para agregarlo a la cola", |
| 178 | + "title": "Que puedo agregar??", |
| 179 | + "single-videos": "Vídeos Individuales", |
| 180 | + "playlists": "Listas de reproducción", |
| 181 | + "playlist": "Lista de reproducción", |
| 182 | + "text": "O simplemente escriba texto para buscar en Youtube.", |
| 183 | + "search-for": 'Busque "{search}" en YouTube presionando Intro o haciendo clic en Buscar.', |
| 184 | + "platforms": { |
| 185 | + "youtube-videos": "Vídeos de Youtube: {url}", |
| 186 | + "vimeo-videos": "Vídeos de Vimeo: {url}", |
| 187 | + "dailymotion-videos": "Vídeos de Dailymotion: {url}", |
| 188 | + "any-mp4-videos": "Cualquier video público .mp4: {url}", |
| 189 | + "youtube-playlists": "Listas de reproducción de youtube: {url}", |
| 190 | + "youtube-channels": "Canales de Youtube: {url}", |
| 191 | + "subreddits": "Subreddits: {url}", |
| 192 | + }, |
| 193 | + "messages": { |
| 194 | + "unknown-status": |
| 195 | + "Estado desconocido para agregar respuesta de vista previa: {status}.", |
| 196 | + "unknown-error": |
| 197 | + "Se produjo un error desconocido al obtener la vista previa de agregar. Vuelve a intentarlo más tarde.", |
| 198 | + "failed-to-get-add-preview": |
| 199 | + "No se pudo obtener la vista previa para agregar. Probablemente es un error; consulte la consola para obtener más detalles.", |
| 200 | + "failed-to-all-videos": "Error en todos los vídeos: {message}", |
| 201 | + }, |
| 202 | + }, |
| 203 | + "processed-text": { |
| 204 | + "link-hint": "Haga clic para copiar este enlace a la pestaña de agregar.", |
| 205 | + }, |
| 206 | + "video-queue": { |
| 207 | + "no-videos": "No hay vídeos en la cola.", |
| 208 | + "add-video": "Agregar un vídeos", |
| 209 | + "export": "Exportar", |
| 210 | + "export-diag-title": "Exportar Cola", |
| 211 | + "export-hint": 'Copie y pegue este texto en la pestaña "Agregar" para restaurar esta cola.', |
| 212 | + "restore": "¿Quieres restaurar los vídeos de la cola anterior?", |
| 213 | + "restore-queue": "¿Restaurar Cola?", |
| 214 | + "restore-queue-hint": |
| 215 | + "Esto es lo que estaba en la cola la última vez que esta sala estuvo activa. ¿Quieres restaurarlo?", |
| 216 | + }, |
| 217 | + "video-queue-item": { |
| 218 | + "experimental": "¡Soporte experimental para este servicio! Espere que se rompa mucho.", |
| 219 | + "play-next": "Reproducir Próximo", |
| 220 | + "play-last": "Reproducir Último", |
| 221 | + "messages": { |
| 222 | + "video-added": "Vídeo agregado", |
| 223 | + "video-removed": "Vídeos borrado", |
| 224 | + }, |
| 225 | + "start-at": "Empieza en {timestamp}", |
| 226 | + }, |
| 227 | + "room-settings": { |
| 228 | + "title": "@:create-room-form.title", |
| 229 | + "description": "@:create-room-form.description", |
| 230 | + "visibility": "@:create-room-form.visibility", |
| 231 | + "public": "@:create-room-form.public", |
| 232 | + "unlisted": "@:create-room-form.unlisted", |
| 233 | + "queue-mode": "@:create-room-form.queue-mode", |
| 234 | + "manual": "@:create-room-form.manual", |
| 235 | + "manual-hint": |
| 236 | + "Comportamiento normal predeterminado, funciona como lo piensas. Puedes reordenar manualmente los elementos en la cola.", |
| 237 | + "vote": "@:create-room-form.vote", |
| 238 | + "vote-hint": "El vídeo más votado se reproduce a continuación.", |
| 239 | + "loop": "Loop", |
| 240 | + "loop-hint": "Cuando termine el video, colóquelo al final de la cola.", |
| 241 | + "dj": "DJ", |
| 242 | + "dj-hint": |
| 243 | + "Cuando termine el video, comience el mismo video desde el principio. Bueno para reproducir música de fondo.", |
| 244 | + "auto-skip-text": |
| 245 | + "Omitir automáticamente segmentos patrocinados, introducciones, autopromociones, etc. utilizando los datos de SponsorBlock.", |
| 246 | + "permissions-not-available": "Los permisos no están disponibles en salas temporarias", |
| 247 | + "room-needs-owner": |
| 248 | + "Esta sala necesita un propietario antes de poder modificar los permisos.", |
| 249 | + "login-to-claim": "Inicie sesión para reclamar esta sala.", |
| 250 | + "arent-able-to-modify-permissions": "No puedes modificar los permisos en esta sala.", |
| 251 | + "settings-applied": "Configuración aplicada", |
| 252 | + "now-own-the-room": "Ahora eres dueño de la sala {room}.", |
| 253 | + "load-failed": "No se pudo cargar la configuración de la sala.", |
| 254 | + "restore-queue": "Restaurar la cola cuando la sala esté cargada.", |
| 255 | + "enable-vote-skip": "Habilitar la omisión de votos", |
| 256 | + }, |
| 257 | + "create-room-form": { |
| 258 | + "card-title": "Crear una Sala Permanente.", |
| 259 | + "create-room": "Crear Sala", |
| 260 | + "name": "Nombre", |
| 261 | + "name-hint": "Utilizado en la URL de la sala. No se puede cambiar más tarde.", |
| 262 | + "title": "Título", |
| 263 | + "title-hint": "Opcional", |
| 264 | + "description": "Descripción", |
| 265 | + "description-hint": "@:create-room-form.title-hint", |
| 266 | + "visibility": "Visibilidad", |
| 267 | + "visibility-hint": "Controla si la sala aparece o no en la lista de salas.", |
| 268 | + "queue-mode": "Modo de Cola", |
| 269 | + "manual": "Manual", |
| 270 | + "vote": "Votar", |
| 271 | + "public": "Público", |
| 272 | + "unlisted": "No incluido en listado", |
| 273 | + "rules": { |
| 274 | + "name": { |
| 275 | + "name-required": "Se requiere el nombre.", |
| 276 | + "no-spaces": "El nombre no debe contener espacios.", |
| 277 | + "length": "El nombre debe tener entre 3 y 32 caracteres.", |
| 278 | + "alphanumeric": |
| 279 | + "El nombre solo debe contener caracteres alfanuméricos, guiones y guiones bajos.", |
| 280 | + "taken": "Nombre ya esta en uso.", |
| 281 | + }, |
| 282 | + "invalid-visibility": "Visibilidad no válida", |
| 283 | + "invalid-queue": "Modo de cola no válido", |
| 284 | + }, |
| 285 | + "unknown-error": "Un error desconocido ocurrió. Vuelve a intentarlo más tarde.", |
| 286 | + }, |
| 287 | + "login-form": { |
| 288 | + "login": "@:nav.login", |
| 289 | + "register": "Registrar", |
| 290 | + "login-discord": "Iniciar sesión con Discord.", |
| 291 | + "email": "Correo Electrónico", |
| 292 | + "email-or-username": "Correo Electrónico o Nombre de Usuario", |
| 293 | + "username": "Nombre de Usuario", |
| 294 | + "password": "Contraseña", |
| 295 | + "retype-password": "Vuelva a escribir la contraseña", |
| 296 | + "email-optional": |
| 297 | + "Dando un correo electrónico es opcional, pero hace imposible recuperar su cuenta si olvida su contraseña.", |
| 298 | + "rules": { |
| 299 | + "email-required": "Correo electronico es requerido", |
| 300 | + "valid-email": "Debe ser un correo electrónico válido", |
| 301 | + "username-required": "Se requiere nombre de usuario", |
| 302 | + "username-length": "El nombre de usuario debe tener entre 1 y {length} caracteres", |
| 303 | + "password-required": "Se requiere contraseña", |
| 304 | + "password-length": "La contraseña debe tener al menos 10 caracteres", |
| 305 | + "retype-password": "Por favor, escriba de nuevo su contraseña", |
| 306 | + "passwords-match": "Las contraseñas deben coincidir", |
| 307 | + }, |
| 308 | + "errors": { |
| 309 | + "something-weird-happened": |
| 310 | + "Algo extraño sucedió, pero ¿es posible que hayas iniciado sesión? Recarga la página.", |
| 311 | + "login-failed-noserver": |
| 312 | + "No se pudo iniciar sesión, pero el servidor no dijo por qué. Reportar esto como un error.", |
| 313 | + "login-failed": "No pude iniciar sesión y no sé por qué. Reportar esto como un error.", |
| 314 | + "register-failed-noserver": |
| 315 | + "No se pudo registrar, pero el servidor no dijo por qué. Reportar esto como un error.", |
| 316 | + "register-failed": |
| 317 | + "No pude registrarme y no sé por qué. Verifique la consola y reportar esto como un error.", |
| 318 | + "in-use": "Ya en uso.", |
| 319 | + }, |
| 320 | + "change-password": { |
| 321 | + title: "Cambiar la contraseña", |
| 322 | + success: "Cambio de contraseña exitoso.", |
| 323 | + forgot: "¿Olvidaste tu contraseña?", |
| 324 | + prompt: "Ingrese la dirección de correo electrónico o el nombre de usuario asociado con su cuenta.", |
| 325 | + reset: "Restablecer", |
| 326 | + sent: "Correo electrónico de restablecimiento de contraseña enviado.", |
| 327 | + failed: "No se puede restablecer la contraseña.", |
| 328 | + }, |
| 329 | + }, |
| 330 | + "permissions-editor": { |
| 331 | + "title": "Editor de permisos", |
| 332 | + "text1": |
| 333 | + "Todos los permisos concedidos a usuarios con menos privilegios se conceden automáticamente a usuarios con más privilegios.", |
| 334 | + "text2": |
| 335 | + "A los administradores se les concede todo. El propietario de la sala es automáticamente administrador y no puede ser degradado.", |
| 336 | + "viewing-as": "Viendo como", |
| 337 | + "permission": "Permisos", |
| 338 | + }, |
| 339 | + "client-settings": { |
| 340 | + "title": "Preferencias", |
| 341 | + "description": |
| 342 | + "Estas configuraciones se guardan en su navegador y solo le afectan a usted.", |
| 343 | + "activator": "@:client-settings.title", |
| 344 | + "room-layout": "Diseño de la sala", |
| 345 | + "theme": "Modo", |
| 346 | + "sfx-enable": "Habilitar efectos de sonido", |
| 347 | + "sfx-volume": "Volumen del efecto de sonido", |
| 348 | + }, |
| 349 | + "connect-overlay": { |
| 350 | + "title": "Desconectado", |
| 351 | + "find-another": "Encuentra otra sala", |
| 352 | + "dc-reasons": { |
| 353 | + [OttWebsocketError.UNKNOWN]: "@:connect-overlay.dc-reasons.unknown", |
| 354 | + [OttWebsocketError.ROOM_NOT_FOUND]: "Sala no encontrada.", |
| 355 | + [OttWebsocketError.ROOM_UNLOADED]: "La sala se ha cerrado.", |
| 356 | + [OttWebsocketError.MISSING_TOKEN]: |
| 357 | + "No se proporcionó ninguna token. Actualiza la página y vuelve a intentarlo. Si continúa, abra un problema en GitHub.", |
| 358 | + [OttWebsocketError.KICKED]: "Fuiste expulsado de la sala por un usuario.", |
| 359 | + unknown: "Algo pasó, pero no sabemos qué. Por favor, reporte esto como un error.", |
| 360 | + }, |
| 361 | + }, |
| 362 | + "vote-skip": { |
| 363 | + remaining: "{count} votos más para omitir", |
| 364 | + }, |
| 365 | + "roles": { |
| 366 | + [Role.Administrator]: "Administrador", |
| 367 | + [Role.Moderator]: "Moderador", |
| 368 | + [Role.TrustedUser]: "Usuario Confiado", |
| 369 | + [Role.RegisteredUser]: "Usuario Registrado", |
| 370 | + [Role.UnregisteredUser]: "Usuario no Registrado", |
| 371 | + [Role.Owner]: "Dueño", |
| 372 | + }, |
| 373 | + "errors": { |
| 374 | + BadPasswordError: |
| 375 | + "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.", |
| 376 | + BadApiArgumentException: "Mal argumento de API. Probablemente es un error, Reportalo", |
| 377 | + }, |
| 378 | + "player": { |
| 379 | + "buffer-warn": { |
| 380 | + spans: "Aún no has almacenado suficiente cantidad del vídeo. Intervalos de tiempo actuales almacenados en búfer: {range}", |
| 381 | + }, |
| 382 | + }, |
| 383 | +}; |
0 commit comments