在将文件上传到项目时,所有新资源将从该文件中提取并存储在项目中。上传文件的格式不必是为项目设置的初始格式。如果提供了标签用于分组资源,则新键将应用这些标签。
某些格式,例如Gettext,提供额外的有价值的元信息,例如注释、描述或有关复数形式的信息。这些信息在可能的情况下提取,并与分配的资源一起存储,从而允许在本地化文件中提供的所有有价值的信息得以保存以供进一步使用。
有几种方法可以上传文件:
-
默认情况下,仅提取新内容,任何现有的本地化项目中的键不会被删除或更新;上传文件不会丢失数据。如果需要覆盖现有数据,请通过选择
选项,用本地化文件中的内容替换项目资源。现有翻译将被上传的本地化文件的内容覆盖。此选项在API中也可用。
注释
为防止数据丢失,请确保在更改本地化文件并使用
选项再次上传之前,从Phrase下载最新更改。 -
输入一个唯一标识符(例如文件路径),以便在上传的翻译键名称前添加。使用与项目或文件相关的有意义的前缀,以保持键名称的组织。
例如,导入的键
hello_world
与前缀project_
将导致键project_hello_world
。翻译键前缀确保键与现有键匹配,以避免不同项目或文件之间的冲突。
此选项在API和CLI接口中也可用。
-
添加新键并用上传文件中的内容覆盖现有键。
-
仅在现有源文本与上传的多语言文件中的源文本匹配时,更新目标翻译。
-
如果需要更新上传文件中所有键的描述,请选择此选项。空描述将覆盖现有描述。描述可以包含任何额外信息,以帮助翻译者识别编辑器中的单个键。
-
为了保持翻译的组织性,给具有有意义标签的键添加多个标签。选择此选项以防止新键自动标记为上传标签。
-
选择此选项以在上传时自动标记新键和具有更新翻译的键。这将有助于区分新翻译、更新翻译和旧翻译字符串,确保只有相关键被进一步处理。
此选项在API中也可用。
-
指定文件的编码(例如 UTF-8)或让其自动选择(自动选择的编码可能导致编码不正确,可以通过撤销上传来回滚)。
-
-
在更新翻译时,防止再次验证非主要语言翻译的需要。
-
高级审校工作流已激活时,此选项可用。这表示这些键已准备好发送到生产环境。
将所有上传的翻译视为已审校。当 -
将所有上传的翻译视为已验证。
-
要在字符串中上传文件,请按照以下步骤操作:
-
在上传之前,请确保文件根据类型格式正确。
-
从项目中,从上传文件菜单中选择。
页面打开。
-
点击选择文件,从目录中选择一个文件。
所选文件已添加到
字段。 -
为文件选择一个
。建议的格式首先根据文件类型呈现。
-
从下拉列表中为文件内容选择一种语言。
如果此信息不在文件本身中,请为内容创建一种新语言或使用现有语言。
-
可选地提供要分配给新键的标签和其他选项。
-
点击保存。
内容被导入并转换为键。
-
上传失败
如果文件无法正确处理,将提供错误详细信息以帮助减轻错误。
-
上传成功
在成功处理翻译文件后,呈现一个摘要页面,提供上传的概述,并有链接到下一步的按钮。点击上传标签以在编辑器中打开文件。
-
正在移除键
为了防止在从本地化文件中移除键并再次上传时意外删除键,这些键不会被自动删除。
要移除这些键,请按照以下步骤操作:
未提及的键是指当前上传中未包含但仍存在于项目中的键。通过删除它们,所有未包含在上传文件中的键及其相关翻译将从项目中移除。
-
撤销上传
每次上传都会触发多个操作,并可能修改项目中的大量数据,无法撤回上传。
要移除由上传文件(错误地)引入的键,请按照以下步骤操作:
该上传创建的所有键及其相关翻译将被移除。在上传之前存在的键的翻译将不会被移除。要移除单个翻译,请使用每个翻译的版本历史。
语言文件可以在任何时候从项目中下载,并支持任何 文件格式。
可以通过选择文件并单击下载(多个文件)或语言的更多选项/下载按钮,从任何项目的 选项卡下载文件。
在
窗口下载文件时,会显示下载选项,选项卡包括 、 和 。选择不同的特定文件格式的相关文章。
会提供不同的选项。有关更多详细信息,请参阅关于默认情况下,可翻译资源以键值对的形式存储,而不是保持原始文件结构。这允许在不被锁定为一种格式的情况下,使用可互换的文件格式以及使用标签的灵活分组。
某些框架或设置需要多个源文件,并且需要额外的配置。
保持单独的文件
一般来说,将每种语言的所有翻译保存在一个文件中。这使得资源下载更快且更稳健。翻译在项目中保持有序,因此不需要单独的小文件。
如果需要将本地化文件保存在单独的文件中,可以通过在上传时标记键并在将翻译的键下载回原始文件时使用这些标签作为参考来使用基于文件的工作流。键可以携带多个标签,并可以包含在多个文件中,以确保重用和一致性。基于标签的工作流灵活,允许在不必上传到项目的情况下重新组织翻译资源。
在所有文件中为键赋予唯一名称,以确保顺利的工作流。在基于键值的方法中,键必须在每个上下文中分配相同的值。一些框架允许在多个文件中使用非唯一键。一些格式,例如Symfony,支持消息域。这些域通过文件名检测。键不会自动按基于文件名的域进行作用域划分,但可以通过在文件内为键使用唯一的域前缀来解决。
示例CLI配置
如果使用CLI或将项目与存储库(例如GitHub、GitLab或Bitbucket)连接,请设置配置文件以管理上传和下载。
例如,一个项目有几个语义命名的翻译文件用于源区域。例如:accounts.en.yml
、emails.en.yml
等。这些语义名称通过标签进行管理。
配置.phrase.yml
以反映本地化项目中文件的组织,并通过在文件路径中包含标签占位符将其链接到Strings项目中的标签:
phrase: access_token:"3d7e6598d955bfcab104c45c40af1b9459df5692ac4c28a17793" project_id:"23485c9c5dfb15d85b32d9c5f3d2hl54" file_format: yml push: sources: - 文件:./path/to/locales/<tag>.en.yml params: locale_id: "abcd1234cdef1234abcd1234cdef1234" pull: targets: # 账户 - 文件:./path/to/locales/accounts.<locale_name>.yml params: 标签:账户 # 邮件 - 文件: ./path/to/locales/emails.<locale_name>.yml params: 标签: emails
参数标签也可以在推送部分中使用,而不是使用 <tag>
占位符。
配置在运行推送或从存储库触发同步时,根据文件创建带标签的密钥。在运行拉取或触发导出到存储库时,它根据标签将密钥分组到文件中。
一个产品、网站或应用被翻译成多种不同语言,但在某些情况下,本地化不仅仅是选择的语言,而是在一种语言内的不同版本。
如果需要进一步区分:
-
在同一种语言被使用的地区,产品有不同的品牌。
-
产品被不同的客户使用,他们希望使用白标解决方案。
-
需要简单、正式或非正式等语言变体。
本地化静态产品
如果产品已完全开发且很少更新,则可以在项目中存在产品的单独版本。
本地化一个持续更新的项目
如果一个产品不断更新新的内容(键),将这些更新应用于多个项目并保持它们同步是困难的。在项目中使用专用语言来维护它们。
语言代码遵循ISO标准(例如en-US)不必是唯一的,因此可以在一个项目中创建多个相同语言的版本。通过使用唯一的语言名称来区分地区、客户或受众。
在设置时,默认区域中任何新引入的键将在其他语言中显示为未翻译,并相应地进行本地化。如果与客户及其自己的译员合作,特别分配他们只能通过更新其用户资料中的语言访问权限或项目用户管理来编辑他们的语言版本。