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”。
更新现有翻译
如果现有翻译中存在缺失的翻译、错误或有改进空间,请随时提交拉取请求!
- 编辑相关的 JSON 文件并进行必要的更改。
- 通过运行特定语言的构建命令
npm run build:lang
或完整构建命令npm run build
来验证语言是否编译成功。 - 验证翻译是否在播放器 UI 中正确显示。
- 运行
npm run docs:lang
以更新缺失翻译文档。 - 提交并向 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/
)。