uni-app框架国际化报错

uni-app框架国际化报错

示例代码:

"tabBar": {  
    "color": "#7A7E83",  
    "selectedColor": "#007AFF",  
    "borderStyle": "black",  
    "backgroundColor": "#F8F8F8",  
    "list": [] //必须有,否则报错  
  }

操作步骤:

  1. 新建uniapp项目
  2. 新建文件夹locale按照文档,框架国际化添加所需语言文件,
  3. 运行项目

预期结果:

不配置tabBar选型也能正常运行

实际结果:

不配置tabBar选型不能正常运行

bug描述:

在使用uniapp官方文档中的框架国际化时,创建locale文件夹,并按照要求添加语言包,运行之后浏览器报错详情如下图,之后经过测试无论创建的文件名称,后缀是什么只要存在locale文件夹就会报错,但app真机并没有

解决方案: 经过大量测试后发现,创建完locale文件夹后pages.json中必须有tabBar且有list属性(可以为空数组)

最后提一下:去年提交的bug到现在都没有解决,不知道官方在干嘛

开发环境 版本号 项目创建方式
Mac macOS Big Sur 11.6 HBuilderX


更多关于uni-app框架国际化报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

那你自定义tabBar顶上

更多关于uni-app框架国际化报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


项目不需要tabBar,暂时只能把列表置空,对于初次使用的人来说非常不友好,文档中没有任何标注这是个必须项

你只要把tabBar整个删掉,就可以了吧

不能删除,删除就报错

回复 BigBoss030: 你的意思是只要做本地化,tabBar这个对象就必定要在是吧

这是一个已知的框架国际化功能与 pages.json 配置的兼容性问题。当项目根目录存在 locale 文件夹时,框架会启用国际化模块,该模块在解析 pages.json 时会强制校验 tabBar 配置的完整性,即使你的应用根本不需要底部选项卡。

核心原因是框架的国际化预处理逻辑存在缺陷。在启用国际化后,它对 pages.json 的解析和编译变得更严格,缺少对 tabBar 配置的容错处理。你发现的“必须配置 tabBarlist 不能缺失”是有效的临时解决方案。

更稳定的处理建议:

  1. 明确需求:如果项目确实不需要 tabBar,在 pages.json 中显式声明一个空的 tabBar 配置是最快、最稳定的规避方法。
    {
      "pages": [...],
      "tabBar": {
        "list": []
      }
    }
回到顶部