The l10n linter checks for mistakes and problems in the localizable files. Most of the code lives inside the compare-locales package, and is shipping as the moz-l10n-lint
command.
The linter checks for fundamental issues like parsing errors, but it also finds more subtle mistakes like duplicated messages. It also warns if you're trying to change a string without changing the ID, or to add a string that's still in use in a stable channel with a different value.
The warnings on string ID changes get reported on phabricator, but they're not making the build fail. To find out when to change IDs and when not to, read the Lifecycle & Workflow <Localization>
section in the localization documentation.
The can be run using mach:
$ mach lint --linter l10n <file paths>
Alternatively, omit the --linter l10n
and run all configured linters, which will include the l10n linter.
The linter checks out the cross-channel localization files into your .mozbuild
state directory. By default this is updated automatically after 48 hours. There might be new strings anyway, if you want to ensure an updated clone, remove the marker file in ~/.mozbuild/gecko-strings/.hg/l10n_pull_marker
.
Configuration (YAML) <tools/lint/l10n.yml>
Source <tools/lint/python/l10n_lint.py>