翻译管理

分支 (Strings)

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

可用于

  • Business 和 Enterprise 套餐

关于许可问题,请联系销售团队

包含在

  • Enterprise 套餐(原)

关于许可问题,请联系销售团队

重要

自 2025 年 12 月 10 日起,所有新客户默认启用 新分支

现有客户可以通过在项目的 分支 选项卡中选择 切换到新分支 来选择加入新的分支模型。

原分支将于 2026 年 6 月 1 日弃用

分支用于软件版本控制。称为分支的项目文件副本允许团队同时处理项目的并行版本,同时保留未编辑的副本。这消除了意外覆盖他人对项目文件所做更改的风险。

创建新分支时会复制主 项目,更改仅在该分支中进行。当更改完成时,分支会合并回主项目中。可以同时处理多个分支,合并后,分支会自动删除。已合并的分支保留在 已合并 选项卡中,以便简化历史记录跟踪。现有分支中的标记会复制到新分支中。

限制

  • 除译员和临时用户外,所有 角色 均可访问 分支 视图。

  • 合并无法撤销,分支无法恢复。

  • 在特定分支中创建的 作业 在主项目中不可见,反之亦然。当分支合并到主项目中时,其中的任何未完成作业都将丢失。

  • 报告 视图中的报告仅反映可用的分支的状态。将分支合并到主项目中会更新主项目报告。

  • 活动 视图仅包含可用的分支中的活动。分支中的活动在主项目中不可见,反之亦然。将分支合并到主项目时,分支中的活动会丢失。

  • GitHub 同步只能在主项目上使用,不能在分支上使用。

  • 在分支中发表的 评论<1> 在主项目中不可见,反之亦然。

  • 在分支中创建的 订单<1> 在主项目中不可见,反之亦然。当分支合并到主项目时,其中的任何未结订单都会丢失。

  • 译员不能被限制在特定分支中,但被授予在特定 区域设置<1> 上工作的权限。应指导译员如何使用分支进行工作。

启用分支

分支在“项目设置”的“高级”选项卡中启用,并提供保护主分支免受更改的选项。

启用后,项目屏幕上会显示一个分支菜单 Branch Menu,可在其中选择工作分支。要在 CLI<3> 中指定分支,请使用 --branch<4> 参数:

--branch <branch_name>

分支列在项目的“分支”选项卡中,其中显示了创建和合并信息。也可以从“分支”选项卡中删除或合并分支,并为该分支创建作业。

提示

在“分支”选项卡中点击 切换到新分支<1> 以访问新的分支界面和功能。

要通过 API<1> 或 CLI 列出项目的所有分支,请运行:

$ phrase branches list --project_id <project_id>

# 例如
$ phrase branches list --project_id 1d8ae641902624df63ce6fbd64ff9549$ phrase branches list <project_id>

要通过 API 或 CLI 删除分支,请运行:

$ phrase branches delete --project_id <project_id> --name <branch_name>

# 例如
$ phrase branches delete --project_id 1d8ae641902624df63ce6fbd64ff9549 --name test-test$ phrase branch delete <project_id> <branch_name>

创建分支(原)

管理员、项目经理和开发人员角色可以在 翻译编辑器 中、通过 API 或在 CLI 中创建新分支。

若要在翻译编辑器中创建分支,请遵循以下步骤:

  1. 项目 页面中,选择 分支 选项卡。

  2. 点击 创建分支

    创建分支 窗口随即打开。

  3. 为分支提供一个名称。

  4. 点击 创建分支

    新分支已添加到列表。

若要通过 API 或 CPI 创建分支,请运行:

$ phrase branches create --project_id <project_id> --data <data>

若要在推送 Phrase 时创建分支,请运行:

$ phrase push --branch <branch_name>

合并分支(原)

对分支进行更改后,可以将其合并回主翻译,以整合任何新的 Phrase。

合并期间,仅以下资源的更改会应用于主分支:

  • 区域设置

  • 翻译

对其他资源(如活动、作业和订单)的更改不会被应用。

冲突

当资源(翻译、键或区域)在分支创建到合并回主项目期间,在主项目和分支中均发生更改时,就会发生冲突。例如,在创建分支后,主项目中的翻译和键设置(例如复数形式)可能已发生更改,导致分支中的值与主项目中的值不同。

要合并分支,请按照以下步骤操作:

  1. 在项目的 Branches 视图中,选择一个要合并的分支,然后点击 Compare and Merge

    Merge branch 页面打开。可以通过点击单元格来访问有关在合并期间要修改的翻译的信息。

  2. 如果存在冲突,请选择合并策略:

    • 选择 Use Main Project 以驳回冲突的更改并保留现有的翻译。

    • 选择 Use Branch Menu BranchName 以使用来自分支的更改替换现有的翻译。

  3. 点击 Merge Branch

    该分支已合并到主项目中。

要通过 API 或 CPI 合并分支,请运行:

$ phrase branches merge \\
  --project_id <project_id> \
  --name <name> \
  --data '{"strategy":"use_main"}' \
  --access_token <token>
  • use_branch 通过应用来自分支的更改来解决冲突,如果未指定,则为默认设置。

  • use_main 通过驳回来自分支的更改来解决冲突。也支持 use_master

推送和拉取(原)

使用 CLI 时,请使用 --branch 参数指定要从中推送或拉取的分支。

$ phrase push --branch <branch_name>
$ phrase pull --branch <branch_name>

如果指定的分支在项目中不存在,客户会创建它。

使用 --use-local-branch-name 来使用可用的 git 分支的分支名称进行推送和拉取:

$ phrase push --use-local-branch-name
$ phrase pull --use-local-branch-name

API (原)

所有接受项目参数的 API 端点也支持 --branch 参数,以在项目的特定分支上执行操作:

$ phrase upload create <project_id> \\

  --branch <branch_name>

  --file /path/to/my/file.json \

  --file-format json \

  --locale-id abcd1234cdef1234abcd1234cdef1234 \

  --tags awesome-feature,needs-proofreading \\

  --locale-mapping "{"en": "2"}" \

  --format-options "{"foo": "bar"}" 

新分支功能

可用于

  • Business 和 Enterprise 套餐

关于许可问题,请联系销售团队

新的分支功能体验引入了重新设计的架构,以提高性能、稳定性和灵活性,并扩展了版本控制能力。它使团队能够并行处理其内容的多个版本,保持长期运行的分支处于最新状态,并更高效地合并更改。

新功能包括:

  • 多级(堆叠)分支

    分支可以从任何其他分支创建,而不只是主分支。最多支持 5 级分支。

  • 分支间同步更改

    随着更改在基础分支中积累,长期运行的分支可能会过时。新的分支功能引入了同步能力,有助于防止不一致。

自创建之日起超过 30 天未合并的分支将计入 Strings managed words

创建分支

管理员、项目经理、设计师和开发人员角色可以在 Branches 选项卡中、通过 API 或在 CLI 中创建新分支。

要从 UI 创建分支,请按照以下步骤操作:

  1. 项目 页面中,选择 分支 选项卡。

  2. 点击 创建分支

    创建分支 窗口随即打开。

  3. 为分支提供一个名称。

  4. 从现有分支列表中选择一个 Base branch

  5. 点击 创建

    新分支已添加到列表。

若要通过 API 或 CPI 创建分支,请运行:

$ phrase branches create --project_id <project_id> --data <data>

若要在推送 Phrase 时创建分支,请运行:

$ phrase push --branch <branch_name>

同步分支

同步可确保工作分支与源分支的最新更改保持一致。这样,译员也可以在长期项目中处理更新后的内容版本。

要将分支与其基础分支同步,请按照以下步骤操作:

  1. 分支 选项卡中,点击所需分支旁边的 与基础分支同步

    同步 页面会显示有关任何冲突以及要与基础分支同步的更改的信息。

  2. 点击检测到的任何更改以在同步前进行审查。

    将显示一个包含所选更改详细信息的表格。

  3. 选择 同步 并确认以应用更改。

    更改将添加到基础分支,并在翻译编辑器中可见。有关上次同步的信息显示在 分支 选项卡的 已同步 列中。

分支同步也可以通过 API 执行,方法是运行此 CLI 命令:

$ phrase branches sync \\
  --project_id <project_id> \
  --name <branch_name> \
  --data '{"strategy":"use_main"}' \
  --access_token <token>
  • use_branch 通过应用来自分支的更改来解决冲突,如果未指定,则为默认设置。

  • use_main 通过拒绝来自该分支的更改并引用基础分支来解决冲突。在使用堆叠分支工作时,基础分支不一定是实际的主项目分支。

合并分支

在分支中完成翻译或特定版本的工作后,任何更改都可以合并到基础分支中。一旦所有更改都沿链向上合并,顶层分支就可以合并到主分支中。

合并成功后,已合并的分支将自动删除,并出现在 已合并 选项卡中以进行历史记录跟踪。

合并期间,仅对以下资源的更改会应用于基础分支:

  • 区域设置

  • 翻译

对其他资源(如活动、作业和订单)的更改不会被应用。

具有可用子分支的分支在子分支被删除或合并之前无法合并。

冲突

当资源(翻译、键或区域)在分支创建或上次同步后,在当前分支及其基础分支中均发生更改时,就会发生冲突。冲突可能发生在分支堆栈的任何级别,而不仅仅是在合并到主分支时。

要合并分支,请按照以下步骤操作:

  1. 在项目的 分支 选项卡中,点击所需分支旁边的 与基础分支合并

    合并 页面打开。可以通过点击单元格来访问有关在合并期间要修改的翻译的信息。

  2. 如果存在冲突,请选择合并策略:

    • 选择 使用基础分支 以驳回冲突的更改并保留现有翻译。

    • 选择 Use Branch Menu BranchName 以使用来自分支的更改替换现有的翻译。

  3. 点击 合并 并确认以应用更改。

    该分支被合并到基础分支并自动删除。要查看已合并分支的历史记录,请打开 分支 页面中的 已合并 选项卡。

要通过 API 或 CPI 合并分支,请运行:

$ phrase branches merge \\
  --project_id <project_id> \
  --name <name> \
  --data '{"strategy":"use_main"}' \
  --access_token <token>
  • use_branch 通过应用来自分支的更改来解决冲突,如果未指定,则为默认设置。

  • use_main 通过驳回来自分支的更改来解决冲突。也支持 use_master

合并 操作还会自动删除已合并的分支。

推送和拉取(原)

使用 CLI 时,请使用 --branch 参数指定要从中推送或拉取的分支。

$ phrase push --branch <branch_name>
$ phrase pull --branch <branch_name>

如果指定的分支在项目中不存在,客户会创建它。

使用 --use-local-branch-name 来使用可用的 git 分支的分支名称进行推送和拉取:

$ phrase push --use-local-branch-name
$ phrase pull --use-local-branch-name

API (原)

所有接受项目参数的 API 端点也支持 --branch 参数,以在项目的特定分支上执行操作:

$ phrase upload create <project_id> \\

  --branch <branch_name>

  --file /path/to/my/file.json \

  --file-format json \

  --locale-id abcd1234cdef1234abcd1234cdef1234 \

  --tags awesome-feature,needs-proofreading \\

  --locale-mapping "{"en": "2"}" \

  --format-options "{"foo": "bar"}" 
这篇文章有帮助吗?

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.