Configuración
Creación del Proyecto
npm create astro@latest -- --template psephopaiktes/astro-i18n-starter
Configuración
1. Configurar /src/locales.ts
Primero, actualiza el archivo de configuración de idiomas.
Establece el idioma por defecto en DEFAULT_LOCALE_SETTING y la lista de idiomas deseados en LOCALES_SETTING. Esto sigue la configuración de Starlight.
// Establece el idioma por defecto de tu sitio.
export const DEFAULT_LOCALE_SETTING: string = "en";
export const LOCALES_SETTING: LocaleSetting = {
// Agrega o elimina idiomas soportados.
en: {
label: "English",
lang: "en-US", // opcional
},
es: {
label: "Español",
lang: "es-ES",
},
ar: {
label: "العربية",
dir: "rtl", // opcional
},
};
Por favor, consulta el siguiente enlace para información sobre códigos de idioma.
2. Configurar astro.config.mjs
Establece tu URL en site.
import mdx from '@astrojs/mdx';
import sitemap from '@astrojs/sitemap';
import { defineConfig } from 'astro/config';
import { DEFAULT_LOCALE_SETTING, LOCALES_SETTING } from './src/locales';
export default defineConfig({
- site: 'https://astro-i18n-starter.pages.dev',
+ site: 'https://your-site.com',
i18n: {
defaultLocale: DEFAULT_LOCALE_SETTING,
locales: Object.keys(LOCALES_SETTING),
routing: {
prefixDefaultLocale: true,
redirectToDefaultLocale: false,
},
},
...
Por favor, consulta la documentación oficial para opciones de configuración detalladas de Astro.
nota: Cambiar la configuración de prefixDefaultLocale y redirectToDefaultLocale no se recomienda. Nosso gestiona el proceso de redirección con JavaScript del lado del cliente. Si la URL no contiene un idioma, redirigirá al idioma por defecto. Por ejemplo, /setup/ será redirigido a /en/setup/.
Además, si quieres incluir un subdirectorio en tu URL, necesitarás configurar la ruta base y usar import.meta.env.BASE_URL en tus varios enlaces.
Estructura del Proyecto
Sigue la estructura del proyecto Astro.
src/
├── assets/
│ └── en/, es/ ...
├── blog/
│ └── en/, es/ ...
├── components/
│ └── i18n/
├── layouts/
├── pages/
│ ├── [lang]/
│ ├── en/, es/ ...
│ ├── 404.astro
│ └── index.astro
├── styles/
├── content.config.ts
├── consts.ts
├── i18n.ts
└── locales.ts
src/components/i18n
Directorio para componentes de UI utilizados en sitios web multilingües.
src/pages
- Los archivos bajo
src/pages/[lang]/generan archivos HTML para cada idioma dinámicamente desde un solo archivo.astro. - También puedes generar archivos HTML para cada idioma desde carpetas como
src/pages/en/,src/pages/es/, etc.
src/consts.ts
Archivo para datos constantes que pueden ser importados y utilizados dentro del proyecto. También puede ser omitido si no es necesario.
src/i18n.ts
Archivo que contiene definiciones de funciones utilizadas en Nosso. Generalmente no hay necesidad de editar este archivo.