You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

97 lines
2.0 KiB

<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>