语言代码与可翻译语种
权威页:
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"生效,其它类型会被忽略。
运行时长什么样
- 未激活额外语种时,下拉框只有默认中英:
- 上轨:
zh→en - 下轨:
en→zh
- 上轨:
- 用户在设置页点「查看全部 N 种语言」,可激活模型能力目录内的任意语种; 激活项会进入两条音轨的翻译语言下拉框。
- 激活列表全局保存,但每个模型只展示自己
target_langs里的项: 在支持 33 语的模型上激活ja,切到只支持中英的 MT-Flash 后不会出现ja。 - 切换模型或取消激活后,当前选中但已不可用的目标语种会自动回落到默认中英。
宿主为所有 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-TWZH→zhpt-br→pt-BRzh-CN/zh-Hans/cmn→zhiw→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 种语言」能看到预期目录
