Skip to content

语言代码与可翻译语种 ​

权威页:supported_langs / target_langs 怎么写、宿主如何使用、第三方插件如何验证。 MT 插件的目标语种完全由 target_langs 能力目录决定,宿主不再内置固定语种清单。


两个字段别混用 ​

字段面向宿主消费位置省略时
supported_langs源语言能力 / 信息性展示音轨源语言收敛(inboundSupportedLangs)、插件卡片[] = 不限制
target_langs翻译目标语种能力字幕「翻译语言」下拉框、语种激活弹窗回落 supported_langs;再为空 = 33 语种通用能力

常见错误:只写 supported_langs。MT 插件声明的是“能翻译成哪些语言”时,必须写 target_langs。只写 supported_langs 会同时把它当作目标语种上限,云端模型的 10 个源语种就会意外变成 10 个目标语种。


MT 插件怎么声明 ​

json
{
  "id": "myteam.mt.deepl",
  "name": "DeepL 翻译",
  "type": "mt",
  "entrypoint": "deepl_mt.py:DeepLProvider",
  "target_app_version": "0.2",
  "supported_langs": ["en", "zh", "ja", "de", "fr", "es"],
  "target_langs": ["en", "zh", "ja", "de", "fr", "es", "it", "nl", "pl", "pt-BR"]
}
  • 建议始终包含 zh 与 en:字幕默认常驻中英;缺少时宿主退化为目录前两项。
  • 清单里写数组;也容忍 "zh, en; ja" 这样的字符串(加载时自动拆分)。
  • target_langs 只对 type: "mt" 生效,其它类型会被忽略。

运行时长什么样 ​

  1. 未激活额外语种时,下拉框只有默认中英:
    • 上轨:zh → en
    • 下轨:en → zh
  2. 用户在设置页点「查看全部 N 种语言」,可激活模型能力目录内的任意语种; 激活项会进入两条音轨的翻译语言下拉框。
  3. 激活列表全局保存,但每个模型只展示自己 target_langs 里的项: 在支持 33 语的模型上激活 ja,切到只支持中英的 MT-Flash 后不会出现 ja。
  4. 切换模型或取消激活后,当前选中但已不可用的目标语种会自动回落到默认中英。

宿主为所有 MT 插件统一渲染激活入口(云端 / 第三方本地),第三方插件不需要自己写 UI。 自带 settings_view 的插件也可直接使用下面的运行时接口。


代码格式与归一规则 ​

  • 主代码:2~3 个字母(zh / en / yue / haw)。
  • 可选 Script:4 个字母(zh-Hans / sr-Latn)。
  • 可选 Region:2 个字母或 3 位数字(zh-TW / pt-BR / es-419)。
  • 可选 Variant:5~8 位字母数字,可多个。
  • 不区分大小写;已知语种自动归一为宿主规范写法:
    • zh-tw / zh_hant / zh-HK → zh-TW
    • ZH → zh
    • pt-br → pt-BR
    • zh-CN / zh-Hans / cmn → zh
    • iw → he,in → id,ji → yi
  • 非法代码(含空格、单字母子标签、非字母主代码等)会被静默丢弃,不会阻塞插件加载。

未知但格式合法的代码会原样保留,下拉框直接显示代码本身;常见语种会显示中文/英文名。


混元 MT2 / MT-Plus 全量 33 语种 ​

代码中文名代码中文名
zh中文(简体)en英语
ja日语ko韩语
yue粤语zh-TW中文(繁体)
fr法语de德语
es西班牙语ru俄语
it意大利语nl荷兰语
pl波兰语cs捷克语
uk乌克兰语vi越南语
th泰语id印度尼西亚语
ms马来语tl菲律宾语
hi印地语bn孟加拉语
ur乌尔都语km高棉语
my缅甸语ar阿拉伯语
tr土耳其语fa波斯语
he希伯来语bo藏语
kk哈萨克语mn蒙古语
ug维吾尔语

可直接复用这份清单声明全语种模型;只支持部分语种的模型按实际能力裁剪即可。


运行时接口(自定义设置页 / QML) ​

标准插件无需调用;宿主设置页已自动提供语种入口。需要自己画界面的插件可以读:

bridge 成员返回值用途
bridge.getMtTargetLangCatalog(providerId)[{name, en, code}]指定 MT 插件的能力目录(已按模型启用状态过滤)
bridge.mtActiveLangs["ja", "fr", ...]用户已激活的额外语种(不含中英)
bridge.setMtActiveLangs(list)bool保存激活列表;宿主会自动收敛当前目标语种
bridge.inboundTargetLangs / bridge.outboundTargetLangs["zh", "en", ...]当前音轨实际可选的目标语种

providerId 传插件完整 id;本地内置 MT 也可传设置页短名 local。


自检清单 ​

  • [ ] type 是 mt,target_app_version 已写
  • [ ] target_langs 是数组,包含 zh 与 en(若模型支持)
  • [ ] 没有把目标语种误写进 supported_langs 当作唯一能力声明
  • [ ] 代码符合上面的格式;已知语种大小写/别名可交给宿主归一
  • [ ] 设置页切到该模型 →「查看全部 N 种语言」能看到预期目录

相关 ​

TransBox - 赋能全人类无界限跨语言交流