Speak the editor in each person's Home Assistant language: every text in the editor section of en.json, the mockup in the screens' language, and one Language & region card for all screens
- vue-i18n 11 with the Composition API: English comes with the page, any other language loads the first time it is needed from screen_manager/translations, and a text a language lacks shows in English. The build keeps only _meta and editor of each file (vite.config.ts), never the screens' or the add-on's texts. - The editor follows the language of the user's Home Assistant profile (<html lang> of Home Assistant's page), else the browser's; plural forms follow the file's _meta.plural, with the screens' rules. - Every request tells the add-on the editor's language (X-ESP-Screens-Language), so its own words can follow it. - The mockup draws the screens' words (Unavailable, Page 2 ›, the date, "5 min ago") in the screens' language, with their clock and number format. - Settings → Language & region: the screen language, time format and number format for every screen, with the user's own profile offered when it differs. The per-screen clock choice goes; the top bar points there. A screen that still needs the new language says so in its update badge. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
import { defineConfig } from "vitest/config";
|
||||
import { editorTexts } from "./vite.config";
|
||||
|
||||
// Unit and component tests of the editor: the grid rules, the top bar rules, the store and the components,
|
||||
// in jsdom. `npm test` runs them; `npm run test:watch` while developing.
|
||||
// in jsdom. `npm test` runs them; `npm run test:watch` while developing. The components mount with the
|
||||
// editor's texts (tests/setup.ts), in English.
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
plugins: [editorTexts(), vue()],
|
||||
test: {
|
||||
environment: "jsdom",
|
||||
include: ["tests/**/*.spec.ts"],
|
||||
setupFiles: ["tests/setup.ts"],
|
||||
restoreMocks: true,
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user