R3EXS 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: de2534679ea7494f92b68a8a2c2cb9c891fad4aa9eb4f6944bcf17df32eaf007
4
+ data.tar.gz: 17c75c67f0480d827ff5ad1793719055393cecca2b8c254f9ba2e2e2a28ddd75
5
+ SHA512:
6
+ metadata.gz: 8b7d2535642547ebcebc92cb04588453712b60dfb4ae2f1d82240758b522909fcb562928c50790a9629be99bb6651e60d9c338c986de6343f2bb6d4eaf216a3b
7
+ data.tar.gz: 13bac017d05e9ff48326045d31d90ddec86b6ea964f5e250833bda5a99f7c9088c6fcbbe887f7e877b531885061185a6952aec65d99bcb79a09c9541eeb0e472
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 LuoTat
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,260 @@
1
+ # R3EXS
2
+
3
+ RGSS3_Extract_Strings_Tool
4
+
5
+ <p style="text-align: center;">一个用来提取和翻译 RGSS3 游戏引擎的字符串的工具</p>
6
+
7
+ [**简体中文**](README.md)&nbsp;&nbsp;&nbsp;[**English**](README_EN.md)
8
+
9
+ ## 目录
10
+
11
+ - [简介](#简介)
12
+ - [特点](#特点)
13
+ - [功能列表](#功能列表)
14
+ - [安装方法](#安装方法)
15
+ - [使用方法](#使用方法)
16
+ - [项目构建](#项目构建)
17
+ - [项目文档](#项目文档)
18
+ - [友情链接](#友情链接)
19
+
20
+ ## [简介](#目录)
21
+
22
+ R3EXS 是一个基于 Ruby 语言,用来提取和翻译 RGSS3 游戏里字符串的 gem
23
+
24
+ ## [特点](#目录)
25
+
26
+ 使用 [Prism](https://github.com/ruby/prism) 实现了对 Ruby 脚本中的字符串和符号的精准提取
27
+
28
+ ## [功能列表](#目录)
29
+
30
+ 1. [解包 Game.rgss3a 文件](#解包-Game.rgss3a-文件)
31
+ 2. [序列化 rvdata2 文件为 json 格式](#序列化-rvdata2-文件为-json-格式)
32
+ 3. [反序列化 json 文件为 rvdata2 格式](#反序列化-json-文件为-rvdata2-格式)
33
+ 4. [提取所有的字符串](#提取所有的字符串)
34
+ 5. [注入所有的字符串](#注入所有的字符串)
35
+
36
+ ## [安装方法](#目录)
37
+
38
+ ### 使用 RubyGems 安装
39
+
40
+ 1. 安装 [Ruby](https://www.ruby-lang.org/zh_cn/) (要附带安装 Devkit 来支持编译 C 扩展)
41
+ 2. 安装 [R3EXS](https://rubygems.org/gems/r3exs) gem
42
+
43
+ ```bash
44
+ gem install R3EXS
45
+ ```
46
+
47
+ ### 直接下载 exe 可执行文件
48
+
49
+ 点击下载 [R3EXS.exe](https://github.com/LuoTat/R3EXS/releases)
50
+
51
+ 使用 [Ocran](https://github.com/Largo/ocran) 和 [Tebako](https://github.com/tamatebako/tebako) 两个打包工具
52
+
53
+ `Windows` 环境提供 `R3EXS_Ocran` 和 `R3EXS_Tebako`
54
+
55
+ `Linux (GLIBC>=2.31)` 环境提供 `R3EXS_Tebako`
56
+
57
+ 在首次运行时会解压 Ruby 环境,所以首次运行会比较慢
58
+
59
+ ## [使用方法](#目录)
60
+
61
+ 以下代码均假设在游戏根目录下运行,确保 `./Game.rgss3a` 文件存在,或者已经解包到 `./Data` 文件夹下
62
+
63
+ ~~如果你喜欢疯狂输出的控制台或者觉得运行太快~~,请开启 `--verbose` 选项
64
+
65
+ ### [解包 Game.rgss3a 文件](#功能列表)
66
+
67
+ ```bash
68
+ NAME
69
+ decrypt - 解码 Game.rgss3a 文件
70
+
71
+ SYNOPSIS
72
+
73
+ R3EXS [global options] decrypt [command options] <Game.rgss3a file path>
74
+
75
+ COMMAND OPTIONS
76
+ -o, --output_dir=DIRECTORY - *.rvdata2 文件的输出目录 (默认: ./)
77
+ ```
78
+
79
+ 示例代码
80
+
81
+ ```bash
82
+ R3EXS decrypt ./Game.rgss3a
83
+ ```
84
+
85
+ ### [序列化 rvdata2 文件为 json 格式](#功能列表)
86
+
87
+ ```bash
88
+ NAME
89
+ rvdata2_json - 将 rvdata2 文件序列化为 json 格式
90
+
91
+ SYNOPSIS
92
+
93
+ R3EXS [global options] rvdata2_json [command options] <the *.rvdata2 dir>
94
+
95
+ COMMAND OPTIONS
96
+ -c, --[no-]complete - 开启完全序列化
97
+ -n, --[no-]with_notes - 开启注释序列化
98
+ -o, --output_dir=DIRECTORY - *.json 文件的输出目录 (默认: ./JSON)
99
+ -s, --[no-]with_scripts - 开启 Scripts 脚本序列化
100
+ ```
101
+
102
+ 示例代码
103
+
104
+ ```bash
105
+ // 只序列化可翻译部分
106
+ R3EXS rvdata2_json ./Data
107
+
108
+ // 完全序列化
109
+ R3EXS rvdata2_json -c ./Data
110
+ ```
111
+
112
+ ### [反序列化 json 文件为 rvdata2 格式](#功能列表)
113
+
114
+ ```bash
115
+ NAME
116
+ json_rvdata2 - 将 json 文件反序列化为 rvdata2 文件
117
+
118
+ SYNOPSIS
119
+
120
+ R3EXS [global options] json_rvdata2 [command options] <the *.json dir>
121
+
122
+ COMMAND OPTIONS
123
+ -c, --[no-]complete - 开启完全反序列化
124
+ -o, --output_dir=DIRECTORY - 新的 *.rvdata2 文件的输出路径 (默认: ./Data_NEW)
125
+ -r, --original_dir=DIRECTORY - 原始的 *.rvdata2 文件路径 (默认: ./Data)
126
+ -s, --[no-]with_scripts - 开启 Scripts 脚本反序列化
127
+ ```
128
+
129
+ 示例代码
130
+
131
+ ```bash
132
+ // 如果在 rvdata2_json 时没有开启 --complete 选项
133
+ // 则必须提供 --original_dir 或是当前目录下存在 ./Data 文件夹
134
+ R3EXS json_rvdata2 ./JSON
135
+
136
+ // 如果在 rvdata2_json 时开启 --complete 选项
137
+ // 则不需要提供 --original_dir 选项
138
+ R3EXS json_rvdata2 -c ./JSON
139
+ ```
140
+
141
+ ### [提取所有的字符串](#功能列表)
142
+
143
+ ```bash
144
+ NAME
145
+ ex_strings - 提取所有的字符串
146
+
147
+ SYNOPSIS
148
+
149
+ R3EXS [global options] ex_strings [command options] <the *.json dir>
150
+
151
+ COMMAND OPTIONS
152
+ -o, --output_dir=DIRECTORY - ManualTransFile.json 或 ManualTransFile_scripts.json 文件的输出目录 (默认: ./)
153
+ -p, --[no-]with_scripts_separate - 开启 Scripts 脚本单独提取到 ManualTransFile_scripts.json 文件
154
+ -s, --[no-]with_scripts - 开启 Scripts 脚本提取
155
+ -y, --[no-]with_symbol - 开启 Scripts 脚本中的 Symbol 提取
156
+ ```
157
+
158
+ 示例代码
159
+
160
+ ```bash
161
+ // 不提取 Scripts 脚本
162
+ R3EXS ex_strings ./JSON
163
+
164
+ // 提取 Scripts 脚本
165
+ R3EXS ex_strings -s ./JSON
166
+
167
+ // 提取 Scripts 脚本并单独提取到 ManualTransFile_scripts.json 文件
168
+ R3EXS ex_strings -s -p ./JSON
169
+ ```
170
+
171
+ ### [注入所有的字符串](#功能列表)
172
+
173
+ ```bash
174
+ NAME
175
+ in_strings - 注入所有的字符串
176
+
177
+ SYNOPSIS
178
+
179
+ R3EXS [global options] in_strings [command options] <the *.json dir>
180
+
181
+ COMMAND OPTIONS
182
+ -m, --manualtransfile_path=FILE - ManualTransFile.json 文件路径 (默认: ./ManualTransFile.json)
183
+ -o, --output_dir=DIRECTORY - 新的 *.json 文件的输出目录 (默认: ./JSON_NEW)
184
+ -s, --[no-]with_scripts - 开启 Scripts 脚本注入
185
+ ```
186
+
187
+ 示例代码
188
+
189
+ ```bash
190
+ // 不注入到 Scripts 脚本
191
+ R3EXS in_strings ./JSON
192
+
193
+ // 注入到 Scripts 脚本
194
+ R3EXS in_strings -s ./JSON
195
+ ```
196
+
197
+ ---
198
+
199
+ 想要获取更多帮助,使用
200
+
201
+ ```bash
202
+ R3EXS help
203
+ ```
204
+
205
+ ## [项目构建](#目录)
206
+
207
+ 如果想要构建项目并运行,首先克隆整个项目
208
+
209
+ ```bash
210
+ git clone git@github.com:LuoTat/R3EXS.git
211
+ ```
212
+
213
+ 然后使用 `bundle` 安装依赖
214
+
215
+ ```bash
216
+ bundle install
217
+ ```
218
+
219
+ 最后编译 C 扩展即可
220
+
221
+ ```bash
222
+ rake compile
223
+ ```
224
+
225
+ ---
226
+
227
+ 构建本地文档
228
+
229
+ ```bash
230
+ yardoc
231
+ ```
232
+
233
+ 构建 `R3EXS_Ocran.exe` 可执行文件
234
+
235
+ ```bash
236
+ rake ocran
237
+ ```
238
+
239
+ 查看所有 rake 任务
240
+
241
+ ```bash
242
+ rake -T
243
+ ```
244
+
245
+ ## [项目文档](#目录)
246
+
247
+ [R3EXS Api 文档](https://rubydoc.info/gems/R3EXS)
248
+
249
+ ## [友情链接](#目录)
250
+
251
+ - [oj](https://github.com/ohler55/oj)
252
+ - [gli](https://github.com/davetron5000/gli)
253
+ - [Prism](https://github.com/ruby/prism)
254
+ - [Ocran](https://github.com/Largo/ocran)
255
+ - [Tebako](https://github.com/tamatebako/tebako)
256
+ - [RGSS3](https://github.com/taroxd/RGSS3)
257
+ - [rvdata2json](https://github.com/DICE2000/rvdata2json)
258
+ - [VX-Ace-Translator](https://github.com/AhmedAhmedEG/VX-Ace-Translator)
259
+ - [RPGMakerDecrypter](https://github.com/uuksu/RPGMakerDecrypter)
260
+ - [RPGMaker VX Ace F1-Manual](https://miaowm5.github.io/RMVA-F1)
data/README_EN.md ADDED
@@ -0,0 +1,260 @@
1
+ # R3EXS
2
+
3
+ RGSS3_Extract_Strings_Tool
4
+
5
+ <p style="text-align: center;">A tool for extracting and translating strings from the RGSS3 game engine.</p>
6
+
7
+ [**English**](README_EN.md)&nbsp;&nbsp;&nbsp;[**简体中文**](README.md)
8
+
9
+ ## Contents
10
+
11
+ - [Synopsis](#synopsis)
12
+ - [Features](#features)
13
+ - [Function List](#function-list)
14
+ - [Installation](#installation)
15
+ - [Usage](#usage)
16
+ - [Project Build](#project-build)
17
+ - [Documentation](#documentation)
18
+ - [Links](#links)
19
+
20
+ ## [Synopsis](#contents)
21
+
22
+ R3EXS is a gem built using Ruby, designed to extract and translate strings in RGSS3 games.
23
+
24
+ ## [Features](#contents)
25
+
26
+ It uses [Prism](https://github.com/ruby/prism) to accurately extract strings and symbols from Ruby scripts.
27
+
28
+ ## [Function List](#contents)
29
+
30
+ 1. [Unpack Game.rgss3a file](#unpack-game-rgss3a-file)
31
+ 2. [Serialize rvdata2 files to JSON file](#serialize-rvdata2-files-to-json-file)
32
+ 3. [Deserialize JSON files to rvdata2 file](#deserialize-json-files-to-rvdata2-file)
33
+ 4. [Extract all strings](#extract-all-strings)
34
+ 5. [Inject all strings](#inject-all-strings)
35
+
36
+ ## [Installation](#contents)
37
+
38
+ ### Install using RubyGems
39
+
40
+ 1. Install [Ruby](https://www.ruby-lang.org/en/) (make sure to install Devkit to support compiling C extensions)
41
+ 2. Install the [R3EXS](https://rubygems.org/gems/r3exs) gem
42
+
43
+ ```bash
44
+ gem install R3EXS
45
+ ```
46
+
47
+ ### Download executable file directly
48
+
49
+ Click to download [R3EXS.exe](https://github.com/LuoTat/R3EXS/releases)
50
+
51
+ Since the R3EXS.exe file is packaged using [Ocran](https://github.com/Largo/ocran) and [Tebako](https://github.com/tamatebako/tebako)
52
+
53
+ The `Windows` environment provides `R3EXS_Ocran` and `R3EXS_Tebako`
54
+
55
+ The `Linux (GLIBC >= 2.31)` environment provides `R3EXS_Tebako`
56
+
57
+ it will extract the Ruby environment the first time it runs, so the first run may be slower.
58
+
59
+ ## [Usage](#contents)
60
+
61
+ The following commands assume they are run in the game’s root directory, ensuring the `./Game.rgss3a` file exists or has already been unpacked into the `./Data` folder.
62
+
63
+ ~~If you enjoy a crazy amount of console output or feel like the execution is too fast~~, please enable the `--verbose` option.
64
+
65
+ ### [Unpack Game.rgss3a file](#function-list)
66
+
67
+ ```bash
68
+ NAME
69
+ decrypt - Decrypt the Game.rgss3a file
70
+
71
+ SYNOPSIS
72
+
73
+ R3EXS [global options] decrypt [command options] <Game.rgss3a file path>
74
+
75
+ COMMAND OPTIONS
76
+ -o, --output_dir=DIRECTORY - The *.rvdata2 output dir (default: ./)
77
+ ```
78
+
79
+ Example code:
80
+
81
+ ```bash
82
+ R3EXS decrypt ./Game.rgss3a
83
+ ```
84
+
85
+ ### [Serialize rvdata2 files to JSON file](#function-list)
86
+
87
+ ```bash
88
+ NAME
89
+ rvdata2_json - Serialize rvdata2 files into JSON
90
+
91
+ SYNOPSIS
92
+
93
+ R3EXS [global options] rvdata2_json [command options] <the *.rvdata2 dir>
94
+
95
+ COMMAND OPTIONS
96
+ -c, --[no-]complete - Enable complete serialization
97
+ -n, --[no-]with_notes - Enable notes attribute serialization
98
+ -o, --output_dir=DIRECTORY - The *.json output dir (default: ./JSON)
99
+ -s, --[no-]with_scripts - Enable Scripts.rvdata2 serialization
100
+ ```
101
+
102
+ Example code:
103
+
104
+ ```bash
105
+ // Serialize only translatable parts
106
+ R3EXS rvdata2_json ./Data
107
+
108
+ // Complete serialization
109
+ R3EXS rvdata2_json -c ./Data
110
+ ```
111
+
112
+ ### [Deserialize JSON files to rvdata2 file](#function-list)
113
+
114
+ ```bash
115
+ NAME
116
+ json_rvdata2 - Deserialize JSON files back into rvdata2
117
+
118
+ SYNOPSIS
119
+
120
+ R3EXS [global options] json_rvdata2 [command options] <the *.json dir>
121
+
122
+ COMMAND OPTIONS
123
+ -c, --[no-]complete - Enable complete deserialization
124
+ -o, --output_dir=DIRECTORY - The NEW *.rvdata2 output dir (default: ./Data_NEW)
125
+ -r, --original_dir=DIRECTORY - The ORIGINAL *.rvdata2 dir (default: ./Data)
126
+ -s, --[no-]with_scripts - Enable Scripts JSON deserialization
127
+ ```
128
+
129
+ Example code:
130
+
131
+ ```bash
132
+ // If --complete was not enabled in rvdata2_json
133
+ // Provide --original_dir or ensure ./Data folder exists in the current directory
134
+ R3EXS json_rvdata2 ./JSON
135
+
136
+ // If --complete was enabled in rvdata2_json
137
+ // --original_dir is not required
138
+ R3EXS json_rvdata2 -c ./JSON
139
+ ```
140
+
141
+ ### [Extract all strings](#function-list)
142
+
143
+ ```bash
144
+ NAME
145
+ ex_strings - Extract all strings
146
+
147
+ SYNOPSIS
148
+
149
+ R3EXS [global options] ex_strings [command options] <the *.json dir>
150
+
151
+ COMMAND OPTIONS
152
+ -o, --output_dir=DIRECTORY - The ManualTransFile.json or ManualTransFile_scripts.json output dir (default: ./)
153
+ -p, --[no-]with_scripts_separate - Enable Scripts extraction into a separate ManualTransFile_scripts.json
154
+ -s, --[no-]with_scripts - Enable Scripts extraction
155
+ -y, --[no-]with_symbol - Enable Symbol extraction in Scripts extraction
156
+ ```
157
+
158
+ Example code:
159
+
160
+ ```bash
161
+ // Do not extract Scripts
162
+ R3EXS ex_strings ./JSON
163
+
164
+ // Extract Scripts
165
+ R3EXS ex_strings -s ./JSON
166
+
167
+ // Extract Scripts and separate them into ManualTransFile_scripts.json
168
+ R3EXS ex_strings -s -p ./JSON
169
+ ```
170
+
171
+ ### [Inject all strings](#function-list)
172
+
173
+ ```bash
174
+ NAME
175
+ in_strings - Inject all strings
176
+
177
+ SYNOPSIS
178
+
179
+ R3EXS [global options] in_strings [command options] <the *.json dir>
180
+
181
+ COMMAND OPTIONS
182
+ -m, --manualtransfile_path=FILE - The ManualTransFile.json path (default: ./ManualTransFile.json)
183
+ -o, --output_dir=DIRECTORY - The NEW *.json output dir (default: ./JSON_NEW)
184
+ -s, --[no-]with_scripts - Enable Scripts Injection
185
+ ```
186
+
187
+ Example code:
188
+
189
+ ```bash
190
+ // Do not inject into Scripts
191
+ R3EXS in_strings ./JSON
192
+
193
+ // Inject into Scripts
194
+ R3EXS in_strings -s ./JSON
195
+ ```
196
+
197
+ ---
198
+
199
+ For more information, use
200
+
201
+ ```bash
202
+ R3EXS help
203
+ ```
204
+
205
+ ## [Project Build](#contents)
206
+
207
+ To build and run the project, first clone the entire repository:
208
+
209
+ ```bash
210
+ git clone git@github.com:LuoTat/R3EXS.git
211
+ ```
212
+
213
+ Then use `bundle` to install dependencies:
214
+
215
+ ```bash
216
+ bundle install
217
+ ```
218
+
219
+ Finally, compile the C extension:
220
+
221
+ ```bash
222
+ rake compile
223
+ ```
224
+
225
+ ---
226
+
227
+ Build the local documentation:
228
+
229
+ ```bash
230
+ yardoc
231
+ ```
232
+
233
+ Build the `R3EXS_Ocran.exe` file:
234
+
235
+ ```bash
236
+ rake ocran
237
+ ```
238
+
239
+ View all rake tasks:
240
+
241
+ ```bash
242
+ rake -T
243
+ ```
244
+
245
+ ## [Documentation](#contents)
246
+
247
+ [R3EXS Api Documentation](https://rubydoc.info/gems/R3EXS)
248
+
249
+ ## [Links](#contents)
250
+
251
+ - [oj](https://github.com/ohler55/oj)
252
+ - [gli](https://github.com/davetron5000/gli)
253
+ - [Prism](https://github.com/ruby/prism)
254
+ - [Ocran](https://github.com/Largo/ocran)
255
+ - [Tebako](https://github.com/tamatebako/tebako)
256
+ - [RGSS3](https://github.com/taroxd/RGSS3)
257
+ - [rvdata2json](https://github.com/DICE2000/rvdata2json)
258
+ - [VX-Ace-Translator](https://github.com/AhmedAhmedEG/VX-Ace-Translator)
259
+ - [RPGMakerDecrypter](https://github.com/uuksu/RPGMakerDecrypter)
260
+ - [RPGMaker VX Ace F1-Manual](https://miaowm5.github.io/RMVA-F1)