From: Chocobozzz Date: Thu, 16 Aug 2018 09:39:58 +0000 (+0200) Subject: Cache player translations X-Git-Tag: v1.0.0-beta.12~119 X-Git-Url: https://git.immae.eu/?a=commitdiff_plain;h=5d128505dca854cb7225624936d1053f06473260;p=github%2FChocobozzz%2FPeerTube.git Cache player translations --- diff --git a/client/src/assets/player/peertube-player.ts b/client/src/assets/player/peertube-player.ts index 0b9303a73..7e53d2142 100644 --- a/client/src/assets/player/peertube-player.ts +++ b/client/src/assets/player/peertube-player.ts @@ -184,11 +184,24 @@ function loadLocaleInVideoJS (serverUrl: string, videojs: any, locale: string) { // It is the default locale, nothing to translate if (!path) return Promise.resolve(undefined) - const completeLocale = getCompleteLocale(locale) + let p: Promise + + if (loadLocaleInVideoJS.cache[path]) { + p = Promise.resolve(loadLocaleInVideoJS.cache[path]) + } else { + p = fetch(path + '/player.json') + .then(res => res.json()) + .then(json => { + loadLocaleInVideoJS.cache[path] = json + return json + }) + } - return fetch(path + '/player.json') - .then(res => res.json()) - .then(json => videojs.addLanguage(getShortLocale(completeLocale), json)) + const completeLocale = getCompleteLocale(locale) + return p.then(json => videojs.addLanguage(getShortLocale(completeLocale), json)) +} +namespace loadLocaleInVideoJS { + export const cache: { [ path: string ]: any } = {} } function getServerTranslations (serverUrl: string, locale: string) {