Base de conocimientos
Respuestas a preguntas frecuentes sobre la localización de aplicaciones, documentación y contenido con General Translation.
Internacionalización
Configuración de i18n en una base de código: bibliotecas, frameworks y componentes.
- ¿Cómo traduzco una aplicación de Flask o FastAPI?Marca las cadenas visibles para el usuario, elige la configuración regional de cada solicitud (normalmente a partir de Accept-Language) y carga las traducciones correspondientes a esa configuración regional. Las aplicaciones de Flask suelen usar Flask-Babel con catálogos de gettext, mientras que las de FastAPI integran Babel en un middleware. La CLI de General Translation rellena esos catálogos, y sus SDK experimentales gt-flask y gt-fastapi traducen cadenas t() inline sin necesidad de catálogos.Vídeo
- ¿Cómo localizo una app de Android con strings.xml?Guarda todas las cadenas predeterminadas en res/values/strings.xml, añade un strings.xml para cada idioma en una carpeta con calificador de configuración regional, como values-es o values-b+zh+Hant+TW, y lee el texto con stringResource o getString. Traduce a mano, en Play Console o con la CLI de General Translation, que genera cada carpeta values y reconstruye los plurales para cada idioma de destino.Vídeo
- ¿Cómo agrego i18n a una aplicación de Next.js con Pages Router?Agregue un bloque i18n con locales y defaultLocale a next.config.js, y Next.js servirá /es y /fr, redirigirá a los visitantes según el idioma del navegador y pasará la configuración regional a getStaticProps y getServerSideProps. Una biblioteca renderiza los mensajes; gt-next de General Translation, además, genera las traducciones a partir de textos escritos inline en JSX.Vídeo
- ¿Cómo agrego i18n a TanStack Start?TanStack Start no incluye i18n de forma nativa, así que debes agregar una biblioteca que resuelva la configuración regional en cada solicitud del servidor, normalmente a partir de un prefijo de URL o de una cookie, y que cargue los mensajes antes de renderizar. Paraglide JS, react-i18next y Lingui renderizan las traducciones que tú proporcionas; el paquete experimental gt-tanstack-start de General Translation, además, las genera a partir del texto escrito inline en JSX.Vídeo
- ¿Cómo traduzco una app de React Native?Marca el texto en tus componentes, genera un archivo de traducciones para cada idioma, agrega polyfills de Intl y carga el archivo correspondiente al idioma del dispositivo. Con gt-react-native, la biblioteca experimental de General Translation, envuelves el texto en <T>, un plugin de Babel agrega los polyfills y npx gt translate genera los archivos.Vídeo
- ¿Cómo traduzco una aplicación Vue?Traducir una aplicación Vue implica que cada cadena de las plantillas se obtenga mediante una búsqueda según el idioma activo y se traduzca a cada idioma de destino. El plugin gt-vue de General Translation traduce el contenido envuelto en el componente <T>, y npx gt translate genera un catálogo por cada idioma de destino.Vídeo
- ¿Cómo traduzco una aplicación de React?Traducir una aplicación de React significa internacionalizar sus componentes para que se rendericen en el idioma del usuario y, después, traducir cada cadena a todos los idiomas que admitas. gt-react de General Translation traduce JSX en el mismo documento con el componente <T>, y npx gt translate genera un archivo por idioma.Vídeo
- ¿Cómo traduzco una aplicación de Node.js?Detecta el idioma de cada solicitud, normalmente a partir de su cabecera Accept-Language, y devuelve todas las cadenas en ese idioma. gt-node de General Translation vincula la configuración regional a cada solicitud con withGT y traduce las cadenas con getGT, a partir de las traducciones que npx gt translate --publish genera antes de desplegar.Vídeo
- ¿Cómo traduzco cadenas fuera de JSX?Pasa cada cadena que no sea un hijo de JSX, como un marcador de posición o una constante en el ámbito del módulo, por una función de traducción en el lugar donde se renderiza. El hook useGT de General Translation devuelve esa función, y msg junto con useMessages traduce las constantes definidas fuera de un componente.Vídeo
- ¿Cómo internacionalizo una aplicación con Cursor o Claude Code?Empieza con el prompt Setup for Agents de General Translation en Cursor o Claude Code, elige una funcionalidad y los idiomas de destino, y deja que el agente implemente y verifique el resultado. El inicio de sesión desde el navegador, la documentación legible por máquinas y las herramientas MCP enlazan la configuración inicial con la traducción y la revisión. Usa Locadex para automatizar la localización continua mediante pull requests.Vídeo
- ¿Cómo agrego i18n a una aplicación de Next.js con App Router?Empieza con gt init para configurar General Translation en un proyecto compatible con App Router; luego marca el contenido de origen, genera las traducciones y verifica el cambio de idioma. gt-next mantiene el texto en JSX junto con el contexto de traducción; la CLI, el editor del panel de control y Locadex se encargan de la generación, la revisión y las actualizaciones continuas. Esta guía también muestra la configuración inicial explícita con archivos locales.Vídeo
- Internacionalización vs. localización (i18n vs. l10n)La internacionalización (i18n) es el trabajo de código y diseño que permite que un mismo producto admita muchas configuraciones regionales; por ejemplo, dar formato a fechas con Intl o admitir texto right-to-left. La localización (l10n) lo adapta a una configuración regional concreta, lo que abarca la traducción, pero también la moneda, los formatos de fecha, las unidades, el tono y los aspectos legales.Vídeo
- Buenas prácticas para el selector de idioma: UX, SEO y accesibilidadEscribe el nombre de cada idioma en ese mismo idioma, como Deutsch o 日本語, y no uses banderas, que representan países. Enlaza cada opción a la misma página en ese idioma mediante un enlace rastreable, guarda la elección en una cookie y nunca redirijas automáticamente una URL localizada.Vídeo
- ¿Qué es la pseudolocalización?La pseudolocalización es una prueba que sustituye tu texto de origen por una versión alterada (con acentos, alrededor de un 40 % más larga y entre corchetes) para que las cadenas codificadas de forma fija, el truncamiento, las fuentes rotas y las oraciones concatenadas salgan a la luz antes de que exista ninguna traducción. Android incluye para ello las pseudoconfiguraciones regionales en-XA y ar-XB.Vídeo
- ¿Cómo localizo una app de iOS con String Catalogs?Agrega tus idiomas en Xcode, escribe el texto visible para el usuario con API localizables como Text de SwiftUI y String(localized:), y compila para que Xcode recopile esas cadenas en un String Catalog (.xcstrings). Traduce en Xcode, mediante XLIFF o con la CLI de General Translation si quieres que los catálogos se actualicen con cada lanzamiento y compartan terminología con tu sitio web y tu app de Android.Vídeo
- ¿Cómo hago que un sitio web sea multilingüe?Elige dónde se alojarán las traducciones (en un proxy, un plugin de CMS, un creador de sitios web o tu propio código) y después asigna a cada idioma su propia URL, tal como recomienda Google. Traduce las páginas completas, además de los títulos y las metadescripciones, vincula las versiones con hreflang y ofrece un selector de idioma en lugar de redirigir automáticamente a los visitantes.Vídeo
- ¿Cómo encuentro cadenas codificadas de forma fija que no están traducidas?Ejecuta en CI un linter que marque los literales de cadena visibles para el usuario, como la regla no-literal-string de eslint-plugin-i18next para JSX, la comprobación HardcodedText de Android Lint o el linter HardCodedString de erb_lint para Rails. Después, recorre la app con una pseudoconfiguración regional para detectar el texto que las comprobaciones estáticas no pueden rastrear.Vídeo
- ¿Cómo detecto el idioma del navegador de un usuario?Lee la lista ordenada de idiomas del navegador (navigator.languages en JavaScript o la cabecera Accept-Language en el servidor), ordenada por valor q, y busca la coincidencia con tus configuraciones regionales compatibles, con una configuración regional de respaldo. Safari y el modo incógnito de Chrome solo indican un idioma, y la geolocalización por IP revela la ubicación, no el idioma.Vídeo
- ¿Cómo debo nombrar las claves de traducción de i18n?Nombra las claves según dónde aparece el texto y qué significa, como checkout.summary.title, y no según su redacción en inglés. Asigna a cada uso distinto su propia clave, aunque el texto en inglés coincida: en alemán, el botón Open se traduce como Öffnen y el estado Open como Offen.Vídeo
- Lista de comprobación de pruebas de localización para aplicaciones multilingüesPrueba nueve aspectos en cada configuración regional compatible en una compilación de producción: recorridos completos, incluidos los estados de error y los correos electrónicos; cambio de idioma; plurales; moneda y zonas horarias; expansión del texto; diseño right-to-left; accesibilidad; entrega de traducciones; y URL de idioma rastreables. Asigna a cada comprobación un criterio de aprobación explícito.Vídeo
- General Translation vs. vue-i18n: ¿cuál deberías usar?General Translation permite a los equipos de Vue escribir el texto de origen directamente en las plantillas y generar traducciones con la CLI. Su plugin gt-vue renderiza ese contenido con formato de plurales y de números adaptado a la configuración regional. Elígelo si quieres dejar de mantener archivos de origen basados en claves; vue-i18n sigue siendo una buena opción para equipos que usan el módulo i18n de Nuxt y un flujo de trabajo de catálogos ya consolidado.Vídeo
- General Translation vs. Symfony Translation: ¿cuál deberías usar?Symfony Translation renderiza mensajes en PHP y Twig. General Translation traduce sus catálogos YAML en CI, los mantiene al día a medida que cambia tu contenido de origen y ofrece a los revisores un panel de control para editarlos. Conserva el renderizado de Symfony y añade traducción automatizada a tu flujo de trabajo de lanzamiento.Vídeo
- General Translation vs. Rails I18n: ¿necesitas ambos?Rails I18n busca mensajes y da formato a fechas y números. General Translation genera las traducciones, las mantiene al día a medida que cambia tu texto en inglés y ofrece a tu equipo un panel de control para revisarlas. Usa ambos para publicar catálogos de Rails traducidos en cada lanzamiento.Vídeo
- General Translation vs. Paraglide JS: ¿cuál deberías usar?Elige General Translation para mantener el texto inline y generar traducciones que respetan la estructura de tus componentes de React, con terminología compartida y revisión en el panel de control. Elige Paraglide JS si buscas funciones de mensaje compiladas y tipadas, con tree-shaking por mensaje. Paraglide renderiza tus catálogos; General Translation conecta el texto de origen con la generación de traducciones y sus actualizaciones continuas.Vídeo
- General Translation vs. nestjs-i18n: ¿cuál deberías usar?nestjs-i18n resuelve el idioma de cada solicitud en una aplicación NestJS y renderiza mensajes a partir de catálogos JSON o YAML por idioma, pero no traduce nada. La CLI de General Translation traduce esos catálogos y su biblioteca gt-node traduce el contenido que solo existe en tiempo de ejecución, así que puedes conservar nestjs-i18n y añadir General Translation.Vídeo
- General Translation vs. Mobility: ¿cuál deberías usar?Mobility almacena los atributos traducidos de los modelos en tu base de datos. General Translation genera esas traducciones a través de su API, usando tu glosario y tus prompts personalizados. Usa ambos para traducir fichas de productos, publicaciones y otro contenido de la base de datos sin renunciar a tus modelos de Rails.Vídeo
- General Translation vs. Lingui: ¿cuál deberías usar?Elige General Translation para mantener el texto inline como en Lingui y generar las traducciones usando tu estructura JSX como contexto. Lingui extrae los mensajes inline a catálogos para que tus traductores o un servicio conectado los traduzcan. La CLI de General Translation actualiza las traducciones a medida que cambia tu código, y tu equipo las revisa en el panel de control.Vídeo
- General Translation vs. Intlayer: ¿cuál deberías usar?Intlayer guarda el contenido de cada componente en un archivo de declaración tipado situado junto a él, con todos los idiomas escritos en paralelo, y puede completar los idiomas que faltan con el proveedor de IA que tú configures. General Translation mantiene los textos inline en tus componentes, en un solo idioma, y genera los demás idiomas a partir del contexto de tu código.Vídeo
- General Translation vs. i18next, react-intl y next-intl: ¿qué biblioteca de i18n deberías usar?Las bibliotecas de código abierto como i18next, react-intl y next-intl no traducen nada. Muestran las traducciones que tú proporcionas en un archivo de catálogo para cada idioma, escritas por ti, por tus traductores o por un servicio externo. Las bibliotecas de General Translation también son de código abierto y cumplen la misma función, pero además General Translation se encarga de traducir, usando tu código como contexto.Vídeo
- General Translation frente al framework de traducción de Django: ¿necesitas ambos?Usa el framework de traducción de Django y General Translation de forma conjunta. Django se encarga de la extracción de mensajes, la selección del idioma y el renderizado. General Translation rellena sus archivos PO, incluidas las formas plurales, con la terminología de tu producto y la revisión en el panel de control. Tus plantillas y patrones de URL siguen igual, y las traducciones se actualizan a la par que tu código.Vídeo
- General Translation frente a GNU gettext: ¿necesitas ambos?Conserva GNU gettext para la extracción y el renderizado, y añade General Translation para generar y mantener los archivos PO. General Translation incorpora las notas para traductores y el contexto de los mensajes en la generación, aplica una terminología compartida y ofrece a los revisores un editor en el panel de control. Tus llamadas actuales a gettext y tus catálogos compilados siguen como están.Vídeo
- General Translation frente a Babel y Flask-Babel: ¿cuál deberías usar?Babel da formato a fechas, números y monedas para cualquier configuración regional y gestiona catálogos de gettext, y Flask-Babel lo integra con Flask, pero ninguno de los dos traduce tus cadenas. La CLI de General Translation rellena los archivos PO de Babel para cada idioma, formas plurales incluidas, para que puedas seguir usando Flask-Babel y dejar de traducir catálogos a mano.Vídeo
- Alternativas a react-intl: General Translation vs. react-intlGeneral Translation permite a los equipos de React conservar la sintaxis de mensajes ICU y, además, añade generación de traducciones, terminología compartida y revisión en el panel de control. react-intl ofrece formato y herramientas de catálogos de FormatJS; General Translation, además, genera las traducciones.Vídeo
- Alternativas a i18next: General Translation vs. i18nextElige General Translation para mantener los textos inline en los componentes de React y generar traducciones a partir de su estructura JSX y del contexto del producto. También puedes seguir usando i18next y recurrir a General Translation para traducir los catálogos existentes. i18next se encarga de renderizar los mensajes y seleccionar los plurales, pero las traducciones las genera un servicio aparte.Vídeo
- ¿Deberías crear tu propia i18n o usar General Translation?Una i18n hecha a mano (un diccionario por idioma y una pequeña función auxiliar t()) funciona bien para uno o dos idiomas y poco texto. A medida que la app crece, acabas reconstruyendo las reglas de plural, las alternativas de respaldo y la sincronización de archivos, y aun así tienes que generar las traducciones. Las bibliotecas de código abierto de General Translation se encargan del renderizado, y General Translation genera y actualiza las traducciones a partir de tu código.Vídeo
- ¿Puedo hacer i18n sin archivos de traducción?Sí. Las bibliotecas gt-react y gt-next de General Translation permiten hacer i18n en React y Next.js sin claves de traducción y sin tener que mantener un archivo JSON por idioma. El texto permanece inline en JSX dentro del componente <T>, y el comando gt translate genera las traducciones de cada idioma durante la compilación, con contexto extraído de tu código. Locadex puede mantenerlas al día mediante pull requests.Vídeo
- ¿Cómo traduzco texto condicional en JSX?Mantén la oración completa y traduce cada una de sus versiones, porque un ternario la divide en fragmentos que pierden su significado y su lugar en el orden de palabras de cada idioma. General Translation lo resuelve con <Branch> dentro de <T>, que traduce la oración como una sola unidad.Vídeo
Formato según la configuración regional
Plurales, fechas, números, monedas y texto right-to-left en cada configuración regional.
- ¿Qué son los códigos de configuración regional, como en-US y en-GB?Un código de configuración regional identifica un idioma y, cuando es relevante, su sistema de escritura y su región, como en-US para el inglés de Estados Unidos o zh-Hant-TW para el chino tradicional de Taiwán. La mayoría del software usa etiquetas BCP 47 basadas en códigos ISO. General Translation usa códigos BCP 47 para las configuraciones regionales de origen y de destino en gt.config.json.Vídeo
- ¿Cómo doy formato a números, fechas y monedas para cada configuración regional?Da formato a cada valor cuando se renderiza la página, con la configuración regional del lector y la API Intl de JavaScript, y mantenlo fuera de la oración traducida. Los componentes <Num>, <Currency>, <DateTime> y <RelativeTime> de General Translation hacen ambas cosas dentro de un <T>, de modo que una sola traducción sirve para cualquier valor.Vídeo
- ¿Qué es el formato de mensajes ICU?El formato de mensajes ICU es una sintaxis que permite que una sola cadena traducible contenga variables, plurales, opciones de selección y ordinales, como {count, plural, one {# file} other {# files}}. Cada idioma conserva las categorías de plural de CLDR que necesita: el inglés usa one y other, mientras que el polaco añade few y many.Vídeo
- ¿Cómo doy soporte a idiomas RTL (right-to-left) en CSS?Coloca dir="rtl" y lang en el elemento html, ya que lang por sí solo no cambia la dirección, y luego sustituye el CSS físico, como margin-left, por propiedades lógicas, como margin-inline-start. Las filas flex, las columnas de grid y la alineación de texto predeterminada se invierten solas; translateX(), left y right, no.Vídeo
- ¿Cómo gestiono los plurales en React?Para gestionar los plurales en React, asigna a cada idioma una oración por cada forma plural y selecciónala con las reglas de plural de ese idioma, ya que el inglés tiene 2 formas, el ruso tiene 4 y el árabe tiene 6. El componente <Plural> de General Translation en gt-react y gt-next recibe tus formas de origen, y General Translation genera las formas que necesita cada idioma de destino.Vídeo
Traducción
Traducción automática y con IA, calidad, contexto y glosarios.
- Las mejores herramientas de traducción con IA para desarrolladores: API frente a plataformas de localizaciónUsa una API de traducción si ya gestionas tu propio flujo de localización. Usa General Translation si quieres gestionar de forma conjunta el contexto, las comprobaciones de coherencia, la revisión y la entrega continua. DeepL, Google Cloud Translation, OpenAI y Claude pueden servir de base para un flujo en producción; General Translation te ofrece uno listo para tu aplicación, tu documentación y tu sitio web.Vídeo
- Alternativas a DeepL: General Translation vs. DeepLDeepL es una API de traducción automática, así que devuelve una traducción por cada texto o documento que le envías. General Translation es una plataforma de localización. Aporta lo que una API deja en tus manos: contexto a partir de tu código y de tu equipo, términos coherentes en todas las superficies, revisión en un panel de control y traducción continua con cada lanzamiento.Vídeo
- ¿Qué es la memoria de traducción y sigue siendo necesaria con la IA?La memoria de traducción (TM) es una base de datos de pares de segmentos de origen y destino ya traducidos en la que una herramienta de traducción busca coincidencias exactas, en contexto y aproximadas. Con la IA, sigue siendo conveniente reutilizar la redacción aprobada y tener las traducciones anteriores disponibles como contexto. General Translation reutiliza las traducciones coincidentes de versiones anteriores de los archivos y conserva las ediciones del equipo, sin necesidad de mantener una TM aparte.Vídeo
- ¿Cómo traduzco archivos PO y POT?Rellena cada msgstr, incluidas todas las formas plurales que pide la cabecera Plural-Forms, y deja msgid, msgctxt y los marcadores de posición sin cambios. Ejecuta msgfmt --check para verificar las cabeceras, el número de formas plurales y los marcadores de posición en las entradas con una opción de formato, y comprueba por separado que ningún msgstr esté vacío. La CLI de General Translation genera un archivo PO traducido para cada idioma a partir de tu plantilla POT.Vídeo
- ¿Cómo traduzco archivos de configuración regional YAML?Traduce solo los valores de cadena y deja intactas las claves, los marcadores de posición como %{name} o {{name}} y las anclas. Pon entre comillas los valores que contengan dos puntos o empiecen por % o {, define la raíz de configuración regional o el nombre de cada archivo y añade las claves de plural que necesite el idioma de destino. La CLI de General Translation traduce los valores YAML en el mismo documento y no modifica las claves.Vídeo
- ¿Cómo traduzco archivos .resx en una aplicación .NET?Crea una copia de cada archivo .resx neutro con la referencia cultural en el nombre, como Resources.fr.resx, y traduce solo el valor de cada entrada, sin modificar los nombres, los comentarios ni los marcadores de posición como {0}. .NET compila cada referencia cultural en un ensamblado satélite y, si falta algo, recurre de fr-CA a fr y, por último, al archivo neutro. La CLI de General Translation genera esos archivos por referencia cultural a partir del archivo de origen neutro.Vídeo
- ¿Cómo traduzco animaciones Lottie?Traduce las cadenas de las capas de texto de la animación, almacenadas en el JSON de Lottie en t.d.k[].s.t, y después comprueba que cada traducción quepa en su cuadro, que las fuentes cubran el nuevo sistema de escritura y que ningún texto se haya exportado como formas. Puedes volver a exportar por idioma, sustituir el texto en tiempo de ejecución o modificar el JSON con un script; la CLI de General Translation traduce archivos .lottie de dotLottie 1.0 y reajusta el layout.Vídeo
- ¿Cómo mantengo la coherencia terminológica en la traducción con IA?Mantén un único glosario de términos aprobados, incluidos los nombres que no se traducen, aplícalo a todas las solicitudes de traducción, deja las variables y el código fuera de la traducción y revisa el resultado. General Translation lo consigue con los grupos de contexto, cuyo glosario y prompts personalizados se aplican a todos los proyectos a los que los asignes, además del componente Var para los valores que nunca se traducen.Vídeo
- ¿Cómo traduzco Google Slides?Copia la presentación una vez por idioma, reemplaza el texto de cada cuadro de texto, celda de tabla y nota del orador, y ajusta el tamaño del texto que se desborde. La integración de Google Drive de General Translation guarda cada idioma en su propia copia junto a la presentación de origen y aplica una pasada de formato para adaptar el nuevo texto a cada diapositiva.Vídeo
- ¿Cómo reviso y edito traducciones?General Translation permite a los revisores comparar y editar traducciones en el panel de control, con etiquetas y comentarios para hacer seguimiento de la revisión. Descarga los cambios guardados con la CLI o incorpóralos en un pull request mediante la siguiente ejecución de traducción de Locadex. Los desarrolladores también pueden devolver a la plataforma los cambios revisados en los archivos con gt save-local.Vídeo
- ¿Es la traducción con IA lo bastante precisa para una aplicación en producción?A menudo sí, en los idiomas más hablados, pero solo después de superar una evaluación con tus propios idiomas, cadenas de UI y contenido de mayor riesgo. En WMT25, Gemini 2.5 Pro igualó o superó a las traducciones humanas de referencia en 10 de 16 pares de idiomas; aun así, un benchmark basado en documentos no demuestra si las cadenas cortas de interfaz están listas para publicarse.Vídeo
- ¿Cómo traduzco subtítulos SRT sin alterar la sincronización?Traduce solo el texto de los subtítulos de un archivo SRT; conserva los números de subtítulo, los códigos de tiempo, las líneas en blanco que los separan y las etiquetas de formato tal como aparecen en el origen. Después, comprueba que la longitud de línea y la velocidad de lectura cumplan los requisitos de tu destino: la guía de Netflix para inglés, por ejemplo, admite 42 caracteres por línea y 20 caracteres por segundo en programas para adultos.Vídeo
- ¿Cómo traduzco Markdown y MDX sin romper la sintaxis?Traduce el texto dirigido a los lectores sin alterar el código ejecutable, las importaciones, los nombres de componentes JSX ni los identificadores de máquina. General Translation procesa Markdown y MDX directamente, incluidas las props que muestran texto y los títulos del frontmatter, y reutiliza las traducciones coincidentes a medida que cambia la documentación. Revisa los archivos localizados y ejecuta la compilación del sitio antes de publicar.Vídeo
- ¿Cómo traduzco archivos JSON de i18n?Traduce solo los valores de cadena de un archivo JSON de configuración regional. No modifiques las claves no plurales, los marcadores de posición como {{name}} ni las etiquetas, pero ten en cuenta que las claves plurales varían según el idioma: el polaco necesita inbox_few e inbox_many. Usa una herramienta o API que reconozca el formato y, después, analiza y valida el resultado antes de revisarlo.Vídeo
- Alternativas a Google Translate: General Translation vs. Google TranslateGoogle Translate es una forma rápida de traducir textos puntuales, pero lanzar un producto en otro idioma también exige traducir cada cadena en su contexto, mantener una terminología coherente, gestionar correctamente las variables y los plurales, revisar las traducciones y contar con un proceso de lanzamiento. General Translation entiende el contexto de cada cadena en tu código y automatiza todo el flujo de trabajo de localización, desde el código hasta la revisión y cada lanzamiento.Vídeo
SEO multilingüe
Enrutamiento por configuración regional, hreflang, mapas del sitio y metadatos traducidos para sitios multilingües.
- ¿Cómo traduzco los títulos SEO y las metadescripciones?Escribe el título y la metadescripción de cada versión lingüística en su propio idioma, con las palabras que busca ese mercado, que a menudo difieren de una traducción literal. Después, localiza las etiquetas que los acompañan, como Open Graph, la URL canónica, hreflang, html lang y los datos estructurados. gt-next de General Translation traduce títulos y descripciones dentro de generateMetadata con getGT.Vídeo
- ¿Cómo creo un mapa del sitio para un sitio web multilingüe?Incluye cada versión de idioma de cada página como una entrada url propia. Si el mapa del sitio contiene tu hreflang, añade a cada entrada versiones alternativas xhtml:link para todas las versiones, incluida ella misma, además de un x-default opcional, y divide los archivos al llegar a 50.000 URL o 50 MB. gt-next de General Translation asigna a cada configuración regional su propia URL para que el mapa del sitio la incluya.Vídeo
- Subdirectorio vs. subdominio vs. ccTLD para SEO multilingüeUsa subdirectorios como example.com/de/ cuando un mismo producto comparte sitio y proceso de lanzamiento. Solo un ccTLD indica un país, los subdominios permiten un alojamiento independiente, Google desaconseja los parámetros ?lang= y trata los dominios personalizados como .io y .ai como genéricos.Vídeo
- Redirecciones de idioma y SEO: ¿URL, cookie o Accept-Language?Deja que la URL determine el idioma de cada página que quieras indexar, porque Googlebot no envía la cabecera Accept-Language y rastrea sobre todo desde direcciones de EE. UU. Recurre a la preferencia guardada en una cookie y, en su defecto, a Accept-Language solo para decidir adónde redirige una raíz neutral como /, mediante una redirección temporal 302 o 307.Vídeo
- ¿Qué es hreflang y cómo se configura?Hreflang le indica a Google qué URL son versiones de la misma página en otros idiomas o regiones, para que pueda mostrar la adecuada en los resultados de búsqueda. Agrégalo con etiquetas link de HTML, cabeceras HTTP Link o un mapa del sitio, asegúrate de que todos los enlaces sean recíprocos y usa códigos válidos como en-GB, no en-UK.Vídeo
- ¿Cómo configuro el SEO de una aplicación de Next.js multilingüe?Asigna a cada idioma su propia URL con prefijo, como /en/about y /es/about, y luego publica html lang, una URL canónica autorreferente, versiones alternativas hreflang con x-default, un título y una descripción traducidos, y una entrada en el mapa del sitio para cada idioma publicado. Marca con noindex las versiones no publicadas. gt-next de General Translation dirige cada idioma a su propia URL y traduce los títulos con getGT.Vídeo
Herramientas para flujos de trabajo
Elección de herramientas de localización y sincronización de las traducciones mediante la localización continua.
- ¿Qué herramientas de traducción cobran por uso en lugar de por puesto?Elige General Translation si quieres que el gasto en traducción se ajuste al trabajo que solicitas, con usuarios ilimitados y una tarifa de plataforma de $0 en el plan Starter. Crowdin y Lokalise incluyen roles de traducción ilimitados en los planes de pago, pero cobran por algunos otros roles; Hosted Weblate incluye traductores ilimitados y cobra según la capacidad de cadenas alojadas.
- General Translation vs. Lingo.dev: ¿cuál deberías usar?Lingo.dev gira en torno a motores de traducción configurables, con herramientas de CLI, React y GitHub para acceder a ellos. General Translation es una plataforma de localización: bibliotecas, contexto del código, terminología compartida, revisión en el panel de control en todos los planes y Locadex, que además internacionaliza tu código. Elige Lingo.dev si quieres controlar el modelo por par de idiomas.Vídeo
- Alternativas a Weglot: General Translation vs. WeglotWeglot es un servicio de traducción de sitios web que traduce páginas renderizadas mediante plugins, un fragmento de código o un proxy, y Weglot 2.0 incorpora flujos de trabajo de traducción de archivos JSON en GitHub. General Translation es una plataforma de localización que combina la internacionalización del código fuente, la traducción de archivos, el contexto compartido, la revisión en el panel de control y el enrutamiento por configuración regional.Vídeo
- ¿Cómo traduzco contenido en Payload CMS?Añade localización a tu configuración de Payload y establece localized en true en cada campo; así, Payload almacena un valor por configuración regional, pero no los rellena. El plugin gt-payload de General Translation añade un botón Translate que escribe cada configuración regional de destino como borrador si los borradores están habilitados, o directamente si no lo están. Nunca publica.Vídeo
- ¿Qué hace el agente Locadex?Locadex es el agente de IA de General Translation que internacionaliza tu código y traduce tu contenido en tu repositorio de GitHub. Sus automatizaciones se ejecutan cuando se abre un pull request, cuando se hace push de un commit o cuando tú las inicias, y cada cambio llega como un pull request.Vídeo
- ¿Cómo traduzco un sitio de documentación de Mintlify?Crea una copia traducida de cada página en una carpeta por idioma y añade cada idioma a la navegación de docs.json. El agente de IA de General Translation, Locadex, abre un pull request que añade las páginas traducidas y la navegación por idioma, y después traduce los cambios posteriores.Vídeo
- ¿Cómo traduzco contenido en Storyblok?En Storyblok, agrega tus idiomas de destino al espacio y asigna a cada campo traducible un valor por idioma. La integración de Storyblok de General Translation rellena esos valores desde el panel de control con Sincronizar y aplicar, como borradores que luego revisas y publicas en Storyblok.Vídeo
- ¿Cómo traduzco contenido en Sanity?Almacena cada idioma como un documento propio o como un valor por configuración regional en cada campo y, después, traduce el origen a cada configuración regional de destino. El plugin gt-sanity de General Translation añade una acción Translate a Sanity Studio y, de forma predeterminada, importa cada traducción como un borrador para que lo revises y lo publiques.Vídeo
- ¿Cómo mantengo las traducciones actualizadas en cada despliegue?Ejecuta la traducción como un paso del flujo antes de cada compilación de producción, para que el texto nuevo se publique ya traducido en el mismo despliegue que lo incorpora. La CLI gt de General Translation lo hace con npx gt translate, usando una clave de API del proyecto y el ID del proyecto almacenados como secretos de CI.Vídeo
- ¿Qué es un sistema de gestión de traducciones (TMS)?Un sistema de gestión de traducciones (TMS) es un software que almacena tu contenido de origen y sus traducciones, y gestiona el flujo de trabajo de traducción: memoria de traducción, glosarios, revisión, traducción automática e integraciones. Su memoria de traducción reutiliza traducciones anteriores mediante coincidencias exactas o aproximadas. Crowdin, Lokalise, Phrase, Smartling y Transifex son ejemplos habituales.Vídeo
- General Translation vs. Weblate: ¿cuál deberías usar?Weblate es una plataforma de localización autoalojable y basada en Git, pensada para traducir los archivos de un repositorio junto con una comunidad o un equipo. General Translation integra la generación de traducciones en el desarrollo y los lanzamientos mediante JSX marcado y contexto compartido del producto. Conserva tus archivos de gettext o adopta la redacción inline para eliminar también el mantenimiento del catálogo de origen.Vídeo
- General Translation vs. Tolgee: ¿cuál deberías usar?Tolgee combina mensajes con claves, edición en contexto y traducción con IA en una plataforma que puedes alojar tú mismo. General Translation mantiene el texto legible directamente en tus componentes y genera las traducciones a partir del JSX marcado, para que puedas publicar texto nuevo en todos los idiomas sin tener que mantener claves de mensajes.Vídeo
- General Translation vs. Locize: ¿cuál deberías usar?Locize es un sistema de gestión de traducciones de los creadores de i18next que sirve las traducciones desde una CDN, recopila claves nuevas desde tu aplicación en ejecución y añade traducción con IA y un editor en contexto. Aun así, sigues teniendo que mantener la biblioteca de i18n y sus claves. General Translation puede ser tu biblioteca de i18n y encargarse también de la traducción, o traducir los archivos de i18next que ya tienes.Vídeo
- General Translation vs. i18n-tasks: ¿cuál deberías usar?i18n-tasks es una gema de Ruby que detecta claves de Rails I18n faltantes y sin usar, ordena los archivos de configuración regional y puede completar las claves faltantes mediante Google Translate, DeepL, OpenAI, Yandex o watsonx. General Translation traduce archivos de configuración regional completos con tu glosario, tus prompts personalizados y la revisión en el panel de control. Cumplen funciones distintas, y muchos equipos pueden usar ambas.Vídeo
- General Translation frente a un TMS (Crowdin, Lokalise, Phrase)Elige General Translation cuando los desarrolladores quieran que la generación de traducciones, el contexto derivado del código y la revisión estén vinculados a los lanzamientos del producto. Conserva tus catálogos y tu biblioteca de renderizado actuales, o escribe JSX inline sin claves de traducción. Un TMS encaja con programas centrados en proveedores lingüísticos, editores CAT e intercambio de XLIFF; sus integraciones pueden automatizar las transferencias de archivos.Vídeo
- Alternativas a Transifex: General Translation vs. TransifexElige General Translation para traducir JSX marcado conservando su estructura y el contexto del desarrollador, y luego incluir los resultados en el paquete o servirlos desde su CDN. Transifex Native también mantiene las cadenas en el código, pero las publica a través de su servicio de entrega de contenido. Transifex encaja bien con equipos que recurren a sus socios de traducción, sus puntuaciones de calidad o la traducción de sitios web mediante fragmentos de código.Vídeo
- Alternativas a Smartling: General Translation vs. SmartlingElige General Translation si quieres que las traducciones de tu aplicación se generen a partir del código como parte de cada lanzamiento. Smartling combina un sistema de gestión de traducciones, servicios de traducción con IA y humana, y un proxy de traducción de sitios web. General Translation mantiene los textos en tus componentes, conserva su contexto durante la traducción y ofrece a tu equipo un panel de control para revisarlas.Vídeo
- Alternativas a Phrase: General Translation vs. PhraseGeneral Translation es una sólida alternativa a Phrase Strings cuando tu aplicación y tu documentación se publican a la vez. Genera traducciones a partir del código y de los archivos de contenido, aplica terminología compartida y se ejecuta dentro de tu flujo de trabajo de lanzamiento. Phrase combina la localización de software con un TMS centrado en documentos, gestión de proveedores y una amplia variedad de motores de traducción.Vídeo
- Alternativas a next-intl: gt-next vs. next-intlnext-intl renderiza las traducciones que proporcionas en un catálogo de mensajes para cada idioma. gt-next también renderiza traducciones, pero además General Translation las genera a partir del texto escrito inline en tu JSX. Ambas tienen licencia MIT y son compatibles con App Router y los Componentes de servidor. Si tus catálogos de next-intl ya funcionan, puedes conservarlos y usar General Translation para traducirlos sin necesidad de migrar.Vídeo
- Alternativas a Lokalise: General Translation vs. LokaliseGeneral Translation es una sólida alternativa a Lokalise para equipos que quieren textos legibles en JSX y la traducción integrada en el desarrollo. Lokalise se basa en claves compartidas, integraciones con herramientas de diseño y entrega over-the-air para aplicaciones móviles. General Translation genera traducciones a partir del contenido marcado en la aplicación y permite revisarlas en su panel de control o en pull requests de GitHub.Vídeo
- Alternativas a Crowdin: General Translation vs. CrowdinElige General Translation para mantener los textos en tus componentes y generar las traducciones con tu compilación. Crowdin gestiona proyectos de traducción en torno a archivos de recursos, traductores y flujos de trabajo de revisión, que los ingenieros conectan a la aplicación y mantienen a medida que el producto evoluciona. Crowdin sigue siendo una buena opción para la traducción comunitaria de proyectos de código abierto y los programas gestionados por proveedores.Vídeo
- ¿Cuál es la mejor biblioteca de i18n para una aplicación React?Las cuatro principales bibliotecas de i18n para React son gt-react de General Translation, react-i18next, Lingui y React Intl. Las cuatro renderizan traducciones y les dan formato, pero solo gt-react también las genera a partir de textos escritos inline en tu JSX. Elige react-i18next si quieres conservar los catálogos y plugins de i18next, Lingui si buscas extracción a catálogos compilados y React Intl si prefieres FormatJS y el formato de mensajes ICU.Vídeo
- ¿Cuál es el mejor software de localización para desarrolladores?El mejor software de localización para desarrolladores traduce el contenido allí donde está escrito en el código, con contexto de tu producto, y mantiene cada idioma al día. General Translation lo consigue con bibliotecas de código abierto, grupos de contexto y Locadex, un agente de IA que abre pull requests.Vídeo
Implementa hoy
Únete a los mejores equipos de desarrolladores del mundo en General Translation