Skip to content
This repository was archived by the owner on Aug 11, 2026. It is now read-only.
This repository was archived by the owner on Aug 11, 2026. It is now read-only.

i18n: generate messages.pot and enforce EN/ID/POT key parity #694

Description

@ahliweb

Parent epic: #679

Evidence

At audit time en.po and id.po contained 827 message IDs while messages.pot contained 623, leaving 204 catalog keys outside the template.

Objective

Make extraction reproducible and prevent missing/stale translations across source, POT, English, and Indonesian catalogs.

Scope

  • Add deterministic extraction/generation for messages.pot.
  • Add key and placeholder/plural parity checks for EN/ID/POT.
  • Define obsolete-entry handling and translator comments.
  • Integrate the parity gate into bun run check and CI.
  • Document the contributor translation workflow.

Acceptance criteria

  • POT contains every active extracted message ID.
  • EN and ID have identical active keys and compatible placeholders/plurals.
  • Generated output is deterministic.
  • Test fixtures prove missing key, placeholder mismatch, and plural mismatch fail.
  • Existing locale fallback behavior remains documented and tested.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:frontendAstro SSR, islands, UI clientpriority:p1Prioritas tinggi - core domaintype:taskAtomic implementation task

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions