Sitios en varios idiomas
Un solo sitio, en todos los idiomas que necesites.

vagejs es un generador de sitios estáticos con sitios multilingües incluidos. Un solo sitio reúne todos los idiomas, cada uno en su propia carpeta, con las etiquetas de idioma y hreflang correctas en cada página, y una revisión que enumera las páginas que aún esperan una traducción. Forma parte de vagejs desde la versión 0.10.

npm create vagejs@latest my-site

Lee la documentación multilingüeSigue la guía paso a paso

Cómo funciona

No todos tus visitantes leen el mismo idioma. Tus páginas en inglés se quedan justo donde están, las páginas en francés van en una carpeta fr y las de alemán en de. Cada página sabe en qué idioma está, y las traducciones se enlazan entre sí.

Tú escribes Los visitantes reciben
src/pages/about.md /about/, en inglés
src/pages/fr/about.md /fr/about/, la versión en francés
src/pages/de/ueber-uns.md con translationOf: /about/ /de/ueber-uns/, la versión en alemán, con su propia dirección en alemán

Una página con el mismo nombre de archivo dentro de la carpeta de un idioma es su traducción. ¿Quieres una dirección en el idioma del visitante? Añade una línea que diga qué página traduce. Defines tus idiomas una sola vez, en vage.config.ts:

TypeScript
export default defineConfig({
  site: "https://example.com",
  lang: "en",
  i18n: { locales: ["fr", "de"] },
});

Lo que obtienes

Nos encargamos de las partes engorrosas de un sitio multilingüe, para que tú te centres en las palabras.

  • El idioma correcto en cada página

    Las páginas en francés dicen que están en francés, así los lectores de pantalla las pronuncian bien y los buscadores saben para quién son.

  • Etiquetas hreflang, escritas por ti

    Cada versión de una página enlaza con las demás. Google usa estos enlaces para mostrar a cada persona la versión en su propio idioma.

  • Un selector de idioma sin llevar la cuenta

    Tu plantilla recibe la lista de traducciones de la página que muestra, así que el selector siempre apunta a páginas que existen.

  • Una revisión de las traducciones que faltan

    npm run check enumera cada página que no tiene versión en alguno de tus idiomas e indica el archivo que hay que añadir. Una etiqueta de idioma incorrecta, o una traducción que no apunta a ninguna página, detiene la compilación.

  • Feeds por idioma

    El feed del blog de /fr/blog/ contiene las entradas en francés e indica que está en francés.

  • Menús y listas por idioma

    Dale a cada idioma su propio menú, y enumera solo las páginas de un idioma, como las entradas del blog en francés, con collection().

    Consulta en tus plantillas

Para quién son los sitios multilingües en vagejs

  • Negocios con clientes en varios idiomas

    Atiendes a personas en dos o tres idiomas y quieres cuidar un solo sitio, no tres.

  • Productos con documentación en varios idiomas

    Traduces tu documentación página a página, y la revisión lleva la cuenta de lo que falta.

  • Cualquiera cuyo asistente de IA traduzca

    La revisión le muestra a tu asistente exactamente lo que falta, y tú revisas lo que escribe.

Lo que no hace

Preferimos que conozcas los límites desde el principio.

  • vagejs no traduce las páginas por ti. Cada versión la escribes tú o se la encargas a un traductor o a tu asistente de IA.
  • No envía a los visitantes a un idioma según la configuración de su navegador. En un sitio estático, un selector de idioma funciona de forma más fiable.
  • llms.txt y el sitemap enumeran todos los idiomas juntos, no un archivo por idioma.

Más sobre los sitios multilingües con vagejs

Otros generadores de sitios estáticos también incluyen soporte multilingüe, y en algunos es más antiguo y cubre configuraciones más complejas. Consulta cómo se compara vagejs.

Preguntas sobre los sitios multilingües

¿Tengo que traducir todas las páginas?

No. Una página sin traducción simplemente existe en un idioma. Si solo traduces algunas páginas, enuméralas en i18n.pages dentro de vage.config.ts (vagejs 0.15.1 y posteriores), y vage check pedirá traducciones solo de esas páginas.

¿Una traducción que falta impide generar mi sitio?

No. Una traducción que falta es un aviso, así que el sitio se sigue generando mientras traduces. Ejecuta vage check --strict si quieres que los avisos también hagan fallar la revisión. Los errores reales, como una etiqueta de idioma incorrecta o un translationOf que apunta a una página que no existe, son errores.

¿Qué códigos de idioma puedo usar?

Códigos de idioma estándar como fr, de o pt-BR. Tu idioma principal va en lang, y los demás van en i18n.locales. No pongas tu idioma principal dos veces.

¿Puedo añadir idiomas a un sitio que ya tengo?

Sí. Tus páginas en el idioma principal conservan sus direcciones, así que nada de lo que ya has publicado cambia de sitio. Añade los idiomas nuevos a vage.config.ts y pon cada traducción en la carpeta de su idioma.

Empieza con un solo comando.
Tendrás un sitio funcionando en un minuto.

npm create vagejs@latest my-site

Leer la documentaciónÚsalo con tu asistente de IA