WORK-504
ID:WORK-504Status:ready

Localize structure & meta-field labels (Zone 1) with auto-derived keys

The highest-visibility surface: the ~68 labels emitted via StructureEntry.label and MetaField.label. Resolve both through the locale table using auto-derived keys.

Priority:highComplexity:moderateMilestone:v0.29.0Source:SPEC-035
claude/multi-language-support-spec-5zzt9q View source

Criteria completion

Criteria completion: 0 of 4 (0%) checked; tracking started on Jul 17, no incremental history yet0%25%50%75%100%Jul 17Jul 30

Tracking started Jul 17 — check back for trends.

Branches 2
claude/multi-language-support-spec-5zzt9q current ready
main doneclaude/milestone-v0-29-0-stzywk done
History 1
  1. d92ad0c
    Created (ready)by bjornolofandersson

Scope

  • Derive the translation key from the config context: {pluginScope}.{block}.{ref} (Decision D1). Authors don't set keys manually.
  • Add an optional explicit i18nKey override on a structure entry / meta field to pin a stable key across block renames.
  • In buildStructureElement() and the MetaField renderers, resolve the label via resolveLocaleString(ctx, derivedKey, entry.label) — English literal remains the fallback.
  • Apply to both label paths (legacy StructureEntry.label and the SPEC-080 metaFields/blocks MetaField.label) with one shared key-builder.
  • Tests: derived key correctness for both paths, override wins, missing translation → English literal.

Acceptance Criteria

  • Labels from both StructureEntry.label and MetaField.label resolve through resolveLocaleString with auto-derived keys.
  • Optional i18nKey override is honoured and documented.
  • A configured non-English locale renders translated labels; unconfigured keys fall back to the English literal.
  • Zero-config English output unchanged.

Blocked by

  • WORK-503

References

  • SPEC-035 — Zone 1, Decision D1.