半驯之马
半驯之马
  • 发布:2023-03-21 18:10
  • 更新:2024-05-31 16:56
  • 阅读:727

【报Bug】pages.json国际化,当配置了globalStyle.app-plus.titleNView为false时,打包部署到线上的页面没有翻译对应页面的标题(一年多了,官方还没修复)

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.7.3

浏览器平台: Chrome

浏览器版本: 108.0.5359.125

项目创建方式: HBuilderX

示例代码:
{  
    "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages  
        {  
            "path": "pages/home/home",  
            "style": {  
                "navigationBarTitleText": "%home.titlle%"  
            }  
        }  
        ,{  
            "path" : "pages/user/user",  
            "style" :                                                                                      
            {  
                "navigationBarTitleText": "%user.titlle%",  
                "enablePullDownRefresh": false  
            }  

        }  
    ],  
    "globalStyle": {  
        "navigationBarTextStyle": "black",  
        "navigationBarTitleText": "",  
        "navigationBarBackgroundColor": "#F8F8F8",  
        "backgroundColor": "#F8F8F8",  
        "app-plus": {  
            "titleNView": false  
        }  
    },  
    "uniIdRouter": {}  
}  

操作步骤:

pages.json中,设置globalStyle.app-plus.titleNView为false

预期结果:

应正常对页面标题进行翻译

实际结果:

页面标题显示%xxx%,即没有对页面标题进行翻译

bug描述:

uniapp Vue3版本 pages.json国际化,当配置了globalStyle.app-plus.titleNView为false时,配置navigationBarTitleText属性,在开发环境下,页面对应的navigationBarTitleText有进行翻译,当打包部署到生产环境时,页面对应的navigationBarTitleText都是%xxx%,没有进行翻译操作

2023-03-21 18:10 负责人:无 分享
已邀请:
teammar

teammar

我也是,Vue3国际化,网站标题中变量没有替换。

求大神解决啊!!!项目着急用。

YUANRJ

YUANRJ

titleNView为false会把导航栏隐藏掉

  • teammar

    那为什么H5打包出来,网站的标题就是 %app.title% 。

    就是ide测试运行的时候网站标题就是正常的,只要一打包编译标题就会呈现这中%xxx%。

    能麻烦解决一下么?

    2023-03-30 15:29

  • 半驯之马 (作者)

    回复 teammar: 这就是uni的bug,vue2的是没有这个问题的,我目前是加个了个全局的mixins,在页面onShow的时候,判断下document.title带不带%


    export default {

    data () {

    return {

    _appTitle:''

    }

    },

    onShow () {

    this.$nextTick(() => {

    let title = this._appTitle||document.title

    if(title[0] === '%'){

    this._appTitle = document.title

    document.title = this.$t(title.replace(/\%/g,''))

    }

    })


    }  

    }

    2023-03-31 10:50

  • teammar

    回复 半驯之马: 好的,感谢感谢,解决方案确实可以解决我的问题。

    2023-03-31 14:41

半驯之马

半驯之马 (作者)

一年了,官方是不管这个bug了吗

要回复问题请先登录注册