关于 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就可以看到效果

结尾营业

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

相关推荐
街尾杂货店&1 小时前
css word-spacing属性
前端·css
千叶寻-1 小时前
正则表达式
前端·javascript·后端·架构·正则表达式·node.js
光影少年6 小时前
angular生态及学习路线
前端·学习·angular.js
无尽夏_8 小时前
HTML5(前端基础)
前端·html·html5
Jagger_8 小时前
敏捷开发流程-精简版
前端·后端
FIN66689 小时前
昂瑞微冲刺科创板:创新驱动,引领射频芯片国产化新征程
前端·安全·前端框架·信息与通信·芯片
GISer_Jing9 小时前
ByteDance——jy真题
前端·javascript·面试
睡美人的小仙女1279 小时前
浏览器为何屏蔽本地文件路径?
前端
真的想不出名儿9 小时前
Vue 中 props 传递数据的坑
前端·javascript·vue.js
FIN66689 小时前
昂瑞微:深耕射频“芯”赛道以硬核实力冲刺科创板大门
前端·人工智能·科技·前端框架·信息与通信·智能