跳转到内容

文件导出后处理模块

导出后处理模块允许您在从 Crowdin 导出文件后对其进行修改。 通过导出后处理模块,您可以对选定文件应用自动修改。 该模块可处理多种文件格式,例如 TXT、XML、JSON 等,以自定义其内容。

通过在 Crowdin 应用中使用导出后处理模块,您可以调整文件格式、结构和内容。 由于该模块在 Crowdin 导出文件后执行,您可以在系统处理文件后对内容进行微调。

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

对于 Crowdin:

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

对于 Crowdin Enterprise:

  • 仅限组织管理员
  • 组织项目中的所有用户
  • 选定用户
manifest.json
{
"modules": {
"file-post-export": [
{
"key": "your-post-export-module-key",
"url": "/export-file",
"signaturePatterns": {
"fileName": "^.+\.xml$",
"fileContent": "<properties>\s*<property\s+name=.*value=.*/>"
}
}
]
}
}
key

类型: string

必填:

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

url

类型: string

必填:

描述: 文件导出时触发的相对 URL。

signaturePatterns

类型: object

描述: 包含 fileName 和/或 fileContent 正则表达式,用于在导出译文文件时检测文件类型。

导出文件时,Crowdin 使用 signaturePatterns 参数检测相应模块,并向应用的 URL($baseUrl . $url)发送 HTTP 请求以进行进一步处理。

此外,在文件导出过程中,Crowdin 还会验证文件名和内容,以确保它们与相应的文件处理应用模块匹配。 此过程可包括导出前处理模块(在导出前修改字符串)和导出后处理模块(在文件导出后修改文件内容)。

为修改文件内容,系统首先定位相应的导出后处理模块,并将文件内容发送给它。 该模块随后执行预设的修改,这些修改可能包括文件格式更改、结构调整和内容更新。

导出后处理模块完成文件修改后,Crowdin 将返回修改后的文件内容,以及新的文件名或扩展名(如适用)。

请求载荷示例:

// max request payload - 5 MB
// wait timeout - 2 minutes
{
"jobType": "file-post-export",
"organization": {
"id": 1,
"domain": "{domain}",
"baseUrl": "https://{domain}.crowdin.com",
"apiBaseUrl": "https://{domain}.api.crowdin.com"
},
"project": {
"id": 1,
"identifier": "your-project-identifier",
"name": "Your Project Name"
},
"file": {
"id": 1,
"name": "file.xml",
"content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64 encoded exported file content
"contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=...", // exported file public URL
"rawContent": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64 encoded source file content
"rawContentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=..." // source file public URL
},
"sourceLanguage": {
"id": "es",
"name": "Spanish",
"editorCode": "es",
"twoLettersCode": "es",
"threeLettersCode": "spa",
"locale": "es-ES",
"androidCode": "es-rES",
"osxCode": "es.lproj",
"osxLocale": "es",
"pluralCategoryNames": ["one"],
"pluralRules": "(n != 1)"
},
"targetLanguages": [
{
// same structure as for sourceLanguage, one element for export, can be more for multilingual files
}
]
}

参数:

jobType

类型: string

值: file-post-export

描述: 指定文件导出后处理模块的操作。

file.content, file.contentUrl

类型: string

描述: 用于传递 base64 编码的已导出文件内容(file.content)或已导出文件公开 URL(file.contentUrl)的参数。
可使用这两个参数中的任意一个。

file.rawContent, file.rawContentUrl

类型: string

描述: 用于传递 base64 编码的源文件内容(file.rawContent)或源文件公开 URL(file.rawContentUrl)的参数。
可使用这两个参数中的任意一个。

响应载荷示例:

// max response payload - 5 MB
// wait timeout - 2 minutes
{
"data": {
"content": "VGhpcyBpcyBmaWxlIGNvbnRlbnQ=", // base64 encoded modified file content
"contentUrl": "https://crowdin-tmp.downloads.crowdin.com/1/file.xml?aws-signature=...", // modified file public URL
"exportPattern": "file.html" // optional, new export pattern for a resulting file
},
"error": {
"message": "Your error message"
}
}

参数:

data.content, data.contentUrl

类型(data.content): string

类型(data.contentUrl): string

描述: 用于传递 base64 编码的已修改文件内容(data.content)或已修改文件公开 URL(data.contentUrl)的参数。
可使用这两个参数中的任意一个。

exportPattern

类型: string

描述: 可选参数,用于覆盖结果文件的导出模式。

error.message

类型: string

描述: 可从应用传递至 Crowdin 的错误消息,将在 UI 中对用户可见。

本页面对你有帮助吗?