介绍 TranslationTester 和针对开放式 Web 应用的本地化支持

在构建 开放式 Web 应用 时,一个重要的因素是让你的内容尽可能多地被访问,而实现这一目标的一种方式是提供多种语言版本。因此,我们希望尽可能简化你的工作,提供完整的代码库以供入门,以及更新的文档和功能,帮助你获取应用的翻译。

我们现在还提供 一种方法来设置你的应用并直接连接到本地化人员!

介绍 TranslationTester

基于 Jason 在 本地化 Firefox OS 应用 和 Christie 在 本地化 Firefox OS Boilerplate 应用 中的出色工作和内容,我一直致力于简化本地化的设置流程。

上面的文章描述了许多可用的方面和可能性,为了补充这些内容,我想能够为大多数用例提供最基本的代码和结构:基本上,只需添加翻译,你就可以开始使用!

这导致了 TranslationTester 代码库 的创建,该代码库可在 GitHub 上获取。

从无翻译到本地化应用,不到 4 分钟!

基于 TranslationTester,Will Bamberg 制作了一个简短的屏幕录制,展示了从无翻译到拥有支持仅需几分钟的精确流程!

app-l10n-example 代码库中,你拥有该屏幕录制中前后阶段的版本,以及 MDN 上描述的全部本地化过程

如何本地化应用

这些是本地化应用所需的步骤。所有步骤都包含在 TranslationTester 代码库中,但这里也列出,以便展示入门是多么容易,或者如何继续在 TranslationTester 平台上为你的应用构建。

标记 HTML

对于你希望将其文本本地化的任何元素,请向目标元素添加 data-l10n-id 属性。例如

Winter for real

创建翻译

locales 目录中,你拥有每个语言的目录,并且可以为新语言添加新目录。在每个语言目录中,你创建一个 app.properties 文件,该文件将包含该语言的所有翻译(可选地,你也可以为应用的名称和描述创建一个 manifest.properties 文件,除非你在应用的主 manifest.webapp 中编辑它)。

包含 l10n.js

通过包含 l10n.js 文件,相应语言的 app.properties 文件中的翻译将应用于具有对应 data-l10n-id 属性的元素。

添加“名称”和“描述”翻译

你应用的 namedescription 的翻译可以添加到主 manifest.webapp 文件中,或者添加到每个语言目录下的可选 manifest.properties 中。

如何查看不同的语言

要查看使用不同语言版本的应用,请在 Firefox/应用管理器中更改语言。

所有平台
在 JavaScript 中设置要测试的语言,例如

document.webL10n.setLanguage("es");
应用管理器/Firefox OS
设置应用中的语言设置
Firefox
Preferences > Content > Languages 下选择语言。更多信息请参阅 在 Firefox 中设置内容语言

获取翻译帮助

我们通过 Transifex 服务提供 Mozilla 本地化应用试点。作为试点的一部分,我们提供让你将你的应用添加为试点的一部分,以便连接到本地化人员,并快速为更多人提供你的应用的多种语言版本。

请在 本地化我的 Firefox 应用 表单中申请,以开始使用!

关于 Robert Nyman [资深编辑]

Mozilla 技术布道师和 Mozilla Hacks 编辑。发表关于 HTML5、JavaScript 和开放式 Web 的演讲和博客。Robert 坚定地相信 HTML5 和开放式 Web,自 1999 年起一直从事 Web 前端开发工作 - 在瑞典和纽约市。他还经常在 http://robertnyman.com 上发表博客,热爱旅行和结识新朋友。

更多 Robert Nyman [资深编辑] 的文章……


7 条评论

  1. Junior

    一个 [稍微] 偏离主题的问题:是否可以(或将来会)从开放式 Web 应用(在桌面端)中删除文件和编辑菜单?

    谢谢

    2014 年 5 月 14 日 06:19

    1. Robert Nyman [编辑]

      目前还不确定,但我认为这是为了与运行它的操作系统保持一致。不过,值得考虑。

      2014 年 5 月 14 日 10:12

  2. Biraj

    相同的规则可以应用于网站翻译

    2014 年 5 月 15 日 12:25

  3. Axel Hecht

    Robert,你能解释一下应用名称中的“Tester”吗?

    我原本以为是测试本地化内容的工具,但我看到的是“具有本地化的最小可行应用模板”,对吧?

    另外,你选择 Kaze 的 webL10n 而不是 Gaia 中的内置代码,是出于特定原因吗?如果是这样,最好将 bug 文件化,在 FirefoxOS、Gaia::L10n 中。gandalf 和 stas 现在维护着实现。

    2014 年 5 月 19 日 04:46

    1. Robert Nyman [编辑]

      命名事物总是很困难。 :-)
      我的想法是,就像你说的,它只是一个简单的模板,用于开始在你的应用中测试翻译。

      我选择它的原因是 Gaia 中的那个还在开发中,可能会随着时间的推移发生变化,并可能导致问题,因此我决定避免这种依赖关系。

      我很乐意讨论随着时间的推移哪一个最有效,以及我们如何最好地合作完成这项工作。

      2014 年 5 月 26 日 06:34

  4. Maureen Hanratty

    哇,这太棒了!开发人员可以使用它来让他们的应用描述在市场中翻译吗?

    2014 年 5 月 19 日 10:49

    1. Will Bamberg

      我不是这方面的专家(我只是制作了视频),但据我所知:应用在市场中的描述取自清单中的“description”字段,并且尊重本地化。

      因此,如果你使用“locales”字段在清单中提供了描述的翻译,正如本教程所述,那么正确的翻译应该会出现在市场中。

      2014 年 5 月 20 日 09:45

本文的评论已关闭。