#
聊天翻译
#
概述
聊天翻译扩展能够使用各种翻译提供商在不同语言之间实时翻译聊天消息。 它支持手动和自动翻译模式。
#
使用方法
翻译聊天消息的所有方法:
扩展菜单中的** 翻译聊天**按钮
- 一次性翻译整个聊天历史记录
扩展菜单中的** 翻译输入**按钮
- 仅翻译当前输入的文本
- 在发送消息之前很有用
任何消息的** 消息操作工具栏中的 翻译消息**图标
- 点击仅翻译该消息
- 再次点击恢复原始文本
扩展面板中聊天翻译抽屉中的自动模式配置
- 自动翻译用户输入、AI 响应或两者
/translate 斜杠命令
- 使用
/translate [target=language_code] text来翻译文本
#
配置
配置选项可在** 扩展面板的聊天翻译**抽屉中找到。
#
提供商
- 选择您偏好的
翻译服务 - 如果出现** API 密钥**图标,点击它以输入 API 密钥
- 如果出现** 自定义 URL**图标,点击它以输入自定义 API URL
#
目标语言
选择您想要用来编写消息的语言,或想要阅读 AI 响应的语言。
#
自动模式
配置自动翻译行为。
- 无: 无自动翻译
- 翻译响应: 自动将 AI 响应翻译为目标语言
- 翻译输入: 自动将用户输入翻译为英语
- 翻译两者: 同时翻译用户输入和 AI 响应
#
清除翻译
清除翻译按钮会移除当前聊天中所有消息的翻译。 原始消息将被保留。
#
配置示例:中英文聊天
要设置一个让中文用户能够用中文与运行英语的 AI 聊天的工作流程:
- 将自动模式设置为"翻译两者"
- 将目标语言设置为"中文(简体)"或"中文(繁体)"
- 选择一个具有良好语言自动检测功能的翻译提供商(例如 Google 或 DeepL)
此设置将:
- 将用户的中文输入翻译为英语供 AI 使用
- 将 AI 的英语响应翻译回中文供用户阅读
此设置依赖于输入的自动语言检测。为了更精确的控制,未来的更新可能会包括 明确的源语言选择。
#
翻译提供商
基于云服务 本地,自定义 URL 需要 API 密钥
#
DeepL 特定配置
- 德语、法语、意大利语、西班牙语、荷兰语、日语和俄语可用正式程度级别
- 通过 config.yaml 中的
deepl.formality配置
#
斜杠命令
使用 /translate 命令进行快速翻译。语法:/translate [target=language_code] text。如果未提供目标语言,
将使用扩展设置中的值。
#
基本用法
将文本翻译为当前目标语言并在弹出窗口中显示:
/translate Welcome to the Tavern | /echo
将文本翻译为西班牙语并添加到聊天中:
/translate target=es Hello world | /send
#
测试、管道翻译、本地化
提示用户输入消息和语言,将消息翻译为该语言,然后重新翻译为
配置的目标语言,并在弹出窗口中显示两个翻译。此示例使用 /input 和 /buttons 命令
来收集用户输入:
/input default="Hello, world!" <span data-i18n="Test Message">示例文本</span> |
/let key=input ||
/buttons labels=["zh-CN", "zh-TW", "es", "hu", "en"] <span data-i18n="UI Language">语言</span> |
/let key=lang ||
/translate target={{var::lang}} {{var::input}} | /let key=tx_target |
/translate | /let key=tx_orig ||
/echo escapeHtml=false cssClass=wider_dialogue_popup
<b data-i18n="Test Message">测试消息</b>: {{var::input}} <br/>
<b data-i18n="Output">输出</b> ({{var::lang}}): {{var::tx_target}} <br/>
<b data-i18n="Output">输出</b> (<span data-i18n="ext_translate_target_lang">目标语言</span>): {{var::tx_orig}} <br/>
这对于在将翻译写入重要位置之前检查翻译成您不懂的语言的质量很有用。
UI 控件以当前语言环境显示,与配置的目标语言无关。
在以下示例中,输入语言检测相对有效:
#
技术说明
- 支持 UTF-8 编码、特殊字符和表情符号
- 通过在需要时将大消息分块来处理
- 保留消息中的格式和嵌入图像
- 缓存翻译以避免冗余 API 调用
#
AI 输入语言
internal_language 控制用户消息在发送给 AI 之前自动翻译成的语言。
在默认设置中它被硬编码为 'en',无法通过 UI 更改。因此,发送给 AI 的消息的翻译目标语言始终是英语。
之前的测试表明,AI 在接收英语消息时性能更好,但随着更多 LLM 在更多样化的语言数据上进行训练,这种情况可能会改变。
我想有人可以更改 settings.json 中的 internal_language 来尝试。
#
中文变体处理
该扩展支持简体中文和繁体中文,但并非所有翻译提供商都支持。UI 将 它们分别显示为"中文(简体)"和"中文(繁体)",语言代码为 'zh-CN' 和 'zh-TW'。它们 被映射为以下翻译提供商的语言代码:
- Libre Translate: 'zh-CN' 映射为 'zh','zh-TW' 映射为 'zt'。
- DeepL 和 DeepLX: 两种变体都映射为 'ZH'。
- Bing: 'zh-CN' 映射为 'zh-Hans','zh-TW' 保持不变。
- 其他提供商使用提供的 'zh-CN' 和 'zh-TW'。
#
文本长度限制
某些提供商每次请求有字符限制:
- Yandex: 5000 字符
- DeepLX: 1500 字符
- Bing: 1000 字符
- Google: 5000 字符
较长的文本会自动分块进行翻译。

