# Contribuir traducciones

WCPOS se traduce mediante IA, guiada por un conjunto de reglas cuidadosamente ajustado, y se mejora gracias a personas como usted. La máquina produce una primera versión completa y coherente en cada idioma compatible poco después de que cambia una cadena; las personas detectan los matices, el contexto y las convenciones locales que una máquina pasa por alto. No hace falta traducir una aplicación completa ni ser desarrollador para ayudar. Esta página explica cómo funciona y dónde sugerir un cambio.

## Cómo funcionan ahora las traducciones de WCPOS[​](#how-wcpos-translations-work-now "Enlace directo a Cómo funcionan ahora las traducciones de WCPOS")

Cada cadena traducible —la aplicación orientada al cajero, la aplicación de escritorio, las pantallas de administración de WordPress, las cadenas PHP del plugin y esta documentación— pasa por una única canalización automatizada:

1. **Las cadenas de origen se extraen automáticamente** de las aplicaciones, el plugin y la documentación al repositorio central [`wcpos/translations`](https://github.com/wcpos/translations) (y, para la documentación, a este repositorio [`wcpos/docs`](https://github.com/wcpos/docs)).
2. **La IA las traduce a todos los locales compatibles**, siguiendo un conjunto estricto de reglas que conserva marcadores de posición, código, nombres de marca y rutas de menú, mientras localiza el texto visible.
3. **Una comprobación diaria de integridad** busca cadenas ausentes u obsoletas y las pone automáticamente en cola para su traducción, de modo que las cadenas nuevas y modificadas no quedan sin traducir.
4. **Cada lote llega en una pull request para revisión humana** antes de publicarse. Después, las traducciones aprobadas se publican y se entregan automáticamente: a las aplicaciones mediante un CDN y al plugin mediante su actualizador de traducciones integrado.

Como todo el ciclo está automatizado, su labor como colaborador rara vez consiste en traducir desde un archivo en blanco; consiste en **mejorar una traducción que ya existe**. ¿Ha detectado una frase poco natural, un término que debería coincidir con el que usa WooCommerce en su locale o una etiqueta que no encaja en su contexto? Sugiera una corrección y se publicará para todos.

Ya no usamos translate.wordpress.org

WCPOS solía depender del sitio de traducciones de WordPress (GlotPress) para las cadenas del plugin. **Hemos dejado de usarlo por completo.** Ese flujo de trabajo es lento y anticuado y, lo más importante, no permite la traducción automática, por lo que la mayoría de los idiomas nunca se completaban. Un proceso de IA ajustado cubre muchos más idiomas, se mantiene sincronizado automáticamente y, en la práctica, produce mejores resultados. Si ha traducido WCPOS allí antes, se agradece, pero ese ya no es el lugar para contribuir.

## Dónde contribuir[​](#where-to-contribute "Enlace directo a Dónde contribuir")

Hay solo dos lugares, según lo que se quiera mejorar:

#### Aplicaciones y plugin

Todo lo que aparece en la aplicación POS, la aplicación de escritorio, las pantallas de administración de WordPress y el propio plugin: tanto las cadenas de la interfaz JavaScript como las cadenas PHP. Todo está en un único repositorio: **[wcpos/translations](https://github.com/wcpos/translations)**. *Conviene tener conocimientos básicos de GitHub.*

#### Esta documentación

El sitio de documentación que está leyendo ahora. Los archivos MDX traducidos se encuentran en el repositorio **[wcpos/docs](https://github.com/wcpos/docs)**, en `i18n/<locale>/`. *Conviene conocer Markdown.*

## Mejorar las traducciones de la aplicación y del plugin[​](#improving-app-and-plugin-translations "Enlace directo a Mejorar las traducciones de la aplicación y del plugin")

Todas las traducciones de la aplicación y del plugin se encuentran en el repositorio [`wcpos/translations`](https://github.com/wcpos/translations). Ahí se encuentra:

* **`source/`** — las cadenas en inglés extraídas. **No las edite** — se generan automáticamente a partir de las aplicaciones y del plugin.
* **`translations/js/<locale>/<project>/<namespace>.json`** — las cadenas traducidas de la interfaz de usuario. Esto es lo que se edita para corregir las aplicaciones y las pantallas de administración.
* **`translations/php/<locale>/`** — las cadenas traducidas del plugin. Edite el archivo **`.po`**; el `.mo` y `.l10n.php` archivos que están junto a él se generan automáticamente, así que no los modifique.

Las cadenas JavaScript se dividen en cuatro `<project>` carpetas:

| Proyecto              | Qué abarca                                                                                 |
| --------------------- | ------------------------------------------------------------------------------------------ |
| `monorepo`            | La aplicación POS que usa el cajero — botones, carrito, pago, cuadros de diálogo, errores. |
| `electron`            | El contenedor de la aplicación de escritorio (Windows/macOS).                              |
| `woocommerce-pos`     | Las pantallas React de WP Admin del plugin gratuito — Ajustes, Plantillas, Registros, etc. |
| `woocommerce-pos-pro` | Las pantallas React de WP Admin del plugin Pro — editor de tiendas, ajustes Pro.           |

**Para sugerir una corrección:**

1. **Busque la cadena** en el archivo correspondiente a su localización y proyecto; por ejemplo, `translations/js/de_DE/monorepo/core.json` para una cadena de la aplicación en alemán, o `translations/php/de_DE/woocommerce-pos-de_DE.po` para una cadena del plugin en alemán.
2. **Edite el valor traducido.** Deje las claves JSON, PHP `msgid`, y cualquier `{{interpolation}}`, `%s`, `%d`, o `<tag>` marcadores de posición exactamente como están.
3. **Abra una pull request.** Para una corrección de una sola línea, puede usar el icono de lápiz en GitHub y se abrirá la PR automáticamente. Los revisores comprueban el cambio y lo fusionan.

Si su idioma aún no está disponible, consulte [Añadir un nuevo idioma](#adding-a-new-language).

## Mejorar esta documentación[​](#improving-these-docs "Enlace directo a Mejorar esta documentación")

El sitio de documentación usa la configuración estándar de i18n de Docusaurus. La fuente en inglés se encuentra en `versioned_docs/`, y las copias traducidas por IA se encuentran en [`wcpos/docs`](https://github.com/wcpos/docs) en `i18n/<locale>/docusaurus-plugin-content-docs/`. Cada página en inglés tiene una página equivalente en cada idioma activo.

**Para sugerir una corrección:**

1. **Abra la página** en su idioma y haga clic en **Editar esta página** al final; eso le lleva directamente al archivo MDX traducido en GitHub.
2. **Edite la traducción.** Mantenga intactas la sintaxis Markdown/MDX, los enlaces, los fragmentos de código y las claves del frontmatter; traduzca el texto, los encabezados y las etiquetas visibles.
3. **Abra una pull request.** No edite la fuente en inglés en `versioned_docs/` para "corregir" una traducción; solo el archivo en `i18n/<locale>/`.

Para una contribución más amplia — una sección completa o el inicio de una configuración regional totalmente nueva — primero se debe abrir una incidencia para que podamos coordinarnos.

## Añadir un nuevo idioma[​](#adding-a-new-language "Enlace directo a Añadir un nuevo idioma")

Las aplicaciones y el plugin ya incluyen traducciones para **más de 50 configuraciones regionales** (consulte [`locales.json`](https://github.com/wcpos/translations/blob/main/locales.json) para ver la lista completa). La documentación incluye un conjunto más reducido, listado a continuación. Si falta su idioma — o solo está cubierto parcialmente — abra una incidencia en el repositorio correspondiente y habilitaremos la configuración regional. La canalización de IA puede completar un nuevo idioma rápidamente; a partir de ahí, solo queda que la comunidad lo revise y mejore.

## Códigos de configuración regional[​](#locale-codes "Enlace directo a Códigos de configuración regional")

Esta documentación se publica actualmente en los siguientes idiomas:

| Código  | Idioma                           |
| ------- | -------------------------------- |
| `ar`    | Árabe *(de derecha a izquierda)* |
| `de`    | Alemán                           |
| `es`    | Español                          |
| `fr`    | Francés                          |
| `hi-IN` | Hindi (India)                    |
| `it`    | Italiano                         |
| `ja`    | Japonés                          |
| `ko`    | Coreano                          |
| `nl`    | Neerlandés                       |
| `pt-BR` | Portugués (Brasil)               |
| `zh-CN` | Chino (simplificado)             |

Nota sobre los formatos de códigos de locale: las aplicaciones y el plugin (`wcpos/translations`) usan el formato con **guion bajo** para carpetas y nombres de archivo: `de_DE`, `pt_BR`, `zh_CN`, e incluyen tanto idiomas base (`de`, `fr`, `es`) como variantes regionales (`de_AT`, `fr_CA`, `es_MX`). La documentación y las etiquetas de idioma web usan el formato con **guion**: `pt-BR`, `hi-IN`, `zh-CN`. Use el formato que corresponda al repositorio que se esté editando.

## Consejos para traductores[​](#translator-tips "Enlace directo a Consejos para traductores")

Estas reflejan las reglas que sigue la canalización de IA, por lo que son los mismos aspectos que revisará una persona encargada de la revisión:

* **Mantenga intactos los marcadores de posición.** Las cadenas suelen contener `{{variable}}`, `%s`, `%d`, o `<strong>` etiquetas: traduzca el texto que las rodea, pero deje los marcadores de posición exactamente como están. WCPOS sustituye valores reales en ellos en tiempo de ejecución.
* **Mantenga exactos los nombres de marcas y productos.** `WCPOS`, `WCPOS Pro`, `WooCommerce`, `WordPress`, `Stripe`, `Stripe Terminal` y `SumUp` se mantienen tal cual. Use **WCPOS** en el texto dirigido a clientes, no "WooCommerce POS", que solo corresponde a identificadores técnicos como slugs y URL.
* **Localice las etiquetas visibles de la interfaz.** Las etiquetas de menú, las etiquetas de ajustes y el texto de los botones deben sonar naturales en su idioma: coincida con lo que WordPress y WooCommerce ya usan en su locale (por ejemplo, una ruta `WP Admin > Ajustes > Pagos` debe usar los nombres de menú de WordPress de su locale).
* **Mantenga el tono existente.** La documentación y la interfaz de WCPOS son deliberadamente prácticas y directas, y usan un registro formal o neutral. Si el inglés dice *"Add Coupon"*, use la forma verbal que su locale utiliza en botones similares, no un sustantivo literal.
* **No traduzca código, URL ni ID técnicos.** Los códigos de cupón, ID de pasarelas, códigos de locale, rutas de archivo y shortcodes se mantienen en inglés. Si hay dudas, déjelo sin traducir; es más seguro que alterar algo de lo que depende el sistema.
* **Pruebe en contexto si puede.** Establezca el sitio o la aplicación en su locale y revise la cadena en la pantalla real. Una frase que encaja en una pantalla puede ajustarse mal en otra.
* **Idiomas de derecha a izquierda (RTL)**: árabe, hebreo, persa y urdu también necesitan que las plantillas de recibo estén marcadas como RTL. WCPOS incluye plantillas de recibo RTL integradas; consulte [Personalizar el recibo](/es/receipts/customise.md) para ver la galería.

## Dónde pedir ayuda[​](#where-to-ask-for-help "Enlace directo a Dónde pedir ayuda")

* **Discord de WCPOS**: para conversaciones y preguntas sobre traducción ([invitación](https://wcpos.com/discord)).
* **Incidencias de GitHub**: informe en [`wcpos/translations`](https://github.com/wcpos/translations/issues) para las aplicaciones y el plugin, o en [`wcpos/docs`](https://github.com/wcpos/docs/issues) para la documentación.
