El contenido de esta página ha sido traducido con una IA.

    Ver la última versión del contenido original en inglés

    Documentación de Configuración de Intlayer

    Resumen

    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.


    Soporte de Archivos de Configuración

    Intlayer acepta formatos de archivo de configuración JSON, JS, MJS y TS:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    Archivo de configuración de ejemplo

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";// Configuración de ejemplo para Intlayerconst config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH],  },  content: {    typesDir: "content/types",  },  middleware: {    noPrefix: false,  },};export default config;

    Referencia de Configuración

    Las siguientes secciones describen los diversos ajustes de configuración disponibles para Intlayer.


    Configuración de Internacionalización

    Define los ajustes relacionados con la internacionalización, incluyendo los locales disponibles y el locale predeterminado para la aplicación.

    Propiedades

    • locales:

      • Tipo: string[]
      • Por defecto: ['en']
      • Descripción: La lista de locales soportados en la aplicación.
      • Ejemplo: ['en', 'fr', 'es']
    • requiredLocales:

      • Tipo: string[]
      • Por defecto: []
      • Descripción: La lista de locales requeridos en la aplicación.
      • Ejemplo: []
      • Nota: Si está vacío, todos los locales son requeridos en modo estricto.
      • Nota: Asegúrese de que los locales requeridos también estén definidos en el campo locales.
    • strictMode:

      • Tipo: string
      • Por defecto: inclusive
      • Descripción: Asegura implementaciones fuertes de contenido internacionalizado usando TypeScript.
      • Nota: Si se establece en "estricto", la función de traducción t requerirá que cada locale declarado esté definido. Si falta un locale, o si un locale no está declarado en su configuración, lanzará un error.
      • Nota: Si se establece en "inclusivo", la función de traducción t requerirá que cada locale declarado esté definido. Si falta un locale, lanzará una advertencia. Pero aceptará si un locale no está declarado en su configuración, pero existe.
      • Nota: Si se establece en "flexible", la función de traducción t aceptará cualquier locale existente.
    • defaultLocale:

      • Tipo: string
      • Por defecto: 'en'
      • Descripción: El locale predeterminado usado como respaldo si el locale solicitado no se encuentra.
      • Ejemplo: 'en'
      • Nota: Esto se utiliza para determinar el locale cuando no se especifica ninguno en la URL, cookie o encabezado.

    Configuración del Editor

    Define los ajustes relacionados con el editor integrado, incluyendo el puerto del servidor y el estado activo.

    Propiedades

    • applicationURL:

      • Tipo: string
      • Por defecto: '*'
      • Descripción: La URL de la aplicación. Se utiliza para restringir el origen del editor por razones de seguridad.
      • Ejemplo:
        • '*'
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
      • Nota: Si se establece en '*', el editor es accesible desde cualquier origen.
    • port:

      • Tipo: number
      • Por defecto: 8000
      • Descripción: El puerto utilizado por el servidor del editor visual.
    • editorURL:

      • Tipo: string
      • Por defecto: 'http://localhost:8000'
      • Descripción: La URL del servidor del editor. Se utiliza para restringir el origen del editor por razones de seguridad.
        • 'http://localhost:3000'
        • 'https://example.com'
        • process.env.INTLAYER_EDITOR_URL
        • ''*'
      • Nota: Si se establece en '*', el editor es accesible desde cualquier origen. Debe configurarse si se cambia el puerto o si el editor se aloja en un dominio diferente.
    • cmsURL:

      • Tipo: string
      • Por defecto: 'https://intlayer.org'
      • Descripción: La URL del CMS de Intlayer.
      • Ejemplo: 'https://intlayer.org'
      • Nota: La URL del CMS de Intlayer.
    • backendURL:

      • Tipo: string
      • Por defecto: https://back.intlayer.org
      • Descripción: La URL del servidor backend.
      • Ejemplo: http://localhost:4000
    • enabled:

      • Tipo: boolean
      • Por defecto: true
      • Descripción: Indica si la aplicación interactúa con el editor visual.
      • Ejemplo: process.env.NODE_ENV !== 'production'
      • Nota: Si es verdadero, el editor podrá interactuar con la aplicación. Si es falso, el editor no podrá interactuar con la aplicación.
    • clientId:

      • Tipo: string | undefined
      • Por defecto: undefined
      • Descripción: clientId y clientSecret permiten que los paquetes de Intlayer se autentiquen con el backend usando autenticación oAuth2.
      • Ejemplo: true
      • Nota: Importante: El clientId y clientSecret deben mantenerse en secreto y no compartirse públicamente.
    • clientSecret:

      • Tipo: string | undefined
      • Por defecto: undefined
      • Descripción: clientId y clientSecret permiten que los paquetes de Intlayer se autentiquen con el backend usando autenticación oAuth2.
      • Ejemplo: true
      • Nota: Importante: El clientId y clientSecret deben mantenerse en secreto y no compartirse públicamente.
    • hotReload:

      • Tipo: boolean
      • Por defecto: false
      • Descripción: Indica si la aplicación debe recargar automáticamente las configuraciones de locales cuando se detecta un cambio.
      • Ejemplo: true
      • Nota: Debido a que la recarga en caliente necesita una conexión continua al servidor, solo está disponible para clientes del plan enterprise.
    • dictionaryPriorityStrategy:

      • Tipo: string
      • Por defecto: 'local_first'
      • Descripción: La estrategia para priorizar diccionarios en caso de que existan diccionarios locales y remotos.
      • Ejemplo: 'distant_first'

    Configuración de Middleware

    Ajustes que controlan el comportamiento del middleware, incluyendo cómo la aplicación maneja cookies, encabezados y prefijos de URL para la gestión de locales.

    Propiedades

    • headerName:

      • Tipo: string
      • Por defecto: 'x-intlayer-locale'
      • Descripción: El nombre del encabezado HTTP utilizado para determinar el locale.
      • Ejemplo: 'x-custom-locale'
      • Nota: Esto es útil para la determinación de locales basada en API.
    • cookieName:

      • Tipo: string
      • Por defecto: 'intlayer-locale'
      • Descripción: El nombre de la cookie utilizada para almacenar el locale.
      • Ejemplo: 'custom-locale'
      • Nota: Se utiliza para persistir el locale entre sesiones.
    • prefixDefault:

      • Tipo: boolean
      • Por defecto: true
      • Descripción: Si se incluye el locale predeterminado en la URL.
      • Ejemplo: false
      • Nota: Si es false, las URLs para el locale predeterminado no tendrán un prefijo de locale.
    • basePath:

      • Tipo: string
      • Por defecto: ''
      • Descripción: La ruta base para las URLs de la aplicación.
      • Ejemplo: '/my-app'
      • Nota: Esto afecta cómo se construyen las URLs para la aplicación.
    • serverSetCookie:

      • Tipo: string
      • Por defecto: 'always'
      • Descripción: Regla para establecer la cookie de locale en el servidor.
      • Opciones: 'always', 'never'
      • Ejemplo: 'never'
      • Nota: Controla si la cookie de locale se establece en cada solicitud o nunca.
    • noPrefix:

      • Tipo: boolean
      • Por defecto: false
      • Descripción: Si se omite el prefijo de locale en las URLs.
      • Ejemplo: true
      • Nota: Si es true, las URLs no contendrán información de locale.

    Configuración de Contenido

    Ajustes relacionados con el manejo de contenido dentro de la aplicación, incluyendo nombres de directorios, extensiones de archivos y configuraciones derivadas.

    Propiedades

    • watch:

      • Tipo: boolean
      • Por defecto: process.env.NODE_ENV === 'development'
      • Descripción: Indica si Intlayer debe observar cambios en los archivos de declaración de contenido en la aplicación para reconstruir los diccionarios relacionados.
    • fileExtensions:

      • Tipo: string[]
      • Por defecto: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
      • Descripción: Extensiones de archivo 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
      • Por defecto: process.cwd()
      • Descripción: El directorio base para el proyecto.
      • Ejemplo: '/path/to/project'
      • Nota: Esto se utiliza para resolver todos los directorios relacionados con Intlayer.
    • dictionaryOutput:

      • Tipo: string[]
      • Por defecto: ['intlayer']
      • Descripción: El tipo de salida de diccionario a usar, por ejemplo, 'intlayer' o 'i18next'.
    • contentDirName:

      • Tipo: string
      • Por defecto: '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, actualice el contentDir.
    • contentDir:

      • Tipo: string
      • Derivado de: 'baseDir' / 'contentDirName'
      • Descripción: La ruta del directorio donde se almacena el contenido.
    • resultDirName:

      • Tipo: string
      • Por defecto: '.intlayer'
      • Descripción: El nombre del directorio donde se almacenan los resultados.
      • Ejemplo: 'outputOFIntlayer'
      • Nota: Si este directorio no está en el nivel base, actualice resultDir.
    • resultDir:

      • Tipo: string
      • Derivado de: 'baseDir' / 'resultDirName'
      • Descripción: La ruta del directorio para almacenar resultados intermedios o de salida.
    • moduleAugmentationDirName:

      • Tipo: string
      • Por defecto: 'types'
      • Descripción: Directorio para la ampliación de módulos, permitiendo mejores sugerencias en el IDE y verificación de tipos.
      • Ejemplo: 'intlayer-types'
      • Nota: Asegúrese de incluir esto en tsconfig.json.
    • moduleAugmentationDir:

      • Tipo: string
      • Derivado de: 'baseDir' / 'moduleAugmentationDirName'
      • Descripción: La ruta para la ampliación de módulos y definiciones de tipos adicionales.
    • dictionariesDirName:

      • Tipo: string
      • Por defecto: 'dictionary'
      • Descripción: Directorio para almacenar diccionarios.
      • Ejemplo: 'translations'
      • Nota: Si no está en el nivel del directorio de resultados, actualice dictionariesDir.
    • dictionariesDir:

      • Tipo: string
      • Derivado de: 'resultDir' / 'dictionariesDirName'
      • Descripción: El directorio para almacenar diccionarios de localización.
    • i18nextResourcesDirName:

      • Tipo: string
      • Por defecto: 'i18next_dictionary'
      • Descripción: Directorio para almacenar diccionarios i18n.
      • Ejemplo: 'translations'
      • Nota: Si no está en el nivel del directorio de resultados, actualice i18nextResourcesDir.
      • Nota: Asegúrese de que la salida de diccionarios i18n incluya i18next para construir los diccionarios para i18next.
    • i18nextResourcesDir:

      • Tipo: string
      • Derivado de: 'resultDir' / 'i18nextResourcesDirName'
      • Descripción: El directorio para almacenar diccionarios i18n.
      • Nota: Asegúrese de que este directorio esté configurado para el tipo de salida i18next.
    • typeDirName:

      • Tipo: string
      • Por defecto: 'types'
      • Descripción: Directorio para almacenar tipos de diccionario.
      • Ejemplo: 'intlayer-types'
      • Nota: Si no está en el nivel del directorio de resultados, actualice typesDir.
    • typesDir:

      • Tipo: string
      • Derivado de: 'resultDir' / 'typeDirName'
      • Descripción: El directorio para almacenar tipos de diccionario.
    • mainDirName:

      • Tipo: string
      • Por defecto: 'main'
      • Descripción: Directorio para almacenar archivos principales.
      • Ejemplo: 'intlayer-main'
      • Nota: Si no está en el nivel del directorio de resultados, actualice mainDir.
    • mainDir:

      • Tipo: string
      • Derivado de: 'resultDir' / 'mainDirName'
      • Descripción: El directorio donde se almacenan los archivos principales de la aplicación.
    • excludedPath:

      • Tipo: string[]
      • Por defecto: ['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 futuras implementaciones.

    Configuración del Logger

    Ajustes que controlan el logger, incluyendo el prefijo a usar.

    Propiedades

    • mode:

      • Tipo: string
      • Por defecto: default
      • Descripción: Indica el modo del logger.
      • Opciones: default, verbose, disabled
      • Ejemplo: default
      • Nota: El modo verbose registrará más información, pero puede usarse para propósitos de depuración. El modo disabled desactivará el logger.
    • prefix:

      • Tipo: string
      • Por defecto: '[intlayer] '
      • Descripción: El prefijo del logger.
      • Ejemplo: '[my custom prefix] '
      • Nota: El prefijo del logger.

    Si tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.

    Enlace de GitHub a la documentación