国际化
TIP
3.0.0-alpha.41以后版本支持
xgplayer所有内置插件均提供简体中文、繁体中文、英文、日文四种语言,并为使用者提供添加新语言包和默认语言的扩展能力,其中中文和英文默认打包,日文、中文繁体需要从es目录下自行导入添加
语言包支持能力如下:
- 新增自定义语言包
- 扩展/修改现有语言包
- 播放器语言一键动态切换,通过设置播放器语言,可以一键切换已经初始化的实例的所有内置插件语言
- 多实例语言一键切换,提供静态接口,支持当前页面内初始化的所有播放器实例一键切换语言
I18N.use(Object)
新增语言包
语言包数据结构如下,详细定义参考预置语言列表
{
LANG: 'custom', // 要定义的语言
TEXT: {...} // 语言列表
}
demo
/**
* 如果使用umd方式引用播放器则调用方式为
* const I18N = window.Player.I18N
*/
import Player, { I18N } from 'xgplayer'
const CUSTOM_LANG = {
LANG: 'custom', // 要定义的语言
// 语言列表
TEXT: {
HAVE_NOTHING:'没有关于音频/视频是否就绪的信息',
...
}
}
// 使用自定义语言包
I18N.use(CUSTOM_LANG)
// 初始化默认使用自定义语言
player = new Player({
lang: 'custom'
...
})
// 实例化之后动态切换语言
player.lang = 'custom'
/**
* 获取现在集成的语言包列表
* {
* en: {...},
* zh: {...}
* }
*/
I18N.lang
/**
* 获取现在集成的语言列表
* ["en", "zh-cn"]
*/
I18N.langKeys
I18N.extend(Object)
扩展语言包配置项
import Player, {I18N} from 'xgplayer'
const CUSTOM_LANG = [{
LANG: 'zh',
TEXT: '这是扩展语言项目'
}, {
LANG: 'en',
TEXT: 'this is an language item'
}]
// 扩展语言包
I18N.extend(CUSTOM_LANG)
player.lang
import Player from 'xgplayer'
const player1 = new Player({
lang: 'zh',
...
})
// 实例化之后修改语言,修改之后内置插件的提示语言也会随之更新
player1.lang = 'en'
启用预定义语言包
目前预定义的语言包,只有中文简体和英文是默认打包并使用的,想要使用预定义的语言包日文和繁体中文可以从es/lang目录下引用,使用如下
import Player, {I18N} from 'xgplayer'
// 日文语言包 jp
import JP from 'xgplayer/es/lang/jp'
// 中文繁体语言包 zh-hk
import ZH_HK from 'xgplayer/es/lang/zh-hk'
// 使用自定义语言包
I18N.use(JP)
I18N.use(ZH_HK)
语言对照[中文/English]
key | zh | en |
---|---|---|
HAVE_NOTHING | 没有关于音频/视频是否就绪的信息 | There is no information on whether audio/video is ready |
HAVE_METADATA | 音频/视频的元数据已就绪 | Audio/video metadata is ready |
HAVE_CURRENT_DATA | 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒 | Data about the current play location is available, but there is not enough data to play the next frame/millisecond |
HAVE_FUTURE_DATA | 当前及至少下一帧的数据是可用的 | Current and at least one frame of data is available |
HAVE_ENOUGH_DATA | 可用数据足以开始播放 | The available data is sufficient to start playing |
NETWORK_EMPTY | 音频/视频尚未初始化 | Audio/video has not been initialized |
NETWORK_IDLE | 音频/视频是活动的且已选取资源,但并未使用网络 | Audio/video is active and has been selected for resources, but no network is used |
NETWORK_LOADING | 浏览器正在下载数据 | The browser is downloading the data |
NETWORK_NO_SOURCE | 未找到音频/视频来源 | No audio/video source was found |
MEDIA_ERR_ABORTED | 取回过程被用户中止 | The fetch process is aborted by the user |
MEDIA_ERR_NETWORK | 当下载时发生错误 | An error occurred while downloading |
MEDIA_ERR_DECODE | 当解码时发生错误 | An error occurred while decoding |
MEDIA_ERR_SRC_NOT_SUPPORTED | 不支持的音频/视频格式 | Audio/video is not supported |
REPLAY | 重播 | Replay |
ERROR | 网络连接似乎出现了问题 | Network is offline |
PLAY_TIPS | 播放 | Play |
PAUSE_TIPS | 暂停 | Pause |
PLAYNEXT_TIPS | 下一集 | Play next |
DOWNLOAD_TIPS | 下载 | Download |
ROTATE_TIPS | 旋转 | Rotate |
RELOAD_TIPS | 重新载入 | Reload |
FULLSCREEN_TIPS | 进入全屏 | Fullscreen |
EXITFULLSCREEN_TIPS | 退出全屏 | Exit fullscreen |
CSSFULLSCREEN_TIPS | 进入样式全屏 | Cssfullscreen |
EXITCSSFULLSCREEN_TIPS | 退出样式全屏 | Exit cssfullscreen |
TEXTTRACK | 字幕 | Caption |
PIP | 画中画 | PIP |
SCREENSHOT | 截图 | Screenshot |
LIVE | 正在直播 | LIVE |
OFF | 关闭 | Off |
OPEN | 开启 | Open |
MINI_DRAG | 点击按住可拖动视频 | Click and hold to drag |
MINISCREEN | 小屏幕 | Miniscreen |
REFRESH_TIPS | 请试试 | Please Try |
REFRESH | 刷新 | Refresh |