uni-app manifest.json文件国际化配置问题

发布于 1周前 作者 sinazl 来自 Uni-App

uni-app manifest.json文件国际化配置问题
按照官方文档的说明操作,为什么打包出来的app的应用名字仍然是%app.name%.
是什么地方需要配置吗?有没有详细点的说明

图片

9 回复

提供项目 manifest.json 中 appid 我们排查下


兄弟这个问题解决了吗,怎么解决的?

您好 请问这个问题您解决了么

你好,请问这个问题解决了吗

蹲一个解决方案

实测是个bug,按照文档设置也没用,https://uniapp.dcloud.net.cn/tutorial/i18n.html#

似乎至今为止还木有解决呢

↓↓↓ 如下配置即可
“name”: “默认名字xxx”, “app-plus”: { “allowsInlineMediaPlayback”: true, “compatible”: { “ignoreVersion”: true //true表示忽略版本检查提示框 }, “optimization”: { //可选,JSON对象,分包配置 “subPackages”: true }, “usingComponents”: true, “nvueStyleCompiler”: “uni-app”, “compilerVersion”: 3, “splashscreen”: { “alwaysShowBeforeRender”: true, “waiting”: true, “autoclose”: true, “delay”: 0 }, “modules”: {}, “locales”: { “en”: { “name”: “JTRWeb Validation”, “android”: { “strings”: { “NSPhotoLibraryUsageDescription”: ““en Orangemarket“ Your consent is required to access your photo album for easy access to product information.”, } }, “ios”: { “privacyDescription”: { “NSPhotoLibraryUsageDescription”: “en ios “Orangemarket“ Your consent is required to access your photo album for easy access to product information.”, } } }, “zh”: { “name”: “橙示”, “android”: { “strings”: { “NSPhotoLibraryUsageDescription”: ““橙示“需要您的同意,才能访问您的相册,以便于获取商品信息。”, } }, “ios”: { “privacyDescription”: { “NSPhotoLibraryUsageDescription”: ““橙示“需要您的同意,才能访问您的相册,以便于获取商品信息。”, } } }, “ja”: { “name”: “ja橙示”, “android”: { “strings”: { “NSPhotoLibraryUsageDescription”: ““ja橙示“需要您的同意,才能访问您的相册,以便于获取商品信息。”, } }, “ios”: { “privacyDescription”: { “NSPhotoLibraryUsageDescription”: “ja ios“橙示“需要您的同意,才能访问您的相册,以便于获取商品信息。”, } } }, “ko”: { “name”: “ko橙示”, “android”: { “strings”: { “NSPhotoLibraryUsageDescription”: “ko“橙示“需要您的同意,才能访问您的相册,以便于获取商品信息。”, } }, “ios”: { “privacyDescription”: { “NSPhotoLibraryUsageDescription”: “ko ios“橙示“需要您的同意,才能访问您的相册,以便于获取商品信息。”, } } } }, // SDK配置 “nativePlugins”: { } }
。。。

在处理uni-app项目的国际化配置时,manifest.json文件本身并不直接涉及国际化资源的配置,但它确实可以包含一些应用级别的配置信息,这些信息可能对国际化支持有间接影响。国际化配置通常涉及到语言文件的定义、选择以及如何在应用中使用这些语言文件。

以下是一个如何在uni-app中实现国际化配置的示例,主要关注如何在代码中实现语言切换和资源管理,而非manifest.json的直接配置(因为manifest.json主要用于应用的基本信息配置,如名称、图标、权限等)。

  1. 创建语言文件: 在项目的staticcommon目录下创建语言文件夹,例如locales,并在其中添加不同语言的JSON文件。

    // locales/en.json
    {
      "hello": "Hello",
      "welcome": "Welcome"
    }
    
    // locales/zh.json
    {
      "hello": "你好",
      "welcome": "欢迎"
    }
    
  2. 安装并使用i18n插件: uni-app没有内置的i18n插件,但可以使用第三方库或自定义实现。这里假设使用简单的自定义实现。

  3. 实现语言切换逻辑: 在main.jsApp.vue中,实现语言切换的逻辑,并存储用户选择的语言(可以使用Vuex或localStorage)。

    // main.js
    import Vue from 'vue'
    import App from './App'
    import en from './locales/en.json'
    import zh from './locales/zh.json'
    
    Vue.prototype.$t = key => {
      const lang = localStorage.getItem('lang') || 'en'
      const messages = { en, zh }
      return messages[lang][key] || key
    }
    
    new Vue({
      render: h => h(App),
    }).$mount('#app')
    
  4. 在组件中使用国际化: 在组件的模板或脚本中,通过this.$t('key')的方式访问国际化字符串。

    <template>
      <view>
        <text>{{ $t('hello') }}</text>
        <text>{{ $t('welcome') }}</text>
      </view>
    </template>
    
  5. 添加语言切换按钮: 在应用中添加语言切换按钮,用于更改用户选择的语言并刷新界面。

    <template>
      <button @click="changeLanguage('zh')">中文</button>
      <button @click="changeLanguage('en')">English</button>
    </template>
    
    <script>
    export default {
      methods: {
        changeLanguage(lang) {
          localStorage.setItem('lang', lang)
          // 刷新页面或重新渲染组件
        }
      }
    }
    </script>
    

通过以上步骤,你可以在uni-app中实现基本的国际化配置和语言切换功能。

回到顶部