9 Commits

Author SHA1 Message Date
melvinchia3636
ff19fe08ec feat(i18n): add preloading for common namespace 2026-06-25 08:53:37 +08:00
melvinchia3636
eb4a8677cd fix: fix issue related to localization 2026-06-25 08:53:37 +08:00
melvinchia3636
21d31a7025 fix: remove namespace preload 2026-06-25 08:53:36 +08:00
melvinchia3636
8a4350086b fix(localization): remove missing key reporting API and use client-side placeholder 2026-06-25 08:53:36 +08:00
melvinchia3636
88d2ef6f11 feat: a lot of i18n improvements 2026-06-25 08:53:36 +08:00
melvinchia3636
43e618a383 refactor: codebase linting 2026-06-25 08:53:36 +08:00
melvinchia3636
e15009d711 refactor: codebase linting 2026-06-25 08:53:36 +08:00
melvinchia3636
5682a22205 style: apply eslint local/padding-react-hooks auto-fix across codebase
Automatically fix padding lines around React hook calls per the new
local/padding-react-hooks rule: remove blank lines between consecutive
hooks, add blank lines after hooks before const/expression statements,
and remove trailing blank lines after const/expression blocks.
2026-06-25 08:53:35 +08:00
melvinchia3636
032e577732 refactor(localization): extract i18n into @lifeforge/localization package
- Create new @lifeforge/localization package with client-i18n-config, I18nInitProvider, and useModuleTranslation hook
- Rename ModuleHeaderStateProvider -> ModuleMetadataProvider and move to @lifeforge/federation
- Move I18nInitProvider from apps/web to @lifeforge/localization with configurable init/fallbacks
- Add module name to ModuleMetadataProvider context for scoped translations
- Wire up @lifeforge/localization and @lifeforge/federation as dependencies in @lifeforge/ui
- Update ModuleHeader to use useModuleTranslation for scoped i18n namespaces
- Register @lifeforge/localization in shared-packages config
- Update docs vite config with federation plugin
2026-06-25 08:53:35 +08:00