uni-app vue2项目兼容ios时 picker组件显示英文 设置见替中文无效

uni-app vue2项目兼容ios时 picker组件显示英文 设置见替中文无效

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
操作系统版本 1903
HBuilderX 正式版
版本号 3.99
手机系统 全部
手机厂商 华为
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

测试过的手机:

  • iphone 8 plus 版本:16.6 图片 图片 图片

操作步骤:

  • 就是设置无效,

预期结果:

  • 设置了中文就应该picker上面就应该展示中文格式,比如取消,确定等

实际结果:

  • 语言设置无效

bug描述:

  • 兼容ios,picker组件显示英文,1.在onLaunch里面通过uni.setLocale(‘zh-Hans’),2.在manifest.json中源码视图里面设置"locale" : “zh-Hans”,3,在页面onLoad()里面再次设置uni.setLocale(‘zh-Hans’),4.在页面上用<view class="data-manage-wrapper" lang="zh-CN">,四种都无效,最终在iOS上展示英文

更多关于uni-app vue2项目兼容ios时 picker组件显示英文 设置见替中文无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

13 回复

代码贴一下看看

更多关于uni-app vue2项目兼容ios时 picker组件显示英文 设置见替中文无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


app.vue:onLaunch: function() { console.log(‘App Launch’); uni.setLocale(‘zh-Hans’) }, 每个页面上:<view class="data-manage-wrapper" lang="zh-CN"></view> onLoad() { uni.setLocale(‘zh-Hans’) },

试试 uni.setLocale(‘en’);

安卓上设置 uni.setLocale(‘en’);是正常,的iOS上本来就是英文,这样设置以后更无效了把

安卓上设置 uni.setLocale(‘en’);是正常,的iOS上本来就是英文,这样设置以后更无效了把

不好意思,理解错了,用 uni.setLocale(‘zh-Hans’)

或者 <picker mode="date" value="{{value}}" start="2015-09-01" end="2022-09-01" language="zh-cn"> 这样

好,我试一下

都是用的uni.setLocale(‘zh-Hans’),但是设置无效,麻烦看一下这个问题呢

你加我好友,我远程看一下

加个好友可以的,可是公司保密性比较强,不允许远程

可以的,这个上边交流比较麻烦

uni-app 中使用 picker 组件时,如果发现 iOS 设备上显示的选项是英文而不是中文,可能是由于系统语言设置或 picker 组件的默认行为导致的。以下是一些可能的解决方案:

1. 检查系统语言设置

确保设备的系统语言设置为中文。picker 组件通常会根据设备的系统语言来显示内容。

2. 使用 locale 配置

uni-app 中,可以通过配置 locale 来设置应用的语言。你可以在 pages.jsonmain.js 中进行配置。

// main.js
import Vue from 'vue'
import App from './App'
import locale from 'uni-ui/lib/locale/lang/zh-CN' // 引入中文语言包

Vue.config.lang = 'zh-CN'
Vue.locale('zh-CN', locale)

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
  ...App
})
app.$mount()

3. 手动设置 picker 的数据源

如果 picker 组件的选项是动态生成的,你可以手动设置中文选项。例如:

<template>
  <view>
    <picker mode="selector" :range="options" @change="onPickerChange">
      <view class="picker">
        当前选择:{{ selectedOption }}
      </view>
    </picker>
  </view>
</template>

<script>
export default {
  data() {
    return {
      options: ['选项1', '选项2', '选项3'],
      selectedOption: ''
    }
  },
  methods: {
    onPickerChange(e) {
      const index = e.detail.value
      this.selectedOption = this.options[index]
    }
  }
}
</script>

4. 使用 uni.setLocale 动态设置语言

你可以在应用启动时动态设置语言:

uni.setLocale('zh-Hans') // 设置应用语言为简体中文

5. 使用 uni-app 的国际化插件

如果你需要更复杂的国际化支持,可以考虑使用 uni-app 的国际化插件,如 vue-i18n

npm install vue-i18n --save

然后在 main.js 中配置:

import Vue from 'vue'
import App from './App'
import VueI18n from 'vue-i18n'

Vue.use(VueI18n)

const i18n = new VueI18n({
  locale: 'zh-CN', // 设置默认语言
  messages: {
    'zh-CN': require('./locales/zh-CN.json'), // 引入中文语言包
    'en-US': require('./locales/en-US.json')  // 引入英文语言包
  }
})

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
  i18n,
  ...App
})
app.$mount()

locales/zh-CN.json 中定义中文翻译:

{
  "pickerOption1": "选项1",
  "pickerOption2": "选项2",
  "pickerOption3": "选项3"
}

然后在组件中使用:

<template>
  <view>
    <picker mode="selector" :range="options" @change="onPickerChange">
      <view class="picker">
        当前选择:{{ selectedOption }}
      </view>
    </picker>
  </view>
</template>

<script>
export default {
  data() {
    return {
      options: [
        this.$t('pickerOption1'),
        this.$t('pickerOption2'),
        this.$t('pickerOption3')
      ],
      selectedOption: ''
    }
  },
  methods: {
    onPickerChange(e) {
      const index = e.detail.value
      this.selectedOption = this.options[index]
    }
  }
}
</script>
回到顶部