1*d2483622Sjason westover# Vendor locale overlays 2*d2483622Sjason westover 3*d2483622Sjason westoverThis directory contains environment/vendor-specific translation bundles that are 4*d2483622Sjason westovermerged on top of the base, vendor-neutral locales in `src/locales/`. 5*d2483622Sjason westover 6*d2483622Sjason westover## Structure 7*d2483622Sjason westover 8*d2483622Sjason westover```text 9*d2483622Sjason westoversrc/env/locales/ 10*d2483622Sjason westover <vendor>/ 11*d2483622Sjason westover en-US.json 12*d2483622Sjason westover ka-GE.json 13*d2483622Sjason westover ru-RU.json 14*d2483622Sjason westover zh-CN.json 15*d2483622Sjason westover <vendor-variant>/ 16*d2483622Sjason westover en-US.json # optional, only when variant overrides vendor root 17*d2483622Sjason westover ka-GE.json # optional 18*d2483622Sjason westover ru-RU.json # optional 19*d2483622Sjason westover zh-CN.json # optional 20*d2483622Sjason westover``` 21*d2483622Sjason westover 22*d2483622Sjason westoverExamples: 23*d2483622Sjason westover 24*d2483622Sjason westover- Shared vendor folder: `src/env/locales/nvidia/` 25*d2483622Sjason westover- Variant folder: `src/env/locales/nvidia-gb/` 26*d2483622Sjason westover 27*d2483622Sjason westover## Merge order at runtime 28*d2483622Sjason westover 29*d2483622Sjason westover1. Base locales from `src/locales/` (auto-discovered) 30*d2483622Sjason westover2. Vendor root overlays (e.g., `src/env/locales/nvidia/`) 31*d2483622Sjason westover3. Variant overlays (e.g., `src/env/locales/nvidia-gb/`) 32*d2483622Sjason westover 33*d2483622Sjason westoverVariant keys overwrite vendor root keys on conflict. 34*d2483622Sjason westover 35*d2483622Sjason westover## Guidelines 36*d2483622Sjason westover 37*d2483622Sjason westover- Keep `src/locales/` vendor‑neutral. Put vendor‑specific strings here. 38*d2483622Sjason westover- Prefer the vendor root folder when multiple projects share strings to avoid 39*d2483622Sjason westover duplication. 40*d2483622Sjason westover- Only add a variant folder if it truly needs to override vendor root strings. 41*d2483622Sjason westover- File names must match locale codes (e.g., `en-US.json`, `ru-RU.json`, 42*d2483622Sjason westover `zh-CN.json`, `ka-GE.json`). 43*d2483622Sjason westover- Use 4‑space indentation; alphabetize object keys for readability. 44*d2483622Sjason westover- JSON must be valid (no trailing commas or comments). 45*d2483622Sjason westover 46*d2483622Sjason westover## Environment selection 47*d2483622Sjason westover 48*d2483622Sjason westoverThe active environment is selected by `VUE_APP_ENV_NAME` (e.g., `nvidia`, 49*d2483622Sjason westover`nvidia-gb`). See the `.env.*` files at the repo root (e.g., `.env.nvidia-gb`). 50*d2483622Sjason westover 51*d2483622Sjason westover## Bundling 52*d2483622Sjason westover 53*d2483622Sjason westover- All JSON files under `src/locales/` are bundled automatically. 54*d2483622Sjason westover- Matching overlays under `src/env/locales/<env>` are also bundled and merged at 55*d2483622Sjason westover app start. 56*d2483622Sjason westover 57*d2483622Sjason westover## Testing 58*d2483622Sjason westover 59*d2483622Sjason westoverFocused unit tests exist for overlays and fallback: 60*d2483622Sjason westover 61*d2483622Sjason westover- `npm run test:unit -- i18n.vendor.spec.js` 62*d2483622Sjason westover- `npm run test:unit -- i18n.locale-alias.spec.js` 63*d2483622Sjason westover 64*d2483622Sjason westoverThese verify vendor root → variant merge behavior and locale alias handling. 65