Repository navigation
feat(i18n): workflows en ingles, 19 de 19 (tarea 12, 19/n) - #73
Conversation
Tarea 12 del plan, decimonovena y ultima parte de los espacios: traduce a `en` el espacio
`workflows` (lista, historial de ejecuciones y dialogo de alta). Con esto `en` tiene los
19 espacios de `es`.
Se registra en `TRANSLATED` y tres cadenas iguales de verdad se aprueban en
`IDENTICAL_TO_BASE`: `Workflows`, `Total` y `log`. Ortografia de EE. UU.
Como `en` ya esta completo, el frontend lo ofrece solo (`releasedLocales`): el selector
de idioma aparece, la deteccion del navegador y `setLocale` lo aceptan. El backend sigue
sin ofrecerlo (`UNRELEASED_LOCALES`); pasarlo a `SUPPORTED_LOCALES` es el paso siguiente.
Lo que eso obliga a ajustar en los tests, que asumian un solo idioma ofrecido:
- `test/pin-locale.ts`: jsdom declara `en-US`, y el `i18n` global arrancaba en ingles.
Se fija el navegador de pruebas en `es`; los tests de ingles usan su propia instancia.
- `notFromCatalogue` (y los filtros propios de Login y Register) descarta los nombres de idioma («English», «Espanol»): el selector
aparece en login, registro y ajustes y no son texto que falte en un catalogo.
- `i18n.test.ts`: los dos tests de la puerta de lanzamiento pasan a comprobar que `en`
se ofrece y que un idioma sin catalogo (`fr`) sigue fuera de alcance.
- `english.test.tsx`: el test de caida al espanol quita un espacio a mano, porque ya
no queda ninguno pendiente.
- `LanguageSelector.test.tsx`: «no dibuja nada con un solo idioma» pasa `locales={["es"]}`.
Tests en ingles real (`english-workflows.test.tsx`): cabecera y KPI, plurales, tipos de
disparador y accion, fecha formateada, estado vacio, botones con nombre, historial con
estados y error del backend, el dialogo de alta con el mensaje por defecto en ingles y el
mensaje escrito por el usuario, y el borrado.
Corrige tambien el checklist del plan, que tras #72 decia «Queda 1: `workflows`,
`workflows`.» por un reemplazo mio mal hecho.
Comprobado con mutaciones sobre el catalogo real: un texto copiado del espanol, un
marcador `{{count}}` perdido y una clave perdida fallan el test.
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 371a0e8a9d
ℹ️ 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".
| { | ||
| "title": "Workflows", |
There was a problem hiding this comment.
Keep English unreleased until the backend accepts it
Adding the final namespace makes releasedLocales() expose en immediately, but this commit leaves backend/app/core/i18n/__init__.py:30 with only ("es",) supported. Consequently, every authenticated user who selects English in Settings has changeLocale() send PATCH /auth/me, receive a 422 from update_my_locale(), and roll the UI back to Spanish; browser-detected English is likewise replaced by the server's Spanish effective locale after login. Ship the backend locale enablement atomically with this file or retain a frontend release gate.
Useful? React with 👍 / 👎.
Resumen
Tarea 12 del plan de i18n, decimonovena y última parte de los espacios: traduce a inglés
workflows(la lista, el historial de ejecuciones y el diálogo de alta). Con él,entiene los 19 de 19 espacios dees.TRANSLATED. Tres cadenas iguales de verdad se aprueban enIDENTICAL_TO_BASE:Workflows,Totalylog.ensoloreleasedLocalesofrece un idioma en cuanto tiene todos los espacios del base, sin interruptor aparte. Así que al mergear este PR el frontend pasa a ofrecer inglés: aparece el selector de idioma (login, registro, ajustes), la detección del navegador eligeensi el navegador está en inglés ysetLocale("en")se acepta.El backend todavía no lo ofrece (
UNRELEASED_LOCALES = ("en",)), que es justo el desfase que advierte el comentario debackend/app/core/i18n/__init__.py: pasarenaSUPPORTED_LOCALESes el paso siguiente de la tarea 12. Entre este merge y ese PR, un usuario con la interfaz en inglés recibiría en español lo que renderiza el servidor (PDF de cotización, correos) y el PATCH de su locale conense rechazaría. Si hay usuarios reales, conviene que el PR del backend vaya justo detrás (o junto con este).Ajustes en los tests que asumían un solo idioma
test/pin-locale.ts(nuevo, primero ensetup.ts): jsdom declaraen-USy eli18nglobal arrancaba en inglés, rompiendo 266 tests «in Spanish». Se fija el navegador de pruebas enes; los tests de inglés usan su propia instancia.notFromCataloguey los filtros propios deLoginyRegisterdescartan los nombres de idioma («English», «Español»): el selector ya aparece y no es texto que falte en un catálogo.i18n.test.ts: los dos tests de la puerta de lanzamiento pasan a comprobar queense ofrece, quesetLocale("en")se aplica y se recuerda, y que un idioma sin catálogo (fr) sigue fuera de alcance.english.test.tsx: el test de caída al español le quita un espacio aena mano, porque ya no queda ninguno pendiente.LanguageSelector.test.tsx: «no dibuja nada con un solo idioma» pasalocales={["es"]}.Tests con inglés real (
english-workflows.test.tsx)Cabecera y KPI, plurales (
1 run/5 runs,1 condition/2 conditions), tipos de disparador y de acción, la fecha formateada, el estado vacío, botones e interruptores con nombre, el historial con estados y el error crudo del backend, el estado desconocido, el diálogo de alta con el mensaje por defecto en inglés (Workflow executed) y con el mensaje escrito por el usuario, y el borrado.Verificación
{{count}}perdido y una clave perdida fallan el check de catálogos y un test de la página.english-discovery,english-sales) que pasan en aislado.Corrección de docs
El checklist del plan decía tras #72 «Queda 1:
workflows,workflows.» por un reemplazo mío mal hecho; queda corregido y cerrado.Siguiente
Ofrecer
enen el backend (SUPPORTED_LOCALES), el selector de idioma en el diálogo de compartir cotización, y recorrer la app entera en inglés.🤖 Generated with Claude Code