语言支持

点击下载教程相关资源

Video.js 包含本地化支持,可在适当情况下以默认英语以外的语言显示文本。

有关 Video.js 支持的最新语言列表,请参见语言文件夹 (lang)。某些翻译可能不够完整,请参阅所需翻译文档,查看可用翻译中缺失的字符串表。欢迎大家对不完整的翻译进行更新。

使用 Video.js 语言

Video.js 的 JavaScript 文件中包含多个翻译(在 dist/lang/ 中)。为需要支持的每种语言添加 lang 脚本。每个文件都可以包含在网页中,以便在所有 Video.js 播放器中提供对该语言的支持:

<script src="//example.com/path/to/video.min.js"></script>
<script src="//example.com/path/to/lang/es.js"></script>

为 Video.js 翻译做出贡献

我们欢迎新的翻译和对现有翻译的改进!请参阅贡献文档,开始为 Video.js 做出贡献,并继续阅读,了解如何为 Video.js 的翻译做出贡献。

JSON 格式

Video.js 使用 JSON 对象来描述语言,其中键是英语,值是目标语言。例如,西班牙语翻译可能如下所示:

{
  "Play": "Reproducción",
  "Pause": "Pausa",
  "Current Time": "Tiempo reproducido",
  "Duration": "Duración total",
  "Remaining Time": "Tiempo restante",
}

文件命名

翻译可在 lang/ 目录中找到。

每个文件的名称应为最合适的标准语言代码,扩展名为 .json。例如,"es.json" 表示西班牙语,"zh-CN.json" 表示简体中文。

更新现有翻译

如果现有翻译中有遗漏、错误或需要改进的地方,请立即提交拉取请求!

  1. 编辑相关 JSON 文件并进行必要的更改。

  2. 运行特定语言编译程序 npm run build:lang 或完整编译程序 npm run build,验证语言的编译情况。

  3. 验证翻译在播放器用户界面中是否正确显示。

  4. 运行 npm run docs:lang 更新缺失的翻译文档。

  5. 提交并在 GitHub 上开启拉取请求。

撰写新翻译

除了需要创建新的翻译 JSON 文件外,编写全新翻译的过程与更新现有翻译的过程几乎完全相同。

新语言文件的模板是英文文件 (lang/en.json)。该文件始终包含需要翻译的最新字符串。

编写新翻译的第一步是复制英文文件:

cp lang/en.json lang/${NEW_LANG_CODE}.json

否则,该过程与更新现有翻译相同。

通过应用程序接口添加语言

除了 Video.js 提供的独立脚本外,API 还支持通过 addLanguage 方法手动定义新语言。该方法需要两个参数:标准语言代码和语言定义对象。

videojs.addLanguage('es', {
  Play: 'Reproducción',
  Pause: 'Pausa',
  'Current Time': 'Tiempo reproducido',
  'Duration': 'Duración total',
  'Remaining Time': 'Tiempo restante',
  ...
});

addLanguage() 会覆盖已有的翻译,如果对象包含以前翻译过的字符串。不过,已经本地化的文本在生成后将不会更新。

按播放器翻译

除了为 Video.js 本身提供语言外,还可以通过语言选项为单个播放器实例提供自定义语言支持:

// Provide a custom definition of Spanish to this player.
videojs('my-player', {
  languages: {
    es: {
      Play: 'Reproducir'
    }
  }
});

设置播放器语言

播放器实例使用的语言可通过语言选项进行设置:

// Set the language to Spanish for this player.
videojs('my-player', {
  language: 'es'
});

播放器的语言方法可以在实例化后使用 language('es') 设置语言。不过,这通常没有什么用处,因为它不会更新已经存在的文本。

确定播放器语言

播放器语言按优先级从高到低设置为以下语言之一:

  • 选项中指定的语言

  • 播放器元素上的 lang 属性指定的语言。

  • 由带有 lang 属性的最接近的父元素(包括 <html> 元素)指定的语言。

  • 浏览器语言首选项;如果配置了多种语言,则首选第一种语言

  • 英语

内部语言选择
  • 语言代码不区分大小写(例如 en-US == en-us)。

  • 如果没有匹配的语言代码子代码(如 en-us),则使用主代码,如:en(如果有)。

参考资料

有关插件翻译/本地化的信息,请参阅插件指南

标准语言代码由 IANA 定义。

有关所有现有/支持的语言,请查看位于项目根目录下的语言文件夹 (lang/) 文件夹。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号