跳转到内容

自定义代码

自定义代码是一个工作流步骤,允许您定义代码片段以过滤工作流中的字符串。 它有一个输入和两个输出(truefalse),让您可以根据自定义 JavaScript 条件将字符串拆分到不同的路径。

您可以在多种场景中使用自定义代码工作流步骤。 以下是几个例子:

  • 将一部分字符串发送给内部翻译员,另一部分发送给翻译机构。
  • 将一部分字符串发送给机器翻译,另一部分发送给众包。
  • 将一部分字符串发送给内部审核员,另一部分发送给翻译机构校对。

您可以在工作流编辑器或工作流模板编辑器中将自定义代码步骤添加到项目的工作流中。

工作流编辑器中的自定义代码

添加自定义代码步骤后,在自定义代码字段中定义基于 JavaScript 的代码片段,以将字符串路由到 truefalse 输出。

代码片段基于 JavaScript,并使用包含以下列出属性的 crowdin 对象。 要正确构建代码输入,请使用以下对象模板:

object crowdin {
object file {
string name,
string fullName,
string title,
string branchName,
string type
},
object string {
int id,
string key,
string context,
?int maxLength,
string createdAt,
?string updatedAt,
string|array text,
object fields
},
string contentType,
array labels
}

Crowdin Script Editor 中查找自定义代码片段示例。 使用编辑器检查结构,用您的数据编辑代码,并验证其是否按预期运行。

代码片段请求包含以下属性:

属性
描述
file.name源文件名称
file.fullName项目中源文件的完整路径(如果有则不包括分支)
file.title翻译员看到的源文件标题
file.branchName源文件所在的分支名称
file.type源文件类型
string.id源字符串 ID
string.key源字符串标识符(键)
string.context源字符串的上下文
string.maxLength字符串的最大长度(如果已设置)
string.createdAt源字符串创建时的时间戳(ISO 8601 格式)
string.updatedAt最新字符串更新的时间戳(如果可用)(ISO 8601 格式)
string.text源字符串文本;对于复数内容,这将是一个包含复数形式值的数组
string.fields包含键值对的对象,表示分配给字符串的自定义字段
labels分配给源字符串的标签数组
contentType源字符串内容的类型。 影响 text 属性的结构。 支持的值:text/plainapplication/vnd.crowdin.text+pluralapplication/vnd.crowdin.text+icu

以下是代码片段请求的示例:

{
"file": {
"name": "file.csv",
"fullName": "/folder/file.csv",
"branchName": "main",
"type": "csv",
"title": "index.php"
},
"labels": [
"Translate by Vendor"
],
"contentType": "text/plain",
"string": {
"id": 2814,
"key": "hello_world",
"context": "Header string",
"maxLength": 30,
"createdAt": "2019-09-20T12:43:57+00:00",
"updatedAt": "2019-09-20T13:24:01+00:00",
"text": "Hello World!",
"fields": {
"seo-priority": "high",
"is-critical": true,
"word-count": 42
}
}
}

运行代码片段后,它应返回一个响应,指示是否满足指定条件:

  • 响应对象应包含布尔值 success 属性,指示是否满足指定条件。 就像这样:
    {
    "success": true
    }
  • 如果不满足指定条件,字符串将定向到自定义代码步骤的 false 输出。 例如:
    {
    "success": false
    }
本页面对你有帮助吗?