Documentación de Configuración de Intlayer
Descripción General
Los archivos de configuración de Intlayer permiten la personalización de varios aspectos del plugin, como la internacionalización, middleware y manejo de contenido. Este documento proporciona una descripción detallada de cada propiedad en la configuración.
Formatos de Archivo de Configuración Soportados
Intlayer acepta formatos de archivos de configuración JSON, JS, MJS y TS:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
Ejemplo de archivo de configuración
// intlayer.config.ts
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH],
},
content: {
typesDir: "content/types",
},
middleware: {
noPrefix: false,
},
};
export default config;
// intlayer.config.cjs
const { Locales } = require("intlayer");
/** @type {import('intlayer').IntlayerConfig} */
const config = {
internationalization: {
locales: [Locales.ENGLISH],
},
content: {
typesDir: "content/types",
},
middleware: {
noPrefix: false,
},
};
module.exports = config;
// .intlayerrc
{
"internationalization": {
"locales": ["en"],
},
"content": {
"typesDir": "content/types",
},
"middleware": {
"noPrefix": false,
},
}
Referencia de Configuración
Las siguientes secciones describen las diversas configuraciones disponibles para Intlayer.
Configuración de Internacionalización
Define configuraciones relacionadas con la internacionalización, incluidos los idiomas disponibles y el idioma predeterminado para la aplicación.
Propiedades
- locales:
- Tipo: string[]
- Predeterminado: ['en']
- Descripción: La lista de idiomas soportados en la aplicación.
- Ejemplo: ['en', 'fr', 'es']
strictMode:
- Tipo: string
- Predeterminado: required_only
- Descripción: Asegura implementaciones fuertes de contenido internacionalizado usando TypeScript.
- Nota: Si se establece en "strict", la función de traducción t requerirá que cada idioma declarado esté definido. Si falta un idioma o no está declarado en tu configuración, lanzará un error.
- Nota: Si se establece en "required_only", la función de traducción t requerirá que cada idioma declarado esté definido. Si falta un idioma, emitirá una advertencia, pero aceptará si un idioma no está declarado en tu configuración, pero existe.
- Nota: Si se establece en "loose", la función de traducción t aceptará cualquier idioma existente.
defaultLocale:
- Tipo: string
- Predeterminado: 'en'
- Descripción: El idioma predeterminado usado como respaldo si no se encuentra el idioma solicitado.
- Ejemplo: 'en'
- Nota: Esto se utiliza para determinar el idioma cuando no se especifica en la URL, cookie o encabezado.
Configuración del Editor
Define configuraciones relacionadas con el editor integrado, incluido el puerto del servidor y el estado activo.
Propiedades
backendURL:
- Type: string
- Default: https://back.intlayer.org
- Description:
- Example: http://localhost:4000
enabled:
- Tipo: boolean
- Predeterminado: true
- Descripción: Indica si el editor está activo.
- Ejemplo: true
- Nota: Puede configurarse usando NODE_ENV, u otra variable de entorno dedicada.
clientId:
- Tipo: string | undefined
- Predeterminado: undefined
- Descripción: El clientId y el clientSecret permiten a los paquetes intlayer autenticarse con el backend utilizando oAuth2. Un acceso a un token se utiliza para autenticarse en el proyecto. Para obtener un acceso a un token, vaya a https://back.intlayer.org/dashboard/project y cree una cuenta.
- Ejemplo: true
- Nota: Importante: El clientId y el clientSecret deben mantenerse seguros y no compartirse públicamente. Asegúrese de mantenerlos en un entorno seguro, como un archivo de configuración.
clientSecret:
- Tipo: string | undefined
- Predeterminado: undefined
- Descripción: El clientId y el clientSecret permiten a los paquetes intlayer autenticarse con el backend utilizando oAuth2. Un acceso a un token se utiliza para autenticarse en el proyecto. Para obtener un acceso a un token, vaya a https://back.intlayer.org/dashboard/project y cree una cuenta.
- Ejemplo: true
- Nota: Importante: El clientId y el clientSecret deben mantenerse seguros y no compartirse públicamente. Asegúrese de mantenerlos en un entorno seguro, como un archivo de configuración.
Configuración de Middleware
Configuraciones que controlan el comportamiento del middleware, incluido cómo la aplicación maneja las cookies, encabezados y prefijos de URL para la gestión de idiomas.
Propiedades
- headerName:
- Tipo: string
- Predeterminado: 'x-intlayer-locale'
- Descripción: El nombre del encabezado HTTP utilizado para determinar el idioma.
- Ejemplo: 'x-custom-locale'
- Nota: Esto es útil para la determinación de idioma basada en API.
- cookieName:
- Tipo: string
- Predeterminado: 'intlayer-locale'
- Descripción: El nombre de la cookie utilizada para almacenar el idioma.
- Ejemplo: 'custom-locale'
- Nota: Utilizado para persistir el idioma entre sesiones.
- prefixDefault:
- Tipo: boolean
- Predeterminado: true
- Descripción: Si se debe incluir el idioma predeterminado en la URL.
- Ejemplo: false
- Nota: Si false, las URL para el idioma predeterminado no tendrán un prefijo de idioma.
- basePath:
- Tipo: string
- Predeterminado: ''
- Descripción: La ruta base para las URL de la aplicación.
- Ejemplo: '/my-app'
- Nota: Esto afecta cómo se construyen las URL para la aplicación.
- serverSetCookie:
- Tipo: string
- Predeterminado: 'always'
- Descripción: Regla para establecer la cookie de idioma en el servidor.
- Opciones: 'always', 'never'
- Ejemplo: 'never'
- Nota: Controla si la cookie de idioma se establece en cada solicitud o nunca.
- noPrefix:
- Tipo: boolean
- Predeterminado: false
- Descripción: Si se debe omitir el prefijo de idioma en las URL.
- Ejemplo: true
- Nota: Si true, las URL no contendrán información de idioma.
Configuración de Contenido
Configuraciones relacionadas con el manejo de contenido dentro de la aplicación, incluidos nombres de directorios, extensiones de archivos y configuraciones derivadas.
Propiedades
- fileExtensions:
- Tipo: string[]
- Predeterminado: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
- Descripción: Extensiones de archivos a buscar al construir diccionarios.
- Ejemplo: ['.data.ts', '.data.js', '.data.json']
- Nota: Personalizar las extensiones de archivo puede ayudar a evitar conflictos.
- baseDir:
- Tipo: string
- Predeterminado: process.cwd()
- Descripción: El directorio base para el proyecto.
- Ejemplo: '/path/to/project'
- Nota: Esto se usa para resolver todos los directorios relacionados con Intlayer.
- dictionaryOutput:
- Tipo: string[]
- Predeterminado: ['intlayer']
- Descripción: El tipo de salida de diccionario a usar, por ejemplo, 'intlayer' o 'i18next'.
- contentDirName:
- Tipo: string
- Predeterminado: 'src'
- Descripción: El nombre del directorio donde se almacena el contenido.
- Ejemplo: 'data', 'content', 'locales'
- Nota: Si no está en el nivel del directorio base, actualiza el contentDir.
- contentDir:
- Tipo: string
- DerivadoDe: 'baseDir' / 'contentDirName'
- Descripción: La ruta del directorio donde se almacena el contenido.
- resultDirName:
- Tipo: string
- Predeterminado: '.intlayer'
- Descripción: El nombre del directorio donde se almacenan los resultados.
- Ejemplo: 'outputOFIntlayer'
- Nota: Si este directorio no está en el nivel base, actualiza resultDir.
- resultDir:
- Tipo: string
- DerivadoDe: 'baseDir' / 'resultDirName'
- Descripción: La ruta del directorio para almacenar resultados intermedios o finales.
- moduleAugmentationDirName:
- Tipo: string
- Predeterminado: 'types'
- Descripción: Directorio para la ampliación de módulos, permitiendo mejores sugerencias del IDE y verificación de tipos.
- Ejemplo: 'intlayer-types'
- Nota: Asegúrate de incluir esto en tsconfig.json.
- moduleAugmentationDir:
- Tipo: string
- DerivadoDe: 'baseDir' / `'moduleAugmentationDir
Name'`
- Descripción: La ruta para la ampliación de módulos y definiciones de tipos adicionales.
- dictionariesDirName:
- Tipo: string
- Predeterminado: 'dictionary'
- Descripción: Directorio para almacenar diccionarios.
- Ejemplo: 'translations'
- Nota: Si no está en el nivel del directorio de resultados, actualiza dictionariesDir.
- dictionariesDir:
- Tipo: string
- DerivadoDe: 'resultDir' / 'dictionariesDirName'
- Descripción: El directorio para almacenar diccionarios de localización.
- i18nDictionariesDirName:
- Tipo: string
- Predeterminado: 'i18n_dictionary'
- Descripción: Directorio para almacenar diccionarios i18n.
- Ejemplo: 'translations'
- Nota: Si no está en el nivel del directorio de resultados, actualiza i18nDictionariesDir.
- Nota: Asegúrate de que la salida de los diccionarios i18n incluya i18next para construir los diccionarios para i18next.
- i18nDictionariesDir:
- Tipo: string
- DerivadoDe: 'resultDir' / 'i18nDictionariesDirName'
- Descripción: El directorio para almacenar diccionarios i18n.
- Nota: Asegúrate de que este directorio esté configurado para el tipo de salida i18next.
- typeDirName:
- Tipo: string
- Predeterminado: 'types'
- Descripción: Directorio para almacenar tipos de diccionario.
- Ejemplo: 'intlayer-types'
- Nota: Si no está en el nivel del directorio de resultados, actualiza typesDir.
- typesDir:
- Tipo: string
- DerivadoDe: 'resultDir' / 'typeDirName'
- Descripción: El directorio para almacenar tipos de diccionario.
- mainDirName:
- Tipo: string
- Predeterminado: 'main'
- Descripción: Directorio para almacenar archivos principales.
- Ejemplo: 'intlayer-main'
- Nota: Si no está en el nivel del directorio de resultados, actualiza mainDir.
- mainDir:
- Tipo: string
- DerivadoDe: 'resultDir' / 'mainDirName'
- Descripción: El directorio donde se almacenan los archivos principales de la aplicación.
- excludedPath:
- Tipo: string[]
- Predeterminado: ['node_modules']
- Descripción: Directorios excluidos de la búsqueda de contenido.
- Nota: Esta configuración aún no se utiliza, pero está planificada para implementaciones futuras.