Skip to content

Commit d0e6ef0

Browse files
authored
🌐 i18n国际化 #188 (#202)
* ✨ i18n基础框架 * 🚧 i18n基础结构&使用yaml作为i18n语言文件格式 * 🌐 国际化初版 #188 * 🌐 English i18n * 💚 修复i18n文件错误导致的构建失败 * 🐛 修复i18n的一些问题
1 parent d997dc7 commit d0e6ef0

40 files changed

+1666
-658
lines changed

example/vscode.user.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,5 @@
99

1010
(function() {
1111
'use strict';
12-
1312
// Your code here...
1413
})();

package-lock.json

Lines changed: 146 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "scriptcat",
3-
"version": "0.14.0",
3+
"version": "0.14.0-beta.1",
44
"description": "脚本猫,一个可以执行用户脚本的浏览器扩展,万物皆可脚本化,让你的浏览器可以做更多的事情!",
55
"author": "CodFrm",
66
"license": "GPLv3",
@@ -27,13 +27,15 @@
2727
"crypto-js": "^4.1.1",
2828
"dayjs": "^1.11.4",
2929
"dexie": "^3.2.3",
30+
"i18next": "^22.5.0",
3031
"jszip": "^3.10.1",
3132
"lodash": "^4.17.21",
3233
"monaco-editor": "^0.37.1",
3334
"monaco-vim": "^0.3.4",
3435
"pako": "^2.0.4",
3536
"react": "^18.2.0",
3637
"react-dom": "^18.2.0",
38+
"react-i18next": "^12.3.1",
3739
"react-icons": "^4.4.0",
3840
"react-router-dom": "^6.3.0",
3941
"semver": "^7.3.8",
@@ -95,6 +97,7 @@
9597
"webpack": "^5.73.0",
9698
"webpack-bundle-analyzer": "^4.5.0",
9799
"webpack-cli": "^4.10.0",
98-
"webpack-merge": "^5.8.0"
100+
"webpack-merge": "^5.8.0",
101+
"yaml-loader": "^0.8.0"
99102
}
100103
}

src/app/const.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { version } from "../../package.json";
22

3-
export const ExtVersion = `${version}+1234567`;
3+
export const ExtVersion = version;
44

55
export const ExtServer = "https://ext.scriptcat.org/";
66

src/background.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { SystemConfig } from "./pkg/config/config";
1717
import SystemManager from "./app/service/system/manager";
1818
import SynchronizeManager from "./app/service/synchronize/manager";
1919
import SubscribeManager from "./app/service/subscribe/manager";
20+
import "@App/locales/locales";
2021

2122
// 数据库初始化
2223
migrate();

src/locales/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# i18n 方案
2+
3+
i18n 使用[i8next](https://www.i18next.com/)实现,之所以不是用`chrome.i18n`的原因是该方案不支持动态切换语言。但是为了某些扩展市场的要求,我们还是在`build/assets/_locales`目录下添加了`chrome.i18n`的语言文件。
4+
5+
## 语言文件
6+
7+
语言文件位于`src/locales`目录下,按照页面划分,每个页面对应一个语言文件,最终由`index.ts`合并进行导出。
8+
9+
## 关键字冲突
10+
11+
如果页面中的关键字一样,但是翻译不一样,可以使用`page.key`的方式进行区分,例如:
12+
13+
```yaml
14+
list:
15+
confirm_delete: 确定要删除吗?请注意这个操作无法恢复!
16+
```

0 commit comments

Comments
 (0)