Skip to content

fix(i18n): Video 3D agent and export copy uses catalogs - #205

Merged
IAnMove merged 3 commits into
developmentfrom
fix/video3d-agent-i18n
Sep 7, 2026
Merged

fix(i18n): Video 3D agent and export copy uses catalogs#205
IAnMove merged 3 commits into
developmentfrom
fix/video3d-agent-i18n

Conversation

@IAnMove

@IAnMove IAnMove commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Why

User-facing Video 3D / Wizard copy introduced with #198 was hardcoded (mostly Spanish, some English). UI language must come from i18n catalogs.

What

  • New scene3d.agent.* keys for Wizard/agent save/export/rhythm/open messages.
  • Compositor status lines (presets, keyframes, kits, templates, lab link) use animator.*.
  • World3D export/clip errors use stage.* via scene3dCopy (no React).
  • Incremental catalog check forbids the migrated literals.

Does not edit Scene3DWorkspace (#204 owns that file). Clip binding messages are translated at the source in clips.ts.

Checks

  • node scripts/check-i18n-catalogs.mjs
  • eslint on touched files
  • tsx --test scene3d + asset explorer (16)

Cursor review: not run (quota). Do not merge until asked.


Note

Low Risk
Copy and i18n wiring only; behavior is unchanged aside from localized strings, with low regression risk beyond missing translation keys.

Overview
Moves Video 3D / Scene Animator user-facing strings from hardcoded English and Spanish into the scene3d i18n catalogs so they follow the active UI language.

SceneAnimatorPanel now uses t('animator.*') for compositor status (presets, keyframes, character kits, templates, lab link) and t('agent.*') for Wizard/agent workflow handlers (scene open/save/export, layers, rhythm/choreography, errors). Effect dependencies include t.

Non-React export/clip code gets a small scene3dCopy helper; exportFlow, exportMp4, and clips throw localized stage.* errors instead of fixed English strings.

en/es scene3d.json gains the new animator, stage, and agent keys. check-i18n-catalogs.mjs adds the touched files to the pilot list and forbids the migrated literals from reappearing in source.

Reviewed by Cursor Bugbot for commit a3ed444. Configure here.

Wizard/agent 3D messages, compositor status lines and world3d export
errors now use scene3d EN/ES keys instead of hardcoded Spanish or
English. Incremental i18n check covers the migrated phrases.
@cursor

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_c8a368a5-ce28-46d4-aa3e-123275a15053)

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

PR Review — Loreframe Studio

Risk: low
Scope: 14 file(s); +539/-201; React UI

Automated review from scripts/analyze_pr.py. This is a heuristic pass (no LLM) so humans still own the merge decision.

Findings

  • low — UI changed — rebuild before merge
    Run cd ui && npm run build (CI already does this). Pinokio Update rebuilds for end users; keep ui/dist untracked.

Changed files

  • added: ui/src/features/scene3d/copy.ts
  • modified: ui/e2e/specs/scene-template-review.spec.ts, ui/scripts/check-i18n-catalogs.mjs, ui/src/components/Sidebar/SceneAnimatorPanel.tsx, ui/src/features/scene3d/clips.ts, ui/src/features/scene3d/exportFlow.ts, ui/src/features/scene3d/exportMp4.ts, ui/src/features/sceneTemplates/TemplateAssetPicker.tsx, ui/src/features/sceneTemplates/TemplateComposerDialog.tsx, ui/src/i18n/locales/en/scene3d.json, ui/src/i18n/locales/es/scene3d.json, ui/tests/musicMotionComposer.test.tsx, ui/tests/templateAssetPicker.test.tsx, ui/tests/templateComposerDialog.test.tsx

CONTRIBUTING checklist

  • python scripts/verify_clean_repo.py
  • python -m compileall -q app/services app/launch.py scripts
  • cd ui && npm run build if the UI changed
  • No weights, CivitAI sidecars, or generated guides
  • Stays local-first (no required accounts / telemetry)

Posted by the repo PR review workflow. Re-runs on each push to the PR.

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Code health

Quality score: 53.7/100

Higher is better. The score is a trend dashboard; the independent ratchet below remains the CI gate.

Component Weight Current Change
Cyclomatic health 45% 54.1 +0.0
File concentration 25% 60.3 +0.0
Oversized-file debt 20% 35.7 +0.0
Modularity 10% 71.4 +0.1

Change vs PR base: +0.0 points.

Metric Value
Production LOC 260,082
Production files 651
Test LOC 89,262
Functions measured 16,641
Functions complexity ≥ 15 821
Maximum complexity 670
Policy code-health-policy-v1
HEAD ed288fabb9ba10da8af86ef8ca001b6af53971f8
Base fae7d3f697d810bebf7e9ad8f749314da9bbd2b7
UI measurement complete

Markdown, JSON catalogs and tests are out of this table. Only app/ runtime + ui/src TS/JS count.

Most complex functions

Complexity Where
670 app/wgp.py:7164 generate_video
376 ui/src/stores/useStore.ts:4029 Async method 'startGeneration'
355 app/_launch_runtime.py:23505 _run_generation
308 app/wgp.py:12298 generate_video_tab
271 ui/src/stores/useStore.ts:8572 Async method 'loadSettingsFromOutput'
258 app/services/director/planners/short_film.py:3433 ShortFilmPlanner._plan_story_driven
257 ui/src/components/Sidebar/SceneAnimatorPanel.tsx:478 Function 'SceneAnimatorPanel'
248 app/services/director_pipeline.py:13607 _run_video_generation
245 app/services/director_pipeline.py:7712 _run_pipeline
244 ui/src/features/agent/agentActions.ts:1145 Function 'parseAction'
226 app/services/director_pipeline.py:6541 update_comic_preview
225 ui/src/features/agent/agentActions.ts:2892 Async function 'executeAgentActions'

Trend vs baseline

Metric Δ
Production LOC +33
Test LOC +0
Functions ≥ 15 +0
Maximum complexity +0

Warnings

  • production LOC increased by +33
  • hotspot ui/src/components/Sidebar/SceneAnimatorPanel.tsx increased by +11 lines

Ratchet passed.

The Library composer was still hardcoded Spanish, so Chromium with the
EN UI lock could not find the old locator. Catalogs now own the dialog
and picker chrome; the review e2e uses the English strings.
setupI18n locks tests to EN, so locators cannot keep the old Spanish
aria-names after the Library composer moved into scene3d catalogs.
@IAnMove
IAnMove merged commit e6be9e9 into development Sep 7, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant