Skip to content

fix: update TTS references and localization across components#1633

Merged
zerob13 merged 2 commits into
devfrom
tts-fix
May 18, 2026
Merged

fix: update TTS references and localization across components#1633
zerob13 merged 2 commits into
devfrom
tts-fix

Conversation

@zhangmo8
Copy link
Copy Markdown
Collaborator

@zhangmo8 zhangmo8 commented May 18, 2026

20260518_102430.mp4

Summary by CodeRabbit

  • New Features

    • TTS requests can be routed through an HTTP proxy.
  • Improvements

    • Better detection and handling of TTS requests; TTS requests use simplified tool/context handling.
    • Removed the audio-input support indicator from the chat status bar and related UI state.
  • Localization

    • Renamed and standardized Text-to-Speech (TTS) labels across UI and translation files.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e98de629-9e15-4405-ba7b-0bad802438ce

📥 Commits

Reviewing files that changed from the base of the PR and between 0e3ae27 and 090966a.

📒 Files selected for processing (1)
  • src/renderer/src/components/chat/ChatStatusBar.vue
💤 Files with no reviewable changes (1)
  • src/renderer/src/components/chat/ChatStatusBar.vue

📝 Walkthrough

Walkthrough

Refactors Voice.ai branding to generic TTS (voiceaitts), detects TTS requests server-side to clear tools, adds HTTP proxy routing for TTS fetches via ProxyAgent, updates renderer i18n keys and locale files, and removes the chat audio-input indicator/state.

Changes

TTS Refactoring and Proxy Support

Layer / File(s) Summary
TTS Request Detection and Tool Management
src/main/presenter/agentRuntimePresenter/index.ts
AgentRuntimePresenter imports TTS detection helpers and switches to an empty tool list for TTS requests during runStreamForMessage preflight, pressure recovery, and provider.coreStream calls.
Proxy Support for TTS HTTP Requests
src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts
executeTtsPatternA and executeTtsPatternB read proxyConfig.getProxyUrl(), construct a ProxyAgent when configured, and assign it to fetchInit.dispatcher so TTS fetches are routed through the proxy.
UI Component i18n Key Updates
src/renderer/settings/components/ProviderModelList.vue, VoiceAIProviderConfig.vue, src/renderer/src/components/settings/ModelConfigDialog.vue, TtsSettingsFields.vue
Vue settings components and dialogs update translation keys from settings.provider.voiceai.* to settings.provider.tts.* for TTS provider title, audio format, language, model, agent ID, temperature, and top-p fields.
Localization Files: voiceai→tts Namespace Migration
src/renderer/src/i18n/{da-DK,en-US,fa-IR,fr-FR,he-IL,ja-JP,ko-KR,pt-BR,ru-RU,zh-CN,zh-HK,zh-TW}/settings.json
Locale JSON files replace the voiceai provider block with tts and update display titles (e.g., "Voice.ai Text-to-Speech" → "Text-to-Speech (TTS)").
ChatStatusBar: remove audio-input UI/state
src/renderer/src/components/chat/ChatStatusBar.vue
Removes mic/audio-input support icon and deletes capabilitySupportsAudioInput reactive ref and its sync/reset logic; reasoning/temperature capability state remains.

Possibly Related PRs

"I hopped through keys and code today,
renaming Voice.ai to TTS in play.
Streams detect my tiny hop,
proxies route the audio crop.
Locales sing in every tongue, hooray!" 🐇

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary changes: renaming voiceai references to tts and updating localization strings across multiple components and i18n files.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch tts-fix

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 and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

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

⚠️ Outside diff range comments (3)
src/renderer/src/i18n/ko-KR/settings.json (1)

655-676: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Finish the TTS copy migration to avoid mixed branding.

provider.tts is now generic, but this locale still includes Voice.ai-branded strings in the same block.

Suggested copy update
       "model": {
         "label": "TTS 모델",
-        "placeholder": "voiceai-tts-v1-latest",
-        "helper": "지원되는 모델은 Voice.ai 문서를 참고하세요."
+        "placeholder": "tts-model-v1-latest",
+        "helper": "지원되는 모델은 TTS 제공자 문서를 참고하세요."
       },
       "agentId": {
         "label": "음성 에이전트 ID",
-        "placeholder": "voice agent id 붙여넣기",
+        "placeholder": "음성 에이전트 ID 붙여넣기",
         "helper": "실시간 음성 통화에 필요합니다."
       },
🤖 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 `@src/renderer/src/i18n/ko-KR/settings.json` around lines 655 - 676, The TTS
locale block still contains Voice.ai-branded text; update the "tts" object
(keys: "model" helper and "agentId" placeholder/helper and any other Voice.ai
mentions) to use generic provider.tts wording instead of "Voice.ai" or "voice
agent" branding—e.g., change "지원되는 모델은 Voice.ai 문서를 참고하세요." to a neutral
instruction like "지원되는 모델은 제공자 문서를 참고하세요." and replace "voice agent id 붙여넣기" /
"실시간 음성 통화에 필요합니다." with generic references to a provider agent ID and its use
for real-time voice calls. Ensure all occurrences in the "tts" block are updated
to remove Voice.ai-specific branding.
src/renderer/src/i18n/pt-BR/settings.json (1)

661-682: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Align provider.tts text with the new generic namespace.

The key/title are now generic TTS, but this block still contains Voice.ai-specific terms, which makes the localization inconsistent.

Suggested copy update
       "model": {
         "label": "Modelo TTS",
-        "placeholder": "voiceai-tts-v1-latest",
-        "helper": "Consulte a documentação da Voice.ai para modelos compatíveis."
+        "placeholder": "tts-model-v1-latest",
+        "helper": "Consulte a documentação do provedor TTS para modelos compatíveis."
       },
       "agentId": {
         "label": "ID do agente de voz",
-        "placeholder": "Cole o ID do voice agent",
+        "placeholder": "Cole o ID do agente de voz",
         "helper": "Necessário para chamadas de voz em tempo real."
       },
🤖 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 `@src/renderer/src/i18n/pt-BR/settings.json` around lines 661 - 682, The tts
localization block ("tts" object) mixes generic TTS labels with
Voice.ai-specific terms; update the "model" helper and the "agentId"
label/placeholder/helper to use neutral, generic wording (e.g., replace
"Voice.ai" and "voice agent" references with "for supported TTS providers" or
"agent ID" and explain usage generically like "required for real-time voice
calls" or "paste provider agent ID"); ensure "model" helper points to provider
documentation generically and "agentId" entries do not mention Voice.ai
specifically so the keys model, agentId, audioFormat, and language remain
provider-agnostic and consistent with the new namespace.
src/renderer/src/i18n/ja-JP/settings.json (1)

661-682: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Remove leftover Voice.ai wording inside the new provider.tts block.

The namespace/title moved to tts, but this block still has Voice.ai-specific copy (voiceai-tts-v1-latest, Voice.ai docs, and voice agent id), which leaves mixed branding in one UI section.

Suggested copy update
       "model": {
         "label": "TTS モデル",
-        "placeholder": "voiceai-tts-v1-latest",
-        "helper": "対応モデルは Voice.ai のドキュメントを参照してください。"
+        "placeholder": "tts-model-v1-latest",
+        "helper": "対応モデルは TTS プロバイダーのドキュメントを参照してください。"
       },
       "agentId": {
         "label": "音声エージェントID",
-        "placeholder": "voice agent id を貼り付け",
+        "placeholder": "音声エージェント ID を貼り付け",
         "helper": "リアルタイム通話に必要です。"
       },
🤖 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 `@src/renderer/src/i18n/ja-JP/settings.json` around lines 661 - 682, The tts
block contains leftover Voice.ai-specific wording; update the keys under "tts"
(notably "model.placeholder", "model.helper", and "agentId.placeholder") to
neutral, product-agnostic copy: replace "voiceai-tts-v1-latest" with a generic
example like "例: tts-model-v1", change "対応モデルは Voice.ai のドキュメントを参照してください。" to a
neutral guidance such as "対応モデルはドキュメントを参照してください。", and change "voice agent id
を貼り付け" to a neutral label like "音声エージェントIDを貼り付け"; keep the "agentId.helper"
meaning ("リアルタイム通話に必要です。") but ensure phrasing is generic. Ensure no remaining
"Voice.ai" strings remain in the "tts" block.
🧹 Nitpick comments (8)
src/renderer/src/i18n/fr-FR/settings.json (1)

661-692: ⚡ Quick win

Remove remaining Voice.ai branding from the migrated tts section.

After moving to settings.provider.tts.*, Line 676-677 still carries Voice.ai-specific wording, which makes the localization inconsistent.

Suggested text adjustments
-      "title": "Synthese vocale (TTS)",
+      "title": "Synthèse vocale (TTS)",
       "model": {
         "label": "Modèle TTS",
-        "placeholder": "voiceai-tts-v1-latest",
-        "helper": "Voir la documentation Voice.ai pour les modèles pris en charge."
+        "placeholder": "tts-model-id",
+        "helper": "Voir la documentation TTS pour les modèles pris en charge."
       },
🤖 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 `@src/renderer/src/i18n/fr-FR/settings.json` around lines 661 - 692, The tts
localization still contains Voice.ai-specific branding in the
tts.model.placeholder and tts.model.helper strings; update the "model" entries
under the "tts" object to remove "voiceai" references by using a neutral
placeholder (e.g., a generic model id) and a generic helper like "Voir la
documentation pour les modèles pris en charge" or similar so the wording matches
the migrated settings.provider.tts.* naming; locate and edit the keys
"tts.model.placeholder" and "tts.model.helper" (and any other "Voice.ai"
mentions within the "tts" block) to use non-branded, generic text.
src/renderer/src/i18n/fa-IR/settings.json (1)

661-692: ⚡ Quick win

Complete the branding migration inside the new tts block.

Line 676-677 still references voiceai naming/docs, which conflicts with the new generic settings.provider.tts.* namespace introduced at Line 661.

Suggested localized update
       "model": {
         "label": "مدل TTS",
-        "placeholder": "voiceai-tts-v1-latest",
-        "helper": "برای مدل‌های پشتیبانی‌شده به مستندات Voice.ai مراجعه کنید."
+        "placeholder": "tts-model-id",
+        "helper": "برای مدل‌های پشتیبانی‌شده به مستندات TTS مراجعه کنید."
       },
🤖 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 `@src/renderer/src/i18n/fa-IR/settings.json` around lines 661 - 692, The tts
block still uses "voiceai" branding in the model.helper and agentId.helper
strings; update these to the new generic provider wording under the
settings.provider.tts.* namespace—replace "Voice.ai" / "voice agent" mentions
with neutral text like "برای مدل‌های پشتیبانی‌شده به مستندات ارائه‌دهنده TTS
مراجعه کنید" and "شناسه عامل صوتی ارائه‌دهنده را جای‌گذاری کنید؛ برای تماس‌های
بلادرنگ لازم است" so the keys model.helper and agentId.helper align with
settings.provider.tts.* and remove any vendor-specific branding.
src/renderer/src/i18n/he-IL/settings.json (1)

661-692: ⚡ Quick win

Align model placeholder/helper text with the new tts namespace.

Line 676-677 still references voiceai branding after the section was migrated to tts, which is inconsistent for users.

Suggested copy update
       "model": {
         "label": "מודל TTS",
-        "placeholder": "voiceai-tts-v1-latest",
-        "helper": "ראו את מסמכי Voice.ai למודלים הנתמכים."
+        "placeholder": "tts-model-id",
+        "helper": "ראו את מסמכי TTS עבור המודלים הנתמכים."
       },
🤖 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 `@src/renderer/src/i18n/he-IL/settings.json` around lines 661 - 692, The tts
section still uses Voice.ai branding in tts.model.placeholder and
tts.model.helper; update those entries to use the new tts namespace wording
(e.g., change "voiceai-tts-v1-latest" placeholder to a generic TTS model
identifier like "tts-model-v1" and change the helper from "ראו את מסמכי Voice.ai
למודלים הנתמכים." to a neutral reference such as "ראו את מסמכי TTS למודלים
הנתמכים."), ensuring the keys tts.model.placeholder and tts.model.helper are
edited accordingly to remove brand-specific text.
src/renderer/src/i18n/zh-HK/settings.json (1)

656-673: ⚡ Quick win

Finish the branding migration inside the provider.tts content.

Line [672] still references Voice.ai docs and Line [671] uses a voiceai-* placeholder, which conflicts with the new tts naming used by this section.

🤖 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 `@src/renderer/src/i18n/zh-HK/settings.json` around lines 656 - 673, The
provider branding in the TTS section hasn't been fully migrated: update the
"tts.model.placeholder" value (currently "voiceai-tts-v1-latest") to use the new
generic tts naming (e.g., "tts-v1-latest" or similar consistent with the new
provider naming) and change the "tts.model.helper" text (currently referencing
"Voice.ai 文件") to a generic "TTS provider documentation" reference; ensure any
other strings under the "tts" object that mention "Voice.ai" are replaced with
neutral "TTS" or "provider" wording so the keys "tts.model.placeholder" and
"tts.model.helper" (and any other "tts" helper strings) reflect the new
branding.
src/renderer/src/i18n/zh-CN/settings.json (1)

797-814: ⚡ Quick win

Keep provider.tts wording fully TTS-generic in this locale block.

Line [813] still points to Voice.ai docs and Line [812] keeps a voiceai-* model placeholder, so the renamed tts namespace still shows mixed legacy branding.

🤖 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 `@src/renderer/src/i18n/zh-CN/settings.json` around lines 797 - 814, The "tts"
locale block still contains Voice.ai-specific branding: update the
"model.placeholder" and "model.helper" values under the "tts" object (keys:
"model.placeholder" currently "voiceai-tts-v1-latest" and "model.helper"
referencing Voice.ai docs) to neutral, TTS-generic text; replace the placeholder
with a generic example like "tts-model-latest" and change the helper to a
generic pointer such as "查看 TTS 提供商文档以获取可用模型" (or equivalent neutral wording) so
the provider.tts namespace contains no legacy Voice.ai branding.
src/renderer/src/i18n/zh-TW/settings.json (1)

661-678: ⚡ Quick win

Update leftover Voice.ai wording under the new provider.tts key.

Line [677] still points to Voice.ai docs and Line [676] keeps a voiceai-* placeholder, so this locale continues to expose mixed branding after the namespace rename.

🤖 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 `@src/renderer/src/i18n/zh-TW/settings.json` around lines 661 - 678, The locale
file still contains Voice.ai-specific branding under the tts model keys—update
the "model.placeholder" value ("voiceai-tts-v1-latest") and the "model.helper"
text that references "Voice.ai 文件" to neutral, provider-agnostic wording
matching the new provider.tts namespace; locate the "tts" object (keys:
"model.label", "model.placeholder", "model.helper") and replace the placeholder
and helper sentence with a generic example placeholder and a helper that directs
users to the provider.tts documentation or settings without mentioning
"Voice.ai".
src/renderer/src/i18n/ru-RU/settings.json (1)

655-672: ⚡ Quick win

Align the provider.tts copy with the new namespace branding.

After the key rename, the same block still carries old brand wording (e.g., Line [671] references Voice.ai docs and Line [670] uses a voiceai-* placeholder), which leaves mixed TTS branding in UI text.

🤖 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 `@src/renderer/src/i18n/ru-RU/settings.json` around lines 655 - 672, The TTS
copy still uses old Voice.ai branding; update the strings under the "tts" block
(e.g., tts.title, tts.model.placeholder, tts.model.helper and any mention in
tts.language.helper) to the new namespace/brand and remove or replace the
"voiceai-tts-v1-latest" placeholder and "Voice.ai" documentation mention with
the new brand name and correct example model identifier and docs reference so
all UI text consistently reflects the renamed provider.
src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts (1)

233-234: ⚡ Quick win

Add error handling for ProxyAgent construction.

The ProxyAgent constructor may throw an exception if the proxy URL is malformed. Currently, this would cause the entire TTS request to fail with an unclear error. Consider adding error handling to gracefully degrade to direct connection if proxy configuration is invalid.

🛡️ Suggested error handling approach
-const proxyUrl = proxyConfig.getProxyUrl()
-const dispatcher = proxyUrl ? new ProxyAgent(proxyUrl) : undefined
+let dispatcher: ProxyAgent | undefined
+try {
+  const proxyUrl = proxyConfig.getProxyUrl()
+  dispatcher = proxyUrl ? new ProxyAgent(proxyUrl) : undefined
+} catch (error) {
+  console.warn('[TTS] Failed to create proxy agent, using direct connection:', error)
+  dispatcher = undefined
+}

Apply this pattern to both executeTtsPatternA (line 233) and executeTtsPatternB (line 292).

Also applies to: 292-293

🤖 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 `@src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts` around lines 233 -
234, The ProxyAgent constructor can throw on malformed proxy URLs; wrap the
creation of dispatcher in a try/catch in both executeTtsPatternA and
executeTtsPatternB: call proxyConfig.getProxyUrl(), then attempt to construct
new ProxyAgent(proxyUrl) inside a try block, on error catch and log a warning
(including the proxyUrl and exception) and set dispatcher = undefined to
gracefully fall back to a direct connection; ensure you reference the ProxyAgent
symbol and preserve existing dispatcher usage downstream.
🤖 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.

Inline comments:
In `@src/renderer/src/i18n/fr-FR/settings.json`:
- Line 662: Fix the French diacritic in the i18n string by updating the "title"
value currently set to "Synthese vocale (TTS)" to "Synthèse vocale (TTS)";
locate the JSON entry with the "title" key (the TTS title) and replace the plain
"e" with "è" so the translated label reads correctly.

---

Outside diff comments:
In `@src/renderer/src/i18n/ja-JP/settings.json`:
- Around line 661-682: The tts block contains leftover Voice.ai-specific
wording; update the keys under "tts" (notably "model.placeholder",
"model.helper", and "agentId.placeholder") to neutral, product-agnostic copy:
replace "voiceai-tts-v1-latest" with a generic example like "例: tts-model-v1",
change "対応モデルは Voice.ai のドキュメントを参照してください。" to a neutral guidance such as
"対応モデルはドキュメントを参照してください。", and change "voice agent id を貼り付け" to a neutral label
like "音声エージェントIDを貼り付け"; keep the "agentId.helper" meaning ("リアルタイム通話に必要です。") but
ensure phrasing is generic. Ensure no remaining "Voice.ai" strings remain in the
"tts" block.

In `@src/renderer/src/i18n/ko-KR/settings.json`:
- Around line 655-676: The TTS locale block still contains Voice.ai-branded
text; update the "tts" object (keys: "model" helper and "agentId"
placeholder/helper and any other Voice.ai mentions) to use generic provider.tts
wording instead of "Voice.ai" or "voice agent" branding—e.g., change "지원되는 모델은
Voice.ai 문서를 참고하세요." to a neutral instruction like "지원되는 모델은 제공자 문서를 참고하세요." and
replace "voice agent id 붙여넣기" / "실시간 음성 통화에 필요합니다." with generic references to a
provider agent ID and its use for real-time voice calls. Ensure all occurrences
in the "tts" block are updated to remove Voice.ai-specific branding.

In `@src/renderer/src/i18n/pt-BR/settings.json`:
- Around line 661-682: The tts localization block ("tts" object) mixes generic
TTS labels with Voice.ai-specific terms; update the "model" helper and the
"agentId" label/placeholder/helper to use neutral, generic wording (e.g.,
replace "Voice.ai" and "voice agent" references with "for supported TTS
providers" or "agent ID" and explain usage generically like "required for
real-time voice calls" or "paste provider agent ID"); ensure "model" helper
points to provider documentation generically and "agentId" entries do not
mention Voice.ai specifically so the keys model, agentId, audioFormat, and
language remain provider-agnostic and consistent with the new namespace.

---

Nitpick comments:
In `@src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts`:
- Around line 233-234: The ProxyAgent constructor can throw on malformed proxy
URLs; wrap the creation of dispatcher in a try/catch in both executeTtsPatternA
and executeTtsPatternB: call proxyConfig.getProxyUrl(), then attempt to
construct new ProxyAgent(proxyUrl) inside a try block, on error catch and log a
warning (including the proxyUrl and exception) and set dispatcher = undefined to
gracefully fall back to a direct connection; ensure you reference the ProxyAgent
symbol and preserve existing dispatcher usage downstream.

In `@src/renderer/src/i18n/fa-IR/settings.json`:
- Around line 661-692: The tts block still uses "voiceai" branding in the
model.helper and agentId.helper strings; update these to the new generic
provider wording under the settings.provider.tts.* namespace—replace "Voice.ai"
/ "voice agent" mentions with neutral text like "برای مدل‌های پشتیبانی‌شده به
مستندات ارائه‌دهنده TTS مراجعه کنید" and "شناسه عامل صوتی ارائه‌دهنده را
جای‌گذاری کنید؛ برای تماس‌های بلادرنگ لازم است" so the keys model.helper and
agentId.helper align with settings.provider.tts.* and remove any vendor-specific
branding.

In `@src/renderer/src/i18n/fr-FR/settings.json`:
- Around line 661-692: The tts localization still contains Voice.ai-specific
branding in the tts.model.placeholder and tts.model.helper strings; update the
"model" entries under the "tts" object to remove "voiceai" references by using a
neutral placeholder (e.g., a generic model id) and a generic helper like "Voir
la documentation pour les modèles pris en charge" or similar so the wording
matches the migrated settings.provider.tts.* naming; locate and edit the keys
"tts.model.placeholder" and "tts.model.helper" (and any other "Voice.ai"
mentions within the "tts" block) to use non-branded, generic text.

In `@src/renderer/src/i18n/he-IL/settings.json`:
- Around line 661-692: The tts section still uses Voice.ai branding in
tts.model.placeholder and tts.model.helper; update those entries to use the new
tts namespace wording (e.g., change "voiceai-tts-v1-latest" placeholder to a
generic TTS model identifier like "tts-model-v1" and change the helper from "ראו
את מסמכי Voice.ai למודלים הנתמכים." to a neutral reference such as "ראו את מסמכי
TTS למודלים הנתמכים."), ensuring the keys tts.model.placeholder and
tts.model.helper are edited accordingly to remove brand-specific text.

In `@src/renderer/src/i18n/ru-RU/settings.json`:
- Around line 655-672: The TTS copy still uses old Voice.ai branding; update the
strings under the "tts" block (e.g., tts.title, tts.model.placeholder,
tts.model.helper and any mention in tts.language.helper) to the new
namespace/brand and remove or replace the "voiceai-tts-v1-latest" placeholder
and "Voice.ai" documentation mention with the new brand name and correct example
model identifier and docs reference so all UI text consistently reflects the
renamed provider.

In `@src/renderer/src/i18n/zh-CN/settings.json`:
- Around line 797-814: The "tts" locale block still contains Voice.ai-specific
branding: update the "model.placeholder" and "model.helper" values under the
"tts" object (keys: "model.placeholder" currently "voiceai-tts-v1-latest" and
"model.helper" referencing Voice.ai docs) to neutral, TTS-generic text; replace
the placeholder with a generic example like "tts-model-latest" and change the
helper to a generic pointer such as "查看 TTS 提供商文档以获取可用模型" (or equivalent neutral
wording) so the provider.tts namespace contains no legacy Voice.ai branding.

In `@src/renderer/src/i18n/zh-HK/settings.json`:
- Around line 656-673: The provider branding in the TTS section hasn't been
fully migrated: update the "tts.model.placeholder" value (currently
"voiceai-tts-v1-latest") to use the new generic tts naming (e.g.,
"tts-v1-latest" or similar consistent with the new provider naming) and change
the "tts.model.helper" text (currently referencing "Voice.ai 文件") to a generic
"TTS provider documentation" reference; ensure any other strings under the "tts"
object that mention "Voice.ai" are replaced with neutral "TTS" or "provider"
wording so the keys "tts.model.placeholder" and "tts.model.helper" (and any
other "tts" helper strings) reflect the new branding.

In `@src/renderer/src/i18n/zh-TW/settings.json`:
- Around line 661-678: The locale file still contains Voice.ai-specific branding
under the tts model keys—update the "model.placeholder" value
("voiceai-tts-v1-latest") and the "model.helper" text that references "Voice.ai
文件" to neutral, provider-agnostic wording matching the new provider.tts
namespace; locate the "tts" object (keys: "model.label", "model.placeholder",
"model.helper") and replace the placeholder and helper sentence with a generic
example placeholder and a helper that directs users to the provider.tts
documentation or settings without mentioning "Voice.ai".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bf2b1448-14d0-406f-94df-53285255fb10

📥 Commits

Reviewing files that changed from the base of the PR and between 9a415a0 and 0e3ae27.

📒 Files selected for processing (18)
  • src/main/presenter/agentRuntimePresenter/index.ts
  • src/main/presenter/llmProviderPresenter/aiSdk/runtime.ts
  • src/renderer/settings/components/ProviderModelList.vue
  • src/renderer/settings/components/VoiceAIProviderConfig.vue
  • src/renderer/src/components/settings/ModelConfigDialog.vue
  • src/renderer/src/components/settings/TtsSettingsFields.vue
  • src/renderer/src/i18n/da-DK/settings.json
  • src/renderer/src/i18n/en-US/settings.json
  • src/renderer/src/i18n/fa-IR/settings.json
  • src/renderer/src/i18n/fr-FR/settings.json
  • src/renderer/src/i18n/he-IL/settings.json
  • src/renderer/src/i18n/ja-JP/settings.json
  • src/renderer/src/i18n/ko-KR/settings.json
  • src/renderer/src/i18n/pt-BR/settings.json
  • src/renderer/src/i18n/ru-RU/settings.json
  • src/renderer/src/i18n/zh-CN/settings.json
  • src/renderer/src/i18n/zh-HK/settings.json
  • src/renderer/src/i18n/zh-TW/settings.json

Comment thread src/renderer/src/i18n/fr-FR/settings.json
@zerob13 zerob13 merged commit 3ebe5a5 into dev May 18, 2026
3 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.

2 participants