Repository navigation
feat(i18n): sales en ingles (tarea 12, 17/n) - #71
Conversation
Tarea 12 del plan, decimoseptima parte: traduce a `en` el espacio `sales`, que usan dos
paginas: `Sales` (el panel, las cotizaciones y las ordenes, con sus dialogos de
rechazo y de alta) y `QuoteDetail` (el detalle de una cotizacion con sus lineas,
totales, notas, historial y el dialogo de compartir). Con `common`, `errors`, `auth`,
`layout`, `dashboard`, `analytics`, `companyProfile`, `customerPortal`, `contracts`,
`crm`, `discovery`, `hr`, `inventory`, `invoicing`, `portalBuilder` y `projects` son
17 de 19; `en` sigue sin ofrecerse hasta que esten todos.
Se registra en `TRANSLATED`, asi que los checks de paridad (claves y marcadores) y de
cadenas copiadas lo cubren. Siete cadenas iguales de verdad se aprueban una a una en
`IDENTICAL_TO_BASE`: `Total` (tres veces), `PDF` (dos), `SKU` y `Subtotal`. El
impuesto pasa de `IVA%` a `Tax%`, como en el PDF de la factura en ingles. Ortografia
de EE. UU.
Tests en ingles real (`english-sales.test.tsx`), para las dos paginas: el panel con
la tasa de conversion y `N/A`, los desgloses por estado que salen del `en` de
`common`, las cotizaciones y las ordenes con sus acciones, el motivo de rechazo por
defecto y la linea de ejemplo que se envian al servidor, el detalle con sus lineas y
totales, las acciones segun el estado, el dialogo de compartir, copiar el enlace, el
aviso de enlace activo con y sin destinatario y el aviso de fallo al guardar.
Comprobado con mutaciones sobre el catalogo real: un texto copiado del espanol, un
marcador `{{message}}` perdido y una clave perdida fallan el test.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6d2ad971ae
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| svc.getQuotePdfUrl.mockReturnValue("/pdf"); | ||
| svc.getQuote.mockResolvedValue(fullQuote()); | ||
| svc.getQuoteHistory.mockResolvedValue([ | ||
| { id: "e1", quote_id: "q1", user_id: null, event_type: "sent", description: "Quote sent by email", metadata: null, created_at: "2026-03-05T10:00:00Z" }, |
There was a problem hiding this comment.
Render quote events from translatable event data
When this namespace is released in English, real quote histories will still be Spanish: backend/app/modules/sales/service.py persists Spanish descriptions such as Cotización enviada, and QuoteDetail.tsx renders ev.description verbatim. This fixture instead supplies an English description, so the new test masks the mixed-language production behavior and incorrectly allows sales to be marked translated. Render localized templates from event_type and structured metadata, or localize the backend response, and make this fixture match the real API payload.
Useful? React with 👍 / 👎.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Resumen
Tarea 12 del plan de i18n, decimoséptima parte: traduce a inglés el espacio
sales, que usan dos páginas:Sales(el panel, las cotizaciones y las órdenes, con sus diálogos de rechazo y de alta) yQuoteDetail(el detalle de una cotización con sus líneas, totales, notas, historial y el diálogo de compartir). Concommon,errors,auth,layout,dashboard,analytics,companyProfile,customerPortal,contracts,crm,discovery,hr,inventory,invoicing,portalBuilderyprojectsson 17 de 19;ensigue sin ofrecerse a nadie hasta que estén todos (releasedLocales).TRANSLATED, así que los checks de paridad (claves y marcadores) y de cadenas copiadas del español lo cubren desde ya.IDENTICAL_TO_BASE:Total(tres veces),PDF(dos),SKUySubtotal. Eran exactamente las siete que señaló el check.common.Tests con inglés real (
english-sales.test.tsx)No usan el catálogo pseudo-localizado de
Sales.test.tsxni deQuoteDetail.test.tsx, sino el catálogoenque se envía, para las dos páginas:Sales: cabecera, pestañas y KPI; la tasa de conversión como porcentaje yN/Acuando nada se decidió; los desgloses por estado, que salen del catálogoendecommon; cotizaciones y órdenes con sus columnas, filtros y acciones por estado; el motivo de rechazo por defecto (No reason given) y la línea de ejemplo (Item), que son lo que se envía al servidor; y el aviso de carga fallida.QuoteDetail: cabecera, tabla de líneas, totales, notas y historial; las acciones según el estado; el motivo por el que una cotización procesada no se puede compartir; los estados vacíos y la cotización inexistente.Verificación
{{message}}perdido y una clave perdida hacen fallar el test que toca; restaurado después.Fuera de alcance
El catálogo
salestambién se menciona enpages/_archived/POSBuilder.tsx, una página archivada. No se ha tocado ni traducido.Siguiente
Quedan 2 espacios:
settings,workflows.🤖 Generated with Claude Code