翻译管理

空中下载 (Strings)

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

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

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

OTA 用户设备图

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

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

提示

有关分发、发布和 API 参考的详细信息,请参阅 开发者中心。

当首次在设备上启动实现 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”)

  • 分发 ID(分发 ID)

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

SDK 使用的域名:

欧盟数据中心

  • ota.eu.phrase.com

  • cdn.eu.phrase.com

  • ota.phraseapp.com

  • cdn.phraseapp.com

美国数据中心

  • ota.us.phrase.com

  • cdn.us.phrase.com

Phrase OTA SDK 的设计旨在确保即使在 OTA API 不可用的情况下,应用程序仍能保持功能正常。在这种情况下,SDK 会回退到存储在设备上的最后一次成功获取的翻译,或者回退到应用程序包中包含的捆绑翻译。这可以防止最终用户遇到错误或缺失的字符串。为确保可靠的后备方案,捆绑的翻译应随每个应用程序版本保持更新。

OTA 分发

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

目标平台在分发中定义:

  • iOS

  • Android

  • Flutter

  • i18next

  • Rails

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

权限

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

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

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

用户在创建分发之前,需要账户级权限才能管理分发。新分发仅关联到用户可以访问的项目.

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

回退

如果在与分发相关联的项目的语言设置中设置了语言回退,则当请求的语言存在但键未翻译时,将显示所选语言的字符串。

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

回退功能不适用于 链接键。

创建分发

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

  1. 在 集成 页面上的 空中下载 (OTA) 框中,点击 配置;如果已有配置,则点击显示配置数量的按钮.

    在 空中下载 (OTA) 页面打开并显示现有配置.

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

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

    • 对于 Android 分发,请点击 Android 选项卡,在需要时选择将包含 HTML 标签的翻译用 CDATA 包裹。

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

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

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

  6. 点击 保存。

    分发详情将与 SDK 所需的 ID 一起显示。通过从 空中下载 (OTA) 页面点击该分发,可以再次查看详情。

OTA 发布

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

要创建版本,请按照以下步骤操作:

  1. 在 空中下载 (OTA) 页面上,点击所需分发旁边的 添加版本。

    新版本 窗口随即打开。

  2. 提供 描述、所需的 平台、分支、区域设置 和 应用版本。

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

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

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

  3. 点击 保存。

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

计划 OTA 发布

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

  1. 在 空中下载 (OTA) 页面上,点击所需分发旁边的齿轮 修改 图标。

    系统将显示 编辑分发 窗口。

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

    系统将显示发布计划选项。

    注意

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

  3. 在 每隔一段时间发布 下拉菜单中,通过选择其中一个可用选项来确定发布频率:

    • 天

    • 周

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

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

  5. 如有必要,为计划发布选择 分支、标签 和 语言。

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

  6. 您可以选择在 最低版本 和 最高版本 字段中指定应用程序版本。

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

  7. 点击 保存。

    分发信息将随发布计划信息一起更新。

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

注意

由于持续改进,用户界面可能与视频中展示的不完全相同。

注意

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

OTA 移动 SDK 和 Web 库报告

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

报告提供了活跃用户数、总请求数、各语言请求数、各平台请求数,以及未提供的设备语言的请求数。

可通过 OTA 页面上的 打开报告 图标访问每个分发的报告。

这些报告中显示的活跃用户数反映的是基于当前日期的滚动 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.