# General Translation Knowledge Base: General Translation vs. Weblate: ¿cuál deberías usar?
URL: https://generaltranslation.com/es/kb/general-translation-vs-weblate.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: 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.
Category: Herramientas para flujos de trabajo
Last updated: 2026-10-16
Authors: Kevin Wu, Jackie Chen
Published: 2026-10-16

Weblate es una plataforma web de traducción de código abierto construida en torno a Git. Conectas un repositorio, Weblate lee sus archivos de traducción, las personas o los servicios de traducción configurados los completan, y Weblate hace commit de los resultados o abre un pull request. Es una opción habitual para proyectos de código abierto con traductores de la comunidad. General Translation incorpora la generación de traducciones a tu compilación: el texto nuevo y sus traducciones pueden publicarse en el mismo lanzamiento, y tu equipo puede revisarlas en el panel de control.

## Lo que Weblate hace bien

* **Código abierto con copyleft.** Weblate se distribuye [bajo la licencia GPL-3.0-or-later](https://github.com/WeblateOrg/weblate), y puedes descargar y ejecutar toda la plataforma sin coste, con planes de soporte de pago si necesitas ayuda para instalarla y mantenerla.
* **Alojamiento gratuito para proyectos libres.** La versión alojada de Weblate se ejecuta en infraestructura de la UE, y los proyectos libres públicos pueden acceder sin cargo a su plan Libre, con los mismos límites que su plan de 160 000 cadenas.
* **Localización continua basada en Git.** Weblate incorpora los cambios cuando tu forja envía un webhook (o mediante una sincronización diaria), hace commit de las traducciones con operaciones diferidas de hacer commit que agrupan los cambios por autor y los sube a tu rama o [abre pull requests](https://docs.weblate.org/en/latest/vcs.html) en GitHub, GitLab, Gitea, Bitbucket, Azure DevOps y Pagure. La versión alojada también se conecta mediante una GitHub App.
* **Compatibilidad con una gran variedad de archivos.** La documentación de Weblate recoge [unos 50 formatos](https://docs.weblate.org/en/latest/formats.html), entre ellos gettext PO, XLIFF 1.2 y 2.0, cadenas de Android y Apple, ARB, JSON de i18next, Fluent, properties de Java, RESX de .NET, YAML de Ruby, cadenas de PHP y Laravel, Qt Linguist, CSV, Excel y Markdown.
* **Complementos para las tareas rutinarias con archivos.** Los [complementos integrados](https://docs.weblate.org/en/latest/admin/addons.html) actualizan archivos PO a partir de una plantilla POT, generan archivos MO, combinan operaciones de hacer commit y ejecutan traducción automática.
* **Traducción automática y LLMs.** Entre las [integraciones](https://docs.weblate.org/en/latest/admin/machine.html) figuran DeepL, Google, Azure, Amazon y LibreTranslate, además de OpenAI, Azure OpenAI, Anthropic, Mistral y Ollama, cuyos prompts incorporan los términos coincidentes del glosario y tu configuración de estilo, junto con la memoria de traducción propia de Weblate.
* **Controles de calidad.** [Decenas de comprobaciones](https://docs.weblate.org/en/latest/user/checks.html) cubren marcadores de posición, formas plurales que faltan, longitud máxima, sintaxis del formato de mensajes ICU y traducciones sin modificar, y las correcciones automáticas ajustan los espacios en blanco y los puntos suspensivos.
* **Traducción comunitaria.** Los voluntarios pueden sugerir traducciones y dejar comentarios, los revisores las aprueban y un proyecto puede [hacer commit solo de las cadenas aprobadas](https://docs.weblate.org/en/latest/workflows.html). Las capturas de pantalla, los glosarios y las referencias de origen aportan contexto a los traductores.

## Lo que Weblate sigue dejando en manos de tus ingenieros

Esta es una aplicación de Python que usa gettext, con un catálogo en español que se tradujo antes de añadir la última línea:

```python title="app.py"
import gettext
t = gettext.translation("messages", localedir="locale", languages=["es"])
_ = t.gettext
print(_("Inbox"))
print(_("No messages yet."))  # texto nuevo, añadido tras la última ronda de traducción
```

Tras extraer la plantilla POT, traducir solo &quot;Inbox&quot; en `locale/es/LC_MESSAGES/messages.po` y compilar ese archivo con Babel 2.17.0, un lector hispanohablante ve la nueva línea en inglés:

```text title="Output"
Bandeja de entrada
No messages yet.
```

Esa línea sigue en inglés hasta que se completa todo el ciclo:

1. Envuelve la cadena en `_()`, regenera la plantilla POT con `xgettext` o `pybabel extract` y haz commit.
2. Weblate detecta el cambio mediante un webhook o en su siguiente fetch, y su complemento `msgmerge` añade la nueva entrada a cada archivo PO.
3. Traduce con voluntarios, traductores o la traducción automática configurada, y revisa los resultados si necesitas aprobación.
4. Weblate hace commit de los cambios y los envía con push o abre un pull request. Tu proceso de lanzamiento los fusiona, compila los archivos MO y despliega.

Editar los mismos archivos fuera de Weblate puede provocar conflictos de fusión, que [la documentación de Weblate recomienda evitar](https://docs.weblate.org/en/latest/admin/continuous.html#avoiding-merge-conflicts-by-locking-weblate-while-doing-outside-changes) bloqueando el componente mientras modificas los archivos. Además, el traductor ve cada cadena con sus referencias de origen y capturas de pantalla, pero no el código que la renderiza.

El autoalojamiento es gratuito. La versión alojada de Weblate se cobra por cadenas alojadas, que equivalen a las cadenas de origen multiplicadas por el número de idiomas más uno, y todos los planes incluyen idiomas, proyectos y traductores ilimitados. (Consulta [Weblate hosting](https://weblate.org/en/hosting/), verificado en octubre de 2026).

## Weblate vs. General Translation de un vistazo

| Característica                 | Weblate                                                                                                                           | General Translation                                                                                                                             |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Dónde se almacenan las cadenas | Archivos de traducción en tu repositorio, replicados en componentes de Weblate                                                    | En tu código dentro de [`<T>`](/docs/react/reference/components/t), o en los archivos de recursos que ya tienes                                 |
| Cómo se conecta el código      | Weblate obtiene los cambios de Git y luego envía commits o abre pull requests                                                     | [`npx gt translate`](/docs/cli/reference/commands/translate) en tu compilación, o pull requests de [Locadex](/docs/platform/locadex/quickstart) |
| Quién traduce                  | Voluntarios, tus traductores, traducción automática o LLMs                                                                        | IA con contexto de tu código, el glosario y los prompts personalizados, revisada por tu equipo en el panel de control                           |
| Contexto de cada cadena        | Referencias de origen, capturas de pantalla, glosario y memoria de traducción                                                     | Estructura JSX marcada con bibliotecas inline; contexto de origen en catálogos compatibles; glosario y prompts personalizados compartidos       |
| Formatos de archivo            | Unos 50, entre ellos XLIFF, ARB, Fluent y Java properties                                                                         | JSON, YAML, PO, Markdown y MDX, cadenas de iOS y Android, y más                                                                                 |
| Alojamiento                    | Autoalojado gratis, o versión alojada de Weblate                                                                                              | Plataforma alojada; bibliotecas y CLI de código abierto                                                                                         |
| Precios                        | Gratis si es autoalojado; planes alojados según el número de cadenas alojadas; plan Libre gratuito para proyectos libres públicos | [Traducción basada en el uso](https://generaltranslation.com/pricing)                                                                           |
| Licencia                       | GPL-3.0-or-later                                                                                                                  | Bibliotecas de JavaScript y CLI con licencia MIT                                                                                                |

## Por qué los equipos eligen General Translation en lugar de Weblate

General Translation integra la traducción en el mismo lanzamiento que incorpora el nuevo texto. Conserva gettext y genera archivos PO durante la compilación, o usa las bibliotecas inline para mantener el texto de origen directamente en los componentes, dentro de [`<T>`](/docs/react/reference/components/t).

* **Más rápido.** [`npx gt translate`](/docs/cli/reference/commands/translate) genera las traducciones antes del despliegue. En proyectos de React y Next.js, [Locadex](/docs/platform/locadex/quickstart) puede preparar los cambios como pull requests. Basta con añadir una configuración regional en `gt.config.json` para que se generen las traducciones de ese idioma en la siguiente ejecución.
* **Más económico de operar.** General Translation gestiona el servicio de traducción, así que tu equipo no tiene que instalar, actualizar ni respaldar ningún servidor de traducción. Con la redacción inline, los ingenieros además dejan de mantener un catálogo de origen aparte.
* **Mayor calidad.** La traducción inline conserva junto a la oración los elementos del JSX marcado y sus ramas de plural. Con gettext, los comentarios del código de origen y `msgctxt` aportan el significado de cada entrada. Los [grupos de contexto](/docs/platform/dashboard/guides/defining-context-for-translations) compartidos aplican tu glosario y tus prompts personalizados, y tu equipo pule el resultado en el [Editor de Traducciones del panel de control](/docs/platform/dashboard/guides/reviewing-translations).
* **Menor riesgo.** Los archivos traducidos se guardan en tu repositorio y tu proceso de lanzamiento decide cuándo se publican. Conserva gettext y los archivos PO estándar, o usa las bibliotecas de JavaScript de General Translation, con licencia MIT y traducciones incluidas en el paquete; ninguna de las dos vías de entrega requiere llamar a General Translation en tiempo de ejecución.

La plataforma y la documentación de Profound funcionan en más de 47 configuraciones regionales gracias a General Translation. (Consulta los [despliegues en producción](https://generaltranslation.com/enterprise)).

## Cuándo conviene más Weblate

Elige Weblate si buscas traducción comunitaria, una plataforma totalmente autoalojada o su amplia compatibilidad con formatos de catálogo. Elige General Translation si quieres que los nuevos textos de tu producto se traduzcan en cada lanzamiento, con contexto del código para la redacción inline y una vía directa mediante la CLI para tus archivos JSON, YAML, PO o Markdown existentes.

## Cómo usar ambos con archivos gettext

La CLI de General Translation traduce los mismos archivos gettext que lee Weblate. Haz que una entrada `pot` apunte a tu plantilla y asigna cada salida a la estructura de carpetas que usa Weblate:

```json title="gt.config.json"
{
  "defaultLocale": "en",
  "locales": ["es", "fr", "pl"],
  "files": {
    "pot": {
      "include": ["locale/messages.pot"],
      "transformationFormat": "PO",
      "transform": {
        "match": "locale/messages\\.pot",
        "replace": "locale/{locale}/LC_MESSAGES/messages.po"
      }
    }
  }
}
```

Con `gt` 2.26.5, esta configuración asigna `locale/messages.pot` a `locale/es/LC_MESSAGES/messages.po` y a la ruta equivalente para cada configuración regional. En las entradas en plural, General Translation escribe la cabecera `Plural-Forms` del idioma de destino y completa cada forma `msgstr[n]`. Asigna un único responsable a cada idioma (por ejemplo, General Translation para los idiomas que tu comunidad no cubre y los voluntarios de Weblate para el resto) para que no editen ambos el mismo archivo. Si los nombres de carpeta de gettext llevan guiones bajos, como `pt_BR`, añade una entrada [`customMapping`](/docs/cli/reference/config#custom-mapping) que los asigne al formato estándar `pt-BR`. (Consulta [PO / POT](/docs/cli/reference/formats/po-pot-files)).

## ¿Es General Translation una alternativa a Weblate?

Sí. General Translation integra en tu proceso de lanzamiento la generación de traducciones, la terminología compartida del producto y la revisión en el panel de control. Puedes conservar los archivos gettext que se muestran arriba y cambiar únicamente la forma en que se generan sus traducciones, sin sustituir las llamadas a gettext de la aplicación.

## Conclusiones clave

* Weblate es una plataforma con licencia copyleft fuerte orientada a la traducción de proyectos de código abierto y comunitarios, con localización continua basada en Git, autoalojamiento gratuito y compatibilidad con unos 50 formatos de archivo.
* Su flujo de trabajo de traducción gira en torno a los catálogos del repositorio, los colaboradores y la sincronización con Git.
* General Translation genera las traducciones antes del despliegue. Puedes seguir usando gettext y los archivos PO estándar, o adoptar la redacción inline para disponer del contexto del código sin necesidad de un catálogo de origen independiente.

## Related questions

- [¿Por qué usar General Translation en lugar de un TMS (Smartling, Lokalise, Phrase, Crowdin o Transifex)?](https://generaltranslation.com/es/kb/general-translation-vs-tms.mdx): Un sistema de gestión de traducciones (TMS) como Smartling, Lokalise, Phrase, Crowdin o Transifex coordina a los traductores, pero los ingenieros siguen teniendo que extraer las cadenas, enviarlas, esperar las traducciones y volver a integrarlas en el producto. General Translation traduce el contenido de tu código junto con su contexto, incluye todos los idiomas en cada lanzamiento y funciona con bibliotecas de código abierto, sin dependencia de proveedor.
- [General Translation frente a GNU gettext: ¿necesitas ambos?](https://generaltranslation.com/es/kb/general-translation-vs-gettext.mdx): 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.
- [General Translation vs. Tolgee: ¿cuál deberías usar?](https://generaltranslation.com/es/kb/general-translation-vs-tolgee.mdx): 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.
- [General Translation frente al framework de traducción de Django: ¿necesitas ambos?](https://generaltranslation.com/es/kb/general-translation-vs-django-i18n.mdx): 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.
- [¿Cuál es el mejor software de localización para desarrolladores?](https://generaltranslation.com/es/kb/best-localization-software.mdx): Busca un único sistema que cubra todo el flujo, desde la biblioteca de i18n en tu código hasta la traducción y la entrega, en lugar de ir uniendo por separado una biblioteca, un sistema de gestión de traducciones y un proveedor de traducción.

## Previous and next questions

- Previous question: [General Translation vs. vue-i18n: ¿cuál deberías usar?](https://generaltranslation.com/es/kb/general-translation-vs-vue-i18n.mdx)

## Sitemap

See the [Knowledge Base sitemap](https://generaltranslation.com/es/kb/sitemap.md) for every article.
