关于 i18n-toolkit 的使用

文章前言

永远把别人对你的批评记在心里,别人的表扬,就把它忘了。Hello 大家好~!我是南宫墨言QAQ

本文主要是记录自己关于 nangongmoyan-i18n-toolkit 多语言工具包的使用过程,特地记录下与诸位分享,文中如有记录不正确的地方,欢迎大家在评论区指出,谢谢

观看到文章最后的话,如果觉得不错,可以点个关注或者点个赞哦!感谢~❤️

文章主体

感谢各位观者的耐心观看,nangongmoyan-i18n-toolkit 使用正片即将开始,且听南宫墨言QAQ娓娓道来

在正式使用 之前,我们需要进行 Google sheet 授权来活的一些相关配置

Google Sheets 授权

1. Create Google Cloud Project(新建 Google Cloud 项目)

链接:https://console.cloud.google.com/projectcreate

create

success created

2. Enable Google Sheets API And Apps Script API(启用Google Sheets API And Apps Script API)

Enable Google Sheets API

Enable Apps Script API

链接:https://console.cloud.google.com/apis/credentials/consent

3.1. Select User Type(选择用户类型)

这边我选择External(任何拥有 Google 帐户的测试用户均可使用)

3.2. Edit app registration(填写相关信息)

3.3. Add Scopes(添加授权范围)

  • Checked All Google Sheets API (所有都勾选上)
  • Checked All Apps Script API (所有都勾选上)

3.4. Summary(概括)

4. Create Credential(创建凭证)

链接:https://console.cloud.google.com/apis/credentials

5. Create Google Sheets (创建 Google Sheets)

链接:https://docs.google.com/spreadsheets/u/0/

5.1. Blank spreadsheets(创建空白电子表格)

5.2. Add Apps Script (添加脚本)

将下面脚本添加进去

ini 复制代码
function onEdit(e) {
  AutoGenerateKey(e.range.getRowIndex(), e.value);
}

// 自动生成hash key
function AutoGenerateKey(rowIndex, value) {
  if (value == undefined) return;
  var targetColumn = "A";
  var sheet = SpreadsheetApp.getActive();
  var keyRange = sheet.getRange(targetColumn + rowIndex);
  var keyValue = keyRange.getValue();
  if (!!keyValue) return;
  var dateStr = new Date().toISOString();
  var rawHash = Utilities.computeDigest(
    Utilities.DigestAlgorithm.MD5,
    value + dateStr
  );
  var txtHash = "";
  for (i = 0; i < rawHash.length; i++) {
    var hashVal = rawHash[i];
    if (hashVal < 0) {
      hashVal += 256;
    }
    if (hashVal.toString(16).length == 1) {
      txtHash += "0";
    }
    txtHash += hashVal.toString(16);
  }
  sheet.getRange(targetColumn + rowIndex).setValue(txtHash);
}

6. 添加配置文件i18n.config.json到项目根目录

json 复制代码
{
  "apiKey": "上面第四步生成的key",
  "outputDir": "i18n", // 输出目录
  "spreadsheetId": "<google表格url中很长的那一段>",
  "tableIndex": 0, // 谷歌表格第一个子表
  "langues": ["zh-CN", "en-US"] // 支持的语言
}

7. 表格填写

当在对应语言下面填入相关内容,第一列会根据脚本自动生成一个hash值

实际使用

接下来这边起一个react项目进行演示:

lua 复制代码
npx create-react-app i18n-toolkit-demo

安装工具包

复制代码
npm install nangongmoyan-i18n-toolkit

添加i18n.config.json配置文件

json 复制代码
{
  "apiKey": "上面第四步生成的key",
  "outputDir": "i18n", // 输出目录
  "spreadsheetId": "<google表格url中很长的那一段>",
  "tableIndex": 0, // 谷歌表格第一个子表
  "langues": ["zh-CN", "en-US"] // 支持的语言
}

在package.json中的scripts中添加

json 复制代码
"intl": "nangongmoyan-i18n-toolkit"

命令行执行npm run intl

arduino 复制代码
npm run intl

就会将对应语言的json文件下载下来:

页面显示

点击 changeLanguage 会切换成另外一个语言

上面demo链接, 本地执行npm start就可以看到效果

结尾营业

看官都看到这了,如果觉得不错,可不可以不吝啬你的小手手帮忙点个关注或者点个赞

相关推荐
_lucas5 分钟前
做了一个glsl在线调试工具
前端·javascript·three.js
不好听6138 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus8 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
前端小李子9 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech9 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn10 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
醇氧11 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
qetfw13 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯13 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能