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

> vagejs es un generador de sitios estáticos multilingües. Una carpeta por idioma, etiquetas lang y hreflang en cada página y una revisión de traducciones.

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üe](https://vagejs.com/docs/multi-language/)[Sigue la guía paso a paso](https://vagejs.com/guides/multilingual-static-site/)

## 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](https://vagejs.com/docs/multi-language/#in-your-layouts)
    

## 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](https://vagejs.com/compare/).

-   Paso a paso: [crea un sitio web estático multilingüe](https://vagejs.com/guides/multilingual-static-site/)
-   Todas las opciones y revisiones: [sitios multilingües en la documentación](https://vagejs.com/docs/multi-language/)
-   Otras funciones: [todas las funciones de vagejs](https://vagejs.com/es/features/)

## 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.
