Contribuir con traducciones
WCPOS actualmente incluye traducciones para 10 idiomas, y hay espacio para muchos más. Las contribuciones son muy bienvenidas — no es necesario traducirlo todo, ni ser desarrollador. Esta página explica qué traducir y dónde.
Los cuatro lugares que contienen las traducciones
WCPOS distribuye las cadenas traducibles en cuatro repositorios, cada uno con su propio flujo de contribución. Es posible contribuir a cualquiera de ellos de forma independiente.
Plugin de WordPress (cadenas PHP)
Avisos de administración, etiquetas de la página de ajustes, mensajes de error e interfaz de WP Admin. Se traduce en translate.wordpress.org mediante GlotPress — el flujo de traducción estándar de WordPress. No se requieren conocimientos de programación.
Aplicación POS (React/i18next)
Todo lo que el cajero ve en el punto de venta — botones, diálogos, mensajes de error, el carrito y la interfaz de pago. Los archivos de traducción se encuentran en el repositorio wcpos/monorepo; las contribuciones se realizan mediante pull request. Es útil tener conocimientos básicos de GitHub.
Pantallas React de WP Admin
Las páginas más recientes basadas en React: ajustes, editor de tiendas, plantillas, extensiones y registros. Las traducciones se encuentran en wcpos/woocommerce-pos (y en woocommerce-pos-pro para las pantallas Pro) como archivos JSON. Es útil tener conocimientos básicos de GitHub.
Esta documentación (Docusaurus)
El sitio de documentación que se está consultando en este momento. Los archivos MDX traducidos se encuentran en el repositorio wcpos/docs bajo i18n/<locale>/. Las contribuciones se realizan mediante pull request. Es útil conocer Markdown.
Cadenas del plugin de WordPress (el lugar más fácil para comenzar)
Si nunca se ha traducido un plugin de WordPress, este es el camino con menor fricción:
- Buscar el idioma en translate.wordpress.org/projects/wp-plugins/woocommerce-pos/ — cada configuración regional compatible con WordPress tiene un subproyecto.
- Iniciar sesión con la cuenta de WordPress.org (la misma que se utiliza para comentar en los foros de soporte). Se puede crear una de forma gratuita si aún no se tiene.
- Seleccionar un subproyecto — normalmente se verán:
- Stable (latest release) — cadenas incluidas en la versión pública actual. Las traducciones realizadas aquí se publican en cada sitio que actualice el plugin.
- Development (trunk) — cadenas de la próxima versión. Traducirlas permite estar preparado antes del lanzamiento de la siguiente versión.
- Stable Readme / Development Readme — la descripción del plugin que aparece en WordPress.org.
- Enviar las traducciones una cadena a la vez a través de la interfaz de GlotPress. Comienzan con el estado Suggested hasta que un Project Translation Editor (PTE) las apruebe.
- Convertirse en PTE solicitándolo en el Slack de WordPress polyglots tras contar con algunas traducciones aprobadas. Los PTE pueden aprobar traducciones directamente sin esperar revisión.
Una vez aprobadas las traducciones, se distribuyen automáticamente a todos los usuarios de WCPOS en el idioma correspondiente, sin cambios de código ni PR.
Traducciones de la aplicación POS (la interfaz React)
La interfaz para el cajero es una aplicación React que utiliza i18next para las traducciones, rediseñada en la versión 1.8.8. Los archivos de traducción se almacenan como JSON en el repositorio wcpos/monorepo (el núcleo multiplataforma del POS).
La configuración cuenta con dos características útiles:
- Carga bajo demanda — solo se descarga el idioma activo en tiempo de ejecución (desde la CDN de jsDelivr), de modo que agregar un idioma no aumenta el tamaño de las descargas para el resto de usuarios.
- Respaldo regional — los nombres de archivo JSON de i18next utilizan guiones bajos:
pt_BRrecurre apt,es_MXrecurre aes, etc. La documentación y las etiquetas de idioma web utilizan guiones en su lugar, comopt-BRoes-MX. Se debe utilizar la forma con guion bajo para los archivos JSON de traducción y la forma con guion donde se requieran etiquetas de idioma.
Para contribuir:
- Buscar el archivo fuente en inglés (en) en
wcpos/monorepo, bajo el directorio de paquetes de traducción (la ruta exacta varía; lo más sencillo es iniciar una nueva traducción abriendo un issue en el repositorio y preguntando qué archivo copiar). - Copiar
en.jsona<your-locale>.jsonsiguiendo la convención de nombres de idioma JSON de i18next (fr.json,de.json,pt_BR.json, etc.; se deben utilizar guiones bajos para los nombres de archivo regionales). - Traducir los valores, dejando las claves y cualquier marcador de posición
{{interpolation}}intactos. - Enviar una pull request contra el monorepo. El CI validará la estructura JSON.
Para ediciones menores en una traducción existente, es posible editar el archivo JSON directamente en GitHub mediante el icono de lápiz — GitHub abrirá una PR automáticamente.
Pantallas React de WP Admin
La configuración de administración de WordPress, el editor de Tiendas, la página de Plantillas, el catálogo de Extensiones y los Registros utilizan el mismo patrón de traducción que la aplicación POS, pero se encuentran en dos repositorios separados:
- Pantallas de administración gratuitas —
wcpos/woocommerce-posrepositorio, enpackages/settings/src/translations/locales/<locale>/wp-admin-settings.json(y rutas similares para otros paquetes de administración; se deben utilizar carpetas de idioma con guiones bajos comopt_BRpara configuraciones regionales JSON). - Pantallas de administración Pro —
wcpos/woocommerce-pos-prorepositorio, con el mismo patrón (p. ej.,packages/store-edit/src/translations/locales/<locale>/wp-admin-store-edit.json, con carpetas de idioma con guion bajo comopt_BR).
El flujo de contribución es el mismo que el de la aplicación POS: copiar en.json a <your-locale>.json, traducir y abrir un PR.
Documentación (estas páginas)
El sitio de documentación utiliza la configuración estándar de i18n de Docusaurus. Los archivos MDX traducidos se encuentran en el repositorio wcpos/docs bajo i18n/<locale>/docusaurus-plugin-content-docs/current/. Cada página en inglés en versioned_docs/version-1.x/ tiene su correspondiente en cada idioma de traducción activo.
El sitio ya cuenta con herramientas de traducción automatizada — existe un script pnpm translate que utiliza las API de OpenAI / Anthropic para generar borradores de traducciones desde el inglés, que luego un revisor humano perfecciona. Por lo tanto, el flujo de contribución típico es:
- Elegir una página que necesite traducción o mejoras. El selector de idioma en el pie de página del sitio muestra qué idiomas están activos.
- Editar el archivo MDX correspondiente en
i18n/<locale>/...directamente en GitHub a través del enlace Editar esta página en la parte inferior de cada página. - Enviar un pull request. Los revisores verificarán la precisión de la traducción y realizarán la fusión.
Para contribuciones más amplias (traducir una sección completa o iniciar un nuevo idioma), es recomendable abrir un issue primero para coordinarse con el equipo.
Códigos de idioma que utiliza WCPOS
WCPOS incluye actualmente estos 10 idiomas. La tabla de la documentación utiliza etiquetas de idioma con guion para los idiomas regionales; para los archivos JSON de i18next se debe usar la forma equivalente con guion bajo, como pt_BR para pt-BR y zh_CN para zh-CN.
| 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 |
pt-BR | Portugués (Brasil) |
zh-CN | Chino (simplificado) |
Si su idioma no está en la lista, abra un issue en el repositorio con el que desee comenzar y configuraremos la localización.
Consejos para traductores
- Mantener los marcadores de posición intactos. Las cadenas a menudo contienen
{{variable}},%s,%d, o<strong>tags — se debe traducir el texto circundante, pero dejar los marcadores de posición exactamente como están. WCPOS sustituye valores reales en estos durante la ejecución. - Mantener el tono existente. La documentación y la interfaz de WCPOS son deliberadamente prácticas y directas. Si el inglés dice "Add Coupon", la traducción debe usar la forma verbal que el idioma emplea en botones similares, no un sustantivo.
- Probar en contexto si es posible. Se recomienda configurar el sitio de WordPress en el idioma correspondiente, instalar el plugin y verificar que las cadenas se muestren correctamente en la interfaz real. El contexto importa: una cadena que cabe en una pantalla puede ajustarse de forma inadecuada en otra.
- 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 deben permanecer en inglés. En caso de duda, es preferible dejar el texto sin traducir — eso es más seguro que alterar algo de lo que depende el sistema.
- Idiomas de derecha a izquierda (RTL) — árabe, hebreo, persa, urdu — también requieren que las plantillas de recibo se marquen como RTL. WCPOS incluye plantillas de recibo RTL integradas; consultar Personalizar el recibo para ver la galería.
Dónde solicitar ayuda
- Slack de polyglots en WordPress.org — para consultas relacionadas con Glotpress
- Discord de WCPOS — para discusiones sobre traducciones específicas de WCPOS (invitación)
- Issues en GitHub — registrar en el repositorio correspondiente (
woocommerce-pos,woocommerce-pos-pro,monorepoodocs) para consultas específicas de cada repositorio