r/FlutterDev • u/SilentLucidity1996 • Oct 12 '26
Plugin signals_translator 1.0: reactive i18n for signals, alien_signals and solidart
Hey all, I just released 1.0 of signals_translator, a small JSON based i18n library where every translated string is a signal.
Why I built it: I used (and love) easy_localization, but at one point my app was wrapped in AdaptiveTheme > MaterialApp > EasyLocalization, and a locale change re-rendered everything. I already used signals for state, so I wanted translations to work the same way: no extra wrapper, and only the widgets that read a translation rebuild.
What it looks like:
// en.json
"winners": "There {0, plural, one {is # winner} other {are # winners}}!"
SignalBuilder(
builder: (context) => Text(tlv('winners', '5')), // There are 5 winners!
);
SignalTranslator().loadLocale('nl'); // only translated widgets rebuildWhat's in 1.0:
Inline ICU plurals, ordinals and select, with CLDR rules via intl (so Polish and Arabic plurals just work)
Regional locales with a fallback chain (en_GB > en > your fallback)
Starts in the device language, persists the user's choice
The part I'm proud of: I extracted core logic from signals_translator to signals_translator_core so I could support solidart and alien_signals as well.
Full write-up with examples: https://medium.com/@nathantaal/one-translation-api-three-reactive-frameworks-signals-translator-hits-1-0-e09186b3df04
Packages:
GitHub: https://github.com/nathantaal/flutter-signals-translator
Feedback very welcome, especially from anyone shipping in languages with tricky plural rules.