Simplified Chinese translation & README (#83)

This commit is contained in:
tinyAdapter 2019-02-01 00:59:21 +08:00 committed by Akash Mozumdar
parent c89b05cf42
commit 29a3bb0a6f
3 changed files with 153 additions and 1 deletions

View File

@ -1,6 +1,6 @@
# Textractor # Textractor
[日本語](https://github.com/Artikash/Textractor/blob/master/README_JP.md) [Español](https://github.com/Artikash/Textractor/blob/master/README_ES.md) [日本語](https://github.com/Artikash/Textractor/blob/master/README_JP.md) [Español](https://github.com/Artikash/Textractor/blob/master/README_ES.md) [简体中文](https://github.com/Artikash/Textractor/blob/master/README_SC.md)
## [Tutorial Video](https://youtu.be/eecEOacF6mw) ## [Tutorial Video](https://youtu.be/eecEOacF6mw)
@ -54,6 +54,7 @@ If you're on this list and want your link changed let me know.
- Textractor made by [Me](https://github.com/Artikash) and [DoumanAsh](https://github.com/DoumanAsh) - Textractor made by [Me](https://github.com/Artikash) and [DoumanAsh](https://github.com/DoumanAsh)
- Spanish translation by [scese250](https://github.com/scese250) - Spanish translation by [scese250](https://github.com/scese250)
- Turkish translation by niisokusu - Turkish translation by niisokusu
- Simplified Chinese translation by [tinyAdapter](https://github.com/tinyAdapter)
- ITHVNR updated by [mireado](https://github.com/mireado) and [Eguni](https://github.com/Eguni) - ITHVNR updated by [mireado](https://github.com/mireado) and [Eguni](https://github.com/Eguni)
- ITHVNR originally made by [Stomp](http://www.hongfire.com/forum/member/325894-stomp) - ITHVNR originally made by [Stomp](http://www.hongfire.com/forum/member/325894-stomp)
- VNR engine made by [jichi](https://archive.is/prJwr) - VNR engine made by [jichi](https://archive.is/prJwr)

65
README_SC.md Normal file
View File

@ -0,0 +1,65 @@
# Textractor
## 概述
**Textractor** (曾用名: NextHooker) 是一个基于 [ITHVNR](http://www.hongfire.com/forum/showthread.php/438331-ITHVNR-ITH-with-the-VNR-engine), 为 Windows/Wine 开发的开源 x86/x64 文本提取器.<br>
![它工作起来的样子](https://media.discordapp.net/attachments/330538905072041994/539414661796200448/unknown.png?width=1072&height=398)
## 下载
Textractor 的发行版可以在[这里](https://github.com/Artikash/Textractor/releases)找到.
老版 ITHVNR 可以在[这里](https://github.com/mireado/ITHVNR/releases)找到.
## 特点
- 高度可扩展
- 自动从很多游戏中提取 (包括一些没有被 VNR 支持的!)
- 通过 /H "hook" 码提取文本 (支持大多数 AGTH 码)
- 使用 /R "read" 码直接抽取文本
## 扩展
通过我的[扩展示例项目](https://github.com/Artikash/ExampleExtension)查看如何构建扩展.<br>
通过 extensions 文件夹查看扩展能够做什么.
## 贡献
欢迎一切贡献!如有任何关于代码的疑问,请向 akashmozumdar@gmail.com 发邮件 (不,我并不忙!).<br>
你应当使用创建 PR 的标准过程 (分岔 (fork), 分支 (branch), 提交变化, 创建从你的分支到我的 master 分支的 PR).<br>
提供翻译贡献很简单: 只需翻译 include/text.h 中的字符串和这份 README 即可.
## 编译
编译 *Textractor* 前, 你应当获取支持 CMake 的 Visual Studio, 以及 Qt 5.11 版.<br>
之后就可以使用 Visual Studio 打开文件夹, 然后构建. 运行 Textractor.exe.
## 项目架构
宿主 (位于 GUI/host 文件夹) 向目标进程注入 vnrhook.dll (由 vnrhook 文件夹创建) 并通过两个管道文件互联.<br>
宿主向 hostPipe 写入, vnrhook 向 hookPipe 写入.<br>
vnrhook 等待管道连接, 之后向一些文本输出函数 (如 TextOut, GetGlyphOutline) 注入一系列指令, 使得它们的输入被沿着管道发送.<br>
其它关于钩子的信息通过一个被 TextHook 类保有引用的文件视图 (曾用名: 段对象) 共享.<br>
之后, 宿主通过管道接收到的文本在传回 GUI 前被简单处理.<br>
最后, GUI 在显示文本前将其分发给扩展.
## 开发者
如果你在这个列表上,并且想要改变你的链接,请告诉我.
- 由 [](https://github.com/Artikash) 和 [DoumanAsh](https://github.com/DoumanAsh) 开发 Textractor
- 由 [scese250](https://github.com/scese250) 提供西班牙语翻译
- 由 niisokusu 提供土耳其语翻译
- 由 [tinyAdapter](https://github.com/tinyAdapter) 提供简体中文翻译
- 由 [mireado](https://github.com/mireado) 和 [Eguni](https://github.com/Eguni) 提供 ITHVNR 更新
- 由 [Stomp](http://www.hongfire.com/forum/member/325894-stomp) 开发初版 ITHVNR
- 由 [jichi](https://archive.is/prJwr) 开发 VNR 引擎
- 由 [Andys](https://github.com/AndyScull) 提供 ITH 更新
- 由 [kaosu](http://www.hongfire.com/forum/member/562651-kaosu) 开发初版 ITH
- 由 [xupefei](https://github.com/xupefei) 开发 Locale Emulator 库
- 由 [TsudaKageyu](https://github.com/TsudaKageyu) 开发 MinHook 库
## 特别感谢
- 所有添加 issue 的人!

View File

@ -218,5 +218,91 @@ Clic y arrastra los bordes de la ventana para moverla, o en la esquina inferior
INVALID_REGEX = u8"Regex inválido"; INVALID_REGEX = u8"Regex inválido";
CURRENT_FILTER = u8"Actualmente filtrando: "; CURRENT_FILTER = u8"Actualmente filtrando: ";
#endif // SPANISH #endif // SPANISH
#ifdef SIMPLIFIED_CHINESE
ATTACH = u8"附加到游戏";
LAUNCH = u8"启动游戏";
DETACH = u8"从游戏分离";
ADD_HOOK = u8"添加钩子";
SAVE_HOOKS = u8"保存钩子";
SETTINGS = u8"设置";
EXTENSIONS = u8"扩展";
SELECT_PROCESS = u8"选择进程";
ATTACH_INFO = u8R"(如果没看见想要附加的进程,尝试使用管理员权限运行
ID)";
SEARCH_GAME = u8"从计算机中选择";
PROCESSES = u8"进程 (*.exe)";
CODE_INFODUMP = u8R"(搜索文本
S[codepage#]text
read (R码)
R{S|Q|V}[codepage#][*deref_offset]@addr
hook (H码)
H{A|B|W|S|Q|V}[N][codepage#]data_offset[*deref_offset1][:split_offset[*deref_offset2]]@addr[:module[:func]]
使16
932 (Shift-JIS)
A/B: (little endian) / (big endian)
W: UTF-16
S/Q/V: /UTF-16/UTF-8
(data) / (split)
-4 EAX, -8 ECX, -C EDX, -10 EBX, -14 ESP, -18 EBP, -1C ESI, -20 EDI
* pointer+deref_offset)";
SAVE_SETTINGS = u8"保存设置";
EXTEN_WINDOW_INSTRUCTIONS = u8R"(从计算机拖拽扩展 (.dll) 文件到这里来添加
(使)
使 delete )";
WINDOW = u8"窗口";
USE_JP_LOCALE = u8"模拟日本区域设置?";
DEFAULT_CODEPAGE = u8"默认代码页";
FLUSH_DELAY = u8"刷新延迟";
MAX_BUFFER_SIZE = u8"最大缓冲区长度";
CONSOLE = L"控制台";
CLIPBOARD = L"剪贴板";
ABOUT = L"Textractor v" CURRENT_VERSION LR"( 作者: Artikash (email: akashmozumdar@gmail.com)
: https://github.com/Artikash/Textractor
: https://www.youtube.com/watch?v=eecEOacF6mw
Textractor
()
GPLv3
: )";
UPDATE_AVAILABLE = L"有可用的更新: 请从 https://github.com/Artikash/Textractor/releases 下载";
ALREADY_INJECTED = L"Textractor: 已经注入";
ARCHITECTURE_MISMATCH = L"Textractor: 架构不匹配: 请尝试使用 32 位的 Textractor";
INJECT_FAILED = L"Textractor: 无法注入";
LAUNCH_FAILED = L"Textractor: 无法启动";
INVALID_CODE = L"Textractor: 无效代码";
INVALID_CODEPAGE = L"Textractor: 无法转换文本 (无效的代码页?)";
PIPE_CONNECTED = u8"Textractor: 管道已连接";
INSERTING_HOOK = u8"Textractor: 注入钩子: %s";
REMOVING_HOOK = u8"Textractor: 移除钩子: %s";
HOOK_FAILED = u8"Textractor: 钩子注入失败";
TOO_MANY_HOOKS = u8"Textractor: 钩子太多: 无法注入";
NOT_ENOUGH_TEXT = u8"Textractor: 没有足够的文本来精确搜索";
FUNC_MISSING = u8"Textractor: 函数不存在";
MODULE_MISSING = u8"Textractor: 模块不存在";
GARBAGE_MEMORY = u8"Textractor: 内存一直在变,读了也没用";
SEND_ERROR = u8"Textractor: Sender 错误 (H码可能不正确)";
READ_ERROR = u8"Textractor: Reader 错误 (R码可能不正确)";
HIJACK_ERROR = u8"Textractor: Hijack 错误";
COULD_NOT_FIND = u8"Textractor: 无法找到文本";
SELECT_LANGUAGE = u8"选择语言";
BING_PROMPT = u8"想要使用 Bing 翻译到哪种语言?";
GOOGLE_PROMPT = u8"想要使用 Google 翻译到哪种语言?";
TOO_MANY_TRANS_REQUESTS = LR"(
: )";
TRANSLATION_ERROR = L"翻译时出错";
EXTRA_WINDOW_INFO = u8R"(右键修改设置
)";
BG_COLOR = u8"背景颜色";
TEXT_COLOR = u8"文本颜色";
FONT_SIZE = u8"字体大小";
TOPMOST = u8"总是位于最上层";
ALWAYS_ON_TOP = u8"将本窗口在保持最上层";
REGEX_FILTER = u8"正则表达式过滤器";
INVALID_REGEX = u8"无效的正则表达式";
CURRENT_FILTER = u8"当前过滤中: ";
#endif // SIMPLIFIED_CHINESE
return 0; return 0;
}); });