Repository navigation
feat(i18n): ofrecer en en el backend (tarea 12) - #74
Merged
Merged
Conversation
Ultimo paso de la tarea 12 en el servidor: `en` pasa de `UNRELEASED_LOCALES` a
`SUPPORTED_LOCALES` (`("es", "en")`, con `es` primero porque es el idioma de reserva).
Desde #73 la interfaz ya lo ofrece sola; con esto las dos capas coinciden: el PATCH del
locale propio, el de la sesion de portal, `Accept-Language` en el registro y el locale
por defecto del workspace aceptan `en` y `en-US`, y el PDF y los correos salen en ingles
para quien lo eligio.
`UNRELEASED_LOCALES` queda vacio, no se elimina: es el sitio donde entra el siguiente
idioma mientras se traduce.
Tests:
- `test_locale_resolution.py`: «el catalogo de hoy es solo espanol» pasa a fijar
`("es", "en")` y que el idioma por defecto sea el primero; el caso «idioma sin
catalogo» usa `fr-FR` y no `en-US`.
- `test_i18n_catalogue.py`: el test de «un idioma no ofrecido no se alcanza solo» ejercita
el mecanismo con una lista explicita (`supported=("es",)`), porque ya no hay ninguno
sin ofrecer; uno nuevo comprueba que `en` se ofrece y se alcanza por usuario y por
`Accept-Language`.
- `test_locale.py`: el detalle del rechazo lista `["es", "en"]`; nuevos: PATCH con `en_us`
se guarda como `en-US` y es el locale efectivo, una sesion de portal acepta `en`, y
registrarse con un navegador en ingles crea un workspace `en-US`.
- `test_english_artifacts.py`: solo el docstring, que decia que el idioma no se ofrecia.
Los recuentos documentados pasan de 928 a 932 tests (48 archivos, sin cambio), como
exige `scripts/ci/check_test_count.py`.
Lo que sigue sin seguir al idioma: fechas e importes de los PDF y los correos (tarea 10),
el PDF de cotizacion `sales/pdf.py` y la prosa en espanol de algunas respuestas del
portal. Con `en` ofrecido pasan de limitacion latente a visibles para quien lo elija.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
El checklist de la tarea 12 tenia un solo punto para «ofrecer en» que mezclaba el backend (hecho en el commit anterior) con el selector del dialogo de compartir cotizacion (pendiente). Se separa en dos: el backend queda marcado y el selector sigue abierto. Tambien se quita «el backend sigue sin ofrecerlo», que ya no es cierto. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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. |
keilynrp
added a commit
that referenced
this pull request
Oct 8, 2026
…selector La politica de gobernanza exige tocar este documento cuando cambia una pagina o un servicio, y este PR toca `QuoteDetail` y `services/portal.ts`. Ademas la fila de internacionalizacion habia quedado desactualizada en #74: seguia diciendo que `en` estaba retenido en `UNRELEASED_LOCALES` y que ningun segundo idioma se ofrecia. Ahora dice que `en` se ofrece (`SUPPORTED_LOCALES`), que el selector del dialogo de compartir cotizacion fija el idioma del correo al cliente (`portal_sessions.locale`) y que la pagina del portal sigue el idioma del navegador del cliente. Lo que sigue sin construir se mantiene: el PDF de cotizacion, la prosa en espanol de algunas respuestas del portal y del `send_email` de los workflows, y el formato de fechas e importes en lo que renderiza el servidor. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumen
Último paso de la tarea 12 en el servidor:
enpasa deUNRELEASED_LOCALESaSUPPORTED_LOCALES(("es", "en"), conesprimero porque es el idioma de reserva). Desde #73 el frontend ya ofrecíaensolo; con esto las dos capas coinciden.Qué acepta ahora el servidor:
en,en_us→en-US).localeal compartir una cotización).Accept-Languageen el registro: un navegador en inglés crea un workspaceen-US.Con ello el PDF de factura y los correos salen en inglés para quien lo eligió.
UNRELEASED_LOCALESqueda vacío pero no se elimina: es el sitio donde entra el siguiente idioma mientras se traduce.Tests
Diez tests de la suite asumían que
enno se ofrecía; se corrigen y se añaden cuatro:test_locale_resolution.py: el catálogo de hoy fija("es", "en")y que el idioma por defecto sea el primero; el caso «idioma sin catálogo» usafr-FRen vez deen-US.test_i18n_catalogue.py: «un idioma no ofrecido no se alcanza solo» ejercita el mecanismo con una lista explícita (supported=("es",)), porque ya no hay ninguno sin ofrecer. Nuevo:ense ofrece y se alcanza por usuario y porAccept-Language.test_locale.py: el detalle del rechazo lista["es", "en"]. Nuevos: PATCH conen_usse guarda comoen-USy es el locale efectivo; una sesión de portal aceptaen; registrarse con un navegador en inglés crea un workspaceen-US.test_english_artifacts.py: solo el docstring.Recuentos documentados: 928 → 932 tests, 48 archivos (sin cambio), como exige
scripts/ci/check_test_count.py, que pasa en local.Verificación
en»: el backend queda marcado y el selector del diálogo de compartir sigue abierto.Lo que sigue sin seguir al idioma
Con
enofrecido pasan de limitación latente a visibles para quien lo elija:sales/pdf.py).send_emailpor defecto de los workflows.Siguiente
Selector de idioma en el diálogo de compartir cotización y recorrido de la app en inglés (decisión
babelo tabla propia).🤖 Generated with Claude Code