Replace hardcoded French strings with i18n calls
CI / lint (push) Failing after 1m28s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 17s

Initialize i18n before auth so t() works when rendering
auth-dependent UI, and build the command palette lazily so
translations are loaded first. Bump service worker cache version.
This commit is contained in:
2026-07-20 20:16:34 -04:00
parent cc22ffe6df
commit 790f97e501
17 changed files with 378 additions and 147 deletions
+3 -3
View File
@@ -319,7 +319,7 @@ function _renderSyncPanel(panel) {
const label = typeLabels[ev.type] || ev.type;
let detail = ev.data.vaults ? ev.data.vaults.join(", ") : ev.data.vault || "";
if (ev.type === "index_start") detail = `${ev.data.total_vaults} vaults à traiter`;
if (ev.type === "index_progress") detail = `${ev.data.vault} (${ev.data.files} fichiers)`;
if (ev.type === "index_progress") detail = t("sync.vault_files", {vault: ev.data.vault, files: ev.data.files});
if (ev.type === "index_complete" && ev.data.total_files !== undefined) detail = `${ev.data.total_files} fichiers total`;
html += `<div class="sync-panel__event">
<span class="sync-panel__event-type">${label}</span>
@@ -367,7 +367,7 @@ function _renderAIStatusSection(panel) {
let extIcon, extText, extClass;
if (_aiProcessing) {
extIcon = 'loader';
extText = 'Traitement en cours…';
extText = t('sync.processing');
extClass = 'sync-panel__ai--processing';
} else if (_aiConfigured === true) {
extIcon = 'check-circle';
@@ -375,7 +375,7 @@ function _renderAIStatusSection(panel) {
extClass = 'sync-panel__ai--active';
} else if (_aiConfigured === false) {
extIcon = 'x-circle';
extText = 'Aucun fournisseur';
extText = t('sync.no_provider');
extClass = 'sync-panel__ai--inactive';
} else {
extIcon = 'help-circle';