翻译管理

使用本地化文件(字符串)

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

上传本地化文件

当将文件上传到项目时,所有新资源将从该文件中提取并存储在项目中。上传文件的格式不必是为项目设置的初始格式。如果提供了用于分组资源的标签,则新键将应用这些标签。

某些格式,例如Gettext,提供额外的有价值的元信息,例如注释、描述或有关复数形式的信息。这些信息在可能的情况下提取,并与分配的资源一起存储,从而允许保存本地化文件中提供的所有有价值的信息以供进一步使用。

有几种上传文件的方法:

  • 应用程序中,创建新项目或在项目页面中选择上传文件

  • 通过API

  • 通过CLI

上传选项

  • 更新翻译

    默认情况下,仅提取新内容,任何现有的本地化项目中的键不会被删除或更新;上传文件不会丢失数据。如果需要覆盖现有数据,请通过选择更新翻译选项,用本地化文件中的内容替换项目资源。现有翻译将被上传的本地化文件的内容覆盖。

    此选项在API中也可用。

    注释

    为防止数据丢失,请确保在更改本地化文件并使用更新翻译选项再次上传之前,从Phrase下载最新更改。

  • 使用翻译键前缀

    输入一个唯一的标识符(例如文件路径),以便在上传的翻译键名称前添加前缀。使用与项目或文件相关的有意义的前缀,以保持键名称的组织性。

    例如,带有前缀project_的导入键hello_world将生成键project_hello_world

    翻译键前缀确保键与现有键匹配,以避免在不同项目或文件之间发生冲突。

    此选项在API和CLI接口中也可用。

  • 创建和更新翻译键

    添加新键并用上传文件中的内容覆盖现有键。

  • 在源匹配时更新翻译

    仅在项目的默认语言中的现有源文本与上传的多语言文件中的源文本匹配时,更新目标翻译。

  • 更新描述

    如果需要更新上传文件中所有键的描述,请选择此选项。空描述将覆盖现有描述。描述可以包含任何额外信息,以帮助翻译者识别编辑器中的单个键。

  • 跳过上传标签

    为了保持翻译的组织性,给键添加多个有意义的标签。选择此选项以防止新键被自动标记为上传标签。

  • 标记新翻译和更新翻译的键

    选择此选项以在上传时自动标记新键和具有更新翻译的键。这将有助于区分新翻译、更新翻译和旧翻译字符串,确保只有相关键被进一步处理。

    此选项在API中也可用。

  • 编码

    指定文件的编码(例如 UTF-8),或让其自动选择(自动选择的编码可能导致编码错误,可以通过撤销上传来回滚)。

  • 校对

    • 跳过未验证 在更新翻译时,避免再次验证非主要语言翻译。

    • 标记为已审校 将所有上传的翻译视为已审校。当 高级审校工作流 被激活时,此选项可用。这表示密钥已准备好发送到生产环境。

    • 验证提到的翻译 将所有上传的翻译视为已验证。

通过用户界面上传文件

要在 Strings 中上传文件,请按照以下步骤操作:

  1. 在上传之前,请确保文件根据 类型 正确格式化。

  2. 从项目中,从 更多 菜单中选择 上传文件

    上传文件 页面打开。

  3. 点击 选择文件,从目录中选择一个文件。

    所选文件已添加到 文件 字段。

  4. 为文件选择一个 格式

    根据文件类型,建议的格式首先呈现。

  5. 从下拉列表中选择文件内容的语言。

    如果此信息不在文件本身中,请为内容创建新语言或使用现有语言。

  6. 可选地提供要分配给新键的标签和其他选项。

  7. 点击 保存.

    内容被导入并转换为键。

上传摘要

  • 上传失败

    如果文件无法正确处理,将提供错误详细信息以帮助减轻错误。

  • 上传成功

    在成功处理翻译文件后,将显示一个摘要页面,概述上传情况,并提供链接到下一步的按钮。点击上传标签以在编辑器中打开文件。

  • 正在移除键

    为了防止在从本地化文件中移除键并重新上传时意外删除键,这些键不会被自动删除。

    要移除这些键,请按照以下步骤操作:

    1. 上传文件。

    2. 点击 删除 并选择 删除未提及的键

    3. 确认选择。

    未提及的键是指当前上传中未包含但仍存在于项目中的键。通过删除它们,所有未包含在上传文件中的键及其相关翻译将从项目中移除。

  • 撤销上传

    每次上传都会触发多个操作,并可能修改项目中的大量数据,因此无法撤回上传。

    要移除由上传文件(错误地)引入的键,请按照以下步骤操作:

    1. 从受影响的上传的上传摘要中,点击 删除 并选择 删除创建的键

    2. 确认选择。

    由该上传创建的所有键及其相关翻译将被移除。在上传之前存在的键的翻译将不会被移除。要移除单个翻译,请使用每个翻译的版本历史。

上传档案

在任何项目页面,从更多菜单中选择上传以访问上传档案。

上传档案列出了所有历史上传的所有可能状态。点击所有状态下拉菜单按状态筛选上传(成功失败和/或进行中)。要查找特定的上传,请使用顶部的搜索框按名称搜索。

通过点击列出的上传,访问受影响资源的详细上传摘要。所有成功的上传也会在项目的活动流中显示。

下载本地化文件

语言文件可以在任何时候从项目中导出,并支持任何文件格式

文件可以通过APICLI从应用程序导出。

可以从任何项目的语言选项卡中选择文件并点击下载(多个文件)或语言的更多选项 Open More Menu/下载按钮下载文件。

下载选项

下载窗口下载文件时,会显示下载选项,并有常规高级编码的选项卡。

选择不同的文件格式会呈现不同的选项。有关更多详细信息,请参考关于特定文件格式的相关文章。

可选地,在常规选项卡中的文件名字段中指定自定义导出文件名,或留空以生成系统定义的名称。

  • 移除翻译键前缀

    如果在文件上传时添加了翻译键前缀,请在高级选项卡中选择此选项以从导出的翻译键名称中移除前缀:

    1. 输入前缀以下载所有键,并在可能的情况下移除指定前缀。

      重要

      如果其他键在移除前缀后共享相同名称,这可能会创建重复的键名。

    2. 如有需要,选择使用翻译键前缀作为筛选器以仅下载包含指定前缀的翻译键,并从下载的文件中移除前缀。

    此选项在API和CLI接口中也可用。

用例

维护文件结构

默认情况下,可译资源以键值对的形式存储,而不是保持原始文件结构。这允许在不被锁定到一种格式的情况下进行可互换的文件格式,并使用标记进行灵活分组。

某些框架或设置需要多个源文件,并且需要额外的配置。

保持单独的文件

一般来说,将每种语言的所有翻译保存在一个文件中。这使得资源下载更快且更稳健。翻译在项目中保持有序,因此不需要单独的小文件。

如果需要将本地化文件保存在单独的文件中,可以通过在上传时标记键并在将翻译键下载回原始文件时使用这些标记作为参考,来使用基于文件的工作流。键可以携带多个标记,并包含在多个文件中,以确保重用和一致性。基于标记的工作流灵活,允许在不需要上传到项目的情况下重新组织翻译资源。

在所有文件中为键赋予唯一名称,以确保顺畅的工作流。在基于键值的方法中,键在每个上下文中必须具有相同的值。某些框架允许在多个文件中使用非唯一键。某些格式,例如Symfony,支持消息领域。这些领域通过文件名检测。键不会自动按基于文件名的领域进行作用域划分,但可以通过在文件内为键使用唯一的领域前缀来解决。

示例CLI配置

如果使用CLI或将项目与存储库(例如GitHub、GitLab或Bitbucket)连接,请设置配置文件以管理上传和下载。

例如,一个项目有几个语义命名的翻译文件用于源区域。例如:accounts.en.ymlemails.en.yml等。这些语义名称通过标签进行管理。

配置.phrase.yml以反映本地化项目中文件的组织,并通过在文件路径中包含标签占位符将它们链接到Strings项目中的标签:

短语:
  access_token: "3d7e6598d955bfcab104c45c40af1b9459df5692ac4c28a17793"
  project_id: "23485c9c5dfb15d85b32d9c5f3d2hl54"
  file_format: yml
  推送:
    源:
      - file: ./path/to/locales/<tag>.en.yml
        参数:
          locale_id: "abcd1234cdef1234abcd1234cdef1234"
  拉取:
    目标:
      # 账户
      - 文件:./path/to/locales/accounts.<locale_name>.yml
        参数:
          标签:账户
      # 电子邮件
      - 文件: ./path/to/locales/emails.<locale_name>.yml
        参数:
          标签: 电子邮件

重要

虽然支持,但出于安全原因,不建议在文件中存储访问令牌。

设置一个短语_访问令牌环境变量更安全。

参数标签也可以在推送部分使用,而不是使用<tag>占位符。

配置在运行推送或从存储库触发同步时,根据文件来源创建带标签的密钥。在运行拉取或触发导出到存储库时,根据标签将密钥分组到文件中。

为不同地区、客户或受众本地化项目

一个产品、网站或应用被翻译成多种不同语言,但在某些情况下,本地化不仅仅是选择的语言,而是在一种语言内的不同版本。

如果需要进一步区分:

  • 在同一种语言被使用的地区,产品有不同的品牌。

  • 产品被不同的客户使用,他们希望使用白标解决方案。

  • 需要简单、正式或非正式等语言变体。

本地化静态产品

如果产品已完全开发且很少更新,项目中可以存在该产品的单独版本。

  • 如果是单一输出或短期项目:

    创建一个分支,在项目期间专门在该分支上工作,并在完成时删除该分支。

  • 如果是长期项目:

    维护现有项目的副本。这允许在同一组织中邀请和与客户合作,仅提供对他们项目的访问,其他项目对他们隐藏。

本地化一个持续更新的项目

如果一个产品不断更新新的内容(键),将这些更新应用于多个项目并保持它们同步是困难的。在项目中使用专用语言以维护它们。

遵循ISO标准的语言代码(例如en-US)不必是唯一的,因此同一种语言的多个版本可以在项目中创建。通过使用独特的语言名称来区分地区、客户或受众。

在设置时,默认区域中引入的任何新键将在其他语言中显示为未翻译,并相应地进行本地化。如果与客户及其翻译人员合作,特别分配他们只能通过更新其用户资料中的语言访问权限来编辑他们的语言版本。

在同一项目中设置并行本地化流程,包括任务审查工作流程。这种灵活性还扩展到通过API上传和下载语言文件或自动化流程。

这篇文章有帮助吗?

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.