Cnass commited on
Commit
4bf295f
·
verified ·
1 Parent(s): e26c216

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +34 -15
README.md CHANGED
@@ -63,10 +63,10 @@ layouts are detected automatically.
63
 
64
  ### What gets translated
65
 
66
- Only dialogue, and deliberately so. RPG Maker keeps executable script, plugin
67
- bindings, asset filenames and engine identifiers in the same arrays as the
68
- lines an actor speaks, and translating one of those breaks the game rather
69
- than mistranslating it.
70
 
71
  | event code | content | translated |
72
  |---|---|---|
@@ -77,10 +77,25 @@ than mistranslating it.
77
  | 356 / 357 | Plugin Command | no |
78
  | 320 / 324 / 325 | Change Name / Nickname / Profile | no |
79
 
80
- Database files (`Actors.json`, `Items.json`, …), `System.json` terms and
81
- `plugins.js` are left untouched.
82
 
83
- Three details make the output safe to ship:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
84
 
85
  - **Message boxes stay whole.** A run of consecutive 401 commands is one box
86
  split across lines, not separate sentences, so the run is merged and
@@ -92,15 +107,19 @@ Three details make the output safe to ship:
92
  whole project: in a real game an 800-slot map set collapses to ~150 unique
93
  strings, and a "Yes" that appears 300 times costs one generation. It also
94
  keeps a 102 choice and its 402 mirror automatically identical.
95
- - **A mangled control code is never written.** After each translation the
96
- multiset of control codes (`\C[2]`, `\N[1]`, `\V[3]`, `\I[5]`,
97
- `<WordWrap>`, …) is compared against the source. On a mismatch the source
98
- line is kept and the string is listed under *review* in the UI — a leftover
99
- English line is cosmetic, a broken `\C[2` is a rendering bug in the
100
- shipped game.
 
 
101
 
102
  Untranslated strings keep their source text, so the download is a playable
103
- game at any point, not just when the run finishes.
 
 
104
 
105
  ### Project endpoints
106
 
@@ -108,7 +127,7 @@ game at any point, not just when the run finishes.
108
  |---|---|---|
109
  | `POST` | `/project/upload` | multipart zip; unpacks, detects MV/MZ, indexes dialogue |
110
  | `POST` | `/project/{id}/start` | begin (or resume) translating; body `{"target_lang":"tr"}` |
111
- | `GET` | `/project/{id}/status` | overall %, per-file %, review list |
112
  | `POST` | `/project/{id}/cancel` | stop after in-flight strings finish |
113
  | `GET` | `/project/{id}/download` | rebuilt zip, same folder layout |
114
  | `DELETE` | `/project/{id}` | remove immediately |
 
63
 
64
  ### What gets translated
65
 
66
+ Dialogue and interface text, and nothing else. RPG Maker keeps executable
67
+ script, plugin bindings, asset filenames and engine identifiers in the same
68
+ arrays as the lines an actor speaks, and translating one of those breaks the
69
+ game rather than mistranslating it.
70
 
71
  | event code | content | translated |
72
  |---|---|---|
 
77
  | 356 / 357 | Plugin Command | no |
78
  | 320 / 324 / 325 | Change Name / Nickname / Profile | no |
79
 
80
+ Plus the interface text in `System.json` — the menu and options screens
81
+ wrapped around that dialogue:
82
 
83
+ | System.json key | content | translated |
84
+ |---|---|---|
85
+ | `terms.commands` | New Game, Continue, Save, Options, Attack, Buy/Sell | **yes** |
86
+ | `terms.messages` | BGM/SE Volume, Always Dash, battle log templates | **yes** |
87
+ | `terms.basic` / `terms.params` | Level, HP, MP, Attack, Defense … | **yes** |
88
+ | `elements`, `equipTypes`, `skillTypes`, `weaponTypes`, `armorTypes` | equip and status screen labels | **yes** |
89
+ | `gameTitle` | the game's name | no — a proper name, like character names |
90
+ | `currencyUnit` | usually a one-letter symbol (`G`) | no |
91
+ | `switches`, `variables` | developer labels the player never sees | no |
92
+
93
+ Null and empty entries are left as they are: RPG Maker pads these arrays to a
94
+ fixed length and index 0 is normally blank, so writing text into one would put
95
+ stray words in the menu. Database files (`Actors.json`, `Items.json`, …) and
96
+ `plugins.js` are untouched.
97
+
98
+ Two details make the output safe to ship:
99
 
100
  - **Message boxes stay whole.** A run of consecutive 401 commands is one box
101
  split across lines, not separate sentences, so the run is merged and
 
107
  whole project: in a real game an 800-slot map set collapses to ~150 unique
108
  strings, and a "Yes" that appears 300 times costs one generation. It also
109
  keeps a 102 choice and its 402 mirror automatically identical.
110
+
111
+ Translations are written exactly as the model returns them. An earlier
112
+ revision compared each translation's control codes against the source and held
113
+ back any string where they differed, but Hy-MT2 carries `\C[2]`, `\N[1]` and
114
+ the rest through on its own, so in practice that gate withheld good
115
+ translations more often than it caught bad ones. The only response still
116
+ refused is an empty one, which would blank a line in-game; strings that are
117
+ *only* control codes never reach the model at all.
118
 
119
  Untranslated strings keep their source text, so the download is a playable
120
+ game at any point, not just when the run finishes. `failed_units` in the
121
+ status counts strings where the backend itself errored — those keep their
122
+ source line too.
123
 
124
  ### Project endpoints
125
 
 
127
  |---|---|---|
128
  | `POST` | `/project/upload` | multipart zip; unpacks, detects MV/MZ, indexes dialogue |
129
  | `POST` | `/project/{id}/start` | begin (or resume) translating; body `{"target_lang":"tr"}` |
130
+ | `GET` | `/project/{id}/status` | overall %, per-file %, failure count |
131
  | `POST` | `/project/{id}/cancel` | stop after in-flight strings finish |
132
  | `GET` | `/project/{id}/download` | rebuilt zip, same folder layout |
133
  | `DELETE` | `/project/{id}` | remove immediately |