json文件缺少的语言key的检测

需求

在做多语言的项目的时候,需要对当前不同语言的key的差异进行对比并且找出缺少key的语言和具体的语言key
通过node的文件读取能力进行需求的实现

const fs = require('fs')
const path = require('path');
const lodash = require('lodash');
// 目的是找出多语言文件中跟简体中文相比,不同的语言json文件中缺少的不同的语言key
// 读取简体中文的所有的key

const allKeys = {
   }
const resultObj= {
   }
const SIMPLE = 'ZH' // 目标语言为中文简体
const filePath = path.resolve(__dirname,'../locales') // 文件夹路径


function compareKeys(){
   
    // 读取src/locales的所有的json文件
    const files = fs.readdirSync(filePath) || []
    // 遍历读取文件的内容
    files.map((file)=>{
   
        const data = fs.readFileSync(path.resolve(filePath,file), 'utf8')
        const result = JSON.parse(data)
        allKeys[result['lang']] = Object.keys(result)
    })

    // 开始比较每种key对应的长度,当有长度不同的语言key的时候,找出对应的语言并且找出key
    const length = allKeys[SIMPLE].length
    for (const key in allKeys) {
   
        if (Object.hasOwnProperty.call(allKeys, key)) {
   
            const elementArr = allKeys[key] || [];
            if(elementArr.length !== length){
   
                // 找出两个数组中的差异项目
                const sourceArr = allKeys[SIMPLE]
                const different = sourceArr.filter(item=>!elementArr.includes(item))
                resultObj[key] = different
            }
        }
    }
    // 如果resultObj不为空。那么禁止eslint提交代码
    if(!lodash.isEmpty(resultObj)){
   
        throw new Error(`*****国际化缺少的语言key*****${
     JSON.stringify(resultObj)}`)
    }else{
   
        console.log('*****国际化语言key检测完成*****',resultObj)
    }
}
compareKeys()

package.json文件的执行

"compare":"node ./src/utils/compare_keys.js",

相关推荐

  1. json文件缺少语言key检测

    2024-02-03 13:42:03       34 阅读
  2. Jackson指定jsonkey

    2024-02-03 13:42:03       7 阅读
  3. json文件格式化

    2024-02-03 13:42:03       37 阅读
  4. json文件读取

    2024-02-03 13:42:03       10 阅读
  5. Hive Sql获取含有特殊字符keyjson数据

    2024-02-03 13:42:03       21 阅读
  6. 关于json文件保存

    2024-02-03 13:42:03       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 13:42:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 13:42:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 13:42:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 13:42:03       18 阅读

热门阅读

  1. 【Python】requests库的介绍及用法

    2024-02-03 13:42:03       26 阅读
  2. python--第三方包的使用

    2024-02-03 13:42:03       34 阅读
  3. Vue3 vant4 底部tabbar图标如何修改为自定义图片

    2024-02-03 13:42:03       32 阅读
  4. ChatGPT等大模型AI能干什么?

    2024-02-03 13:42:03       26 阅读
  5. 力扣0120——三角形最小路径和

    2024-02-03 13:42:03       36 阅读