跳转到内容

Custom MT 模块

该模块可帮助您连接 Crowdin 尚不支持的机器翻译引擎。 创建此类应用后,您就可以使用连接的 MT 对内容进行自动翻译,或将 MT 提出的翻译建议显示在编辑器中供翻译人员使用。

Custom MT 模块

您可以将此模块的访问权限授予以下用户类别之一:

对于 Crowdin:

  • 仅限我自己(即项目所有者)
  • 所有项目成员
  • 选定用户

对于 Crowdin Enterprise:

  • 仅限组织管理员
  • 组织项目中的所有用户
  • 选定用户
manifest.json
{
"modules": {
"custom-mt": [
{
"key": "custom-mt",
"name": "Custom MT",
"logo": "/logo.png",
"url": "/translate",
"withContext": true,
"batchSize": 10,
"splitStringsIntoChunks": true
}
]
}
}
key

类型: string

必填:

描述: Crowdin 应用内的模块标识符。

name

类型: string

必填:

描述: 模块的可读名称。

logo

类型: string

必填:

描述: 将在 Crowdin 界面中显示的自定义 MT 徽标的相对 URL。
建议分辨率为 48x48 像素。

url

类型: string

必填:

描述: 将与 Crowdin 集成的模块内容页面的相对 URL。

withContext

类型: boolean

必填:

描述: 将随字符串一起发送的附加元数据。

batchSize

类型: integer

必填:

描述: 在一次请求中可发送到 Custom MT 应用的字符串最大数量。

splitStringsIntoChunks

类型: boolean

必填:

默认值: true

描述: 控制批量处理。 如果设置为 false,文件中的所有字符串将在单次请求中发送到 MT 引擎。 如果设置为 true(默认值),Crowdin 会将字符串拆分为多个块。

environments

类型: string

允许值: crowdincrowdin-enterprise

描述: 可安装该模块的环境集合。
此参数在跨产品的应用程序中必需。

系统使用 url 发送待翻译文本,然后应用处理这些文本并以两种可能的响应类型之一返回给系统:无错误有错误

HTTP 请求:

Terminal window
https://{AppBaseUrl}/translate/?source=en&target=uk&project_id=727186&jwtToken={yourTokenValue}
source

类型: string

描述: 源语言。

target

类型: string

描述: 目标语言。

project_id

类型: integer

描述: Crowdin 项目的数字标识符。

jwtToken

类型: string

描述: 用于授权的 JWT 令牌。

strings

类型: string

描述: 需要翻译的源字符串。

默认情况下,Crowdin 将源字符串拆分为较小的块(splitStringsIntoChunks: true)以优化处理时间并管理请求大小。

但是,某些现代 MT 引擎和 AI 提供商(如 XL8 或 LLM)需要文件的完整上下文才能生成高质量的翻译。 这对于字幕(SRT)或文学内容等格式尤为重要,因为在这些格式中,一个句子的翻译在很大程度上依赖于前一个句子。

如果您要连接支持基于文件或文档级别翻译的引擎:

  1. 在清单中将 splitStringsIntoChunks 设置为 false
  2. Crowdin 将在一次请求中发送属于单个文件的所有字符串。

对于包含不可翻译元素(例如标签、占位符等)的字符串,Crowdin 会将这些元素替换为特殊的 notranslate 标签。 这确保了这些元素在字符串被 MT 引擎翻译后保持其原始状态。 Crowdin 使用这种方法来避免可能破坏导出翻译文件的潜在问题。

以下是字符串修改前后的示例。

以下是包含不可翻译元素(标签、占位符等)的字符串示例 在 Crowdin 中的显示效果:

<strong>任务:</strong>

以下是 Crowdin 在将上述字符串发送到 MT 引擎之前对其进行修改的方式:

<span class="notranslate">0</span>任务:<span class="notranslate">1</span>

如果您的 MT 引擎已有类似功能但实现方式与 Crowdin 不同,我们建议在您的 Custom MT 应用中调整不可翻译元素的处理方式,以匹配您的 MT 引擎的实现。 具体来说,将 Crowdin 的默认值替换,例如

<span class="notranslate">%index%</span>

替换为特定于您的 MT 引擎的禁止翻译元素。

您可以在此处查看 Amazon Translate 中禁止翻译元素的实现示例:在 Amazon Translate 中使用禁止翻译

如果 MT 引擎向 Crowdin 发送的翻译未包含所有原始状态的标签,或标签以某种方式被更改(例如被翻译),Crowdin 将忽略此类翻译,不会将其保存到字符串中。

请求载荷示例:

{
"strings": [
"Save as...",
"New file",
"You received one message.",
"You received {number} messages."
]
}

要使用扩展请求,请将 withContext 参数添加到您的 Custom MT 模块。

请求载荷示例:

{
"strings": [
{
"id": 1,
"projectId": 727186,
"fileId": 47047,
"text": "Save as...",
"identifier": "save_as",
"context": "translation Context",
"maxLength": 15,
"isHidden": false,
"isPlural": false,
"pluralForm": null
},
36 collapsed lines
{
"id": 2,
"projectId": 727186,
"fileId": 47047,
"text": "New file",
"identifier": "new_file",
"context": "translation Context",
"maxLength": null,
"isHidden": false,
"isPlural": false,
"pluralForm": null
},
{
"id": 3,
"projectId": 727186,
"fileId": 47047,
"text": "You received one new message.",
"identifier": "new_message",
"context": "translation Context",
"maxLength": null,
"isHidden": false,
"isPlural": true,
"pluralForm": "one"
},
{
"id": 3,
"projectId": 727186,
"fileId": 47047,
"text": "You received {number} new messages.",
"identifier": "new_message",
"context": "translation Context",
"maxLength": null,
"isHidden": false,
"isPlural": true,
"pluralForm": "other"
}
]
}

响应载荷示例:

{
"data": {
"translations": [
"Зберегти як...",
"Новий файл",
"Ви отримали одне нове повідомлення.",
"Ви отримали {number} нових повідомлень."
]
}
}

响应载荷示例:

{
"error": {
"message": "Error message from the App or MT engine"
}
}

应用返回的响应结构应与所提供的示例一致,否则 Crowdin 将视其为无效。

本页面对你有帮助吗?