()
| 213 | } |
| 214 | |
| 215 | var setUpMoment = function () { |
| 216 | const { me } = require('core/auth') |
| 217 | const setMomentLanguage = async function (lang = 'en') { |
| 218 | lang = String(lang || 'en').toLowerCase() |
| 219 | lang = { |
| 220 | 'zh-hans': 'zh-cn', |
| 221 | 'zh-hant': 'zh-tw', |
| 222 | }[lang] || lang |
| 223 | if (lang.startsWith('en')) { |
| 224 | return window.moment.locale('en') |
| 225 | } |
| 226 | try { |
| 227 | // below is an important comment for build dayjs, do not delete it |
| 228 | await import(/* webpackExclude: /\.d\.ts$/ */`dayjs/locale/${lang}.js`) |
| 229 | return window.moment.locale(lang) |
| 230 | } catch (err) { |
| 231 | const baseLang = lang.split('-')[0] |
| 232 | if (baseLang && baseLang !== lang) { |
| 233 | try { |
| 234 | await import(/* webpackExclude: /\.d\.ts$/ */`dayjs/locale/${baseLang}.js`) |
| 235 | return window.moment.locale(baseLang) |
| 236 | } catch (_) {} |
| 237 | } |
| 238 | console.warn('laoding lang error: ', lang) |
| 239 | return window.moment.locale('en') |
| 240 | } |
| 241 | } |
| 242 | // TODO: this relies on moment having all languages baked in, which is a performance hit; should switch to loading the language module we need on demand. |
| 243 | setMomentLanguage(me.get('preferredLanguage', true)) |
| 244 | me.on('change:preferredLanguage', me => setMomentLanguage(me.get('preferredLanguage', true))) |
| 245 | } |
| 246 | |
| 247 | var setUpTv4 = function () { |
| 248 | const forms = require('core/forms') |
no test coverage detected