فهرست منبع

feat: 国际化配置调试,默认语言配置需打包才可生效

liangan 3 هفته پیش
والد
کامیت
21a0504937
6فایلهای تغییر یافته به همراه18 افزوده شده و 8 حذف شده
  1. 1 1
      env/.env
  2. 2 1
      manifest.config.ts
  3. 1 0
      src/App.vue
  4. 0 1
      src/locale/index.ts
  5. 2 1
      src/manifest.json
  6. 12 4
      src/pages/mine/setting.vue

+ 1 - 1
env/.env

@@ -1,7 +1,7 @@
 VITE_APP_TITLE = 'unibest'
 VITE_APP_PORT = 9000
 
-VITE_UNI_APPID = '__UNI__D1E5001'
+VITE_UNI_APPID = '__UNI__3065F51'
 VITE_WX_APPID = 'wxa2abb91f64032a2b'
 
 # h5部署网站的base,配置到 manifest.config.ts 里的 h5.router.base

+ 2 - 1
manifest.config.ts

@@ -27,7 +27,8 @@ export default defineManifestConfig({
   'versionName': '1.0.0',
   'versionCode': '100',
   'transformPx': false,
-  'locale': 'en', // 此app需默认英文
+  'locale': VITE_FALLBACK_LOCALE === 'bn' ? 'bn' : 'en', // 此app需默认英文
+  'fallbackLocale': 'en',
   'h5': {
     router: {
       // base: VITE_APP_PUBLIC_BASE,

+ 1 - 0
src/App.vue

@@ -7,6 +7,7 @@ usePageAuth()
 
 onLaunch(() => {
   console.log('App Launch')
+  // uni.setLocale('en')
 })
 onShow(() => {
   console.log('App Show')

+ 0 - 1
src/locale/index.ts

@@ -9,7 +9,6 @@ const messages = {
   'zh-Hans': zhHans, // key 不能乱写,查看截图 screenshots/i18n.png
   bn,
 }
-
 const i18n = createI18n({
   locale: uni.getLocale() === 'bn' ? 'bn' : 'en', // 获取已设置的语言,fallback 语言需要再 manifest.config.ts 中设置
   messages,

+ 2 - 1
src/manifest.json

@@ -1,6 +1,6 @@
 {
   "name": "unibest",
-  "appid": "__UNI__D1E5001",
+  "appid": "__UNI__3065F51",
   "description": "",
   "versionName": "1.0.0",
   "versionCode": "100",
@@ -109,6 +109,7 @@
   },
   "vueVersion": "3",
   "locale": "en",
+  "fallbackLocale": "en",
   "h5": {
     "router": {}
   }

+ 12 - 4
src/pages/mine/setting.vue

@@ -9,19 +9,27 @@
 </route>
 
 <script lang="ts" setup>
+import i18n from '@/locale/index'
+
 defineOptions({
   name: 'Setting', // 设置
 })
-const columns = ref(['English', 'Bengali'])
-const language = ref('')
+const columns = ref([{ label: 'English', value: 'en' }, { label: 'Bengali', value: 'bn' }])
+const language = ref(uni.getLocale() === 'bn' ? 'bn' : 'en')
+function changeLanguage(data) {
+  console.log(data)
+  // 下面2句缺一不可!!!
+  uni.setLocale(data.value)
+  i18n.global.locale = data.value
+}
 </script>
 
 <template>
   <view class="py-20rpx">
     <wd-cell-group custom-class="mb-20rpx" border>
       <wd-cell title="Change Password" custom-title-class="text-32rpx" is-link />
-      <wd-picker v-model="language" :columns="columns" use-default-slot>
-        <wd-cell title="Language" custom-title-class="text-32rpx" custom-value-class="text-#838383! text-32rpx!" value="English" is-link />
+      <wd-picker v-model="language" :columns="columns" use-default-slot @confirm="changeLanguage">
+        <wd-cell title="Language" custom-title-class="text-32rpx" custom-value-class="text-#838383! text-32rpx!" :value="columns.find(item => item.value === language)?.label" is-link />
       </wd-picker>
       <wd-cell title="Policies" custom-title-class="text-32rpx" is-link />
       <wd-cell title="Help" custom-title-class="text-32rpx" is-link />