You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Translations are split by **domain** and **locale** (`en.ts`, `fr.ts`) using nested objects (no dot-string keys in data files).
74
+
75
+
- Shared UI domains live in `application/src/data/`:
76
+
-`navigation/` (header + footer labels)
77
+
-`meta/`
78
+
- Page-specific content/labels live in `application/src/data/pages/<page>/{en,fr}.ts` and should be consumed only by their related page(s) in `application/src/pages/`.
79
+
80
+
Runtime behavior:
81
+
82
+
- Supported languages and default locale are defined in `application/src/i18n/config.ts`.
83
+
- Shared translation dictionaries are composed in `application/src/i18n/utils.ts` (`sourceLocales`).
84
+
-`useTranslations(lang)` returns a locale object merged with fallback values from the default language (`fr`) when a value is missing or empty.
85
+
86
+
When adding or changing translations:
87
+
88
+
1. Put the value in the correct domain (or page file if page-local).
89
+
2. Keep `navigation` as the single source of truth for shared navigation/footer labels.
note: 'Designed by the <a class="text-blue-600 underline dark:text-muted" href="https://cloudnative-provence.fr/">Cloud Native Provence community</a> · All rights reserved.',
0 commit comments