Contribuir con traducciones
WCPOS se traduce mediante IA, guiada por un conjunto de reglas cuidadosamente ajustadas, y se mejora gracias a personas como usted. La máquina produce una primera versión completa y consistente en cada idioma soportado poco después de que una cadena cambia; las personas captan los matices, el contexto y las convenciones locales que la máquina pasa por alto. No es necesario traducir una aplicación completa ni ser desarrollador para colaborar. Esta página explica cómo funciona el proceso y dónde sugerir cambios.
Cómo funcionan las traducciones de WCPOS actualmente
Cada cadena traducible — la aplicación para cajeros, la aplicación de escritorio, las pantallas de administración de WordPress, las cadenas PHP del plugin y esta documentación — pasa por un único flujo automatizado:
- Las cadenas de origen se extraen automáticamente de las aplicaciones, el plugin y la documentación hacia el repositorio central
wcpos/translations(y, para la documentación, hacia el repositoriowcpos/docs). - La IA las traduce a cada idioma soportado, siguiendo un conjunto estricto de reglas que preserva marcadores de posición, código, nombres de marca y rutas de menú mientras localiza el texto visible.
- Una verificación diaria de completitud busca cadenas faltantes u obsoletas y las pone automáticamente en cola para su traducción, de modo que las cadenas nuevas o modificadas no queden sin traducir.
- Cada lote se presenta en un pull request para revisión humana antes de publicarse. Las traducciones aprobadas se publican y distribuyen automáticamente — a las aplicaciones a través de un CDN, y al plugin mediante su actualizador de traducciones integrado.
Dado que todo el ciclo está automatizado, la labor como colaborador rara vez consiste en traducir desde un archivo en blanco, sino en mejorar una traducción que ya existe. Si se detecta una frase poco natural, un término que debería coincidir con el que usa WooCommerce en su idioma, o una etiqueta que no se lee bien en contexto, basta con sugerir una corrección y se distribuirá a todos.
WCPOS solía depender del sitio de traducción de WordPress (GlotPress) para las cadenas del plugin. Se ha abandonado por completo ese sistema. 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 completaron. Un pipeline de IA optimizado cubre muchos más idiomas, se mantiene sincronizado automáticamente y produce mejores resultados en la práctica. Si ha traducido WCPOS allí anteriormente, gracias, pero ya no es allí donde se realizan las contribuciones.
Dónde contribuir
Solo hay dos lugares, dependiendo de lo que se desee 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 interfaz JavaScript como las cadenas PHP. Todo se encuentra en un solo repositorio: wcpos/translations. Es útil tener conocimientos básicos de GitHub.
Esta documentación
El sitio de documentación que se está leyendo en este momento. Los archivos MDX traducidos se encuentran en el repositorio wcpos/docs bajo i18n/<locale>/. Es útil tener conocimientos de Markdown.
Mejorar las traducciones de la aplicación y el plugin
Todas las traducciones de la aplicación y del plugin se encuentran en el repositorio wcpos/translations. Allí se encuentran:
source/— las cadenas en inglés extraídas. No se deben editar — se generan automáticamente a partir de las aplicaciones y el plugin.translations/js/<locale>/<project>/<namespace>.json— las cadenas de interfaz traducidas. Esto es lo que se debe editar para corregir las aplicaciones y las pantallas de administración.translations/php/<locale>/— las cadenas del plugin traducidas. Se debe editar el archivo.po; los archivos.moy.l10n.phpque se encuentran junto a él son generados, por lo que no se deben modificar.
Las cadenas de JavaScript están divididas en cuatro <project> carpetas:
| Proyecto | Qué cubre |
|---|---|
monorepo | La aplicación POS que utiliza el cajero — botones, carrito, cobro, diálogos, errores. |
electron | 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:
- Buscar la cadena en el archivo correspondiente al idioma y proyecto; por ejemplo,
translations/js/de_DE/monorepo/core.jsonpara una cadena de la aplicación en alemán, otranslations/php/de_DE/woocommerce-pos-de_DE.popara una cadena del plugin en alemán. - Editar el valor traducido. Dejar las claves JSON, PHP
msgid, y todos los{{interpolation}},%s,%d, o<tag>marcadores de posición exactamente como están. - Abrir un pull request. Para una corrección de una sola línea, se puede utilizar el icono de lápiz en GitHub y el PR se abrirá automáticamente. Los revisores verifican el cambio y lo fusionan.
Si el idioma aún no está disponible, consulte Agregar un nuevo idioma.
Mejorar esta documentación
El sitio de documentación utiliza la configuración estándar de i18n de Docusaurus. El código fuente en inglés se encuentra en versioned_docs/, y las copias traducidas por IA se encuentran en wcpos/docs en i18n/<locale>/docusaurus-plugin-content-docs/. Cada página en inglés tiene su correspondiente en cada idioma activo.
Para sugerir una corrección:
- Abrir la página en el idioma correspondiente y hacer clic en Editar esta página en la parte inferior — esto lleva directamente al archivo MDX traducido en GitHub.
- Editar la traducción. Dejar la sintaxis Markdown/MDX, los enlaces, los fragmentos de código y las claves de frontmatter intactos — traducir la prosa, los encabezados y las etiquetas visibles.
- Abrir un pull request. No editar el código fuente en inglés en
versioned_docs/para "corregir" una traducción — solo el archivo eni18n/<locale>/.
Para una contribución mayor — una sección completa o el inicio de un nuevo idioma — es recomendable abrir un issue primero para poder coordinarlo.
Agregar un nuevo idioma
Las aplicaciones y el plugin ya incluyen traducciones para más de 50 idiomas (consultar locales.json para la lista completa). La documentación se publica en un conjunto más reducido, listado a continuación. Si un idioma no aparece — o solo está parcialmente cubierto — se puede abrir un issue en el repositorio correspondiente y se configurará el idioma. El pipeline de IA puede completar un nuevo idioma rápidamente; a partir de ahí, es cuestión de que la comunidad lo refine.
Códigos de idioma
Esta documentación se publica actualmente en los siguientes idiomas:
| Código | Idioma |
|---|---|
ar | Árabe (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ódigo de idioma: las aplicaciones y el plugin (wcpos/translations) utilizan 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 utilizan el formato con guion — pt-BR, hi-IN, zh-CN. Se debe utilizar la forma que corresponda al repositorio que se esté editando.
Consejos para traductores
Estas reglas son las mismas que sigue el pipeline de IA, por lo que también son las que un revisor verificará:
- Mantener los marcadores de posición intactos. Las cadenas a menudo contienen
{{variable}},%s,%d, o<strong>tags — traducir el texto circundante, pero dejar los marcadores de posición exactamente como están. WCPOS sustituye valores reales en ellos durante la ejecución. - Mantener los nombres de marca y producto exactos.
WCPOS,WCPOS Pro,WooCommerce,WordPress,Stripe,Stripe TerminalySumUpse mantienen tal cual. Utilizar WCPOS en el texto dirigido al cliente — no "WooCommerce POS", que solo pertenece a identificadores técnicos como slugs y URLs. - Localizar las etiquetas visibles de la interfaz. Las etiquetas de menú, etiquetas de ajustes y texto de botones deben leerse de forma natural en el idioma correspondiente — deben coincidir con lo que WordPress y WooCommerce ya utilizan en el idioma local (por ejemplo, una ruta como
WP Admin > Ajustes > Pagosdebe usar los nombres de menú de WordPress en el idioma local). - Mantener el tono existente. La documentación y la interfaz de WCPOS son deliberadamente prácticas y directas, y utilizan un registro formal/neutral. Si el texto en inglés dice "Add Coupon", se debe usar la forma verbal que el idioma local emplea en botones similares — no un sustantivo literal.
- No traducir código, URLs ni identificadores técnicos. Los códigos de cupón, identificadores de pasarela, códigos de idioma, rutas de archivos y shortcodes permanecen en inglés. En caso de duda, es preferible dejarlo sin traducir — es más seguro que alterar algo de lo que depende el sistema.
- Probar en contexto si es posible. Configurar el sitio o la aplicación en el idioma local y verificar la cadena en la pantalla real. Una frase que se ajusta bien en una pantalla puede mostrarse de forma inadecuada en otra.
- Idiomas de derecha a izquierda (RTL) — árabe, hebreo, persa, urdu — también necesitan que las plantillas de recibos estén marcadas como RTL. WCPOS incluye plantillas de recibos RTL predefinidas; consultar Personalizar el recibo para ver la galería.
Dónde solicitar ayuda
- WCPOS Discord — para debates y preguntas sobre traducción (invitación).
- GitHub issues — reportar en
wcpos/translationspara las aplicaciones y el plugin, o enwcpos/docspara la documentación.