Skip to content

Commit

Permalink
支持 VCB V1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
OXeu committed Oct 16, 2023
1 parent 75d15a0 commit e9e0726
Show file tree
Hide file tree
Showing 7 changed files with 1,424 additions and 295 deletions.
9 changes: 9 additions & 0 deletions .idea/vcb_cn.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@
由于内置的字体不支持其他语言,故塞入了全套的 **MiSans** 字体,导致资源包大小由原先的 5.40 MB 增加至 50.2 MB,增加了 45 MB

# 更新日志
## 23.10.16
- 更新支持至 VCB V1.0 正式版
- 时间有限,未经校正,目前存在较多的翻译错误与显示异常

## 23.08.04
- 修复大量机翻错误
- 更新 v0.3(2023.05.20) 版本汉化包
File renamed without changes.
564 changes: 288 additions & 276 deletions mapping/vcb_cn.json

Large diffs are not rendered by default.

513 changes: 513 additions & 0 deletions mapping/vcb_cn_0.3.json

Large diffs are not rendered by default.

525 changes: 525 additions & 0 deletions mapping/vcb_cn_no_patch.json

Large diffs are not rendered by default.

104 changes: 85 additions & 19 deletions translator.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -24,32 +24,37 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 9,
"outputs": [],
"source": [
"// 提取出的资源目录\n",
"val extractedDirPath = \"E:\\\\Virtual Circuit Board\\\\extracted\"\n",
"val extractedDirPath = \"C:\\\\Users\\\\Xeu\\\\3D Objects\\\\vcb\\\\extracted\"\n",
"\n",
" // 工作目录:vcb.json 与 vcb_cn.json 保存的目录\n",
" val workDirPath = \"E:\\\\Virtual Circuit Board\\\\vcb_cn\\\\mapping\"\n",
" val workDirPath = \"C:\\\\Users\\\\Xeu\\\\3D Objects\\\\vcb_cn\\\\mapping\"\n",
"\n",
" // 原文 json 文件名\n",
" val mappingKeyFileName = \"vcb.json\"\n",
"\n",
" // 译文 json 文件名\n",
" val mappingValueFileName = \"vcb_cn.json\""
" val mappingValueFileName = \"vcb_cn.json\"\n",
" // 旧版本 json 文件名\n",
" val mappingKeyFileNameOld = \"vcb_0.3.json\"\n",
"\n",
" // 旧版本译文 json 文件名\n",
" val mappingValueFileNameOld = \"vcb_cn_0.3.json\""
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-08-03T20:33:33.442863500Z",
"start_time": "2023-08-03T20:33:33.403862900Z"
"end_time": "2023-10-16T14:01:35.371346700Z",
"start_time": "2023-10-16T14:01:35.338347500Z"
}
}
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 10,
"outputs": [],
"source": [
"// 提取所有文本\n",
Expand All @@ -58,14 +63,14 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-08-03T20:33:34.685995Z",
"start_time": "2023-08-03T20:33:34.605994800Z"
"end_time": "2023-10-16T14:01:36.593618900Z",
"start_time": "2023-10-16T14:01:36.567619700Z"
}
}
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 11,
"outputs": [],
"source": [
"// 初始化\n",
Expand All @@ -75,8 +80,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-08-03T20:33:36.218529400Z",
"start_time": "2023-08-03T20:33:36.163528200Z"
"end_time": "2023-10-16T14:01:36.871285Z",
"start_time": "2023-10-16T14:01:36.836285100Z"
}
}
},
Expand Down Expand Up @@ -108,8 +113,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-08-03T20:33:37.204772Z",
"start_time": "2023-08-03T20:33:36.838075300Z"
"end_time": "2023-10-15T20:52:26.110974700Z",
"start_time": "2023-10-15T20:52:25.724412300Z"
}
}
},
Expand All @@ -128,6 +133,67 @@
}
}
},
{
"cell_type": "code",
"execution_count": 4,
"outputs": [],
"source": [
"// 增量翻译:使用过去的映射表翻译当前的翻译文件\n",
"@file:DependsOn(\"com.google.code.gson:gson:2.10.1\")\n",
"\n",
"import com.google.gson.Gson\n",
"import kotlinx.serialization.json.jsonArray\n",
"import kotlinx.serialization.json.jsonObject\n",
"\n",
"val untranslatedFile = File(workDirPath, mappingKeyFileName)\n",
"val untranslatedText = untranslatedFile.readText()\n",
"val untranslatedList = Gson().fromJson<List<String>>(untranslatedText, ArrayList::class.java)\n",
"\n",
"val untranslatedOldFile = File(workDirPath, mappingKeyFileNameOld)\n",
"val untranslatedOldText = untranslatedOldFile.readText()\n",
"val untranslatedOldList = Gson().fromJson<List<String>>(untranslatedOldText, ArrayList::class.java)\n",
"\n",
"val translatedOldFile = File(workDirPath, mappingValueFileNameOld)\n",
"val translatedOldText = translatedOldFile.readText()\n",
"val translatedOldList = Gson().fromJson<List<String>>(translatedOldText, ArrayList::class.java)\n",
"\n",
"val patchedKeyList = mutableListOf<String>()\n",
"var unpatchList = mutableListOf<String>()\n",
"val patchList = untranslatedList.mapNotNull { key ->\n",
" val oldIndex = untranslatedOldList.indexOf(key)\n",
" if (oldIndex != -1) {\n",
" patchedKeyList.add(key)\n",
" translatedOldList[oldIndex]\n",
" } else {\n",
" // 将未翻译的内容追加到末尾\n",
" unpatchList.add(key)\n",
" null\n",
" }\n",
"}\n",
"// 写入翻译文件并更新原映射关系\n",
"File(workDirPath, mappingKeyFileName).writeText(Gson().toJson(patchedKeyList + unpatchList))\n",
"File(workDirPath, mappingValueFileName).writeText(Gson().toJson(patchList + unpatchList))"
],
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-10-16T13:53:54.760875200Z",
"start_time": "2023-10-16T13:53:54.063761200Z"
}
}
},
{
"cell_type": "code",
"execution_count": null,
"outputs": [],
"source": [
"// 检查翻译正确性\n",
"// todo\n"
],
"metadata": {
"collapsed": false
}
},
{
"cell_type": "code",
"execution_count": 12,
Expand Down Expand Up @@ -155,8 +221,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-08-03T20:46:09.526253500Z",
"start_time": "2023-08-03T20:46:09.410253200Z"
"end_time": "2023-10-16T14:01:48.674772600Z",
"start_time": "2023-10-16T14:01:48.552772600Z"
}
}
},
Expand All @@ -168,7 +234,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"替换完成,共完成 576 次替换\r\n"
"替换完成,共完成 699 次替换\r\n"
]
}
],
Expand Down Expand Up @@ -199,8 +265,8 @@
"metadata": {
"collapsed": false,
"ExecuteTime": {
"end_time": "2023-08-03T20:46:12.587996400Z",
"start_time": "2023-08-03T20:46:12.481994500Z"
"end_time": "2023-10-16T14:02:10.992593200Z",
"start_time": "2023-10-16T14:02:10.872593800Z"
}
}
},
Expand Down

0 comments on commit e9e0726

Please sign in to comment.