Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Actualizar el uso de la API useIntlayer de Solid para el acceso directo a las propiedades"v8.9.04/5/2026
- "Agregar comando init"v7.5.930/12/2025
- "Historial inicial"v5.5.1029/6/2025
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Traduce tu sitio web Vite y React usando Intlayer | Internacionalización (i18n)
Tabla de contenido
¿Por qué Intlayer en lugar de alternativas?
En comparación con soluciones principales como react-i18next o i18next, Intlayer es una solución que viene con optimizaciones integradas como:
Intlayer está optimizado para funcionar perfectamente con Vite y React al ofrecer alcance del contenido a nivel de componente, traducciones cargadas de forma diferida y todas las funciones necesarias para escalar la internacionalización (i18n).
En lugar de cargar archivos JSON masivos en sus páginas, cargue solo el contenido necesario. Intlayer ayuda a reducir el tamaño de su bundle y de sus páginas hasta en un 50%.
Determinar el alcance del contenido de su aplicación facilita el mantenimiento para aplicaciones a gran escala. Puede duplicar o eliminar una sola carpeta de funciones sin la carga mental de revisar todo el código base de contenido. Además, Intlayer está completamente escrito para garantizar la precisión de su contenido.
La ubicación conjunta de contenido reduce el contexto necesario para los modelos de lenguajes grandes (LLM). Intlayer también viene con un conjunto de herramientas, como una CLI para comprobar si faltan traducciones,LSP, MCP y agent skills, para que la experiencia del desarrollador (DX) sea aún más fluida para los agentes de IA.
Utilice la automatización para traducir su canal de CI/CD utilizando el LLM de su elección al costo de su proveedor de IA. Intlayer también ofrece un compilador para automatizar la extracción de contenido, así como una plataforma web para ayudar a traducir en segundo plano.
La conexión de archivos JSON masivos a componentes puede provocar problemas de rendimiento y reactividad. Intlayer optimiza la carga de su contenido en el momento de la compilación.
Más que una simple solución i18n, Intlayer proporciona un [editor visual] autohospedado(/es/doc/concept/editor) y un CMS completo para ayudarle a administrar su contenido multilingüe en tiempo real, lo que facilita la colaboración con traductores, redactores y otros miembros del equipo. El contenido se puede almacenar de forma local y/o remota.
Guía paso a paso para configurar Intlayer en una aplicación Vite y React
Consulta la Plantilla de Aplicación en GitHub.
Instalar dependencias
Instala los paquetes necesarios usando npm:
bashCopiar códigoCopiar el código al portapapeles
npm install intlayer react-intlayernpm install vite-intlayer --save-devnpx intlayer initintlayer El paquete principal que proporciona herramientas de internacionalización para la gestión de configuración, traducción, declaración de contenido, transpile y comandos CLI.
react-intlayer El paquete que integra Intlayer con aplicaciones React. Proporciona proveedores de contexto y hooks para la internacionalización en React.
vite-intlayer Incluye el plugin de Vite para integrar Intlayer con el empaquetador Vite, así como middleware para detectar la configuración regional preferida del usuario, gestionar cookies y manejar redirecciones de URL.
Configuración de tu proyecto
Crea un archivo de configuración para configurar los idiomas de tu aplicación:
intlayer.config.tsCopiar códigoCopiar el código al portapapeles
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Tus otros idiomas ], defaultLocale: Locales.ENGLISH, }, }; export default config;A través de este archivo de configuración, puedes configurar URLs localizadas, redirección de middleware, nombres de cookies, la ubicación y extensión de tus declaraciones de contenido, desactivar los registros de Intlayer en la consola, y más. Para una lista completa de los parámetros disponibles, consulta la documentación de configuración.
Integra Intlayer en tu configuración de Vite
Agrega el plugin intlayer en tu configuración.
vite.config.tsCopiar códigoCopiar el código al portapapeles
import { defineConfig } from "vite"; import react from "@vitejs/plugin-react-swc"; import { intlayer } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [react(), intlayer()], });El plugin
intlayer()de Vite se utiliza para integrar Intlayer con Vite. Garantiza la construcción de archivos de declaración de contenido y los supervisa en modo de desarrollo. Define variables de entorno de Intlayer dentro de la aplicación Vite. Además, proporciona alias para optimizar el rendimiento.Declara Tu Contenido
Crea y administra tus declaraciones de contenido para almacenar traducciones:
src/app.content.tsxCopiar códigoCopiar el código al portapapeles
import { t, type Dictionary } from "intlayer"; import type { ReactNode } from "react"; const appContent = { key: "app", content: { viteLogo: t({ en: "Vite logo", fr: "Logo Vite", es: "Logo Vite", }), reactLogo: t({ en: "React logo", fr: "Logo React", es: "Logo React", }), title: "Vite + React", count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es ", }), edit: t<ReactNode>({ en: ( <> Edita <code>src/App.tsx</code> y guarda para probar HMR </> ), fr: ( <> Éditez <code>src/App.tsx</code> et enregistrez pour tester HMR </> ), es: ( <> Edita <code>src/App.tsx</code> y guarda para probar HMR </> ), }), readTheDocs: t({ en: "Haz clic en los logotipos de Vite y React para obtener más información", fr: "Cliquez sur les logos Vite et React pour en savoir plus", es: "Haz clic en los logotipos de Vite y React para obtener más información", }), }, } satisfies Dictionary; export default appContent;Sus declaraciones de contenido pueden definirse en cualquier lugar de su aplicación tan pronto como se incluyan en el directorio
contentDir(por defecto,./src). Y coincidan con la extensión del archivo de declaración de contenido (por defecto,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Para más detalles, consulte la documentación de declaración de contenido.
Si su archivo de contenido incluye código TSX, debería considerar importar
import React from "react";en su archivo de contenido.Utilice Intlayer en su Código
Acceda a sus diccionarios de contenido en toda su aplicación:
src/App.tsxCopiar códigoCopiar el código al portapapeles
import { useState, type FC } from "react"; import reactLogo from "./assets/react.svg"; import viteLogo from "/vite.svg"; import "./App.css"; import { IntlayerProvider, useIntlayer } from "react-intlayer"; const AppContent: FC = () => { const [count, setCount] = useState(0); const content = useIntlayer("app"); return ( <> <div> <a href="https://vitejs.dev" target="_blank"> <img src={viteLogo} className="logo" alt={content.viteLogo.value} /> </a> <a href="https://react.dev" target="_blank"> <img src={reactLogo} className="logo react" alt={content.reactLogo.value} /> </a> </div> <h1>{content.title}</h1> <div className="card"> <button onClick={() => setCount((count) => count + 1)}> {content.count} {count} </button> <p>{content.edit}</p> </div> <p className="read-the-docs">{content.readTheDocs}</p> </> ); }; const App: FC = () => ( <IntlayerProvider> <AppContent /> </IntlayerProvider> ); export default App;Si deseas usar tu contenido en un atributo de tipo
string, comoalt,title,href,aria-label, etc., debes llamar al valor de la función, así:htmlCopiar códigoCopiar el código al portapapeles
<img src="{content.image.src.value}" alt="{content.image.value}" /><img src="{content.image.src.toString()}" alt="{content.image.toString()}" /><img src="{String(content.image.src)}" alt="{String(content.image)}" />Para aprender más sobre el hook
useIntlayer, consulta la documentación.Si su aplicación ya existe, puede utilizar el Compilador Intlayer, así como el comando de extracción, para transformar miles de componentes en un segundo.
Cambiar el idioma de tu contenido
OpcionalPara cambiar el idioma de tu contenido, puedes usar la función
setLocaleproporcionada por el hookuseLocale. Esta función te permite establecer la configuración regional de la aplicación y actualizar el contenido en consecuencia.src/components/LocaleSwitcher.tsxCopiar códigoCopiar el código al portapapeles
import type { FC } from "react"; import { Locales } from "intlayer"; import { useLocale } from "react-intlayer"; const LocaleSwitcher: FC = () => { const { setLocale } = useLocale(); return ( <button onClick={() => setLocale(Locales.English)}> Cambiar idioma a inglés </button> ); };Para aprender más sobre el hook
useLocale, consulte la documentación.Agregar enrutamiento por localeizado a su aplicación
OpcionalEl propósito de este paso es crear rutas únicas para cada idioma. Esto es útil para SEO y URLs amigables con SEO. Ejemplo:
plaintextCopiar códigoCopiar el código al portapapeles
- https://example.com/about- https://example.com/es/about- https://example.com/fr/aboutPor defecto, las rutas no tienen prefijo para la configuración regional predeterminada. Si desea agregar un prefijo para la configuración regional predeterminada, puede establecer la opción
middleware.prefixDefaultentrueen su configuración. Consulte la documentación de configuración para obtener más información.Para agregar enrutamiento por localeizado a su aplicación, puede crear un componente
LocaleRouterque envuelva las rutas de su aplicación y gestione el enrutamiento basado en la configuración regional. Aquí hay un ejemplo usando React Router:src/components/LocaleRouter.tsxCopiar códigoCopiar el código al portapapeles
import { localeMap } from "intlayer"; // Funciones y tipos utilitarios de 'intlayer' import type { FC, PropsWithChildren } from "react"; // Tipos de React para componentes funcionales y props import { IntlayerProvider } from "react-intlayer"; // Proveedor para el contexto de internacionalización import { BrowserRouter, Route, Routes } from "react-router-dom"; // Componentes del router para gestionar la navegación /** * Un componente de enrutador que configura rutas específicas por configuración regional. * Utiliza React Router para gestionar la navegación y renderizar componentes localizados. */ export const LocaleRouter: FC<PropsWithChildren> = ({ children }) => ( <BrowserRouter> <Routes> {localeMap(({ locale, urlPrefix }) => ( <Route // Patrón de ruta para capturar la localidad (por ejemplo, /en/, /fr/) y coincidir con todas las rutas subsecuentes path={`${urlPrefix}/*`} key={locale} element={ <IntlayerProvider locale={locale}>{children}</IntlayerProvider> } // Envuelve los hijos con la gestión de la localidad /> ))} </Routes> </BrowserRouter> );Nota: Si usas
routing.mode: 'no-prefix' | 'search-params', probablemente no necesites usar la funciónlocaleMap.Luego, puedes usar el componente
LocaleRouteren tu aplicación:src/App.tsxCopiar códigoCopiar el código al portapapeles
import { LocaleRouter } from "./components/LocaleRouter"; import type { FC } from "react"; // ... Tu componente AppContent const App: FC = () => ( <LocaleRouter> <AppContent /> </LocaleRouter> );Paralelamente, también puedes usar el
intlayerProxypara agregar enrutamiento del lado del servidor a tu aplicación. Este plugin detectará automáticamente la configuración regional actual basada en la URL y establecerá la cookie de configuración regional correspondiente. Si no se especifica ninguna configuración regional, el plugin determinará la configuración regional más adecuada basándose en las preferencias de idioma del navegador del usuario. Si no se detecta ninguna configuración regional, redirigirá a la configuración regional predeterminada.Ten en cuenta que para usar el
intlayerProxyen producción, debes mover el paquetevite-intlayerdedevDependenciesadependencies.vite.config.tsCopiar códigoCopiar el código al portapapeles
import { defineConfig } from "vite"; import react from "@vitejs/plugin-react-swc"; import { intlayer, intlayerProxy } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ intlayerProxy(), // should be placed first react(), intlayer(), ], });Cambiar la URL cuando cambia la configuración regional
OpcionalPara cambiar la URL cuando cambia la configuración regional, puedes usar la propiedad
onLocaleChangeproporcionada por el hookuseLocale. Paralelamente, puedes usar los hooksuseLocationyuseNavigatedereact-router-dompara actualizar la ruta de la URL.src/components/LocaleSwitcher.tsxCopiar códigoCopiar el código al portapapeles
import { useLocation, useNavigate } from "react-router-dom"; import { Locales, getHTMLTextDir, getLocaleName, getLocalizedUrl, } from "intlayer"; import { useLocale } from "react-intlayer"; import { type FC } from "react"; const LocaleSwitcher: FC = () => { const { pathname, search } = useLocation(); // Obtener la ruta actual de la URL. Ejemplo: /fr/about?foo=bar const navigate = useNavigate(); const { locale, availableLocales, setLocale } = useLocale({ onLocaleChange: (locale) => { // Construir la URL con la configuración regional actualizada // Ejemplo: /es/about?foo=bar const pathWithLocale = getLocalizedUrl(`${pathname}${search}`, locale); // Actualizar la ruta de la URL navigate(pathWithLocale); }, }); return ( <div> <button popoverTarget="localePopover">{getLocaleName(locale)}</button> <div id="localePopover" popover="auto"> {availableLocales.map((localeItem) => ( <a href={getLocalizedUrl(location.pathname, localeItem)} hrefLang={localeItem} aria-current={locale === localeItem ? "page" : undefined} onClick={(e) => { e.preventDefault(); setLocale(localeItem); }} key={localeItem} > <span> {/* Local - p.ej. FR */} {localeItem} </span> <span> {/* Idioma en su propia localización - p.ej. Français */} {getLocaleName(localeItem, locale)} </span> <span dir={getHTMLTextDir(localeItem)} lang={localeItem}> {/* Idioma en la localización actual - p.ej. Francés con la localización actual configurada en Locales.SPANISH */} {getLocaleName(localeItem)} </span> <span dir="ltr" lang={Locales.ENGLISH}> {/* Idioma en inglés - p.ej. French */} {getLocaleName(localeItem, Locales.ENGLISH)} </span> </a> ))} </div> </div> ); };Referencias de la documentación:
A continuación se muestra el Paso 9 actualizado con explicaciones añadidas y ejemplos de código refinados:
Cambiar los atributos de idioma y dirección en el HTML
OpcionalCuando tu aplicación soporta múltiples idiomas, es crucial actualizar los atributos
langydirde la etiqueta<html>para que coincidan con la configuración regional actual. Hacer esto garantiza:- Accesibilidad: Los lectores de pantalla y las tecnologías de asistencia dependen del atributo
langcorrecto para pronunciar e interpretar el contenido con precisión. - Renderizado de texto: El atributo
dir(dirección) asegura que el texto se muestre en el orden adecuado (por ejemplo, de izquierda a derecha para inglés, de derecha a izquierda para árabe o hebreo), lo cual es esencial para la legibilidad. - SEO: Los motores de búsqueda utilizan el atributo
langpara determinar el idioma de tu página, ayudando a mostrar el contenido localizado correcto en los resultados de búsqueda.
Al actualizar estos atributos dinámicamente cuando cambia la configuración regional, garantizas una experiencia coherente y accesible para los usuarios en todos los idiomas compatibles.
Implementación del Hook
Crea un hook personalizado para gestionar los atributos HTML. El hook escucha los cambios de configuración regional y actualiza los atributos en consecuencia:
src/hooks/useI18nHTMLAttributes.tsxCopiar códigoCopiar el código al portapapeles
import { useEffect } from "react"; import { useLocale } from "react-intlayer"; import { getHTMLTextDir } from "intlayer"; /** * Actualiza los atributos `lang` y `dir` del elemento HTML <html> según la configuración regional actual. * - `lang`: Informa a los navegadores y motores de búsqueda sobre el idioma de la página. * - `dir`: Asegura el orden correcto de lectura (por ejemplo, 'ltr' para inglés, 'rtl' para árabe). * * Esta actualización dinámica es esencial para el renderizado correcto del texto, accesibilidad y SEO. */ export const useI18nHTMLAttributes = () => { const { locale } = useLocale(); useEffect(() => { // Actualiza el atributo de idioma al locale actual. document.documentElement.lang = locale; // Establece la dirección del texto según el locale actual. document.documentElement.dir = getHTMLTextDir(locale); }, [locale]); };Uso del Hook en Tu Aplicación
Integra el hook en tu componente principal para que los atributos HTML se actualicen cada vez que cambie la configuración regional:
src/App.tsxCopiar códigoCopiar el código al portapapeles
import type { FC } from "react"; import { IntlayerProvider, useIntlayer } from "react-intlayer"; import { useI18nHTMLAttributes } from "./hooks/useI18nHTMLAttributes"; import "./App.css"; const AppContent: FC = () => { // Aplica el hook para actualizar los atributos lang y dir de la etiqueta <html> según la configuración regional. useI18nHTMLAttributes(); // ... Resto de tu componente }; const App: FC = () => ( <IntlayerProvider> <AppContent /> </IntlayerProvider> ); export default App;Al aplicar estos cambios, tu aplicación:
- Asegurar que el atributo language (
lang) refleje correctamente la configuración regional actual, lo cual es importante para SEO y el comportamiento del navegador. - Ajustar la dirección del texto (
dir) según la configuración regional, mejorando la legibilidad y usabilidad para idiomas con diferentes órdenes de lectura. - Proporcionar una experiencia más accesible, ya que las tecnologías de asistencia dependen de estos atributos para funcionar de manera óptima.
- Accesibilidad: Los lectores de pantalla y las tecnologías de asistencia dependen del atributo
Crear un Componente de Enlace Localizado
OpcionalPara asegurar que la navegación de su aplicación respete la configuración regional actual, puede crear un componente personalizado
Link. Este componente antepone automáticamente a las URLs internas el idioma actual. Por ejemplo, cuando un usuario francófono hace clic en un enlace a la página "Acerca de", es redirigido a/fr/abouten lugar de/about.Este comportamiento es útil por varias razones:
- SEO y experiencia del usuario: Las URLs localizadas ayudan a los motores de búsqueda a indexar correctamente las páginas específicas por idioma y proporcionan a los usuarios contenido en su idioma preferido.
- Consistencia: Al usar un enlace localizado en toda su aplicación, garantiza que la navegación se mantenga dentro de la configuración regional actual, evitando cambios inesperados de idioma.
- Mantenibilidad: Centralizar la lógica de localización en un solo componente simplifica la gestión de URLs, haciendo que tu base de código sea más fácil de mantener y extender a medida que tu aplicación crece.
A continuación se muestra la implementación de un componente
Linklocalizado en TypeScript:src/components/Link.tsxCopiar códigoCopiar el código al portapapeles
import { getLocalizedUrl } from "intlayer"; import { forwardRef, type DetailedHTMLProps, type AnchorHTMLAttributes, } from "react"; import { useLocale } from "react-intlayer"; export interface LinkProps extends DetailedHTMLProps< AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement > {} /** * Función utilitaria para verificar si una URL dada es externa. * Si la URL comienza con http:// o https://, se considera externa. */ export const checkIsExternalLink = (href?: string): boolean => /^https?:\/\//.test(href ?? ""); /** * Un componente Link personalizado que adapta el atributo href según la configuración regional actual. * Para enlaces internos, utiliza `getLocalizedUrl` para anteponer la configuración regional a la URL (por ejemplo, /fr/about). * Esto asegura que la navegación se mantenga dentro del mismo contexto regional. */ export const Link = forwardRef<HTMLAnchorElement, LinkProps>( ({ href, children, ...props }, ref) => { const { locale } = useLocale(); const isExternalLink = checkIsExternalLink(href); // Si el enlace es interno y se proporciona un href válido, obtener la URL localizada. const hrefI18n = href && !isExternalLink ? getLocalizedUrl(href, locale) : href; return ( <a href={hrefI18n} ref={ref} {...props}> {children} </a> ); } ); Link.displayName = "Link";Cómo Funciona
Detección de Enlaces Externos:
La función auxiliarcheckIsExternalLinkdetermina si una URL es externa. Los enlaces externos se dejan sin cambios porque no necesitan localización.Obtención del Locale Actual:
El hookuseLocaleproporciona el locale actual (por ejemplo,frpara francés).Localización de la URL:
Para enlaces internos (es decir, no externos), se utilizagetLocalizedUrlpara prefijar automáticamente la URL con el locale actual. Esto significa que si tu usuario está en francés, pasar/aboutcomohrefse transformará en/fr/about.Retorno del Enlace:
El componente devuelve un elemento<a>con la URL localizada, asegurando que la navegación sea coherente con la configuración regional.
Al integrar este componente
Linken toda su aplicación, mantiene una experiencia de usuario coherente y consciente del idioma, además de beneficiarse de una mejor SEO y usabilidad.Extraer el contenido de tus componentes
OpcionalSi tienes una base de código existente, transformar miles de archivos puede llevar mucho tiempo.
Para facilitar este proceso, Intlayer propone un compilador / extractor para transformar tus componentes y extraer el contenido.
Para configurarlo, puedes agregar una sección
compileren tu archivointlayer.config.ts:intlayer.config.tsCopiar códigoCopiar el código al portapapeles
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... Resto de tu configuración compiler: { /** * Indica si el compilador debe estar habilitado. */ enabled: true, /** * Define la ruta de los archivos de salida */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * Indica si los componentes deben guardarse después de ser transformados. De esa manera, el compilador se puede ejecutar solo una vez para transformar la aplicación y luego se puede eliminar. */ saveComponents: false, /** * Prefijo de clave de diccionario */ dictionaryKeyPrefix: "", }, }; export default config;Ejecuta el extractor para transformar tus componentes y extraer el contenido
bashCopiar códigoCopiar el código al portapapeles
npx intlayer extract
(Opcional) Sitemap y robots.txt (generación en el build)
Intlayer ofrece utilidades - generateSitemap y getMultilingualUrls - para formatear un sitemap.xml multilingüe y un robots.txt listos para rastreadores y escribirlos automáticamente en public/. Lo habitual es ejecutar un script pequeño de Node antes de Vite (por ejemplo hooks npm predev / prebuild) para que esos archivos existan al compilar o al levantar el servidor de desarrollo.
Sitemap
El generador de sitemaps de Intlayer respeta tu configuración de idiomas y añade los metadatos habituales.
El sitemap admite el espacio de nombresxhtml:link(hreflang). En lugar de listar solo URLs sueltas, Intlayer enlaza de forma bidireccional todas las versiones localizadas de cada página (p. ej./about,/fr/abouto/about?lang=frsegún el modo de rutas).
Robots.txt
Usa getMultilingualUrls para que las reglas Disallow cubran todas las variantes localizadas de rutas sensibles.
1. Crear generate-seo.mjs en la raíz del proyecto
Copiar el código al portapapeles
import fs from "fs";import path from "path";import { fileURLToPath } from "url";import { generateSitemap, getMultilingualUrls } from "intlayer";const __dirname = path.dirname(fileURLToPath(import.meta.url));const SITE_URL = (process.env.SITE_URL || "http://localhost:5173").replace( /\/$/, "");const pathList = [ { path: "/", changefreq: "daily", priority: 1.0 }, { path: "/about", changefreq: "monthly", priority: 0.7 },];const sitemapXml = generateSitemap(pathList, { siteUrl: SITE_URL });fs.writeFileSync(path.join(__dirname, "public", "sitemap.xml"), sitemapXml);const getAllMultilingualUrls = (urls) => urls.flatMap((url) => Object.values(getMultilingualUrls(url)));const disallowedPaths = getAllMultilingualUrls(["/admin", "/private"]);const robotsTxt = [ "User-agent: *", "Allow: /", ...disallowedPaths.map((path) => `Disallow: ${path}`), "", `Sitemap: ${SITE_URL}/sitemap.xml`,].join("\n");fs.writeFileSync(path.join(__dirname, "public", "robots.txt"), robotsTxt);console.log("SEO files generated successfully.");Debe estar instalado intlayer para poder importarlo. Define SITE_URL en el entorno en producción (por ejemplo en CI).
Prefieregenerate-seo.mjspara ESM en Node. Si usasgenerate-seo.js, asegúrate de tener"type": "module"enpackage.jsono ejecuta Node con ESM.
2. Ejecutar el script antes de Vite
Copiar el código al portapapeles
{ "scripts": { "dev": "vite", "prebuild": "node generate-seo.mjs", "build": "vite build", "preview": "vite preview" }}Ajusta los comandos si usas pnpm o yarn. También puedes llamar al script desde CI u otro paso del pipeline.
Configurar TypeScript
Intlayer utiliza la ampliación de módulos para aprovechar las ventajas de TypeScript y fortalecer su base de código.


Asegúrese de que su configuración de TypeScript incluya los tipos generados automáticamente.
Copiar el código al portapapeles
{ // ... Sus configuraciones existentes de TypeScript "include": [ // ... Tus configuraciones existentes de TypeScript ".intlayer/**/*.ts", // Incluir los tipos generados automáticamente ],}Configuración de Git
Se recomienda ignorar los archivos generados por Intlayer. Esto te permite evitar comprometerlos en tu repositorio Git.
Para hacerlo, puedes agregar las siguientes instrucciones a tu archivo .gitignore:
Copiar el código al portapapeles
# Ignorar los archivos generados por Intlayer.intlayerExtensión para VS Code
Para mejorar tu experiencia de desarrollo con Intlayer, puedes instalar la Extensión oficial de Intlayer para VS Code.
Instalar desde el Marketplace de VS Code
Esta extensión ofrece:
- Autocompletado para las claves de traducción.
- Detección de errores en tiempo real para traducciones faltantes.
- Vistas previas en línea del contenido traducido.
- Acciones rápidas para crear y actualizar traducciones fácilmente.
Para más detalles sobre cómo usar la extensión, consulta la documentación de la extensión Intlayer para VS Code.
Ir más allá
Para ir más allá, puedes implementar el editor visual o externalizar tu contenido usando el CMS.