UNPKG

yyzone

Version:

yyzone vue components and utils

60 lines (56 loc) 1.78 kB
import yDiwork from './diwork' export function getNavigatorLang() { const navigatorLang = { 'zh': 'zhs', 'zh-cn': 'zhs', 'zh-tw': 'zht', 'zh-hk': 'zht', 'zh-mo': 'zht', 'zh-chs': 'zht', 'zh-sg': 'zht', 'zh-cht': 'zht', 'default': 'en' } const lang = (navigator.language || navigator.userLanguage || 'zh').toLocaleLowerCase() return navigatorLang[lang] || navigatorLang.default } export function getMobileLang() { const navigatorLang = getNavigatorLang() const mobileLang = { tw: 'zht', en: 'en', zh: 'zhs', default: navigatorLang || 'zhs' } const ua = navigator.userAgent const uaLanguage = ua.match(/youZoneLanguage=(\w*)/) return mobileLang[uaLanguage && uaLanguage[1] || 'default'] || mobileLang.default } export function getWebLang(callback) { const navigatorLang = getNavigatorLang() const webLang = { 'zh_tw': 'zht', 'zh_cn': 'zhs', 'en': 'en', 'en_us': 'en', 'default': navigatorLang || 'zhs' } return new Promise(resolve => { try { yDiwork().getContext(function (res) { if(res && res.locale) { const yDiworkLang = res.locale || '' const lang = webLang[yDiworkLang.toLocaleLowerCase() || 'default'] || webLang.default callback && callback(lang) resolve(lang) } else { callback && callback(webLang.default) resolve(webLang.default) } }) } catch (error) { callback && callback(webLang.default) resolve(webLang.default) } }) }