Skip to content

Commit

Permalink
No commit message
Browse files Browse the repository at this point in the history
  • Loading branch information
shiyiya committed Feb 24, 2025
1 parent 7588fc5 commit 386d2db
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 9 deletions.
10 changes: 8 additions & 2 deletions examples/standalone/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,12 @@ const player = Player.make<Ctx>('#player', {
title: '君の名は'
},
// videoAttr: { crossorigin: 'anonymous' }, // screenshot
lang: 'en'
lang: 'en',
languages: {
en: {
Play: '👏'
}
}
// isNativeUI: () => true
})
.use([
Expand Down Expand Up @@ -128,7 +133,8 @@ const player = Player.make<Ctx>('#player', {
<path d="M16.118 3.667h.382a3.667 3.667 0 013.667 3.667v7.333a3.667 3.667 0 01-3.667 3.667h-11a3.667 3.667 0 01-3.667-3.667V7.333A3.667 3.667 0 015.5 3.666h.382L4.95 2.053a1.1 1.1 0 011.906-1.1l1.567 2.714h5.156L15.146.953a1.101 1.101 0 011.906 1.1l-.934 1.614z"/>
<path d="M5.561 5.194h10.878a2.2 2.2 0 012.2 2.2v7.211a2.2 2.2 0 01-2.2 2.2H5.561a2.2 2.2 0 01-2.2-2.2V7.394a2.2 2.2 0 012.2-2.2z" fill="#fff"/>
<path d="M6.967 8.556a1.1 1.1 0 011.1 1.1v2.689a1.1 1.1 0 11-2.2 0V9.656a1.1 1.1 0 011.1-1.1zM15.033 8.556a1.1 1.1 0 011.1 1.1v2.689a1.1 1.1 0 11-2.2 0V9.656a1.1 1.1 0 011.1-1.1z"/>
</svg>`
</svg>`,
next: '👉'
}
}),
torrent({
Expand Down
14 changes: 10 additions & 4 deletions packages/core/src/i18n/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { Lang } from '../types'
import { mergeDeep } from '../utils'
import CN from './zh-CN.json'
import FA from "./fa.json"
import PA from "./pa.json"
import FA from './fa.json'
import PA from './pa.json'
export default class I18n {
public lang: Lang

Expand All @@ -14,11 +14,16 @@ export default class I18n {
en: Object.keys(CN).reduce<Record<string, string>>(
(previous, current) => ((previous[current] = current), previous),
{}
),
)
}

constructor(defaultLang: Lang) {
constructor(defaultLang: Lang, userLanguages?: Partial<Record<Lang, any>>) {
this.lang = defaultLang === 'auto' ? (navigator.language as Lang) : defaultLang

if (userLanguages) {
mergeDeep(this.languages, userLanguages)
}

if (!this.languages[this.lang]) {
navigator.languages.some((lang) => {
if (this.languages[lang as Lang]) {
Expand All @@ -37,6 +42,7 @@ export default class I18n {
return false
})
}

if (!this.languages[this.lang]) this.lang = 'en'
}

Expand Down
7 changes: 4 additions & 3 deletions packages/core/src/player.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import type {
PlayerListener,
PlayerOptions,
PlayerPlugin,
RequiredPartial,
Source
} from './types'

Expand All @@ -28,13 +29,13 @@ const defaultOptions = {
isLive: false,
autopause: true,
isNativeUI: () => isQQBrowser
}
} as const

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

container: HTMLElement
options: Required<PlayerOptions>
options: RequiredPartial<PlayerOptions, 'languages'>

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

this.locales = new I18n(this.options.lang)
this.locales = new I18n(this.options.lang, this.options.languages)
this.eventEmitter = new EventEmitter()
}

Expand Down
1 change: 1 addition & 0 deletions packages/core/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ export interface PlayerOptions {
playsinline?: boolean
preload?: 'auto' | 'metadata' | 'none'
lang?: Lang
languages?: Partial<Record<Lang, any>>
isLive?: boolean
videoAttr?: Record<string, boolean | string>
isNativeUI?: () => boolean
Expand Down

0 comments on commit 386d2db

Please sign in to comment.