forked from Public-Mirror/Textractor
Simplified Chinese translation & README (#83)
This commit is contained in:
parent
c89b05cf42
commit
29a3bb0a6f
@ -1,6 +1,6 @@
|
||||
# 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)
|
||||
|
||||
@ -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)
|
||||
- Spanish translation by [scese250](https://github.com/scese250)
|
||||
- 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 originally made by [Stomp](http://www.hongfire.com/forum/member/325894-stomp)
|
||||
- VNR engine made by [jichi](https://archive.is/prJwr)
|
||||
|
65
README_SC.md
Normal file
65
README_SC.md
Normal 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 的人!
|
@ -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";
|
||||
CURRENT_FILTER = u8"Actualmente filtrando: ";
|
||||
#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;
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user