Skip to content

fix(i18n): add Cloud login translations for es, it, ko - #919

Open
acalexanderac wants to merge 4 commits into
jamiepine:mainfrom
acalexanderac:feature/es-translation
Open

fix(i18n): add Cloud login translations for es, it, ko#919
acalexanderac wants to merge 4 commits into
jamiepine:mainfrom
acalexanderac:feature/es-translation

Conversation

@acalexanderac

@acalexanderac acalexanderac commented Jul 20, 2026

Copy link
Copy Markdown

Summary

Internationalize the Cloud login UI (added in #812) and fill in missing ROCm GPU translations, bringing all 8 non-English locales (es, fr, it, ja, ko, pt-BR, zh-CN, zh-TW) to full key parity with en.

  • CloudSection.tsx had zero useTranslation/t() calls — titles, toasts, and button labels were hardcoded English strings regardless of the user's selected language. Wired in 25 new settings.general.cloud.* keys and replaced the hardcoded strings
    with t() calls.
  • fr, ja, pt-BR, zh-CN, zh-TW were missing translations for the settings.general.rocm.* namespace (silently falling back to English).
  • Added the Cloud login translations to es, it, ko as well, so all locales stay consistent.

Verified: key parity 875/875 across all 8 non-English locale files (no missing/extra keys vs en), JSON validates.

Test plan

  • Ran the app locally (just dev-web), switched language to es/it/ko/fr/ja/pt-BR/zh-CN/zh-TW, confirmed the Cloud login section (Settings → General) renders translated instead of falling back to English
  • Scripted key-parity check confirms 875/875 keys across all locale files vs en

Summary by CodeRabbit

  • New Features

    • Added localized Voicebox Cloud settings, including browser sign-in, connection status, account linking, disconnection, and dashboard management.
    • Added ROCm GPU backend settings with download, switching, active-status, update, and removal controls.
    • Added clearer CUDA active-backend status information.
  • Improvements

    • Expanded GPU error messages and updated hardware support guidance.
    • Improved localized wording across supported languages, including a shortcut settings label correction.

@acalexanderac

Copy link
Copy Markdown
Author

Hey, I'm Alex!

I added the Spanish (ES) translation — it's my main language, so I was glad to contribute. While double-checking coverage, I also noticed a couple of translation gaps that existed across all languages (not just Spanish): the new "Log in with browser"
Cloud section and the AMD ROCm GPU settings were never wired into i18n at all, so they were silently falling back to English everywhere. Went ahead and filled those in too, for every existing locale.

Happy to answer any questions!

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

CloudSection now renders its user-facing text through i18n keys. Locale files add Voicebox Cloud strings across supported languages, while several GPU locale files add CUDA and ROCm backend text.

Changes

Localization updates

Layer / File(s) Summary
Cloud UI translation flow
app/src/components/ServerTab/CloudSection.tsx, app/src/i18n/locales/*/translation.json
Cloud connection, browser sign-in, disconnection, account, dashboard, toast, and button text now use translated strings across locale catalogs.
GPU backend localization
app/src/i18n/locales/{fr,ja,pt-BR,zh-CN,zh-TW}/translation.json
GPU translations add CUDA active-state text, ROCm backend actions, ROCm deletion errors, and revised footer wording.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the i18n Cloud login translation work, though it omits the broader locale coverage and ROCm GPU updates.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

acalexanderac and others added 3 commits July 21, 2026 16:33
Brings these three locales to parity with en/fr/ja/pt-BR/zh-CN/zh-TW
for the settings.general.cloud namespace added alongside the cloud
device login feature.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@acalexanderac
acalexanderac force-pushed the feature/es-translation branch from a2e332f to 0a2509e Compare July 21, 2026 22:51

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
app/src/i18n/locales/it/translation.json (1)

161-161: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use an actionable translation for “Open Settings.”

"Opzioni Impostazioni" means “Settings Options,” not “Open Settings,” so this label does not describe the button action. Use "Apri Impostazioni" to match the other locale translations.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/i18n/locales/it/translation.json` at line 161, Update the
openSettings translation in the Italian locale from the noun phrase “Settings
Options” to the actionable “Apri Impostazioni,” preserving the existing
translation key and JSON structure.
app/src/i18n/locales/ko/translation.json (2)

1016-1016: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Remove the extra backslashes from quoted text.

\\\" encodes a literal backslash before the quote, so these strings will render as \"…\". Use \"…\" in the JSON source instead.

Proposed fix
- "description": "...(\\\"아니, 사실...\\\", \\\"잠깐, 그게 아니라...\\\"), ..."
+ "description": "...(\"아니, 사실...\", \"잠깐, 그게 아니라...\"), ..."

Also applies to: 1025-1025

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/i18n/locales/ko/translation.json` at line 1016, Remove the extra
backslashes before the quoted Korean examples in the description entries at the
referenced locations, leaving valid JSON that renders quotation marks without
literal backslashes.

88-88: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Translate the remaining “Play as” labels.

These Korean strings still expose the English action name, while the same action is translated as 재생 elsewhere in this locale. Use the established Korean wording consistently.

Also applies to: 1025-1025, 1096-1096

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src/i18n/locales/ko/translation.json` at line 88, Update the Korean
translation entries noVoiceDescription and the corresponding strings at the
referenced locations to replace the English “Play as” label with the established
Korean wording 재생, preserving the surrounding message text.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@app/src/i18n/locales/it/translation.json`:
- Line 161: Update the openSettings translation in the Italian locale from the
noun phrase “Settings Options” to the actionable “Apri Impostazioni,” preserving
the existing translation key and JSON structure.

In `@app/src/i18n/locales/ko/translation.json`:
- Line 1016: Remove the extra backslashes before the quoted Korean examples in
the description entries at the referenced locations, leaving valid JSON that
renders quotation marks without literal backslashes.
- Line 88: Update the Korean translation entries noVoiceDescription and the
corresponding strings at the referenced locations to replace the English “Play
as” label with the established Korean wording 재생, preserving the surrounding
message text.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 406209e0-199f-4c31-b985-538acb9243f5

📥 Commits

Reviewing files that changed from the base of the PR and between a2e332f and 0a2509e.

📒 Files selected for processing (10)
  • app/src/components/ServerTab/CloudSection.tsx
  • app/src/i18n/locales/en/translation.json
  • app/src/i18n/locales/es/translation.json
  • app/src/i18n/locales/fr/translation.json
  • app/src/i18n/locales/it/translation.json
  • app/src/i18n/locales/ja/translation.json
  • app/src/i18n/locales/ko/translation.json
  • app/src/i18n/locales/pt-BR/translation.json
  • app/src/i18n/locales/zh-CN/translation.json
  • app/src/i18n/locales/zh-TW/translation.json
🚧 Files skipped from review as they are similar to previous changes (7)
  • app/src/i18n/locales/en/translation.json
  • app/src/i18n/locales/zh-CN/translation.json
  • app/src/components/ServerTab/CloudSection.tsx
  • app/src/i18n/locales/pt-BR/translation.json
  • app/src/i18n/locales/zh-TW/translation.json
  • app/src/i18n/locales/ja/translation.json
  • app/src/i18n/locales/fr/translation.json

@acalexanderac

acalexanderac commented Jul 21, 2026

Copy link
Copy Markdown
Author

I originally set out to do the Spanish translation, but it looks like that got merged already by another contributor in #798 — props to them, nice work!

While rebasing on top of that, I noticed the Cloud login feature (#812) never got wired up for i18n at all — it's all hardcoded English strings in CloudSection.tsx. Also found a few locales missing the ROCm translations. Figured I'd fix both gaps here
instead of letting the ES work go to waste.

Also, i left the Claude Co author mark, since the Korean, Chinese and French Translations are not from my own.

@acalexanderac acalexanderac changed the title i18n: add Spanish (es) locale and fix missing translations across existing locales fix(i18n): add Cloud login translations for es, it, ko Jul 21, 2026
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