yyzone
Version:
yyzone vue components and utils
90 lines (80 loc) • 2.43 kB
JavaScript
import './diwork-sdk'
import md5 from './md5'
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
}
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
}
function getWebLang({ callback }) {
const navigatorLang = getNavigatorLang()
const webLang = {
'zh_tw': 'zht',
'zh_cn': 'zhs',
'en': 'en',
'en_us': 'en',
'default': navigatorLang || 'zhs'
}
if (window.jDiwork && window.jDiwork.getContext) {
return window.jDiwork.getContext(function (data) {
const diworkLang = (data && data.locale || '').toLocaleLowerCase()
return callback && callback(webLang[diworkLang || 'default'] || webLang['default'])
})
}
return callback && callback(navigatorLang)
}
function getColor(str) {
const colors = [
'#E45D58',
'#35C5AF',
'#19CCE8',
'#FFB319',
'#7465C6',
]
str = str || ''
let char = md5(str).charAt(0).toLowerCase()
return colors['abcdefghijklmnopqrstuvwxyz0123456789'.indexOf(char) % colors.length]
}
function getQuery(string, name) {
if (typeof string != 'string') return null
String.prototype.getQuery = function (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)")
var r = this.substr(this.indexOf("\?") + 1).match(reg)
if (r != null) return unescape(r[2])
return null
}
return string.getQuery(name)
}
function getCookie(name) {
const cookieArray = window.document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"))
return cookieArray != null ? unescape(cookieArray[2]) : null
}
export {
getColor,
getQuery,
getCookie,
getNavigatorLang,
getMobileLang,
getWebLang
}