A web app can ship a fix in ten minutes, which is exactly why untranslated strings survive in one for months: nothing ever forces the issue. Pulling at build time does.
.json.yaml.po.propertiesGET /pull answers 304 when nothing changed, so the step costs nothing on the builds where there is no news.A locale at 100% translated can be 0% reviewed. status reports both — pick the one your release actually requires.
Nested JSON keeps its path on import. Do not encode the path twice.
A translation that drops {count} or breaks an ICU plural is caught before it can reach the bundle.
Import the English file, enable a language, paste the CI job.