Skip to content

Conversation

@snomiao
Copy link
Member

@snomiao snomiao commented Nov 6, 2025

Summary

Fixes missing translations for subscription.* keys that were added after the last automatic locale update.

Problem

The subscription.titleUnsubscribed key was added on Nov 1, 2025 (commit f2aea9c), but the last automatic locale update ran on Oct 30, 2025. The 1.32.2 release on Nov 6 did not include these translations because:

  1. The i18n workflow (.github/workflows/i18n-update-core.yaml) only runs on version-bump-* branches
  2. The subscription key was added after the last locale update
  3. No locale generation was triggered during the 1.32.2 release

As a result, the subscription.* keys exist in English (src/locales/en/main.json) but are missing from all other locales (zh, zh-TW, ru, ja, ko, fr, es, ar, tr).

Solution

This PR creates a version-bump-* branch to trigger the automatic i18n workflow, which will:

  1. Run pnpm collect-i18n to collect i18n strings from the UI
  2. Run pnpm locale to generate translations using OpenAI (lobe-i18n)
  3. Automatically commit the updated locale files

The workflow will generate translations for the missing keys:

  • subscription.titleUnsubscribed
  • Any other subscription-related keys that may be missing

Related

Testing

Once the i18n workflow completes, verify:

  • subscription.* keys are translated in all locales (zh, zh-TW, ru, ja, ko, fr, es, ar, tr)
  • Chinese translations use Simplified Chinese for zh locale (per .i18nrc.cjs guidelines)
  • Chinese translations use Traditional Chinese for zh-TW locale

Workflow Details

The i18n workflow is configured to:

  • Only run on PRs to main from version-bump-* branches
  • Use the OPENAI_API_KEY secret
  • Follow translation guidelines in .i18nrc.cjs (including Chinese character requirements)

┆Issue is synchronized with this Notion page by Unito

@github-actions
Copy link

github-actions bot commented Nov 6, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 11/10/2025, 10:50:45 AM UTC

📈 Summary

  • Total Tests: 498
  • Passed: 464 ✅
  • Failed: 0
  • Flaky: 4 ⚠️
  • Skipped: 30 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 455 / ❌ 0 / ⚠️ 4 / ⏭️ 30
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 6 / ❌ 0 / ⚠️ 0 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

@github-actions
Copy link

github-actions bot commented Nov 6, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 11/10/2025, 10:38:31 AM UTC

🔗 Links


🎨 Chromatic Visual Tests

🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Nov 6, 2025

Bundle Size Report

Summary

  • Raw size: 12.2 MB baseline 12.2 MB — ⚪ 0 B
  • Gzip: 2.49 MB baseline 2.49 MB — ⚪ 0 B
  • Brotli: 1.96 MB baseline 1.96 MB — ⚪ 0 B
  • Bundles: 58 current • 58 baseline

Category Glance
Vendor & Third-Party ⚪ 0 B (5.32 MB) · App Entry Points ⚪ 0 B (3.25 MB) · Other ⚪ 0 B (2.55 MB) · Graph Workspace ⚪ 0 B (796 kB) · Panels & Settings ⚪ 0 B (293 kB) · UI Components ⚪ 0 B (12.6 kB) · + 3 more

Per-category breakdown
App Entry Points — 3.25 MB (baseline 3.25 MB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-B1bk73P0.js 382 kB 382 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/index-BVl_zYuX.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/index-rRRe0ARS.js 2.87 MB 2.87 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Graph Workspace — 796 kB (baseline 796 kB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-BhaGVmV5.js 796 kB 796 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Views & Navigation — 8.18 kB (baseline 8.18 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-DHJ2BZoC.js 8.18 kB 8.18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Panels & Settings — 293 kB (baseline 293 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/AboutPanel-CWOc3ek4.js 10.3 kB 10.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/CreditsPanel-CBHISViC.js 23 kB 23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ExtensionPanel-DMeWn89G.js 12.1 kB 12.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/KeybindingPanel-C-1z-DHQ.js 15.3 kB 15.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/ServerConfigPanel-CODDFqPq.js 8.23 kB 8.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-0O6mq5to.js 24.3 kB 24.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BYaBy7dC.js 20.4 kB 20.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C3vygQN4.js 25.7 kB 25.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CbKYXyH0.js 22.7 kB 22.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CCholIsI.js 25 kB 25 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DFX7vRkK.js 19.8 kB 19.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-INJLrcmT.js 31.3 kB 31.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-iR6BKRXe.js 23.7 kB 23.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-YjQmudNE.js 23.5 kB 23.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserPanel-itsyr3SZ.js 7.94 kB 7.94 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
UI Components — 12.6 kB (baseline 12.6 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/ComfyQueueButton-B6shR7E-.js 11.3 kB 11.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-D2s8tnS2.js 1.26 kB 1.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Data & Services — 10.4 kB (baseline 10.4 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-UlLk7r1W.js 7.6 kB 7.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/serverConfigStore-BOo8M-7s.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Utilities & Hooks — 1.07 kB (baseline 1.07 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/mathUtil-CTARWQ-l.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Vendor & Third-Party — 5.32 MB (baseline 5.32 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-other-Bfb5Ofrh.js 3.22 MB 3.22 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-PESgPnbc.js 517 B 517 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-JDoAqkQm.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-Dvg9y4X0.js 232 kB 232 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-SdQKVoRx.js 92.6 kB 92.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BZLod3g9.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 2.55 MB (baseline 2.55 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/commands-B2KZRBmX.js 15.1 kB 15.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Bw-ckyga.js 13.9 kB 13.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C_NmM85I.js 13.8 kB 13.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CuozCW4W.js 14 kB 14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DGfVUJCR.js 16.2 kB 16.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-dOJNDogK.js 14.5 kB 14.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwiE551e.js 14.7 kB 14.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Fw7mvqSy.js 13.1 kB 13.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-FXnO1W4Q.js 13.2 kB 13.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B28vuueQ.js 58.7 kB 58.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B5DMAz5p.js 76.3 kB 76.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B9oeRB3u.js 66.2 kB 66.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BfxLm2q9.js 68.4 kB 68.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Bqw7zi8p.js 92.9 kB 92.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CxXcIMmb.js 80.3 kB 80.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DbrkzQIr.js 70.6 kB 70.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DwpdJL5U.js 67.5 kB 67.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-mC3TQk_1.js 59.4 kB 59.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-3I1vPgv4.js 181 kB 181 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-B2huPGKQ.js 190 kB 190 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BWugyUzd.js 215 kB 215 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-bXqu6Stq.js 194 kB 194 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CtB2M3sY.js 229 kB 229 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D-rCrn-T.js 200 kB 200 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D38DSnl1.js 179 kB 179 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DAsU52ON.js 192 kB 192 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DnGONaA_.js 196 kB 196 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

@christian-byrne christian-byrne added the claude-review Add to trigger a PR code review from Claude Code label Nov 7, 2025
git diff --staged --quiet || git commit -m "Update locales"
git push origin HEAD:${{ github.head_ref }}
if ! git diff --staged --quiet; then
git commit -m "Update locales"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[quality] high Priority

Issue: Potential error silencing with || true
Context: The removal of git stash pop || true removes error handling, but this is actually good as it was masking real failures
Suggestion: The new approach is better - explicit conditional commit logic is much clearer than git stash operations

git checkout -B ${{ github.head_ref }} origin/${{ github.head_ref }}
# Apply the stashed changes if any
git stash pop || true
git checkout ${{ github.head_ref }}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[architecture] low Priority

Issue: Git workflow simplification is good but comments should explain the change
Context: Removing git stash/pop operations simplifies the workflow but the rationale could be better documented
Suggestion: The commit message explains it well, but adding a comment in the YAML would help future maintainers understand why this approach was chosen

Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comprehensive PR Review

This review is generated by Claude. It may not always be accurate, as with human reviewers. If you believe that any of the comments are invalid or incorrect, please state why for each. For others, please implement the changes in one way or another.

Review Summary

PR: [i18n] Fix missing subscription.* translations (#6610)
Impact: Minimal changes across 3 files - primarily workflow fixes and locale updates

Issue Distribution

  • Critical: 0
  • High: 1
  • Medium: 0
  • Low: 1

Category Breakdown

  • Architecture: 1 issue
  • Security: 0 issues
  • Performance: 0 issues
  • Code Quality: 1 issue

Key Findings

Architecture & Design

This PR appropriately addresses a specific i18n workflow issue where subscription translations were missing. The approach of creating trigger files and simplifying git operations in the workflow is sound architectural practice for CI/CD pipelines.

Workflow Improvements

The git workflow simplification removing stash/pop operations is a good improvement that eliminates potential failure points. The previous || true operator was masking failures that could result in lost translations.

Security Considerations

No security issues identified in the workflow changes. The changes maintain proper authentication and authorization patterns.

Performance Impact

Minimal performance impact - the workflow changes should actually be more reliable and potentially faster by removing unnecessary git operations.

Positive Observations

  • Clear problem identification and targeted solution
  • Good commit message documentation explaining the rationale
  • Minimal, focused changes that don't introduce unnecessary complexity
  • Proper use of conditional logic in GitHub Actions workflow

References

Next Steps

  1. Consider adding workflow documentation comments as suggested in inline feedback
  2. Monitor the i18n workflow execution to ensure translations are generated correctly
  3. Verify the trigger mechanism works as expected for future i18n updates

This is a comprehensive automated review focused on the i18n workflow improvements. The changes are minimal and targeted, addressing a specific operational issue.

@github-actions github-actions bot removed the claude-review Add to trigger a PR code review from Claude Code label Nov 7, 2025
This commit triggers the i18n workflow to generate missing translations
for subscription.* keys that were added after the last locale update.

The subscription.titleUnsubscribed key was added in f2aea9c on Nov 1,
but the last locale update was on Oct 30 (a189e51).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@snomiao snomiao force-pushed the version-bump-fix-subscription-i18n branch from 77a8610 to abf7e72 Compare November 10, 2025 09:29
snomiao and others added 2 commits November 10, 2025 10:00
The previous workflow was resetting the branch which discarded the
generated locale changes. This fix simplifies the commit logic to
just add and commit the changes directly without branch manipulation.

The issue was:
- git stash + git checkout -B would reset to remote, losing changes
- The detached HEAD in GitHub Actions made stash operations unreliable

The fix:
- Remove unnecessary git stash/checkout operations
- Directly add, commit, and push the locale changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Add debug step to check:
- If subscription section exists in source (en) locale
- If subscription section exists in target (zh) locale
- Git working tree status before commit

This will help diagnose why lobe-i18n isn't generating changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
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.

3 participants