r***@163.com
r***@163.com
  • 发布:2022-03-07 10:12
  • 更新:2024-09-25 15:45
  • 阅读:5002

uniapp中pages.json和nvue页面国际化问题

分类:uni-app

参考官方文档:https://uniapp.dcloud.net.cn/worktile/i18n.html,使用了vue-i18n组件进行了国际化配置:

let i18nConfig = {  
  // locale: uni.getLocale(),  
  locale: 'en',   
  messages  
}  

// #ifndef VUE3  
import Vue from 'vue'  
import VueI18n from 'vue-i18n'  
Vue.use(VueI18n)  
const i18n = new VueI18n(i18nConfig)  
Vue.config.productionTip = false  
App.mpType = 'app'  
const app = new Vue({  
    ...App,  
    i18n,  
    store  
})  
app.$mount()  
// #endif

但在实际应用中,发现pages.json中的国际化,并没有生效,配置如下:

{  
            "path" : "pages/mine/my-information",  
            "style" :                                                                                      
            {  
                "navigationBarTitleText": "%app.my.information.title%"  
            }  
        }  

后来又开发了nvue页面,在nvue界面中国际化也不生效,配置如下:

import { initVueI18n } from '@dcloudio/uni-i18n'  
import messages from '@/locale/index'  
const { t } = initVueI18n(messages)  
......  
computed: {  
            provinceTabLable() {  
                return t('app.area.selector.tab.province')  
            }  
        }

请问,vue-i18n插件的配置,对pages.json和nvue页面无效么?需要如何处理?

2022-03-07 10:12 负责人:无 分享
已邀请:
小小菜76055421

小小菜76055421

pages.json中确实不生效,不晓得原因

  • 1***@163.com

    我这按照hello-i18n配置后,最后再manifest.json 里面配置了locale字段,应用的tabbar就会按照locale字段进行渲染

    2024-01-24 20:14

DCloud_UNI_Anne

DCloud_UNI_Anne

请用示例 hello i18n试下是否有此问题?如果不能,排查下具体问题,提供简单可复现的完整示例(上传附件)

r***@163.com

r***@163.com (作者)

参考 示例 hello i18n 的源码,这个示例是手动切换语言的,我需要的是启动时加载指定的语言包,
我做了如下改动:

1、新建了一个settings.js用于管理变量

module.exports = {  
  // uiLanguage: 'en',  
  uiLanguage: 'zh-Hans',  
}  

2、在App.vue的onLaunch()里面加入如下代码,强制设定当前语言

if (uni.getSystemInfoSync().platform.toLowerCase() === 'android') {  
                 uni.setLocale(defaultSettings.uiLanguage)  
            } else {  
                this.$i18n.locale = defaultSettings.uiLanguage;  
            }
琴心剑魄今何在

琴心剑魄今何在

可以用setTabbarItem来手动设置文字

8***@qq.com

8***@qq.com

兄弟们,我找到为何pages.json不生效了,目前我是这样的


  • 7***@qq.com

    啥原因,我也出现了这个问题

    2022-12-13 10:25

  • 8***@qq.com

    我上传的图片被吃掉了,就是一定要严格按照demo的弄,多语言包的创建路径和文件名都要保持一致

    2023-02-02 10:08

  • 晨小子

    回复 8***@qq.com: 正解,就一定要一模一样,千万不要想当然,改个文件名什么的,都不行。比如:zh-Hans.json,就千万不能少了-Hans,也不能用CN,一定要一模一样。有点恶心的

    2023-02-22 16:04

  • 3***@qq.com

    回复 晨小子: 真就绝了。必须的和文档得格式一模一样。醉了呀

    2023-06-29 17:44

子夜乌鸦

子夜乌鸦

在pages.json中配置语言,好像语言配置文件只能是json格式,否则不行
还有json格式,类似这样多层也不行,
{"index": {
"title": "Hello i18n=="
}
}

zyyyyyyyyyyyy

zyyyyyyyyyyyy

pages.json中多语言生效了,显示的是en里的,但是怎么切换语言呀。这个能在页面中动态修改吗

  • zyyyyyyyyyyyy

    解决了,用uni.setLocale设置语言就可以了,我之前用的是this.$i18n.locale赋值只能实现页面上语言的切换

    2024-05-07 17:53

梧桐树

梧桐树

需要另外配置.js语言文件,才能在nvue页面使用

Yangmencius

Yangmencius - Girl

我的pages.json 配置页面title,不生效,其它国际化没问题。
对比hello i18n. 发现我之前改过国际化路径。我把文件夹改成了<locales>.

改回 locale 文件夹名,就又好使了。

要回复问题请先登录注册