贡献翻译

Home Assistant 的翻译通过 Lokalise 这一在线翻译管理工具进行管理。我们的翻译分为四个项目:一个用于平台相关翻译的后端项目,一个用于 UI 翻译的前端项目,以及两个用于官方配套应用的项目。点击下方链接即可加入!即使您的语言已经翻译完成,额外的校对仍然很有帮助。欢迎随时查看现有翻译,并为更合适的替代方案投票。

有关翻译编辑器和工具的更多信息,请参阅 Lokalise 翻译与协作文档

每次构建都会从 Lokalise 下载翻译,因此所有主要版本、次要版本、测试版本和夜间构建都会包含最新翻译。

翻译占位符

某些翻译字符串将包含特殊占位符,这些占位符将在运行时被替换。

方括号 [] 中定义的占位符(在 Lokalise 中显示为绿色)是键引用。它们主要用于引用重复出现的翻译字符串,而不是反复定义相同内容。在适合的情况下,翻译应优先使用这些引用(在 Lokalise 编辑模式中,点击“Source Alt+0”即可轻松查看方括号占位符的值)。不同语言中的重复情况可能与英语不同,因此也欢迎为英语中尚未引用的重复翻译建立链接。

大括号 {} 中显示的占位符是 ICU 语法参数,Home Assistant 运行时会将其替换为实际值。原始字符串中出现的所有参数占位符都必须保留在译文中,且不得翻译。这些占位符还可能包含用于定义复数或其他替换规则的特殊语法。上方链接的 FormatJS 指南解释了添加复数定义及其他规则的写法。

规则

  1. 只有母语人士才应提交翻译。
  2. 遵循 Material Design 写作指南
  3. 请勿翻译或更改 Home AssistantSupervisorHue 等专有名词。
  4. 对于特定于区域的翻译,与基本翻译相同的键应克隆源字符串。您可以使用 Ctrl+Insert 或在界面中选择 Insert Source 来执行此操作。这有助于跟踪已审核或未审核的内容,同时还简化了工作流程。
  5. state_badge 键下的翻译会用于通知徽章显示。这些翻译应尽量简短,以便放入徽章标签而不溢出。您可以在 Home Assistant UI 中进行测试:使用浏览器开发者工具编辑标签文本,或使用 Home Assistant UI 的开发者工具中的“状态”选项卡。在 UI 中输入新的实体 ID(device_tracker.test),再在状态字段中输入要测试的文本。
  6. 如果文本会在多个翻译键中重复出现,请尽可能使用 Lokalise 的键引用功能。基础翻译中 states 相关内容提供了这方面的示例。更多信息请参阅键引用文档

添加新语言

如果您的语言未列出,您可以在以下地址请求:GitHub。请提供您所用语言的英文名称和母语名称。例如:

English Name: German
Native Name: Deutsch
Info

仅当某个地区的翻译确实需要与基础语言版本不同时,才会包含地区特定翻译(en-USfr-CA)。

维护者添加新语言的步骤

  1. 语言标签必须遵循 BCP 47。大多数语言标签可在 IANA 语言子标签注册表 中找到。示例:frfr-CAzh-Hans。只有在存在国家/地区特定覆盖,且基础语言已翻译完成时,才应包含国家/地区代码。
  2. src/translations/translationMetadata.json 中添加语言标签和本地名称,例如:FrançaisFrançais (CA)
  3. 在 Lokalise 中添加新语言。 注意:有时您需要在 Lokalise 中修改标签(语言 -> 语言设置 -> 自定义 ISO 代码)。

特定语言指南

大多数语言对同一句话都可能有多种译法。请查看适用于您语言的指南,其中也列出了一些常见错误,帮助您避免踩坑。 这些部分使用对应语言编写,因为这样更便于解释语法细节,而且只有母语人士才应提交翻译(请参阅规则)。

德语

  • Du/Sie:Duze in den Übersetzungen,und verwende nicht das 正式的“Sie”。

典型费勒

  • Achte auf den richtigen 命令。 Der Imperativ ist die Befehlsform,z。 B.“Gib mir das Wasser”。 Falsch wäre hier:“Gebe mir das Wasser”(siehe命令式教育).

法语

  • Blueprint:il a été décidé de ne pas traduire ce mot et de le considérer comme un nom propre. Cela évite la confusion avec les traductions de plan ou de modèle et facilite aussi l'importation de blueprints depuis Internet. Si vous utilisez Blueprint, cela ne fonctionnera pas correctement.