管理

Phrase Strings 连接器 (Job Sync)

文本由 Phrase Language AI 从英语机器翻译而得。

Phrase Strings 集成(在 Strings 界面中称为 Job Sync)连接了 Phrase TMS 和 Phrase Strings。该集成支持工作级和项目级同步。

  • 工作同步

    在 Strings 中创建和开始的 工作若状态为 进行中,可导入 TMS 进行翻译,并在翻译完成后发回 Strings。默认情况下,从 Strings 发送到 TMS 的工作将作为 XLIFF 2.0 文件导入。

    推荐用于具有精细控制的批量工作流。

  • 项目级同步

    所选 Strings 项目 中的所有键都会传输到 TMS,无需创建工作。新添加或更新的键会自动可供同步。

    推荐用于持续本地化工作流。

先决条件

  • 需要 TMS 和 Strings 应用程序的访问权限

  • TMS 项目中使用的语言代码必须与 Strings 工作中的区域代码匹配。

  • Strings 项目的默认语言必须与 TMS 项目中定义的源语相同。

重要

Figma 文件可以在 Strings 中显示为完整的实时文件,但 TMS 不支持此功能。TMS CAT Editor 只能以 SVG 格式显示特定 Figma 框架中的译文内容。

不支持 Strings 翻译状态。在导入 TMS 之前在 Strings 中标记为 未验证 的键,如果译文未更改,则可以作为 已验证 返回到 Strings。

导入 Strings 工作后在 TMS 中创建的工作句段数在以下情况下可能与原始键数不同:

  • Strings 将键标记为已排除,导致已排除的键未导入。

  • 在 TMS 中创建工作时,已在 XLIFF 2.0 的文件导入设置中启用了句段 XLIFF 选项。在这种情况下,句段数可能大于 Strings 中的键数。

Strings 键可以包含 HTML 实体。在 TMS 中设置连接器时,启用在 CDATA 中包含 HTML 内容的选项以保留 HTML 实体,而不仅是在 TMS 中显示相应字符。

Strings 键原文中存在的首尾空格不会在 TMS CAT Editor 中显示。这些空格会保留在骨架文件中,并在工作同步回 Strings 时重新插入到原文和译文中。这可能会影响在 Strings 中配置的字符限制验证,因为在翻译过程中,空格计数不会反映在 TMS 编辑器中。

使用连接器,可以用 APC 监控多个项目和文件。每个项目都需要使用一个 APC 中单独监控。

该连接器使用工作区域注释将有关相应 Phrase TMS 项目的元数据附加到 Strings 工作和工作区域。用于列出工作区域注释的 Phrase Strings API 端点会检索此元数据。当 include_annotations 参数设置为 true 时,用于列出工作译文区域的端点也会包含此元数据。带注释的工作包含诸如 tms_project_idtms_in_progress 之类的字段,这些字段允许在链接的 Phrase TMS 项目中跟踪 Strings 工作的状态。

ICU 信息CLDR 复数形式

将包含 ICU 信息或复数形式的 Strings 工作发送到 TMS 进行翻译时,在 XLIFF 2.0 文件导入设置或 TMS 项目模板中启用解析 ICU 信息选项。

用例

连接器有多种用例:

  • TMS 项目经理可以直接在 TMS 系统中添加线上存储库中的文档。

  • 设置 Phrase TMS 提交页面,允许提交者直接从 Phrase Strings 添加文件请求翻译。

  • 使用 TMS 自动项目创建 (APC),当检测到监控的文件或文件夹的最后修改日期发生更改时,自动创建新项目。

    • 对于 Job Syncs 和项目级同步,监控的项目路径必须一直选择到 jobs 文件夹(例如 space/project/main/jobs)。

    • 对于 Job Syncs,同步由以下工作更新触发 APC:

      • 添加键或更改现有键

      • Strings 中修改工作的截止日期

      注释

      工作重新打开不算 APC 监控的更新。

    • 对于项目级同步,APC 由以下内容触发:

      • 新添加的键

      • 对现有键的更改

    • 如果在设置 APC 时选择创建一个新项目,远程线上存储库不仅可以监控原文,还可以监控译文更新。

      如果选择监控译文更新,在线上存储库中对译文副本所做的任何更改都将自动更新 Phrase TMS 中的翻译记忆库库。

    • 如果选择了翻译记忆库将自动保存远程更新的译文,则在相关 APC 项目使用的 TMS 翻译记忆库中自动更新 Strings 译文的键文本更改。

  • TMS 连接器 API 可用于自动化用户界面手动执行的步骤。Webhook 可用于向第三方系统发送(如工作状态更改等事件)。

Job Syncs 页面

Job Syncs 页面提供了使用 Phrase Strings 连接器的所有 Job Syncs 设置(APC)的集中视图。它包括直接在 Strings 中创建的同步以及在 TMS 中配置的同步,并提供相关信息。

Job Syncs 页面中,Strings 中的管理员和项目经理用户可以 配置新的 Job Syncs、编辑现有 Job Syncs(包括其启用/禁用状态)或删除它们。

可以通过 More More Menu 菜单中的相关选项来编辑或删除现有 Job Syncs。所有更改都会在 Strings 和 TMS 之间同步。删除 Job Syncs 会移除 TMS 中相应的 APC。

Job Syncs 页面可从 IntegrationsJobs 左侧导航菜单访问。

在 Strings 中配置 Job Sync

注释

如果 TMS 中定义了必需的 自定义字段,则不支持从 Strings 设置工作同步。

若要设置 Strings 与 TMS 之间具有基本配置的新 Job Sync,请在 Strings UI 中执行以下步骤:

  1. 集成 页面中,选择 配置,位于 Job Sync 集成旁边。

    显示 Job Syncs 页面。

  2. 点击 + New Job Sync

    显示 Create new Job Sync 窗口。

  3. 提供 同步名称,并从 分配的 Strings 项目 下拉菜单中选择要连接到 TMS 的 Strings 项目。

    仅可包含具有相同语言组合的项目。

  4. (可选)选择要使用的 TMS 项目模板。所选 TMS 项目模板必须与分配的 Strings 项目中定义的语言集匹配。

    同步的工作将添加到根据所选模板创建的 TMS 项目中。

    • 如果选择 默认,系统将根据所选 Strings 项目自动创建 TMS 项目模板。

  5. 选择要在 TMS 中创建的项目 类型

    • 连续项目

      默认选项。

    • 新项目

      每当检测到 Strings 工作中的更改时,都会创建一个新的 TMS 项目。

  6. 导出回 Strings 部分,指定 Strings 导出设置,以控制如何将 TMS 中的译文导出回 Strings。

    • 覆盖现有译文

      更新 Strings 中现有的译文。

    • 标记工作为已完成

      自动将 Strings 中的工作标记为已完成。

    • 验证 Strings 中的未更改翻译

      如果译文未更改,标记为 未验证 的键将在 Strings 中自动验证。

  7. 如有需要,点击 高级选项 以显示更多导出选项。

    • 将区域标记为已完成

      当语言环境的译文同步回传后,将其标记为已完成。

    • 创建新键并更新现有键

      确保 TMS 中的新键在 Strings 中创建,并更新现有键。

    • 仅在原文与存储版本相符时才应用译文

      防止在导出后 Strings 中的原文发生更改时覆盖译文。

  8. 点击保存

    新的 Job Sync 配置将以未激活状态添加到 TMS Job Syncs 列表中。使用 Active 列下的开关来启用 Job Sync。

提示

如需更高级的配置,请使用 Phrase TMS 设置来设置连接器。

Phrase TMS 设置

一些组织已自动创建了 Phrase Strings 连接器,使用的是该组织的 Phrase 平台标识。在手动创建连接器之前,请检查 Connectors 页面上的连接器列表。自动创建的连接器使用登录标识在服务器端进行 认证,而不是使用手动输入的 access token。

连接器在创建后完成初始同步时显示 Pending 状态,随后更改为 Active。每当更改连接器设置或保存连接器设置页面时(即使没有实质性更改),也会触发 Pending 状态。当连接器显示 Pending 时,它不能用作 Phrase TMS 中创建工作的源。请等待状态更改为 Active,然后再使用该连接器创建工作。

  1. 在设置Setup_gear.png页面,下拉到集成部分。

  2. 单击连接器

    连接器页面打开。

  3. 点击 新建连接器

    创建连接器 页面随即打开。

  4. Type 更改为 Phrase Strings 并为连接器提供名称。

  5. 输入从 Strings 获取的账户 ID 和 access token

  6. 单击测试连接

    • 如果成功,Test connection 按钮旁边会出现一个小勾号。

  7. 选择要导入到 TMS 的项。

    如果未导入译文键,且在 XLIFF 2.0 文件的File import settings中选择了Segment XLIFF,则可以进一步切分 XLIFF 2.0 文件。

    • 根据需要启用或禁用高级导入选项:

      • 在导入时使用 TMS 项目的源语言

        无论 Strings 项目中的 默认 语言如何,都会应用 TMS 项目的原文语言。

      • 为每个语言创建一个 TMS 工作

        启用此选项可防止为已在进行中的语言环境创建重复的 TMS 工作。启用后,对已属于正在进行中的 TMS 工作的键所做的更改,在原始工作完成之前不会重新导入。建议用于需要更精细控制的多语言工作。

      • 将 HTML 内容包装在 CDATA 中

        • 该选项确保 HTML 实体被包装在 CDATA 中,以便在 Strings 和 TMS 之间的传输过程中保留。

        • 该选项允许导入结合了 ICU 语法和内联 HTML 元素的内容。

  8. 选择导出模式。

    • 根据需要启用或禁用以下导出选项:

      • 覆盖译文

        禁用此项可防止现有译文被文件内容更新。

      • 创建新的键或更新键

        禁用此项可防止创建新键以及更新现有键。

      • 仅当原文匹配时才应用译文

        在同步过程中,与最新原文内容不一致的译文将被排除。这有助于保持原文与译文之间的一致性,避免使用过时或错误的译文。

      • 仅当原文未修改时才验证

        如果译文未更改,标记为 未验证 的键将在 Strings 中自动验证。

      • 将语言标记为已完成

        当语言环境的译文同步回传后,将其标记为已完成。

      • 标记工作为已完成

        如果选择了此项,只有当最后一个语言环境上传时,工作才会标记为已完成。

  9. 如果已指定,请选择一个默认文件夹(仅在保存后才可选择)。

  10. 提供了语言映射,如果需要可以自定义。语言映射更改不会影响现有工作。

    该列表每次分页显示五个项目,项目按字母顺序进行排序;首先是 A-Z(大写),然后是 a-z(小写)。

  11. 点击保存

    连接器添加到了连接器页面的列表中。

删除连接器

要删除连接器:

  1. 集成 页面中,选择要删除的连接器。

  2. 点击 删除

    删除连接器 窗口打开。

  3. 输入“delete”并点击 删除

    连接器已删除,并显示连接器列表。

注释

当连接器仍链接到项目中的未完成工作(包括位于回收站中的工作)时,无法删除该连接器。尝试删除此类连接器会返回“删除连接器失败”错误。

解决方法:打开与该连接器关联的项目,并完成或删除任何剩余的工作。在 设置/回收站中,将其清空以移除任何仍链接到该连接器的工作。重试删除该连接器。

支持的集成:

  • TMS 项目模板

  • TMS 工作流

  • 工作简报(使用项目级同步时不适用)

  • 工作截止日期(使用项目级同步时不适用)

    TMS 的项目截止日期根据 Strings 中设置的截止日期而定。如果有多个不同的截止日期,则将至今最远的截止日期应用于 TMS 项目。

从 Strings 到 TMS 传输项目参考

  • 键描述

    从 Strings 传输,并在 TMS CAT Editor 的上下文注释窗口中显示为上下文注释。

  • 键字符最大长度

    从 Strings 传输,并在 TMS CAT Editor 的上下文注释窗口中显示。

  • 截图

    要在 TMS CAT 编辑器的上下文注释窗格中显示来自 Strings 的截图:

    • 在 TMS 项目设置的 访问和安全 部分下,启用 允许在 Phrase CAT Editor 中加载外部内容 选项。

    • 上下文注释 窗格中选择 富文本格式

  • 支持的文件格式的自定义元数据

    • .XLSX

    • .CSV

    • .XLIFF 2.0

通过 APC 监控 Strings 中的译文更新

要通过 APC 监控 Strings 中的译文更新,参照以下步骤:

  1. 设置 APC 时,选择创建一个新项目

    这样可以监控线上存储库中是否有 Strings 中的译文更新。

  2. 在 APC 设置的自动化部分,选择翻译记忆库将自动保存远程更新的译文

触发 APC 监控后,对 Strings 中译文内容的更改将自动保存到 Phrase TMS 翻译记忆库。

通过修改 Phrase TMS 编辑器中的译文句段,可以覆盖翻译记忆库更新。这些更新将在 Phrase TMS 工作完成后导回 Strings。

使用 APC 时的键删除行为

在 Strings 中删除一个已包含在工作中的键,不会影响通过一次性手动导入创建的 Phrase TMS 工作。该工作保持不变,直到手动重新导入。

当 APC 监控已激活时,Phrase 会在每次轮询或 webhook 触发时比较内容哈希,并将任何更改(包括键删除)视为触发重新同步的更新。

  • 连续项目模式下,重新同步会更新现有的 Phrase TMS 项目或工作以匹配 Strings 中的当前内容,因此已删除键的内容会从该工作中移除。

  • 每次创建新项目模式下,重新同步会创建一个反映删除后内容的新 Phrase TMS 工作版本,而之前创建的工作版本保持不变。

Job Sync 故障排除

下表概述了用户在使用 Strings 集成时可能遇到的常见问题,并提供了可能导致故障的原因和解决方案。

问题

原因

解决方案

TMS 工作中与 神经网络令牌 (NMTOKEN) 相关的警告信息

键名称包含不支持的字符(例如空格)

尽管出现警告信息,用户仍然可以处理翻译内容并将其导回 Strings。

TMS 中的键为空

工作中包含没有相应源语言原文的键

可以:

  • 略过句段。

  • 或从 Strings 工作移除这些键,并从线上存储库重新导入原文。

APC 未创建项目/处理新工作

语言代码不匹配

确保 Strings 中的语言代码与 TMS 项目中的语言代码匹配。

将 APC 设置为连续项目时,项目创建后对项目模板所做的任何更改都将不适用于现有项目。因此,必须直接对连续项目进行更改。

APC 认为工作/区域已处理

如果在开始工作后修改了项目模板 / APC 设置,则可能在 APC 历史记录中被视为已处理。因此,可能需要更新工作才能使其符合下一个迭代的条件。

可以:

  • 为工作添加新键,或更新工作中现有的键

  • 或在 Strings 中更改工作的截止日期

429 请过多错误(Strings API 限制

减少 APC 数量,降低监控频率。

Strings 项目中的现有键在 TMS 工作中缺失

特定的键未添加到 Strings 工作中

将键添加到 Strings 工作,并从 TMS 中的在线存储库重新导入工作

尝试导入/导出工作时出现“无法验证身份”错误。

“created by Phrase Strings”连接器上的访问令牌已过期或被撤销

在 TMS 中创建一个新的 Phrase Strings 连接器,将现有的 APC 重新链接到新连接器,并触发监控。

无法通过 APC 或手动方式找到用于导入或重新导入的 Strings 工作,即使它未显示为已完成。

该工作已被导入到一个 TMS 项目中,该项目后来被移至回收站,且未完成或清除。由于该项目实际上仍在进行中,因此该工作尚未释放以供重新导入。

在进行进一步故障排除之前,请检查 Strings 中其语言环境旁边的 Annotations,以验证该作业是否已被导入到 TMS。如果在回收站中找到链接的项目,请恢复该项目并直接继续处理;或者,如果不再需要该项目,请取消相关作业和项目,或通过 API 使用 purge=true 参数永久删除该项目,以便 APC 不再将其视为活动版本。

Job Sync 保存失败,并出现“Locales are not supported by Phrase TMS: x”错误,即使 TMS 连接器已配置了自定义语言环境映射。

Job Sync 在保存时会直接根据 TMS 原生支持的语言环境列表验证 Strings 项目中的目标语言环境。此验证未涵盖自定义连接器语言环境映射。

对于目标语言环境不受 TMS 原生支持的 Strings 项目,请直接在 TMS 中使用 Strings 连接器,而不是在 Strings 中使用,并配置自定义语言映射。

这篇文章有帮助吗?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.