<template>
|
|
<view class="language" :style="{color: color}"
|
|
>
|
|
<u-action-sheet :actions="list"
|
|
@close="languageShow = false"
|
|
@select="selectLnaguage"
|
|
:safeAreaInsetBottom="true"
|
|
:show="languageShow"></u-action-sheet>
|
|
<text @click="languageShow = true">{{ $t('language') }}</text>
|
|
<view class="icon" @click="languageShow = true">
|
|
<u-icon name="arrow-up" style="margin-bottom: -5px;" :color="color" size="12"></u-icon>
|
|
<u-icon name="arrow-down" style="margin-bottom: -5px;" :color="color" size="12"></u-icon>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
name:"languageUpdate",
|
|
props : {
|
|
color : {
|
|
default : '#000'
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
languageShow : false,
|
|
list: [
|
|
// {
|
|
// name:'中文简体',
|
|
// key : "zh-Hans"
|
|
// },
|
|
// {
|
|
// name:'中文繁體',
|
|
// key : "zh-hk"
|
|
// },
|
|
{
|
|
name:'English',
|
|
key : "en"
|
|
},
|
|
{
|
|
name:'Indonesian',
|
|
key : "vi-ydnxy"
|
|
},
|
|
// {
|
|
// name : 'Tiếng Việt',
|
|
// key : "vi-VN"
|
|
// },
|
|
{
|
|
name: this.$t('language.cancel')
|
|
}
|
|
],
|
|
};
|
|
},
|
|
methods : {
|
|
selectLnaguage(res){
|
|
//#ifdef H5
|
|
this.$router.go(0); //刷新页面,不然validate.js不好国际化
|
|
//#endif
|
|
//#ifdef APP-PLUS
|
|
uni.navigateTo({
|
|
url: '/pages/home/home' // 要刷新的页面路径
|
|
});
|
|
//#endif
|
|
|
|
if(!res.key){
|
|
return
|
|
}
|
|
|
|
this.curLanguage = res.key;
|
|
// this.$store.commit('changeLanguage', res.key.code);
|
|
uni.setStorage({
|
|
key: 'language',
|
|
data: res.key
|
|
})
|
|
this.$i18n.locale = res.key
|
|
uni.setLocale(res.key) //切换语言环境必须在this.$i18n.locale之后,否则app端会有意想不到的bug
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.language{
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
font-size: 28rpx;
|
|
height: 100%;
|
|
.icon{
|
|
display: flex;
|
|
flex-direction: column;
|
|
// justify-content: center;
|
|
// align-items: center;
|
|
}
|
|
}
|
|
</style>
|