Feature: Localization loader
Whitaker lints require localized diagnostics with predictable fallbacks.
Scenario: Falling back to the bundled locale when no preference is provided
Given no locale preference
When I request the message for function_attrs_follow_docs
Then the resolved locale is en-GB
And the loader reports fallback usage
And the message contains Doc comments
Scenario: Resolving an alternate locale with attribute lookups
Given the locale preference cy
When I request the attribute note on function_attrs_follow_docs
Then the resolved locale is cy
And the message contains Mae’r briodoledd
Scenario: Resolving Scottish Gaelic plural forms
Given the locale preference gd
When I request the attribute note on conditional_max_n_branches with branches 3
Then the resolved locale is gd
And the message contains meuran
Scenario: Welsh lint count handles zero
Given the locale preference cy
When I request the attribute note on common-lint-count with lint count 0
Then the message contains 0 o lintiau
Scenario: Welsh lint count handles large values
Given the locale preference cy
When I request the attribute note on common-lint-count with lint count 2048
Then the message contains 2048 o lintiau
Scenario: Welsh lint count handles one
Given the locale preference cy
When I request the attribute note on common-lint-count with lint count 1
Then the message contains 1 o lintiau
Scenario: Welsh lint count handles two
Given the locale preference cy
When I request the attribute note on common-lint-count with lint count 2
Then the message contains 2 o lintiau
Scenario: Welsh lint count handles three
Given the locale preference cy
When I request the attribute note on common-lint-count with lint count 3
Then the message contains 3 o lintiau
Scenario: Welsh lint count handles six
Given the locale preference cy
When I request the attribute note on common-lint-count with lint count 6
Then the message contains 6 o lintiau
Scenario: Welsh lint count handles eleven
Given the locale preference cy
When I request the attribute note on common-lint-count with lint count 11
Then the message contains 11 o lintiau
Scenario: Falling back to English for untranslated attributes
Given the locale preference cy
When I request the attribute fallback-note on common-lint-count
Then the message contains Mae diagnosteg wrth gefn yn ddiofyn i'r Saesneg
Scenario: Surfacing a missing message error for unknown keys
Given the locale preference en-GB
When I request the message for imaginary.lint
Then localization fails with a missing message error
Scenario: Welsh conditional note applies lenition
Given the locale preference cy
When I request the attribute note on conditional_max_n_branches with branches 3
Then the message contains tair cangen