国际化项目词条处理方案-拒绝重复性的搜索+复制+粘贴,不然手腕得麻了

项目背景

  1. 项目需要做国际化,接手任务时,之前已经做过了英语的国际化处理,本次需要做韩语的国际化
  2. 产品给的是翻译的韩语Excel文件
  3. 前端项目需要的是一一对应的json文件

解决方案分析

  • 了解之前的实现方案:产品提供国际化的词条对应excel,前端需要对照一个一个替换,之前同事都是用的excel直接搜索key替换,手动一个一个替换,容易出错,且工作量巨大,ctrl + C / V / F 手得麻了,典型得重复性复制粘贴

容我思考一下国际化替换词条工作的可行方案

  1. 第一种,反正翻译的人也是要翻译的,不如流程改成,一开始前端就给了json,翻译的人直接翻译记录到json,这样同时避免了一定的人工遗漏问题
  2. 第二种,接手任务的时候,事已至此,给的就是Excel 那就想想咋替换快

具体分析思路&操作如下

  1. 首先 去Excel里搜索key再复制可就费劲多了,不好用,起码得在编辑器里看多好用
  2. 于是想到得第一步:转换excel文件为json ,不然也太难用了还要去excel里搜索复制粘贴,网上一搜就有免费的 :https://products.aspose.app/cells/zh/conversion/excel-to-json#google_vignette
  3. 然后,一个一个替换key也太费劲了,那不如写个脚本替换多好
  4. 实现代码如下:
const fs = require('fs');
const path = require('path');

const zhPath = path.join(__dirname, 'CHS.json');
const koPath = path.join(__dirname, 'ko.json');
const outputPath = path.join(__dirname, 'ko_with_zh_keys.json'); // 输出文件路径


fs.readFile(zhPath, 'utf8', (err, zhData) => {
  if (err) {
    console.error('无法读取 CHS.json 文件:', err);
    return;
  }

  fs.readFile(koPath, 'utf8', (err, koData) => {
    if (err) {
      console.error('无法读取 ko.json 文件:', err);
      return;
    }

    const zhJson = JSON.parse(zhData);
    let koData2 = JSON.parse(koData);

    const resultJson = {};

    // 以全量的中文为顺序,在提供的韩语翻译词条中找,会存在漏掉的韩语翻译词条
    for (const key in zhJson) {
      let target = koData2.filter(item => item?.Code === key);
      if (target[0]) {
        resultJson[key] = target[0]['desc'];
      } else {
        // 没找到新的语言翻译韩文词条的的就保持原来的翻译,比如中文
        resultJson[key] = zhJson[key];
        console.warn(`ko.json 中缺少 key: ${key}`);
      }
    }

    fs.writeFile(outputPath, JSON.stringify(resultJson, null, 2), 'utf8', (err) => {
      if (err) {
        console.error('无法写入输出文件:', err);
      } else {
        console.log('key 替换完成,输出文件路径:', outputPath);
      }
    });
  });
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值