From 27435e4d92f7f9d765973e215d3d9298e1cf3108 Mon Sep 17 00:00:00 2001 From: busya Date: Tue, 2 Jun 2026 20:38:38 +0300 Subject: [PATCH] fix(frontend): replace $t with _t pattern in translate components Svelte 5 compiler fails to detect Proxy-based i18n store `t` as a store in deeply nested/complex templates and in `.svelte.ts` model files, generating `ReferenceError: $t is not defined` at runtime. Fix: replace `$t.` references with: - Template: `_t.` where `const _t = $derived(getT())` - Script: `getT()?.` direct function call Applied to: - translate/[id]/+page.svelte (the failing page) - TranslationJobModel.svelte.ts ($derived.by() in `tabs`) - 12 translate components (ConfigTabForm, ScheduleConfig, TranslationPreview, TargetTabForm, RunTabContent, BulkReplaceModal, TranslationRunProgress, TranslationRunResult, TermCorrectionPopup, BulkCorrectionSidebar, TranslationMetricsDashboard, CorrectionCell, TranslationRunGlobalIndicator) Verified all 5 tabs render correctly in browser: Config, Preview, Target, Run, Schedule. Build clean, 698/698 tests pass, 0 color violations. --- .../translate/BulkCorrectionSidebar.svelte | 51 ++++---- .../translate/BulkReplaceModal.svelte | 69 +++++----- .../components/translate/ConfigTabForm.svelte | 95 +++++++------- .../translate/CorrectionCell.svelte | 51 ++++---- .../components/translate/RunTabContent.svelte | 48 +++---- .../translate/ScheduleConfig.svelte | 75 +++++------ .../components/translate/TargetTabForm.svelte | 82 ++++++------ .../translate/TermCorrectionPopup.svelte | 63 ++++----- .../TranslationMetricsDashboard.svelte | 45 ++++--- .../translate/TranslationPreview.svelte | 121 +++++++++--------- .../TranslationRunGlobalIndicator.svelte | 37 +++--- .../translate/TranslationRunProgress.svelte | 61 ++++----- .../translate/TranslationRunResult.svelte | 97 +++++++------- .../lib/models/TranslationJobModel.svelte.ts | 18 +-- .../src/routes/translate/[id]/+page.svelte | 34 ++--- 15 files changed, 496 insertions(+), 451 deletions(-) diff --git a/frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte b/frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte index 44037fe8..8c541d36 100644 --- a/frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte +++ b/frontend/src/lib/components/translate/BulkCorrectionSidebar.svelte @@ -10,7 +10,7 @@
-

{$t.translate?.config?.run_translation}

+

{_t.translate?.config?.run_translation}

- {$t.translate?.config?.status}: + {_t.translate?.config?.status}: - {$t.translate?.config?.mark_ready || 'Mark as READY'} + {_t.translate?.config?.mark_ready || 'Mark as READY'} {/if}
@@ -89,16 +93,16 @@

- {$t.translate?.config?.run_incremental} - + {_t.translate?.config?.run_incremental} +

-

{$t.translate?.config?.run_incremental_desc}

+

{_t.translate?.config?.run_incremental_desc}

@@ -114,16 +118,16 @@

- {$t.translate?.config?.run_full} - + {_t.translate?.config?.run_full} +

-

{$t.translate?.config?.run_full_desc}

+

{_t.translate?.config?.run_full_desc}

@@ -147,12 +151,12 @@ {#if completedRuns.length > 0}
-

{$t.translate?.config?.recent_runs}

+

{_t.translate?.config?.recent_runs}

@@ -161,7 +165,7 @@
- {$t.translate?.run?.run_id} + {_t.translate?.run?.run_id} {run.id} - {$t.translate?.run?.total}: {run.total_records || 0} - {$t.translate?.run?.success}: {run.successful_records || 0} - {$t.translate?.run?.failed}: {run.failed_records || 0} - {$t.translate?.run?.skipped}: {run.skipped_records || 0} + {_t.translate?.run?.total}: {run.total_records || 0} + {_t.translate?.run?.success}: {run.successful_records || 0} + {_t.translate?.run?.failed}: {run.failed_records || 0} + {_t.translate?.run?.skipped}: {run.skipped_records || 0}
{#if run.error_message}

{run.error_message}

@@ -187,8 +191,8 @@ class="shrink-0 px-3 py-1.5 text-xs border border-border-strong text-text rounded hover:bg-surface-muted transition-colors" > {expandedRunIds.includes(run.id) - ? ($t.translate?.run?.hide_details || 'Hide details') - : ($t.translate?.run?.show_details || 'Show details')} + ? (_t.translate?.run?.hide_details || 'Hide details') + : (_t.translate?.run?.show_details || 'Show details')}
{#if expandedRunIds.includes(run.id)} diff --git a/frontend/src/lib/components/translate/ScheduleConfig.svelte b/frontend/src/lib/components/translate/ScheduleConfig.svelte index 33d81a5f..507e1fe2 100644 --- a/frontend/src/lib/components/translate/ScheduleConfig.svelte +++ b/frontend/src/lib/components/translate/ScheduleConfig.svelte @@ -9,7 +9,7 @@
-

{$t.translate?.config?.target_table_title}

+

{_t.translate?.config?.target_table_title}

{#if databasesLoading} -

{$t.translate?.config?.loading_databases}

+

{_t.translate?.config?.loading_databases}

{:else if !environmentId} -

{$t.translate?.config?.select_environment}

+

{_t.translate?.config?.select_environment}

{:else} -

{$t.translate?.config?.target_database_hint}

+

{_t.translate?.config?.target_database_hint}

{/if}
@@ -93,14 +97,14 @@

- {$t.translate?.config?.target_column_mapping_title || 'Target Column Mapping'} - + {_t.translate?.config?.target_column_mapping_title || 'Target Column Mapping'} +

-

{$t.translate?.config?.target_column_hint}

+

{_t.translate?.config?.target_column_hint}

-

{$t.translate?.config?.target_language_column_hint}

+

{_t.translate?.config?.target_language_column_hint}

-

{$t.translate?.config?.target_source_column_hint}

+

{_t.translate?.config?.target_source_column_hint}

-

{$t.translate?.config?.target_source_language_column_hint}

+

{_t.translate?.config?.target_source_language_column_hint}

@@ -155,13 +159,13 @@

- {$t.translate?.config?.write_settings || 'Write Settings'} + {_t.translate?.config?.write_settings || 'Write Settings'}

@@ -192,11 +196,11 @@ />
- {$t.translate?.config?.include_source_reference || 'Include source language in translations'} - + {_t.translate?.config?.include_source_reference || 'Include source language in translations'} +

- {$t.translate?.config?.include_source_reference_hint || 'The original text will be stored as a verified reference copy in its detected language'} + {_t.translate?.config?.include_source_reference_hint || 'The original text will be stored as a verified reference copy in its detected language'}

diff --git a/frontend/src/lib/components/translate/TermCorrectionPopup.svelte b/frontend/src/lib/components/translate/TermCorrectionPopup.svelte index 8e5b648d..e661b563 100644 --- a/frontend/src/lib/components/translate/TermCorrectionPopup.svelte +++ b/frontend/src/lib/components/translate/TermCorrectionPopup.svelte @@ -13,7 +13,7 @@