diff --git a/README.md b/README.md index 07acd9c8..cb7f7b81 100644 --- a/README.md +++ b/README.md @@ -53,3 +53,9 @@ npm run app:build ``` Credit: thermo74 :) + +## Translations + +- Spanish by TerminabloxHD +- French by Skarab42 +- English by Skarab42 diff --git a/app/server/libs/i18next/config.js b/app/server/libs/i18next/config.js index 594c02cf..bfb43445 100644 --- a/app/server/libs/i18next/config.js +++ b/app/server/libs/i18next/config.js @@ -5,7 +5,7 @@ module.exports = { ns: "app", defaultNS: "app", fallbackLng: "en", - supportedLngs: ["en", "fr"], + supportedLngs: ["en", "fr", "es"], saveMissingTo: "all", saveMissing: watch, }; diff --git a/app/static/locales/es/app.json b/app/static/locales/es/app.json new file mode 100644 index 00000000..324df265 --- /dev/null +++ b/app/static/locales/es/app.json @@ -0,0 +1,225 @@ +{ + "sentences": { + "welcome-message": "Bienvenido", + "waiting-for-connexion": "En espera de establecer la connexion", + "ask-for-client-reload": "Aplicar las modificaciones?", + "open-in-window": "Abrir en una ventana", + "open-in-browser": "Abrir en el navegador", + "no-panel-found": "Ningun panel encontrado o_O!", + "open-edit-mode": "Pasar en modo edición presionando el lápiz.", + "click-to-add-panel": "Presione '+' para añadir tu primer panel.", + "click-to-add-widget": "Presione '+' para añadir tu primer widget.", + "powers-group": "Panel", + "ask-for-panel-deletion": "Eliminar \"{{name}}\"?", + "no-widget-found": "Ningún botón encontrado o_O!", + "add-grid-widget": "Añadir un botón.", + "ask-for-widget-deletion": "Eliminar el botón \"{{name}}\"?", + "widget-settings": "Normas del botón.", + "background-color": "Color de fondo", + "file-manager": "Administrador de archivos", + "open-file-manager": "Abrir administrador de archivos", + "select-file": "Seleccionar un archivo", + "browse-file": "Buscar un archivo", + "upload-file": "Añadir un archivo", + "file-already-exists": "El archivo ya existe.", + "disallowed-file-type": "Tipo de archivo no autorizado.", + "obs-is-not-initialized": "OBS no ha sido inicializado.", + "file-is-empty": "El archivo está vacío.", + "file-list-empty": "Ningún archivo", + "file-uploaded-successfully": "Archivo añadido", + "background-image": "Imagen de fondo", + "ask-remove-file": "Eliminar definitivamente \"{{filename}}\"?", + "file-can-be-used-by-other-widgets": "El archivo puede ser utilizado por otros botones!", + "obs-not-connected": "OBS no esta conectado !", + "open-anime-timeline": "Abrir Timeline", + "no-file-selected": "Ningún archivo seleccionado", + "no-file-added": "Ningún archivo añadido", + "add-file-to-timeline": "Añadir un archivo.", + "electron-open-on-startup": "Abrir Marv minimizado", + "connect-with-twitch": "Conectarse a Twitch", + "open-twitch-chat-window": "Abrir el chat de Twitch", + "dont-ask-me-again": "No volver a mostrar", + "first-start-title": "Connexión a OBS !", + "loading-fonts-list": "Cargando fuentes", + "double-click-to-edit": "Presioname dos veces", + "edit-mode": "Modo edición", + "add-panel": "Añadir un panel", + "command-name-must-be-unique": "El nombre del comando debe ser único.", + "check-update-at-startup": "Verifique actualizaciones al inicio.", + "new-version-available": "Una nueva versión esta disponible.", + "close-marv-before-update": "Cierre Marv antes de iniciar la actualización !", + "close-app": "Cierre Marv !" + }, + "words": { + "settings": "opciones", + "yes": "si", + "no": "no", + "connect": "conexión", + "disconnect": "deconexión", + "connected": "conectado", + "disconnected": "desconectado", + "connecting": "conectando", + "off": "apagando", + "stream": "difusión", + "record": "grabando", + "quit": "salir", + "remove": "eliminar", + "rename": "renombrar", + "label": "Titulo", + "size": "talla", + "padding": "márgenes", + "align": "alineamiento", + "color": "color", + "borders": "bordes", + "delete": "eliminar", + "warning": "atención", + "position": "posición", + "component": "Tipo de elemento", + "none": "ningún", + "scene": "escena", + "trigger": "desencadenar", + "easing": "easing", + "language": "idioma", + "keyframe": "Llave de animación", + "theme": "Tema", + "channel": "canal", + "loading": "cargando", + "download": "descargar", + "event": "evento", + "muted": "Mutearse", + "autoplay": "lectura automatica", + "info": "info", + "attributes": "atributos", + "styles": "estilos", + "transformations": "transformaciones", + "command": "comando", + "immediat": "inmediato", + "queue": "cola", + "asap": "asap", + "add": "añadir", + "usage": "utilización", + "description": "descripción", + "cooldown": "cooldown", + "done": "terminado", + "back": "volver", + "width": "anchura", + "height": "altura", + "disabled": "desactivado", + "reward": "recompensa", + "online": "en directo", + "offline": "hors live", + "top": "arriba", + "bottom": "abajo", + "left": "izquierda", + "center": "centro", + "right": "derecha", + "refresh": "actualizar ", + "all": "todos", + "top left": "arriba izquierda", + "top right": "arriba derecha", + "bottom left": "abajo izquierda", + "bottom right": "abajo derecha", + "error": "error", + "help": "ayuda" + }, + "obs": { + "scene-list": "OBS | Lista de escenas", + "go-to-scene": "OBS | Ir a la escena", + "toggle-scene": "OBS | Cambiar entre dos escenas", + "no-scene-selected": "Ninguna escena seleccionada", + "connect-at-startup": "Conectar a OBS al inicio", + "first-start-install-sentence": "Para conectar Marv a OBS, debes instalar OBS WebSocket.", + "overlay-install-sentence": "Para instalar Marv, crea una fuente del navegador en OBS con el enlance de abajo.", + "check-disable-source-not-visible": "Marque la casilla: Desactivar la fuente en la que no este visible.", + "check-refresh-browser-on-activate": "Marque la casilla: Recargar el navegador cuando la escena sea activa.", + "overlay-not-found": "Overlay no encontrado" + }, + "anime": { + "timeline": "Anime | Timeline" + }, + "twitch": { + "chat": "chat de Twitch", + "stream": "directo de Twitch", + "commands": "Comandos", + "rewards": "Recompensas", + "followers": "Partidarios", + "connect-at-startup": "Conectar a Twitch durante el inicio", + "empty-command-list": "Ningun comando", + "command-not-found": "El comando \"{{command}}\" no ha sido encontrado", + "command-disabled": "El comando \"{{command}}\" ha sido desactivado", + "command-cooldown": "Cooldown \"{{command}}\" -> ~{{rest}}", + "command-too-much-argument": "Demasiados argunmentos! Utilización: {{usage}}", + "command-not-enough-argument": "No hay suficientes argunmentos! Utilización: {{usage}}", + "empty-follower-list": "La lista de partidarios esta vacía.", + "empty-reward-list": "La lista de recompensas esta vacía.", + "events": { + "none": "Ningún", + "onFollow": "Seguir", + "onAction": "Acción", + "onBan": "Banear", + "onBitsBadgeUpgrade": "Actualización de la insignia de Bits", + "onCommunityPayForward": "Community pay forward", + "onCommunitySub": "Community sub", + "onGiftPaidUpgrade": "Gift paid upgrade", + "onHosted": "Hosteado", + "onJoin": "Unido", + "onMessage": "Mensaje", + "onPart": "Parte", + "onPrimeCommunityGift": "Prime community gift", + "onPrimePaidUpgrade": "Prime paid upgrade", + "onRaid": "Raid", + "onResub": "Re suscripción", + "onRewardGift": "Reward gift", + "onRitual": "Ritual", + "onStandardPayForward": "Standard pay forward", + "onSub": "Suscribió", + "onSubExtend": "Sub extend", + "onSubGift": "Sub gift", + "onCommand": "Comando", + "onRedemption": "Redemption", + "onBits": "Bits" + } + }, + "labels": { + "top": "arriba", + "left": "izquierda", + "width": "anchura", + "font-size": "talla de fuente", + "font-family": "fuentes", + "font-weight": "texto en negrita", + "text-align": "alineamniento del texto", + "color": "color", + "opacity": "opacidad", + "z-index": "prioridad de visualización", + "-webkit-text-stroke-width": "ancho de línea", + "-webkit-text-stroke-color": "color de línea", + "length": "anchura", + "rotate": "rotación", + "scale": "escala", + "translateX": "translación X", + "translateY": "translación Y", + "translateZ": "translación Z", + "timming": "cronología", + "volume": "volumen", + "delay": "delay", + "duration": "duración", + "rotateX": "rotación X", + "rotateY": "rotación Y", + "rotateZ": "rotación Z", + "scaleX": "escala X", + "scaleY": "escala y", + "scaleZ": "escala z", + "skew": "distorsión", + "skewX": "distorsión x", + "skewY": "distorsión y", + "perspective": "punto de vista", + "height": "altura", + "text-shadow": "sombra" + }, + "docs": { + "get-started": { + "obs": "Instalar OBS Websocket.", + "overlay": "Instalar el overlay de Marv en OBS." + } + } + } \ No newline at end of file