Check translation contracts offline, add Swedish to the installer and enable the website languages

- Offline checks for terminal and website catalogs reject translations that change commands, paths, identifiers or placeholders
- Terminal and documentation texts that broke those contracts are corrected in every language
- Swedish can be chosen in the stable and beta installers
- The website routes, language switcher and exported pages cover the eight languages, with the shared website texts in each of them
- Website documentation translations are generated only when requested
- From PR #475 by @jcastro
This commit is contained in:
MacRimi
2026-10-18 12:58:25 +02:00
parent f363ef4395
commit f8cabb4700
54 changed files with 2149 additions and 173 deletions
+14 -14
View File
@@ -320,7 +320,7 @@
"After confirming, you will be asked to choose the NVIDIA driver version to install.": "Después de confirmar, se le pedirá que elija la versión del controlador NVIDIA para instalar.",
"After detailed analysis, no changes are needed.": "Después de un análisis detallado, no se necesitan cambios.",
"After detailed analysis, no cleanup is needed.": "Después de un análisis detallado, no es necesaria ninguna limpieza.",
"After logging in, run: ip a to obtain the IP address.\nThen, enter that IP address in your web browser like this:\n http://IP_ADDRESS\n\nThis will open the Umbral OS dashboard.": "Después de iniciar sesión, ejecute: ip a para obtener la dirección IP.\nLuego, ingrese esa dirección IP en su navegador web de esta manera:\n http://DIRECCIÓN_IP\n\nEsto abrirá el panel de Umbral OS.",
"After logging in, run: ip a to obtain the IP address.\nThen, enter that IP address in your web browser like this:\n http://IP_ADDRESS\n\nThis will open the Umbral OS dashboard.": "Después de iniciar sesión, ejecuta ip a para obtener la dirección IP.\nIntroduce esa dirección en el navegador de esta forma:\n http://IP_ADDRESS\n\nSe abrirá el panel de Umbral OS.",
"After pasting on the server, ensure the file is chmod 600 and owned by": "Después de pegarlo en el servidor, asegúrese de que el archivo sea chmod 600 y sea propiedad de",
"After reboot the system will be fully accessible (SSH, web UI, login), but the following components will be reinstalled in BACKGROUND — until they finish, commands like nvidia-smi may not yet be available:": "Después de reiniciar, el sistema será completamente accesible (SSH, interfaz web e inicio de sesión), pero los siguientes componentes se reinstalarán EN SEGUNDO PLANO; hasta que finalicen, es posible que comandos como nvidia-smi aún no estén disponibles:",
"After reboot, these components will reinstall in background:": "Después de reiniciar, estos componentes se reinstalarán en segundo plano:",
@@ -1641,8 +1641,8 @@
"Default Proxmox logo applied": "Logotipo predeterminado de Proxmox aplicado",
"Default is none (video-only passthrough). Use SPACE to toggle selections.": "Por defecto, ninguno (passthrough solo de vídeo). Use ESPACIO para marcar o desmarcar.",
"Default journald configuration restored": "Configuración de diario predeterminada restaurada",
"Default location is /mnt/<name>. The share will be mounted here on the host with open permissions so an unprivileged LXC can bind-mount and write to it. For LXC access, bind-mount this path with the LXC Mount Manager.": "La ubicación predeterminada es /mnt/<nombre>. El recurso compartido se montará aquí en el host con permisos abiertos para que un LXC sin privilegios pueda vincularlo, montarlo y escribir en él. Para acceder a LXC, vincule esta ruta con LXC Mount Manager.",
"Default location is /mnt/<name>. The share will be mounted here on the host. Use this path in /etc/fstab. For LXC access, bind-mount this path with the LXC Mount Manager.": "La ubicación predeterminada es /mnt/<nombre>. El recurso compartido se montará aquí en el host. Utilice esta ruta en /etc/fstab. Para acceder a LXC, vincule esta ruta con LXC Mount Manager.",
"Default location is /mnt/<name>. The share will be mounted here on the host with open permissions so an unprivileged LXC can bind-mount and write to it. For LXC access, bind-mount this path with the LXC Mount Manager.": "La ubicación predeterminada es /mnt/<name>. El recurso compartido se montará aquí, en el host, con permisos abiertos para que un LXC sin privilegios pueda montarlo mediante un bind mount y escribir en él. Usa LXC Mount Manager para crear ese montaje en el LXC.",
"Default location is /mnt/<name>. The share will be mounted here on the host. Use this path in /etc/fstab. For LXC access, bind-mount this path with the LXC Mount Manager.": "La ubicación predeterminada es /mnt/<name>. El recurso compartido se montará aquí, en el host. Usa esta ruta en /etc/fstab. Para acceder desde un LXC, crea un bind mount de esta ruta con LXC Mount Manager.",
"Default login": "Acceso predeterminado",
"Default options": "Opciones predeterminadas",
"Default options read/write": "Opciones predeterminadas lectura/escritura",
@@ -2033,7 +2033,7 @@
"Enter VM ID:": "Introduzca el ID de la máquina virtual:",
"Enter VM/CT ID:": "Introduzca el ID de VM/CT:",
"Enter ZFS pool name for the selected disk:": "Ingrese el nombre del grupo ZFS para el disco seleccionado:",
"Enter a name for the mount point (used as /mnt/<name>):": "Ingrese un nombre para el punto de montaje (usado como /mnt/<nombre>):",
"Enter a name for the mount point (used as /mnt/<name>):": "Introduce un nombre para el punto de montaje (se usará como /mnt/<name>):",
"Enter a name for the new virtual machine:": "Ingrese un nombre para la nueva máquina virtual:",
"Enter a non-empty password or access token on a single line.": "Escribe una contraseña o un token de acceso, en una sola línea.",
"Enter a number, or write or paste a command:": "Ingrese un número, o escriba o pegue un comando:",
@@ -2176,11 +2176,11 @@
"Example: cp /etc/pve/lxc/114.conf /etc/pve/lxc/114.conf.bak": "Ejemplo: cp /etc/pve/lxc/114.conf /etc/pve/lxc/114.conf.bak",
"Example: daily or Mon..Fri 03:00": "Ejemplo: diario o lunes a viernes 03:00",
"Example: mkdir -p /tmp/lxc_convert_114": "Ejemplo: mkdir -p /tmp/lxc_convert_114",
"Example: pct config 110 | grep unprivileged": "Ejemplo: configuración pct 110 | grep sin privilegios",
"Example: pct stop 110": "Ejemplo: parada pct 110",
"Example: pct stop 114": "Ejemplo: parada pct 114",
"Example: pct config 110 | grep unprivileged": "Ejemplo: pct config 110 | grep unprivileged",
"Example: pct stop 110": "Ejemplo: pct stop 110",
"Example: pct stop 114": "Ejemplo: pct stop 114",
"Example: pvesm add nfs nfs-nas --server 192.168.1.50 --export /volume1/proxmox --content import,backup": "Ejemplo: pvesm add nfs nfs-nas --server 192.168.1.50 --export /volume1/proxmox --content import,backup",
"Example: pvesm path local-lvm:vm-114-disk-0": "Ejemplo: ruta pvesm local-lvm:vm-114-disk-0",
"Example: pvesm path local-lvm:vm-114-disk-0": "Ejemplo: pvesm path local-lvm:vm-114-disk-0",
"Example: sed -i '/^unprivileged: 1/d' /etc/pve/lxc/110.conf": "Ejemplo: sed -i '/^sin privilegios: 1/d' /etc/pve/lxc/110.conf",
"Examples:": "Ejemplos:",
"Execute destructive rollback?": "¿Ejecutar el rollback destructivo?",
@@ -2492,7 +2492,7 @@
"For a consistent export, the VM should be stopped.": "Para una exportación consistente, se debe detener la VM.",
"For any question, issue or bug report, please use the official repository": "Para cualquier pregunta, problema o informe de error, utilice el repositorio oficial",
"For dedicated GPUs, FLR is required by this policy to reduce VM": "Para GPU dedicadas, esta política requiere FLR para reducir la VM",
"For example: pct enter 101": "Por ejemplo: pct introduzca 101",
"For example: pct enter 101": "Por ejemplo: pct enter 101",
"For guest shares add: --options guest": "Para recursos compartidos de invitado añada: --options guest",
"For security reasons, the system cannot format it.": "Por razones de seguridad, el sistema no puede formatearlo.",
"For unprivileged containers, use instead:": "Para contenedores sin privilegios, utilice en su lugar:",
@@ -5234,7 +5234,7 @@
"Replace": "Reemplazar",
"Replace <container-id> with the actual ID.": "Reemplace <container-id> con el ID real.",
"Replace <container-id> with your actual container ID": "Reemplace <container-id> con su ID de contenedor real",
"Replace <storage-identifier> with the value from step 4": "Reemplace <identificador-de-almacenamiento> con el valor del paso 4",
"Replace <storage-identifier> with the value from step 4": "Sustituye <storage-identifier> por el valor del paso 4",
"Replace invalid port(s)": "Reemplazar puerto(s) no válido(s)",
"Replace it?": "¿Reemplazarlo?",
"Replace paths with your actual values from step 5": "Reemplace las rutas con sus valores reales del paso 5",
@@ -7967,7 +7967,7 @@
"partition(s). Partition table preserved.": "partición(es). Se conserva la tabla de particiones.",
"pasted Compose file": "archivo Compose pegado",
"paths for next boot (/etc/pve, guests, drivers, ...)": "rutas para el próximo arranque (/etc/pve, VM y CT, controladores, ...)",
"pct exec authorization failed": "error en la autorización ejecutiva de PCT",
"pct exec authorization failed": "Ha fallado la autorización de pct exec",
"pct push failed. Check log:": "pct push falló. Revise el log:",
"pending (reboot required to enumerate full group)": "pendiente (es necesario reiniciar para enumerar el grupo completo)",
"phpMyAdmin is installed with arbitrary server connections enabled: the login page has a Server field where the address of the MySQL or MariaDB server is entered, together with its user and password.": "phpMyAdmin se instala con conexiones de servidor arbitrarias habilitadas: la página de inicio de sesión tiene un campo Server donde se introduce la dirección del servidor MySQL o MariaDB, junto con su usuario y contraseña.",
@@ -7991,8 +7991,8 @@
"pvesm command not found. This should not happen on Proxmox.": "Comando pvesm no encontrado. Esto no debería suceder en Proxmox.",
"pvesm not available.": "pvesm no disponible.",
"pvesm not found.": "pvesm no encontrado.",
"pvesm path failed, trying manual detection...": "La ruta pvesm falló, intentando la detección manual...",
"pvesm status failed": "el estado de pvesm falló",
"pvesm path failed, trying manual detection...": "Ha fallado pvesm path; intentando la detección manual...",
"pvesm status failed": "Ha fallado pvesm status",
"pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.": "pyLoad es un gestor de descargas libre y de código abierto escrito en Python, diseñado para ser muy ligero, fácil de ampliar y totalmente gestionable por web.",
"pyLoad web interface": "Interfaz web de pyLoad",
"qBittorrent WebUI password (user: admin)": "contraseña de qBittorrent WebUI (usuario: admin)",
@@ -8052,7 +8052,7 @@
"smbclient command is not working properly.": "El comando smbclient no funciona correctamente.",
"smbclient command not found after installation.": "El comando smbclient no se encuentra después de la instalación.",
"sources.list update skipped (no change)": "Actualización de sources.list omitida (sin cambios)",
"sources.list updated to Trixie": "fuentes.lista actualizada a Trixie",
"sources.list updated to Trixie": "sources.list actualizado a Trixie",
"ssh-keygen failed. Cannot create a new SSH key.": "ssh-keygen falló. No se puede crear una nueva clave SSH.",
"stale entry/entries for interfaces no longer present": "entrada(s) obsoleta(s) de interfaces que ya no existen",
"standard performance": "rendimiento estándar",