Skip to content

Commit 74cd472

Browse files
authored
update init i18n params (#154)
1 parent 7588fc5 commit 74cd472

File tree

6 files changed

+295
-278
lines changed

6 files changed

+295
-278
lines changed

examples/standalone/main.ts

Lines changed: 271 additions & 262 deletions
Large diffs are not rendered by default.

examples/standalone/package-lock.json

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/core/src/i18n/index.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import type { Lang } from '../types'
22
import { mergeDeep } from '../utils'
33
import CN from './zh-CN.json'
4-
import FA from "./fa.json"
5-
import PA from "./pa.json"
4+
import FA from './fa.json'
5+
import PA from './pa.json'
66
export default class I18n {
77
public lang: Lang
88

@@ -14,11 +14,16 @@ export default class I18n {
1414
en: Object.keys(CN).reduce<Record<string, string>>(
1515
(previous, current) => ((previous[current] = current), previous),
1616
{}
17-
),
17+
)
1818
}
1919

20-
constructor(defaultLang: Lang) {
20+
constructor(defaultLang: Lang, userLanguages?: Partial<Record<Lang, any>>) {
2121
this.lang = defaultLang === 'auto' ? (navigator.language as Lang) : defaultLang
22+
23+
if (userLanguages) {
24+
mergeDeep(this.languages, userLanguages)
25+
}
26+
2227
if (!this.languages[this.lang]) {
2328
navigator.languages.some((lang) => {
2429
if (this.languages[lang as Lang]) {
@@ -37,6 +42,7 @@ export default class I18n {
3742
return false
3843
})
3944
}
45+
4046
if (!this.languages[this.lang]) this.lang = 'en'
4147
}
4248

packages/core/src/player.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import type {
1111
PlayerListener,
1212
PlayerOptions,
1313
PlayerPlugin,
14+
RequiredPartial,
1415
Source
1516
} from './types'
1617

@@ -28,13 +29,13 @@ const defaultOptions = {
2829
isLive: false,
2930
autopause: true,
3031
isNativeUI: () => isQQBrowser
31-
}
32+
} as const
3233

3334
export class Player<Context extends Record<string, any> = Record<string, any>> {
3435
static players: Player[] = []
3536

3637
container: HTMLElement
37-
options: Required<PlayerOptions>
38+
options: RequiredPartial<PlayerOptions, 'languages'>
3839

3940
locales: I18n
4041
eventEmitter: EventEmitter
@@ -62,7 +63,7 @@ export class Player<Context extends Record<string, any> = Record<string, any>> {
6263
typeof options === 'string' ? { source: { src: options } } : options
6364
)
6465

65-
this.locales = new I18n(this.options.lang)
66+
this.locales = new I18n(this.options.lang, this.options.languages)
6667
this.eventEmitter = new EventEmitter()
6768
}
6869

packages/core/src/types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export interface PlayerOptions {
5757
playsinline?: boolean
5858
preload?: 'auto' | 'metadata' | 'none'
5959
lang?: Lang
60+
languages?: Partial<Record<Lang, any>>
6061
isLive?: boolean
6162
videoAttr?: Record<string, boolean | string>
6263
isNativeUI?: () => boolean

packages/danmaku/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@oplayer/danmaku",
3-
"version": "1.2.25",
3+
"version": "1.2.26-beta.0",
44
"description": "Danmaku plugin for oplayer",
55
"type": "module",
66
"main": "./dist/index.es.js",

0 commit comments

Comments
 (0)