Skip to content

v2.12.1

Latest

Choose a tag to compare

@hokiepokedad2 hokiepokedad2 released this 05 Aug 18:32
d42e69f

Patch release fixing an English-only display bug introduced in v2.12.0.

Fixed

The entire UI rendered raw translation keys (NAV.DASHBOARD, AUTH.SIGN_IN) for English users. Other locales were unaffected (#389).

The v2.12.0 ngx-translate v18 upgrade moved defaultLanguage to fallbackLang. Those are not equivalent: v18 loads the fallback language eagerly from inside the TranslateService constructor, which resolves the loader while the injector is still building the service and fails with NG0200: Circular dependency detected. The loader downgrades that to a console warning, so nothing crashed — English simply never loaded, while every other locale (requested later via use()) worked normally.

The fallback is now set after bootstrap, where the injector is complete.

Upgrade notes

No configuration changes and no database migration.

Hard-refresh your browser after updating. Angular fingerprints its bundles, but a cached index.html keeps pointing at the old one, so a normal reload can still show the broken build.

Verification

Regression-tested against a live instance: 20 routes scanned for untranslated keys (zero found), language switching exercised in both directions including back to English, all 11 locales loading, dialogs and admin settings search working.

Changelog

Fixed

  • English UI showed raw translation keys (NAV.DASHBOARD, AUTH.SIGN_IN) after upgrading to v2.12.0. The ngx-translate v18 upgrade moved defaultLanguage to fallbackLang, but v18 loads the fallback language eagerly from inside the TranslateService constructor. Setting it in provideTranslateService() therefore resolved TranslateLoader while the injector was still building TranslateService, failing with NG0200: Circular dependency detected. Only the fallback language was affected, so English rendered raw keys while every other locale — loaded later via use() — worked normally. The fallback is now set in I18nService.init() after bootstrap, where the injector is complete. Regression tests exercise the real appConfig providers, so re-adding fallbackLang to the provider config fails CI.