翻译管理

远程更新 (Strings)

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

远程更新 (OTA) 提供了一种灵活的方式,无需在 App Store、Google Play 或其他部署平台上发布新版本,即可向移动和 Web 应用程序交付翻译更新。这种方法通过减少延迟和手动流程,支持持续本地化和敏捷开发工作流程。

Phrase Strings 中的 OTA 功能与 iOS、Android、React Native、Flutter、i18next 和 Rails 平台集成。文本标签的更新会立即推送到移动应用程序。

OTA User Device Diagram

必须创建新版本,以便应用更新后的设置。包含在版本中的所有内容必须在 Phrase Strings 中可用,它会将翻译直接流式传输到应用程序。如果内容不存在,则不会交付翻译。

对于移动应用程序,OTA 需要将相关的 软件开发工具包 (SDK) 集成到应用程序中,以便在运行时从 Phrase Strings 检索翻译。

提示

有关分发、发布和 API 参考的详细信息,请参阅 Developer Hub

当在设备上首次启动实现 iOS、Android、React Native 或 Flutter SDK 的应用程序时,会生成一个唯一且随机的设备标识符。此标识符用于跟踪特定时间段内的可用的用户。除此之外不作它用,也不保存任何用户或设备信息。

OTA 请求的数量和月度可用的用户 (MAU) 数量是 有限的,具体取决于所选的定价套餐。

MAU 是请求翻译的唯一设备的数量。每个设备都会被分配一个随机 ID。MAU 是根据过去 30 天内分配的唯一 ID 数量计算得出的。与 Phrase 服务器的每次交互都被视为一个请求。

随 OTA 请求发送的数据

SDK 与 OTA 服务进行通信以检查更新,并在每次请求中包含以下详细信息:

  • 设备标识符(例如"F3AFCB10-80A2-84CB-94C0-27F5EF58876D".此应用唯一,因此不允许跟踪特定设备。)

  • 应用版本(例如"1.2.0")

  • 译文文件的最后更新(例如"1542187679")

  • SDK 版本(例如"1.0.0")

  • 区域(例如“de-DE”)

  • 文件格式(例如“Strings”)

  • 客户(例如“ios”)

  • Distribution ID(Distribution 的 ID)

  • 环境密钥(用于区分开发环境和生产环境)

SDK 使用的域:

EU datacenter

  • ota.eu.phrase.com

  • cdn.eu.phrase.com

  • ota.phraseapp.com

  • cdn.phraseapp.com

US datacenter

  • ota.us.phrase.com

  • cdn.us.phrase.com

Phrase OTA SDK 旨在确保即使 OTA API 不可用,应用也能保持功能正常。在这种情况下,SDK 会回退到存储在设备上的最后一次成功获取的译文,或回退到应用包中包含的捆绑译文。这可以防止最终用户出现错误或缺少 Strings 的情况。为保证可靠的回退,捆绑译文应随每次应用发布保持更新。

OTA Distributions

Distributions 是一种配置好的设置,用于定义如何以及在何处为特定平台或项目交付 OTA 更新。

译文平台在 Distribution 内定义:

  • iOS

  • 安卓

  • Flutter

  • i18next

  • Rails

可以有多个分发,但理想情况下每个项目对应一个分发。如果对 iOS 和 Android 使用同一个分发,两种格式的占位符会自动转换。

权限

管理 OTA 分发和发布受项目分配范围的限制。用户仅能在其被分配的项目上管理它们。

所有者、管理员、项目经理、开发人员和设计人员角色默认对 OTA 分发和发布拥有完全访问权限。译员角色没有访问权限。

所有者和管理员拥有所有项目的访问权限。

用户在创建分发之前需要账户级权限来管理分发。新的分发仅附加到用户可以访问的项目。

如需更精细的控制,Enterprise 客户可以联系支持 Team 咨询自定义角色。

回退

如果在分发所连接项目的语言设置中设置了语言回退,当请求的语言存在但键未翻译时,将显示所选语言的 Strings。

如果使用了特定国家的语言(例如 en-GB),但该语言不属于发布的一部分,则如果项目中存在该语言的标准版本(例如 en),系统可以回退到该版本。如果完全找不到所请求的语言,则可以改用项目的默认区域。

回退不适用于 链接的键

创建分发

要创建分发,请按照以下步骤操作:

  1. Integrations 页面的 远程更新 (OTA) 框中,点击 Configure 或现有配置的数量(如果已存在)。

    远程更新 页面打开并显示现有配置。

  2. 点击 新建分发添加分发 窗口打开。

  3. 常规 选项卡中,提供 名称、此分发关联的 项目、所需 语言 以及所需 平台

    • 对于 Android 分发,点击 Android 选项卡以选择格式选项,该选项可根据需要将包含 HTML 标记的任何翻译括在 CDATA 中。

    • 选择与分发关联的项目后,调度 选项卡变为可用。如果需要,使用此选项卡在分发中 设置 OTA 计划发布

  4. 回退语言 选项卡中,根据需要选择分发特定的回退设置。回退选项按列表中显示的顺序排列优先级。

  5. (可选)点击 翻译 选项卡以选择使用最新已审校翻译版本的选项。仅在配合 高级审校工作流 使用时启用此选项。

  6. 点击保存

    分发详情将与 SDK 所需的 ID 一同显示。点击 远程更新 页面中的分发,即可再次查看详情。

OTA 发布

要更新翻译,请在分发内创建一个新发布。项目当前状态将被导出并提供给已连接的客户端。

要创建发布,请按照以下步骤操作:

  1. 在“远程更新”页面,点击所需分发旁边的 添加发布

    新建发布 窗口打开。

  2. 提供 描述、所需 平台分支语言区域应用版本

    尚未添加到分发语言列表中的语言区域将显示为未选中且无法选择。将所需的语言添加到分发中,以便在未来的版本中可以选择它们。

    如果在创建发布时未手动选择任何区域设置,则默认包含分发中配置的所有区域设置。

    如有必要,输入标签以仅在发布中包含具有特定标签的键。向发布添加标签筛选器仅包含带有该标签的键。没有该标签的键将完全从发布中排除,并且连接的应用程序会针对这些键回退到本地代码库中捆绑的静态翻译文件。标签筛选独立于 分支 工作:如果启用了分支,请选择分支和相关标签;如果未启用分支,则仅选择相关标签。

  3. 点击保存

    发布将添加到分发详情页面底部的列表中。

计划 OTA 发布

要设置发布分发的定期计划,请按照以下步骤操作:

  1. 远程更新 页面上,点击所需分发旁边的齿轮 Modify 图标。

    显示 编辑分发 窗口。

  2. 选择 计划发布 选项卡并点击 启用计划

    显示发布计划选项。

    注释

    创建新分发 时也可以使用计划选项。

  3. 创建发布频率 下拉菜单中,通过选择可用选项之一来选择发布频率:

    • 选择计划发布所需的星期几。

  4. 提供时间和相关的 时区

  5. 如有必要,为计划发布选择 分支标记语言

    • 仅当项目中启用了分支时,才会显示 分支 字段。选择分支会更新区域设置和语言列表。

  6. 您可以选择在 Min versionMax version 字段中指定应用程序版本。

    留空以将计划发布应用于应用的所有版本。

  7. 点击保存

    分发已更新发布计划信息。

禁用计划会停止分发的自动发布,但已配置的设置会被保存。

注释

我们仍在不断优化,实际的用户界面可能与视频中呈现的不一样。

注释

Strings UI 中没有暂停或暂时禁用 OTA 的选项。要停止应用获取翻译,请从应用的 OTA 配置中移除分发 ID;恢复 ID 以恢复 OTA。作为最后手段,删除分发并创建一个新的分发。

OTA 移动 SDK 和 Web 库报告

集成适当的移动 SDK 或 Web 库不仅可以一键更新翻译,还提供了衡量使用情况的指标。移动 SDK 和 Web 库报告提供了有关可用的应用用户及其应用语言的宝贵见解。此报告集适用于每个分发,数据每天刷新两次。

报告提供了可用的用户数量、总请求数、每种语言的请求数、每个平台的请求数以及未提供的设备语言的请求数。

可通过 Open Reports 页面上的 Over the air 图标访问每个分发的报告。

这些报告中显示的可用的用户数量反映了基于当前日期的滚动 30 天窗口,而不是固定的日历或计费周期。

OTA SDK 集成

集成 OTA SDK 的技术文档可在每个项目存储库的 README 文件中找到:

这篇文章有帮助吗?

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.