Video.js 指南

这些指南涵盖了 Video.js 用户的各种主题

语言

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

要获取 Video.js 支持的最新语言列表,请参阅语言文件夹(lang。有些翻译可能不如其他翻译完整——请参阅所需翻译文档以获取现有翻译中缺失字符串的表格。欢迎贡献以更新不完整的翻译。

使用 Video.js 语言

Video.js 附带多个 JavaScript 翻译文件(位于 dist/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. 验证翻译是否在播放器 UI 中正确显示。
  4. 运行 npm run docs:lang 以更新缺失翻译文档
  5. 提交并向 GitHub 发送拉取请求。

编写新翻译

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

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

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

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

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

通过 API 添加语言

除了 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 本身提供语言支持外,还可以通过 languages 选项为单个 Player 实例提供自定义语言支持。

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

设置播放器语言

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

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

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

确定播放器语言

播放器语言按以下降序优先级设置

  • 选项中指定的语言
  • 播放器元素上 lang 属性指定的语言。
  • 由最近的父元素(包括 <html> 元素)上的 lang 属性指定的语言。
  • 浏览器语言偏好设置;如果配置了多种语言,则为第一种语言
  • 英语

内部语言选择

  • 语言代码不区分大小写(例如 en-US 等于 en-us)。
  • 如果没有带有子代码(例如 en-us)的语言代码匹配项,则使用主要代码(例如 en)的匹配项(如果可用)。

参考资料

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

标准语言代码由 IANA 定义

有关所有现有/支持的语言,请参阅项目根目录中的语言文件夹(lang/