fix(i18n): keep English pixel-identical and stored data English

From the English-parity and breakage review against main:
- English wording back to main: "Configured Source", the "SHARED SUBJECT"
  fallback, CCTV calibration "RANGE 120m".
- Voice header and CCTV calibration chip/select tweaks for long labels now
  apply to non-English only (html:not([lang='en'])); English matches main.
  The scene select font change is scoped the same way.
- New scenes and shots store their default title in English ("Scene 3",
  "Shot 2") and translate it when shown, so a title captured in one language
  does not leak into projects, storage or shared JSON.
- Choosing a language with storage blocked keeps it in ?lang instead of
  silently doing nothing.
- One picked import file shows its name again.
- qa-l9-matrix reads the voice state from data-status, not the label.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
German KhokhlovandClaude Opus 5.5 committed 2026-10-13 20:03:54 +04:00
1 parent a28e29e05e
commit 9d01f9bfcd
15 files changed
+118 -54

No files matched your search

+7 -3
View File
@@ -126,9 +126,13 @@ export function createSceneDialog(title, onClose) {
const chosen = document.createElement('span');
const showChosen = () => {
const count = node.files?.length || 0;
chosen.textContent = count
? tn(count, '{count} file selected', '{count} files selected')
: t('No file chosen');
// One file shows its name, like the browser's own picker did.
chosen.textContent =
count === 1
? node.files[0].name
: count
? tn(count, '{count} file selected', '{count} files selected')
: t('No file chosen');
};
showChosen();
row.append(chooser, chosen);