Your Flutter ARB files, checked the way gen-l10n reads them
Paste your template app_en.arb. Your browser checks every message with a port of gen-l10n's own ICU parser and shows what each plural really prints for 1, 2, 5 or 21 in any language - free, nothing uploaded. A paid run annotates the template for translators or translates it into a new locale, and every message it returns is checked again.
The first three replay saved model runs; the Polish one shows what the free check catches. All free.
Your recent runs
What this does, and what it does not
Flutter apps keep their text in ARB files: a template such as lib/l10n/app_en.arb and
one file per language. flutter gen-l10n (run by flutter pub get when
generate: true is set) compiles them into AppLocalizations. Messages use
ICU syntax - {name}, {count, plural, one{...} other{...}},
{gender, select, ...} - and the metadata under "@key" declares each
placeholder's type and tells translators what the text means.
The check is a JavaScript port of gen-l10n's own message parser and placeholder rules (from the
Flutter tool's source, BSD-3-Clause), so a message it rejects is one gen-l10n rejects. Two rules
catch translations out: in gen-l10n =1 is the one case, not an exact
match, so in Russian or Ukrainian it also prints for 21 and 31; and a plural without a category
the language needs (Polish few and many) silently shows the
other text. The preview shows both. The page never runs Flutter and cannot tell whether
a translation reads well - that is what a native reviewer is for. Derived from the agent skill
@flutter/flutter-localizing-apps
(flutter/agent-plugins, BSD-3-Clause; see the notice).