Skip to content

In-ARB source_equality_exempt escape hatch (mirror of glossary_exempt) #9

@ChauCM

Description

@ChauCM

Surfaced by a second pilot (Claude Sonnet 4.6 against examples/after/, 2026-05-24). Full feedback: examples/after/dialect-feedback.md.

Problem

dialect check's source_equality rule (translation equals source) currently has no in-ARB escape hatch. The dashboard's lock feature handles it, but if a developer isn't running dialect serve, the warning persists on every check run for known cognates/loanwords:

  • vi settingsEmail = "Email"Email is a common loanword in Vietnamese
  • es checkoutTotal = "Total: ${amount}"Total is a Spanish cognate

Suggested fix

Mirror the existing glossary_exempt: true pattern but allow a list of locales (since cognate-equality is locale-specific):

"@settingsEmail": {
  "namespace": "settings",
  "description": "Row label in settings.",
  "source_equality_exempt": ["vi", "id", "ms"]
}

dialect check's source_equality rule respects the list — equal translations in those locales no longer warn.

Acceptance

  • Source ARB @key blocks accept source_equality_exempt: [<locale>, …].
  • dialect check's source_equality rule suppresses warnings for keys+locales in the list.
  • Dashboard lock still works; the two mechanisms cover the same surface from different angles (in-ARB for keys you'd commit; dashboard lock for ad-hoc/review-flow).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions