Ver Fonte

Merge remote-tracking branch 'origin/development'

liangan há 4 dias atrás
pai
commit
eceed51ca1
4 ficheiros alterados com 99 adições e 85 exclusões
  1. 77 77
      manifest.config.ts
  2. 18 1
      src/locale/index.ts
  3. 2 6
      src/manifest.json
  4. 2 1
      src/pages/mine/setting.vue

+ 77 - 77
manifest.config.ts

@@ -17,7 +17,7 @@ const {
   VITE_UNI_APPID,
   VITE_WX_APPID,
   VITE_APP_PUBLIC_BASE,
-  VITE_FALLBACK_LOCALE, // 默认系统语言
+  VITE_FALLBACK_LOCALE // 默认系统语言
 } = env
 
 export default defineManifestConfig({
@@ -31,11 +31,11 @@ export default defineManifestConfig({
   'fallbackLocale': 'bn',
   'h5': {
     router: {
-      base: VITE_APP_PUBLIC_BASE,
+      base: VITE_APP_PUBLIC_BASE
     },
     uniStatistics: {
-      enable: false,
-    },
+      enable: true
+    }
   },
   /* 5+App特有相关 */
   'app-plus': {
@@ -49,19 +49,19 @@ export default defineManifestConfig({
     nvueStyleCompiler: 'uni-app',
     compilerVersion: 3,
     compatible: {
-      ignoreVersion: true,
+      ignoreVersion: true
     },
     splashscreen: {
       alwaysShowBeforeRender: true,
       waiting: true,
       autoclose: true,
-      delay: 0,
+      delay: 0
     },
     /* 模块配置 */
     modules: {
       Share: {},
       Camera: {},
-      Push: {},
+      Push: {}
     },
     /* 应用发布信息 */
     distribute: {
@@ -85,12 +85,12 @@ export default defineManifestConfig({
           '<uses-permission android:name="android.permission.WAKE_LOCK"/>',
           '<uses-permission android:name="android.permission.FLASHLIGHT"/>',
           '<uses-feature android:name="android.hardware.camera"/>',
-          '<uses-permission android:name="android.permission.WRITE_SETTINGS"/>',
-        ],
+          '<uses-permission android:name="android.permission.WRITE_SETTINGS"/>'
+        ]
       },
       /* ios打包配置 */
       ios: {
-        idfa: false,
+        idfa: false
       },
       /* SDK配置 */
       sdkConfigs: {},
@@ -100,7 +100,7 @@ export default defineManifestConfig({
           hdpi: 'src/static/app/icons/72x72.png',
           xhdpi: 'src/static/app/icons/96x96.png',
           xxhdpi: 'src/static/app/icons/144x144.png',
-          xxxhdpi: 'src/static/app/icons/192x192.png',
+          xxxhdpi: 'src/static/app/icons/192x192.png'
         },
         ios: {
           appstore: 'src/static/app/icons/1024x1024.png',
@@ -113,7 +113,7 @@ export default defineManifestConfig({
             'settings': 'src/static/app/icons/29x29.png',
             'settings@2x': 'src/static/app/icons/58x58.png',
             'spotlight': 'src/static/app/icons/40x40.png',
-            'spotlight@2x': 'src/static/app/icons/80x80.png',
+            'spotlight@2x': 'src/static/app/icons/80x80.png'
           },
           iphone: {
             'app@2x': 'src/static/app/icons/120x120.png',
@@ -123,21 +123,21 @@ export default defineManifestConfig({
             'settings@2x': 'src/static/app/icons/58x58.png',
             'settings@3x': 'src/static/app/icons/87x87.png',
             'spotlight@2x': 'src/static/app/icons/80x80.png',
-            'spotlight@3x': 'src/static/app/icons/120x120.png',
-          },
-        },
+            'spotlight@3x': 'src/static/app/icons/120x120.png'
+          }
+        }
       },
       splashscreen: {
         androidStyle: 'common',
         android: {
           hdpi: 'src/static/app/start/start-480.png',
           xhdpi: 'src/static/app/start/start-720.png',
-          xxhdpi: 'src/static/app/start/start-1080.png',
-        },
-      },
+          xxhdpi: 'src/static/app/start/start-1080.png'
+        }
+      }
     },
     uniStatistics: {
-      enable: true,
+      enable: true
     },
     nativePlugins: {
       'EL-MTPush': {
@@ -179,133 +179,133 @@ export default defineManifestConfig({
             MTPUSH_ADVERTISINGID_IOS: {
               des: '[iOS]广告标识符(IDFA)如果不需要使用IDFA,可不填',
               key: 'MTPush:ADVERTISINGID',
-              value: '',
+              value: ''
             },
             MTPUSH_APPKEY_ANDROID: {
               des: '[Android]EngageLab portal配置应用信息时分配的AppKey',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_APPKEY_IOS: {
               des: '[iOS]EngageLab portal配置应用信息时分配的AppKey',
               key: 'MTPush:APP_KEY',
-              value: '',
+              value: ''
             },
             MTPUSH_CHANNEL_ANDROID: {
               des: '[Android]用于统计分发渠道,不需要可填默认值developer-default',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_CHANNEL_IOS: {
               des: '[iOS]用于统计分发渠道,不需要可填默认值developer-default',
               key: 'MTPush:CHANNEL',
-              value: '',
+              value: ''
             },
             MTPUSH_DEFAULTINIT_IOS: {
               des: '[iOS]是否默认初始化,是填true,不是填false或者不填',
               key: 'MTPush:DEFAULTINIT',
-              value: '',
+              value: ''
             },
             MTPUSH_GOOGLE_API_KEY: {
               des: '厂商google api_key,示例:G-asxa1232',
               key: 'google_api_key',
-              value: '',
+              value: ''
             },
             MTPUSH_GOOGLE_APP_ID: {
               des: '厂商google mobilesdk_app_id,示例:G-12346578',
               key: 'google_app_id',
-              value: '',
+              value: ''
             },
             MTPUSH_GOOGLE_PROJECT_ID: {
               des: '厂商google project_id ,示例:G-12346578',
               key: 'project_id',
-              value: '',
+              value: ''
             },
             MTPUSH_GOOGLE_PROJECT_NUMBER: {
               des: '厂商google project_number,示例:G-12346578',
               key: 'gcm_defaultSenderId',
-              value: '',
+              value: ''
             },
             MTPUSH_GOOGLE_STORAGE_BUCKET: {
               des: '厂商google storage_bucket,示例:G-12346578',
               key: 'google_storage_bucket',
-              value: '',
+              value: ''
             },
             MTPUSH_HONOR_APPID: {
               des: '厂商HONOR-appId,示例:12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_HUAWEI_APPID: {
               des: '厂商HUAWEI-appId,示例:appid=12346578',
               key: 'com.huawei.hms.client.appid',
-              value: '',
+              value: ''
             },
             MTPUSH_ISPRODUCTION_IOS: {
               des: '[iOS]是否是生产环境,是填true,不是填false或者不填',
               key: 'MTPush:ISPRODUCTION',
-              value: '',
+              value: ''
             },
             MTPUSH_MEIZU_APPID: {
               des: '厂商MEIZU-appId,示例:MZ-12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_MEIZU_APPKEY: {
               des: '厂商MEIZU-appKey,示例:MZ-12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_OPPO_APPID: {
               des: '厂商OPPO-appId,示例:OP-12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_OPPO_APPKEY: {
               des: '厂商OPPO-appkey,示例:OP-12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_OPPO_APPSECRET: {
               des: '厂商OPPO-appSecret,示例:OP-12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_PROCESS_ANDROID: {
-              des: '[Android] Engagelab process,Engagelabsdk工作所在的进程,请填写 \':remote\', 注意:开头',
+              des: "[Android] Engagelab process,Engagelabsdk工作所在的进程,请填写 ':remote', 注意:开头",
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_VIVO_APPID: {
               des: '厂商VIVO-appId,示例:12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_VIVO_APPKEY: {
               des: '厂商VIVO-appkey,示例:12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_XIAOMI_APPID: {
               des: '厂商XIAOMI-appId,示例:MI-12345678',
               key: '',
-              value: '',
+              value: ''
             },
             MTPUSH_XIAOMI_APPKEY: {
               des: '厂商XIAOMI-appKey,示例:MI-12345678',
               key: '',
-              value: '',
-            },
-          },
-        },
-      },
-    },
+              value: ''
+            }
+          }
+        }
+      }
+    }
   },
   /* 快应用特有相关 */
   'quickapp': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   /* 小程序特有相关 */
   'mp-weixin': {
@@ -314,74 +314,74 @@ export default defineManifestConfig({
       urlCheck: false,
       // 是否启用 ES6 转 ES5
       es6: true,
-      minified: true,
+      minified: true
     },
     optimization: {
-      subPackages: true,
+      subPackages: true
     },
     usingComponents: true,
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
     // __usePrivacyCheck__: true,
   },
   'mp-alipay': {
     usingComponents: true,
     styleIsolation: 'shared',
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-baidu': {
     usingComponents: true,
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-toutiao': {
     usingComponents: true,
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'app-harmony': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-harmony': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-jd': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-kuaishou': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-lark': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-qq': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'mp-xhs': {
     uniStatistics: {
-      enable: false,
-    },
+      enable: false
+    }
   },
   'uniStatistics': {
     enable: false, // 全局开启
-    version: '2', // 开启新版uni统计,值为字符串
+    version: '2' // 开启新版uni统计,值为字符串
   },
-  'vueVersion': '3',
+  'vueVersion': '3'
 })

+ 18 - 1
src/locale/index.ts

@@ -17,13 +17,30 @@ const supportedLocales = ['en', 'zh-Hans', 'bn'] as const
 type SupportedLocale = typeof supportedLocales[number]
 
 function normalizeLocale(locale: string | undefined | null): SupportedLocale {
+  if (!locale)
+    return 'bn'
   if (supportedLocales.includes(locale as SupportedLocale))
     return locale as SupportedLocale
+
+  const lower = locale.toLowerCase()
+  if (lower.startsWith('en'))
+    return 'en'
+
   return 'bn'
 }
 
+function getInitialLocale(): SupportedLocale {
+  const storedLocale = uni.getStorageSync('app_locale')
+  if (storedLocale)
+    return normalizeLocale(storedLocale)
+
+  const systemLocale = uni.getSystemInfoSync().language || uni.getLocale()
+  const normalized = normalizeLocale(systemLocale)
+  return normalized === 'en' ? 'en' : 'bn'
+}
+
 const i18n = createI18n({
-  locale: normalizeLocale(uni.getLocale()), // 获取已设置的语言,fallback 语言需要再 manifest.config.ts 中设置
+  locale: getInitialLocale(), // 获取已设置的语言,fallback 语言需要再 manifest.config.ts 中设置
   messages,
   allowComposition: true,
 })

+ 2 - 6
src/manifest.json

@@ -41,11 +41,7 @@
         ],
         "minSdkVersion": 30,
         "targetSdkVersion": 30,
-        "abiFilters": [
-          "armeabi-v7a",
-          "arm64-v8a",
-          "x86"
-        ]
+        "abiFilters": ["armeabi-v7a", "arm64-v8a", "x86"]
       },
       "ios": {
         "idfa": false
@@ -317,7 +313,7 @@
       "base": "/"
     },
     "uniStatistics": {
-      "enable": false
+      "enable": true
     }
   },
   "app-harmony": {

+ 2 - 1
src/pages/mine/setting.vue

@@ -31,11 +31,12 @@ function normalizeLocale(locale: string | undefined | null) {
   return 'bn'
 }
 
-const language = ref(normalizeLocale(uni.getLocale()))
+const language = ref(normalizeLocale(uni.getStorageSync('app_locale') || uni.getLocale()))
 function changeLanguage(data: any) {
   console.log(data)
   // 下面2句缺一不可!!!
   uni.setLocale(data.value)
+  uni.setStorageSync('app_locale', data.value)
   i18n.global.locale = data.value
 }
 function logout() {