99 lines
3.0 KiB
JavaScript
99 lines
3.0 KiB
JavaScript
// [z-paging]i18n模块
|
||
import u from '.././z-paging-utils'
|
||
import c from '.././z-paging-constant'
|
||
import zI18n from '.././z-paging-i18n'
|
||
|
||
const systemInfo = uni.getSystemInfoSync();
|
||
const ZPI18n = {
|
||
props: {
|
||
//i18n国际化设置语言,支持简体中文(zh-cn)、繁体中文(zh-hant-cn)和英文(en)
|
||
language: {
|
||
type: String,
|
||
default: u.gc('language', '')
|
||
},
|
||
//i18n国际化默认是否跟随系统语言,默认为是
|
||
followSystemLanguage: {
|
||
type: Boolean,
|
||
default: u.gc('followSystemLanguage', true)
|
||
},
|
||
},
|
||
data() {
|
||
return {
|
||
tempLanguageUpdateKey: 0,
|
||
}
|
||
},
|
||
computed: {
|
||
tempLanguage() {
|
||
let systemLanguage = false;
|
||
const temp = this.tempLanguageUpdateKey;
|
||
if (this.followSystemLanguage) {
|
||
systemLanguage = systemInfo.language;
|
||
}
|
||
return uni.getStorageSync(c.i18nUpdateKey) || systemLanguage || 'zh-cn';
|
||
},
|
||
finalTempLanguage() {
|
||
return this.language.length ? this.language : this.tempLanguage;
|
||
},
|
||
finalLanguage() {
|
||
let language = this.finalTempLanguage.toLowerCase();
|
||
return zI18n._getPrivateLanguage(language, this.followSystemLanguage);
|
||
},
|
||
finalRefresherDefaultText() {
|
||
return this._getI18nText('refresherDefaultText', this.refresherDefaultText);
|
||
},
|
||
finalRefresherPullingText() {
|
||
return this._getI18nText('refresherPullingText', this.refresherPullingText);
|
||
},
|
||
finalRefresherRefreshingText() {
|
||
return this._getI18nText('refresherRefreshingText', this.refresherRefreshingText);
|
||
},
|
||
finalRefresherCompleteText() {
|
||
return this._getI18nText('refresherCompleteText', this.refresherCompleteText);
|
||
},
|
||
finalLoadingMoreDefaultText() {
|
||
return this._getI18nText('loadingMoreDefaultText', this.loadingMoreDefaultText);
|
||
},
|
||
finalLoadingMoreLoadingText() {
|
||
return this._getI18nText('loadingMoreLoadingText', this.loadingMoreLoadingText);
|
||
},
|
||
finalLoadingMoreNoMoreText() {
|
||
return this._getI18nText('loadingMoreNoMoreText', this.loadingMoreNoMoreText);
|
||
},
|
||
finalLoadingMoreFailText() {
|
||
return this._getI18nText('loadingMoreFailText', this.loadingMoreFailText);
|
||
},
|
||
finalEmptyViewText() {
|
||
return this.isLoadFailed ? this.finalEmptyViewErrorText : this._getI18nText('emptyViewText', this.emptyViewText);
|
||
},
|
||
finalEmptyViewReloadText() {
|
||
return this._getI18nText('emptyViewReloadText', this.emptyViewReloadText);
|
||
},
|
||
finalEmptyViewErrorText() {
|
||
return this._getI18nText('emptyViewErrorText', this.emptyViewErrorText);
|
||
},
|
||
},
|
||
methods: {
|
||
//设置i18n国际化语言
|
||
setI18n(language) {
|
||
zI18n.setLanguage(language);
|
||
},
|
||
//获取当前z-paging的语言
|
||
getLanguage() {
|
||
return this.finalLanguage;
|
||
},
|
||
//获取国际化转换后的文本
|
||
_getI18nText(key, value) {
|
||
const dataType = Object.prototype.toString.call(value);
|
||
if (dataType === '[object Object]') {
|
||
const nextValue = value[this.finalLanguage];
|
||
if (nextValue) return nextValue;
|
||
} else if (dataType === '[object String]') {
|
||
return value;
|
||
}
|
||
return zI18n.t[key][this.finalLanguage];
|
||
},
|
||
}
|
||
}
|
||
|
||
export default ZPI18n;
|