plasmoid
ES

Localización

plasmoid es multilingüe por diseño. Cada locale es una carpeta de nivel superior bajo la raíz de documentos, y el sitio publica un subárbol por locale en /<version>/<locale>/.

Declarar locales

Enumera tus locales en plasmoid.toml y marca uno como predeterminado:

[site]
title = "My Project"
default_locale = "en"
locales = ["en", "es"]

default_locale debe aparecer en locales. El locale predeterminado define la estructura del sitio —su árbol de carpetas y la ordenación de la navegación— y es la reserva para cualquier página que otro locale aún no haya traducido.

Disposición de carpetas

Refleja la estructura del locale predeterminado bajo la carpeta de cada locale:

docs/
  en/
    index.md
    getting-started/quickstart.md
    reference/configuration.md
  es/
    index.md
    getting-started/quickstart.md   # translated
    # reference/configuration.md intentionally absent → falls back to en

Reserva por página

La navegación se construye a partir del locale predeterminado, por lo que la barra lateral es idéntica en todos los idiomas. Para cada página, plasmoid sirve el archivo específico del locale cuando existe y, de lo contrario, recae en el archivo del locale predeterminado. Puedes traducir de forma incremental: una página sin traducir muestra el contenido del locale predeterminado en lugar de devolver un 404.

Cambiar de idioma

El armazón incluye un selector de locale que enlaza la ruta equivalente en cada idioma configurado. Combinado con URL por locale (/1.0/en/…, /1.0/es/…), los lectores se mueven entre idiomas sin perder su lugar.

Qué se localiza

Localizar un sitio es más que el texto de las páginas. plasmoid cubre tres capas:

  • Contenido de las páginas — los archivos .md (con reserva por página, arriba).
  • Títulos de sección — las etiquetas de grupo del menú lateral, desde un _category.toml por locale (el locale por defecto fija el orden; cada locale aporta sus propios títulos).
  • Cadenas de interfaz — las etiquetas fijas que el armazón dibuja alrededor de tu contenido (caja de búsqueda, selectores, «En esta página», «Última actualización»). Vienen integradas, con inglés como reserva para cualquier locale sin su propia tabla.

Como las cadenas de interfaz están localizadas, las dos páginas de armazón generadas también se emiten una por locale:

  • La página de no encontrado/<locale>/404.html (más una raíz /404.html en el locale por defecto). La receta de despliegue sirve la página localizada que coincide con el prefijo de URL de la petición; ver la receta de nginx.
  • El índice de versiones/<locale>/versions/ (más una raíz estable /versions/ en el locale por defecto, que los enlaces existentes siguen usando). La tabla de cada locale enlaza la misma versión en ese locale.

Selección automática de idioma

Cuando un sitio tiene más de un locale, plasmoid incluye un pequeño script (/assets/locale.js, cargado solo en sitios con varios locales) que elige un idioma a partir del navegador del visitante:

  • En la primera visita de un lector, compara navigator.languages con tus locales disponibles (haciendo coincidir el idioma base, de modo que es-MX coincide con es) y, si alguno coincide, lo envía a la misma página en ese locale.
  • Si ningún locale disponible coincide, el lector permanece en el locale predeterminado (aquí, inglés) —la reserva sin JavaScript.
  • Una vez elegido un idioma —mediante el selector o el paso anterior—, se recuerda (localStorage) y se aplica en cada página, de modo que seguir un enlace de vuelta a un punto de entrada del locale predeterminado (la marca, o /docs/) no lo descarta silenciosamente. Elegir otro idioma en el selector siempre prevalece.

Esto es pura mejora progresiva: con JavaScript desactivado, cada URL sigue resolviendo y la entrada estable /docs/ siempre sirve el locale predeterminado. Nada de la compilación es dinámico —la redirección ocurre en el lado del cliente, sobre los mismos archivos estáticos.

Idiomas que no traduces

No tienes que traducir todo el mundo a mano. Mantén el puñado de locales que merecen una traducción de primera clase y revisada (aquí: inglés + español) y deja que el navegador del lector traduzca el resto a demanda. Todos los navegadores modernos ofrecen una traducción de página con un clic (o automática), y plasmoid la hace fiable emitiendo atributos lang honestos: una página se etiqueta con el idioma en el que realmente está su contenido. Así, una página que ha recaído en inglés es lang="en" incluso bajo una URL que no es de inglés, que es exactamente lo que hace que el navegador ofrezca traducirla.

Deliberadamente no hay un widget de traducción en tiempo de ejecución integrado —eso supondría una dependencia en tiempo de ejecución y llamadas de red, en contra del modelo estático y propio de plasmoid. El navegador ya lo hace mejor, para cada idioma, gratis.

El alias /docs/

El alias de entrada estable /docs/ apunta al locale predeterminado de la versión actual. Los enlaces profundos a otros locales usan sus rutas explícitas /<version>/<locale>/….

Última actualización: 2026-06-26