Translations: move with the core — fr-FR and pt-PT on every commit, the release's selected languages at a release #6

Closed
opened 2026-10-01 10:06:14 +00:00 by tiagoagueda · 0 comments
Owner

The maintainer's final decision on translations (2026-10-01) says every component moves with the core, language-wise. The core's share is postulo/postulo#347; this is this plugin's.

The decision, as it applies here

  • A development build requires every string to be present in en-GB, fr-FR and pt-PT. A draft counts.
  • A release requires every string to be present in the languages selected for the core release this plugin ships beside. A draft counts.
  • Every language is scaffolded: a catalogue with a slot for every string, for each language the core carries.
  • 0.4.0 adds no language. 0.5.0 adds fr-CA and en-CA, then the languages of the European continent still missing (Russian excepted), then Chinese (simplified and traditional, two catalogues) and Arabic; those last may move to 0.6.0.

What the repository does today

  • tests/test_catalogues.py holds WORKING = ("fr-fr", "pt-pt") complete on every commit. That already matches the development rule.
  • Its release gate is EUROPEAN_UNION, a tuple of the Union's languages copied into the test, run with uv run pytest -m release. The 15 other European catalogues the core carries, and pt-BR, are held by nothing here at a release, and a language the core selects later would have to be added to this tuple by hand.
  • The catalogues are written by the core's tool (postulo-messages extract), one for each language the core has, so scaffolding follows the core by itself once the pin moves.

Change

  • Replace the copied tuple with the core's own list of the languages a release selects, read through postulo.core.messages_tool once postulo/postulo#347 provides it. The gate then moves with the core this plugin is pinned to, and nobody edits a list here again.
  • Keep the working gate as it is.
  • Repin the core and run postulo-messages extract when the core scaffolds new languages, so the new catalogues exist here too; fill fr-CA and en-CA from fr-FR and English as drafts when 0.5.0 selects them.

Done when

  • uv run pytest -m release fails when a language selected for the paired core release lacks a string, and names the language.
  • No list of language codes is left in tests/test_catalogues.py except the working set.
  • The codes are written as postulo/postulo#337 decides.

Suggested milestone: 0.5.0 (this repository has no milestones yet).

The maintainer's final decision on translations (2026-10-01) says every component moves with the core, language-wise. The core's share is postulo/postulo#347; this is this plugin's. ## The decision, as it applies here - **A development build** requires every string to be present in **en-GB, fr-FR and pt-PT**. A draft counts. - **A release** requires every string to be present in **the languages selected for the core release this plugin ships beside**. A draft counts. - **Every language is scaffolded**: a catalogue with a slot for every string, for each language the core carries. - 0.4.0 adds no language. 0.5.0 adds **fr-CA** and **en-CA**, then the languages of the European continent still missing (Russian excepted), then **Chinese** (simplified and traditional, two catalogues) and **Arabic**; those last may move to 0.6.0. ## What the repository does today - `tests/test_catalogues.py` holds `WORKING = ("fr-fr", "pt-pt")` complete on every commit. That already matches the development rule. - Its release gate is `EUROPEAN_UNION`, a tuple of the Union's languages copied into the test, run with `uv run pytest -m release`. The 15 other European catalogues the core carries, and pt-BR, are held by nothing here at a release, and a language the core selects later would have to be added to this tuple by hand. - The catalogues are written by the core's tool (`postulo-messages extract`), one for each language the core has, so scaffolding follows the core by itself once the pin moves. ## Change - Replace the copied tuple with the core's own list of the languages a release selects, read through `postulo.core.messages_tool` once postulo/postulo#347 provides it. The gate then moves with the core this plugin is pinned to, and nobody edits a list here again. - Keep the working gate as it is. - Repin the core and run `postulo-messages extract` when the core scaffolds new languages, so the new catalogues exist here too; fill fr-CA and en-CA from fr-FR and English as drafts when 0.5.0 selects them. ## Done when - `uv run pytest -m release` fails when a language selected for the paired core release lacks a string, and names the language. - No list of language codes is left in `tests/test_catalogues.py` except the working set. - The codes are written as postulo/postulo#337 decides. Suggested milestone: 0.5.0 (this repository has no milestones yet).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo-helloworld#6
No description provided.