Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Star Trek: Glorious Wolf - (...) / Sorties: Dread Mac Farlane - episode 3 / News: Plein d'images cools créées par (...) / Sorties: Star Trek: Glorious Wolf - (...) / Jeux: Final Fantasy 2.0 / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

221 connectés actuellement

29183865 visiteurs
depuis l'ouverture

4130 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Kingdom Ultimate

RPG Maker VX

Alex d'Or

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [RESOLU] [Translator++] Erreur pour un nouveau projet


Gari - posté le 07/04/2020 à 11:44:10 (5899 messages postés) - honor

❤ 0

Domaine concerné: Traduction
Logiciel utilisé: Translator++
Bonjour,

J'utilise Windows 10 et j'essaye de trouver un outil de traduction pour RPG Maker XP, VX et Ace. Il s'avère que l'outil créé par King Kadelfek, Drea Maker, n'est pas compatible avec cette version.

Sur le conseil de ce dernier, j'ai donc essayé RPG Maker Trans, qui s'avère fonctionnel dans une certaine mesure : il peut décrypter avec succès certains projets, mais pas d'autres.

Il s'avère qu'il existe un autre outil de traduction, encore supporté et qui m'a paru plus accessible, Translator++, qui propose une interface d'utilisation plutôt intuitive. Le seul souci, c'est que je n'arrive pas à ouvrir de nouveau projet avec, cryptés ou non, crack ou non.

J'ai donc essayé de suivre quelques règles de bon sens :
_ enlever les espaces
_ mettre les deux fichiers (jeu et outil) sur le bureau, aka l'espace le plus neutre que je connaisse.
_ tester en mode administrateur

Et voici le résultat : après lecture des fichiers maps, ce message d'erreur s'affiche :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Warning: mb_detect_encoding(): Illegal argument in C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\function\trans.php on line 12
 
 
 
C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\3rdParty\rpgmt_cli_v4.5\rpgmt.exe C:\Users\Username\AppData\Local\Temp\c9078f8227d704dea2c831a670042db6 -p C:\Users\Username\AppData\Local\Temp\c9078f8227d704dea2c831a670042db6_patch
 
Fatal error: Uncaught com_exception: Source: Unknown
Description: Unknown in C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php:145
Stack trace:
#0 C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php(145): com->Run('C:\\Users\\Username...', 1, true)
#1 C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php(448): extractData('C:\\Users\\Username...', 'C:\\Users\\Username...')
#2 C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\loadGameInfo.php(110): extractor('C:\\Users\\Username...')
#3 {main}
  thrown in C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php on line 145
Error opening file : undefined
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be one of type string, Buffer, or URL. Received type undefined



Est-ce que certains d'entre vous ont déjà utilisé ce logiciel ? Et comment faites-vous ? L'interface est assez simple d'utilisation et le logiciel semble fonctionnel, j'ai juste un peu peur pour ce qui est des accents (mentionnés nulle part).


Roi of the Suisse - posté le 07/04/2020 à 12:01:52 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Citation:

C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php on line 145

Tu peux nous montrer ce fichier ? Qu'est-ce qu'il y a vers la ligne 145 ?

C'est un problème d'antislash ? Si tu mets un double antislash à la place du simple antislash ?
Vérifie que ton chemin est bien entre guillemets ou apostrophes.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 12:13:39 (5899 messages postés) - honor

❤ 0

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
 
<?php
set_time_limit(0);
$_PARAM['APP_PATH'] = substr(__FILE__ , 0, strrpos(__FILE__, "www".DIRECTORY_SEPARATOR));
$_PARAM['CACHE_PATH'] = $_PARAM['APP_PATH']."www\\php\\cache\\";
 
 
function isResourceExtracted($gamePath) {
        global $_PARAM;
        clearstatcache(true);
        //if (!is_file($gamePath."\\data\\System.rvdata2")) {
        if (!is_file($gamePath."\\data\\System.".$_PARAM['dataExtension'])) {
                return false;
        } else {
                return true;
        }
}
 
function extractData($gamePath, $cacheLocation) {
        // RESULT : all data will be available on cache/[game title]/data folder
        echo "RUNNING extractData function\n";
        global $_PARAM;
        
        $folderInfo = pathinfo($cacheLocation);
        
        if (!is_dir($cacheLocation)) {
                mkdir($cacheLocation, 777, true);
        }
        if (!is_dir($cacheLocation."\\data")) {
                mkdir($cacheLocation."\\data", 777, true);
        }
        if (!is_dir($cacheLocation."\\dump")) {
                mkdir($cacheLocation."\\dump", 777, true);
        }
        if (!is_dir($cacheLocation."\\data-ignored")) {
                mkdir($cacheLocation."\\data-ignored", 777, true);
        }
        if (!is_dir($cacheLocation."\\original-assets")) {
                mkdir($cacheLocation."\\original-assets", 777, true);
        }
        
        if (substr($_SERVER['TMP'], -1, 1) == "\\") {
                $TMP_PATH = $_SERVER['TMP'].$folderInfo['basename'];
                
        } else {
                $TMP_PATH = $_SERVER['TMP']."\\".$folderInfo['basename'];
        }
        
        if (!is_dir($TMP_PATH)) {
                mkdir($TMP_PATH, true);
        }
        print_r($folderInfo);
        echo "\r\nTmp path : ".$TMP_PATH."\n";  
        
        if (isResourceExtracted($gamePath)) {
                $hasResourceExtracted = false;
                
                // copy data directly to cache folder
                echo "copying folder data to cache\r\n";
                //("ROBOCOPY \"$ROOTPATH\" \"$_SERVER[TMP]\\Toybox\" /s")
                // Robocopy will copy files which is unable to handle with php
                /*
                $cmd = "robocopy ".escape_win32_argv($gamePath."\\data")." ".escape_win32_argv($TMP_PATH."\\data")." /s";
                echo $cmd;
                shell_exec($cmd);
                */
                copyFiles($gamePath."\\data", $TMP_PATH."\\data");
                
                
        } else {
                // extract from rgss archive
                $hasResourceExtracted = true;
 
                
                $cmd = "copy /Y ".escape_win32_argv($gamePath."\\*.".$_PARAM['dataArcExtension'])." ".escape_win32_argv($TMP_PATH);
                passthru($cmd);
                
                $cmd = "copy /Y ".escape_win32_argv($gamePath."\\*.ini")." ".escape_win32_argv($TMP_PATH);
                echo $cmd."\r\n";
                passthru($cmd);
                
                $decrypterPath = $_PARAM['APP_PATH']."3rdParty\\RgssDecrypter\\RgssDecrypter.exe";
                $cmd = escape_win32_argv($decrypterPath)." -p ".escape_win32_argv($TMP_PATH."\\Game.".$_PARAM['dataArcExtension']);
                echo "\n";
                echo "Extracting data\n";
                echo $cmd."\r\n";
                $WshShell = new COM("WScript.Shell");
                $oExec = $WshShell->Run($cmd, 1, true);
                //"D:/Apps/RPG-Maker-Translator-master/3rdParty/RgssDecrypter/RgssDecrypter" -p "E:/Document/Documents/TranslationResult/NoRice_Translated/Game.rgss3a"
                if (!is_dir($TMP_PATH."\\data")) {
                        echo $TMP_PATH."\\data not found\n";
                }
 
                $cmd = "del /Q ".escape_win32_argv($TMP_PATH."\\*.".$_PARAM['dataArcExtension']);
                passthru($cmd);
 
                
                // additional step to filter out unsupported files
                rename($TMP_PATH."\\data", $TMP_PATH."\\data-unfiltered");
                copyFiles($TMP_PATH."\\data-unfiltered", $TMP_PATH."\\data");
                
        }
        $cmd = "copy /Y ".escape_win32_argv($gamePath."\\*.ini")." ".escape_win32_argv($TMP_PATH);
        echo $cmd."\r\n";
        passthru($cmd);
        
        // filtering compatible data
        //$folderContent = get_folder_content($TMP_PATH."\\Data\\");
        //$folderContent = glob($TMP_PATH."\\Data\\*");
        $folderContent = fetchDir($TMP_PATH."\\Data");
        //print_r($folderContent);
        
        foreach ($folderContent as $filePath) {
                $filePathInf = pathinfo($filePath);
                if (isLegalRPGTransFile($filePathInf['basename']) !== true) {
                        echo "Illegal data file : ".$filePathInf['basename']." ... moving to data-ignored\n";
                        rename($filePath, $cacheLocation."\\data-ignored\\".$filePathInf['basename']);
                }
                
                if ($filePathInf['filename'] == "main") {
                        runTesPatcher($TMP_PATH, $cacheLocation."\\data-tes\\extract_main", 1);
                        echo "Moving TES encrypted file to : data-ignored\n";
                        
                        if (!is_dir($cacheLocation."\\data-tes\\Data")) {
                                mkdir($cacheLocation."\\data-tes\\Data", 777, true);
                        }
                        if (is_file($TMP_PATH."\\data\\Scripts.".$_PARAM['dataExtension'])) {
                                copy($TMP_PATH."\\data\\Scripts.".$_PARAM['dataExtension'], $cacheLocation."\\data-tes\\Data\\Scripts.".$_PARAM['dataExtension']);
                        } else if (is_file( $cacheLocation."\\data-ignored\\Scripts.".$_PARAM['dataExtension'])) {
                                copy($cacheLocation."\\data-ignored\\Scripts.".$_PARAM['dataExtension'], $cacheLocation."\\data-tes\\Data\\Scripts.".$_PARAM['dataExtension']);
                        }
                        
                        copy($filePath, $cacheLocation."\\data-tes\\Data\\".$filePathInf['basename']);
                        rename($filePath, $cacheLocation."\\data-ignored\\".$filePathInf['basename']);
                        
                }
                
        }
        
        
        //$cmd = "F:\\rpgmt_cli_v4.5\\rpgmt.exe ".escape_win32_argv($TMP_PATH)." -p ".escape_win32_argv($TMP_PATH."_translated");
        $cmd = escape_win32_argv($_PARAM['RPGMTRANS'])." ".escape_win32_argv($TMP_PATH)." -p ".escape_win32_argv($TMP_PATH."_patch");
        echo "\n\n\n";
        echo $cmd;
        $shell = new COM("WScript.Shell");
        $oExec = $shell->Run($cmd, 1, true);
        
        // move extracted data to dump
        /*
        $cmd = "robocopy ".escape_win32_argv($TMP_PATH."_patch\\patch")." ".escape_win32_argv($cacheLocation."\\dump")." /MOV";
        echo "\nMoving patch to stage : \n";
        echo $cmd."\n\n";
        passthru($cmd);
        */
        // ROBOCOPY replacement by Dreamsavior
        move_tree($TMP_PATH."_patch\\patch", $cacheLocation."\\dump");
        
        // copy bare patch structure to folder data
        /*
        $cmd = "robocopy ".escape_win32_argv($TMP_PATH."_patch")." ".escape_win32_argv($cacheLocation."\\rpgmktranspatch")." /E";
        echo "\nMoving patch to stage : \n";
        echo $cmd."\n\n";
        passthru($cmd);
        */
        // ROBOCOPY replacement by Dreamsavior
        copy_tree($TMP_PATH."_patch", $cacheLocation."\\rpgmktranspatch");
        
        //copy original data
        /*
        $cmd = "robocopy ".escape_win32_argv($TMP_PATH."\\data")." ".escape_win32_argv($cacheLocation."\\data")." /s";
        echo "\nMoving patch to stage : \n";
        echo $cmd."\n\n";
        passthru($cmd);
        */
        // ROBOCOPY replacement by Dreamsavior
        copy_tree($TMP_PATH."\\data", $cacheLocation."\\data");
        
        
        $cmd = "copy /y ".escape_win32_argv($TMP_PATH."\\*.ini")." ".escape_win32_argv($cacheLocation."\\original-assets");
        echo $cmd."\n\n";
        passthru($cmd);
        
        
        if ($hasResourceExtracted) {
                echo "TMP Path is :\r\n<b id='tmpPath' class='tmpPath'>".$TMP_PATH."</b>\r\n";
        }
        
        // REMOVING TMP FOLDERS
        /*
        $cmd = "RMDIR ".escape_win32_argv($TMP_PATH)." /S /Q";
        echo $cmd."\n\n";
        passthru($cmd);
        $cmd = "RMDIR ".escape_win32_argv($TMP_PATH."_patch")." /S /Q";
        echo $cmd."\n\n";
        passthru($cmd);
        $cmd = "RMDIR ".escape_win32_argv($TMP_PATH."_translated")." /S /Q";
        echo $cmd."\n\n";
        passthru($cmd);
        */
        
        
        return $cacheLocation;
}
 
 
/*
function extractData($gamePath, $cacheLocation) {
        // RESULT : all data will be available on cache/[game title]/data folder
        echo "RUNNING extractData function\n";
        global $_PARAM;
 
        
        if (isResourceExtracted($gamePath)) {
                // copy data directly to cache folder
                echo "copying folder data to cache\r\n";
                //("ROBOCOPY \"$ROOTPATH\" \"$_SERVER[TMP]\\Toybox\" /s")
                $cmd = "robocopy ".escape_win32_argv($gamePath."\\data")." ".escape_win32_argv($cacheLocation."\\data")." /s";
                
                echo $cmd;
                shell_exec($cmd);
                
        } else {
                // extract from rgss3a
                $folderInfo = pathinfo($cacheLocation);
                
                if (substr($_SERVER['TMP'], -1, 1) == "\\") {
                        $TMP_PATH = $_SERVER['TMP'].$folderInfo['basename'];
                        
                } else {
                        $TMP_PATH = $_SERVER['TMP']."\\".$folderInfo['basename'];
                }
                
                if (!is_dir($TMP_PATH)) {
                        mkdir($TMP_PATH, true);
                }
                print_r($folderInfo);
                echo "\r\nTmp path : ".$TMP_PATH."\n";
                
                //$cmd = "copy /Y ".escape_win32_argv($gamePath."\\*.rgss3a")." ".escape_win32_argv($TMP_PATH);
                $cmd = "copy /Y ".escape_win32_argv($gamePath."\\*.".$_PARAM['dataArcExtension'])." ".escape_win32_argv($TMP_PATH);
                echo $cmd."\r\n";
                //shell_exec($cmd);
                passthru($cmd);
                
                $decrypterPath = $_PARAM['APP_PATH']."3rdParty\\RgssDecrypter\\RgssDecrypter.exe";
                //$cmd = escape_win32_argv($decrypterPath)." -p ".escape_win32_argv($TMP_PATH."\\Game.rgss3a");
                //$cmd = escape_win32_argv($decrypterPath)." -p ".escape_win32_argv($TMP_PATH."\\Game.".$_PARAM['dataArcExtension']);
                $cmd = escape_win32_argv($decrypterPath)." -p ".escape_win32_argv($TMP_PATH."\\Game.".$_PARAM['dataArcExtension']);
                echo "\n";
                echo "Extracting data\n";
                echo $cmd."\r\n";
                $WshShell = new COM("WScript.Shell");
                $oExec = $WshShell->Run($cmd, 1, true);
                //$cmd = escape_win32_argv($decrypterPath)." -p ".escape_win32_argv();
                //sleep(2);
                //passthru($cmd);
                //shell_exec($cmd);
                //"D:/Apps/RPG-Maker-Translator-master/3rdParty/RgssDecrypter/RgssDecrypter" -p "E:/Document/Documents/TranslationResult/NoRice_Translated/Game.rgss3a"
                if (!is_dir($TMP_PATH."\\data")) {
                        echo $TMP_PATH."\\data not found\n";
                }                       
                
                $cmd = "robocopy ".escape_win32_argv($TMP_PATH."\\data")." ".escape_win32_argv($cacheLocation."\\data")." /s";
                echo "Copying Data folder to trans cache folder \n";
                passthru($cmd);
                
        } 
}
*/
 
function dump($cache) {
        // dump data to JSON
        // input $cache = full path to root folder of game cache (directory with game name)
        global $_PARAM;
        $cachePath = $cache."\\dump";
        if (is_dir($cachePath)) {
                // cleaning up existing file in cache path
                shell_exec("RMDIR ".escape_win32_argv($cachePath)." /S /Q");    
        }
        
        mkdir($cachePath, 777, true);
        
        
        $dataPath = $cache.DIRECTORY_SEPARATOR."Data".DIRECTORY_SEPARATOR;
        $rubyPath = $_PARAM['APP_PATH']."ruby".DIRECTORY_SEPARATOR."bin".DIRECTORY_SEPARATOR."ruby.exe";
        
        //$fileList = glob($dataPath."*.rvdata2");
        $fileList = glob($dataPath."*.".$_PARAM['dataExtension']);
        
        foreach ($fileList as $path) {
                $command = escape_win32_argv($rubyPath)." ".
                                        escape_win32_argv($_PARAM['APP_PATH']."3rdParty\\rmxp_translator\\rmvxace_translator.rb")." ".
                                        "--dump=".str_replace("\\", "/", escape_win32_argv($path))." ".
                                        "--dest=".str_replace("\\", "/", escape_win32_argv($cachePath));
                echo $command."\n";
                passthru($command);
        }
//ruby "D:/Apps/RPG-Maker-Translator-master/3rdParty/rmxp_translator/rmvxace_translator.rb" --translate="E:/Document/Documents/TranslationResult/NoRice_Translated/DataExtracted/*.rvdata2" --dest="E:/Document/Documents/TranslationResult/NoRice_Translated/DataTranslated"   
}
 
if (!function_exists('getGameInfo')) {
        function getGameInfo($gamePath, $projectId="") {
                global $_PARAM;
                // added by donovan
                $infoCache = $_PARAM['CACHE_PATH'].$_POST['projectId']."\\gameInfo.json";               
                if (!empty($projectId)) {
                        $infoCache = $_PARAM['CACHE_PATH'].$_POST['projectId']."\\gameInfo.json";
                }
                if (is_file($infoCache)) {
                        //fwrite(STDERR, "Loading game info from cache!");
                        return json_decode(file_get_contents($infoCache), true);
                }
                // =======================
                $str = file_get_contents($gamePath."\\Game.ini");
                $currentEncoding =  mb_detect_encoding($str, "JIS, eucjp-win, sjis-win, UTF-8");
                $str = mb_convert_encoding($str, "UTF-8", $currentEncoding);
                $gameInfo = parse_ini_string($str, false, INI_SCANNER_RAW);
                $gameInfo['title'] = $gameInfo['Title'];
                return $gameInfo;
        }
}
 
function replaceIllegalCharacter($string) {
        $bad = array_merge(array_map('chr', range(0,31)), array("<", ">", ":", '"', "/", "\\", "|", "?", "*"));
        $result = str_replace($bad, "-", $string);      
        return $result;
        
}
 
if (function_exists('getProjectId') == false) {
        function getProjectId($gamePath="", $projectId="") {
                global $_PARAM;
                $gameInfo = getGameInfo($gamePath);
                if (!empty($projectId)) {
                        $id = $projectId;
                } elseif (!empty($_SERVER['POST']['projectId'])) {
                        $id = $_SERVER['POST']['projectId'];
                } elseif (!empty($_POST['projectId'])) {
                        $id = $_POST['projectId'];
                } elseif (!empty($_PARAM['projectId'])) {
                        $id = $_PARAM['projectId'];
//              } elseif (!empty($gameInfo['Title'])) {
//                      $id = md5($gameInfo['Title']);
                } else {
                        $id = md5(time());
                }
                $_PARAM['projectId'] = $id;
                $_SERVER['POST']['projectId'] = $id;
                $_SERVER['GET']['projectId'] = $id;
                $_POST['projectId'] = $id;
                $_GET['projectId'] = $id;
                return $id;
        }
}
 
function getProjectCacheInfo($gamePath="") {
        global $_PARAM;
        $dirname = getProjectId($gamePath);
        $RESULT['cacheID'] = $dirname;
        $RESULT['cachePath'] = $_PARAM['CACHE_PATH'].$dirname;
        
        return $RESULT;
}
 
 
function prepareProjectCache($gamePath) {
        global $_PARAM;
        $gameInfo = getGameInfo($gamePath);
        
        clearstatcache(true);
        /*
        if (!empty($gameInfo['Title'])) {
                //$dirname = replaceIllegalCharacter($gameInfo['Title']);
                $dirname = md5($gameInfo['Title']);
        } else {
                $dirname = md5(time());
        }
        */
        $cacheInfo = getProjectCacheInfo($gamePath);
        
        if (!is_dir($cacheInfo['cachePath'])) {
                mkdir($cacheInfo['cachePath']);
        }
        file_put_contents($cacheInfo['cachePath']."//gameInfo.json", json_encode($gameInfo, JSON_PRETTY_PRINT));
        return realpath($cacheInfo['cachePath']);
        
}
 
function onAfterProcess() {
// ==================================================
// ADDING "main"'s TES file to stage
// ==================================================   
        global $RESULT, $_PARAM;
        // generating .trans for TES DATA
        $FILELIST = get_folder_content($RESULT['cache']['cachePath']."\\data-tes\\extract_main");
        foreach ($FILELIST['files'] as $key=>$path) {
                $current= pathinfo($path);
                $current['path'] = str_replace("\\", "/", $current['dirname']."/".$current['basename']);
                
                if (!in_array(strtolower($current['extension']), $_PARAM['ACCEPTED_EXTENSION'])) continue;
                $text = file_get_contents($current['path']);
                
                $loadedData = parseRPGTransFile($text, true);
                //$current['content'] = $loadedData['content'];
                $current['data'] = $loadedData['data'];
                $current['type'] = $loadedData['type'];
                if (!empty($loadedData['context'])) {
                        $current['context'] = $loadedData['context'];
                }
                if (!empty($loadedData['lineBreak'])) {
                        $current['lineBreak'] = $loadedData['lineBreak'];
                }
                if (!empty($loadedData['parameters'])) {
                        $current['parameters'] = $loadedData['parameters'];
                }
                if (!empty($loadedData['header'])) {
                        $current['originalFormat'] = $loadedData['header'];
                }
                /*
                if (!empty($loadedData['rawData'])) {
                        $current['rawData'] = $loadedData['rawData'];
                }
                */
 
                $current['relPath'] = substr($current['path'], strlen($RESULT['cache']['cachePath']."/data-tes/"));
                
                if (substr($current['relPath'], 0, 1) == "/") {
                        $current['relPath'] = substr($current['relPath'], 1);
                }
                
                $current['dirname'] = substr($current['dirname'], strlen($RESULT['cache']['cachePath'])+1);
                $current['path'] = substr($current['path'], strlen($RESULT['cache']['cachePath'])+1);
                
                $RESULT['files'][$current['relPath']] = $current;
 
        }       
}
 
function extractor($PATH) {
        // mandatory
        // extract data
        if (empty($PATH)) {
                return false;
        }
 
        print_r(getGameInfo($PATH));
        
        $cacheLocation = prepareProjectCache($PATH);
        extractData($PATH, $cacheLocation);
        return $cacheLocation;
        //dump($cacheLocation);
}
 



Il y a ça ligne 145 :

Portion de code : Tout sélectionner

1
$shell = new COM("WScript.Shell");



Citation:

C'est un problème d'antislash ? Si tu mets un double antislash à la place du simple antislash ?



Où ?


Roi of the Suisse - posté le 07/04/2020 à 13:31:00 (29764 messages postés) - honor -

❤ 0

Alerte neige !

C'est assez obscur... :-/

Aux lignes 141 et 142 c'est écrit :

Portion de code : Tout sélectionner

1
2
3
//$cmd = "F:\\rpgmt_cli_v4.5\\rpgmt.exe ".escape_win32_argv($TMP_PATH)." -p ".escape_win32_argv($TMP_PATH."_translated");
        $cmd = escape_win32_argv($_PARAM['RPGMTRANS'])." ".escape_win32_argv($TMP_PATH)." -p ".escape_win32_argv($TMP_PATH."_patch");
 

Essaie d'enlever le // de la ligne 141 et de mettre // devant la ligne 142. Chacun calcule $cmd d'une façon différente, peut-être que celle qui te convient est celle de la ligne 141.
J'y crois pas trop, mais ça peut se tenter.



Juste après c'est écrit :

Citation:

echo "\n\n\n";
echo $cmd;


Ajoute aussi

Portion de code : Tout sélectionner

1
echo "proutprout";

par là, et quand tu lanceras le script ça écrira proutprout sur ta page web.
Juste à côté ça écrira le contenu de la variable $cmd qui pose problème par la suite. Quelle est la valeur de $cmd qui fait planter le Run ?



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 13:43:35 (5899 messages postés) - honor

❤ 0

Avec les deux modifications :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Warning: mb_detect_encoding(): Illegal argument in C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\function\trans.php on line 12
 
 
 
F:\rpgmt_cli_v4.5\rpgmt.exe C:\Users\Username\AppData\Local\Temp\0310f058ace3d1668ecf6a0b05dfc4a6 -p C:\Users\Username\AppData\Local\Temp\0310f058ace3d1668ecf6a0b05dfc4a6_translated
proutprout
 
Fatal error: Uncaught com_exception: Source: Unknown
Description: Unknown in C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php:146
Stack trace:
#0 C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php(146): com->Run('F:\\rpgmt_cli_v4...', 1, true)
#1 C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php(449): extractData('C:\\Users\\Username...', 'C:\\Users\\Username...')
#2 C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\loadGameInfo.php(110): extractor('C:\\Users\\Username...')
#3 {main}
  thrown in C:\Users\Username\Desktop\Translator++_2.2.20E\Translator++\www\php\plugins\rpgmakertrans\extractor.php on line 146
Error opening file : undefined
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be one of type string, Buffer, or URL. Received type undefined



Cependant, le nom du fichier me rappelle un autre fichier téléchargeable, il n'y a juste pas de guide sur la façon dont ça s'installe (deux archives).


Roi of the Suisse - posté le 07/04/2020 à 14:18:00 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Ok donc la valeur de la variable $cmd est :

Portion de code : Tout sélectionner

1
F:\rpgmt_cli_v4.5\rpgmt.exe C:\Users\Username\AppData\Local\Temp\0310f058ace3d1668ecf6a0b05dfc4a6 -p C:\Users\Username\AppData\Local\Temp\0310f058ace3d1668ecf6a0b05dfc4a6_translated





L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 14:20:13 (5899 messages postés) - honor

❤ 0

le fichier dans le code est un exe qui exécute une commande Windows, effectivement, mais je ne vois pas où le mettre.


Roi of the Suisse - posté le 07/04/2020 à 14:23:19 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Si c'est de la ligne de commande Windows, il devrait gérer correctement les antislashs.
Ça implique d'avoir un lecteur F: avec l'exécutable "rpgmt.exe" dessus... Si tu l'as ailleurs, tu peux corriger l'adresse lorsque la commande $cmd est remplie. Actuellement c'est écrit :

Portion de code : Tout sélectionner

1
$cmd = "F:\\rpgmt_cli_v4.5\\rpgmt.exe ". blablabla

Il faut mettre la vraie adresse de l'exécutable ici. N'oublie pas les doubles antislashs.

Citation:

Error opening file : undefined

Il dit qu'il ne trouve pas le fichier, et en effet je doute qu'il soit réellement dans le lecteur F:
Je ne sais pas si tu joues ce script sur ton PC ou sur un serveur distant.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 14:24:45 (5899 messages postés) - honor

❤ 0

Je suis sur PC. J'ai déplacé le dossier sur le bureau (il était sur un disque dur externe).

Je vais essayer de modifier le chemin d'accès.


Roi of the Suisse - posté le 07/04/2020 à 14:27:43 (29764 messages postés) - honor -

❤ 0

Alerte neige !

En tout cas, il y a un fichier auquel il n'arrive pas à accéder dans cette commande $cmd. Ça fait 3 possibilités, je dirais même 2 vu que la troisième n'est qu'un fichier de destination.

L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Roi of the Suisse - posté le 07/04/2020 à 14:35:41 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Si c'est l'exécutable qui n'est pas trouvé :
Je pense aussi que c'est une mauvaise idée d'appeler ton dossier "++". Ce sont des caractères à la con.
Renomme ton dossier "plusplus" et ça ira peut-être mieux.


Si c'est le fichier ouvert qui n'est pas trouvé :

Portion de code : Tout sélectionner

1
$cmd = escape_win32_argv($_PARAM['RPGMTRANS'])." ".escape_win32_argv($TMP_PATH)." -p ".escape_win32_argv($TMP_PATH."_patch");

Rajoute peut-être des guillemets autour du fichier ouvert :

Portion de code : Tout sélectionner

1
$cmd = escape_win32_argv($_PARAM['RPGMTRANS'])." \"".escape_win32_argv($TMP_PATH)."\" -p \"".escape_win32_argv($TMP_PATH."_patch")."\" ";

Remarque : j'utilise ici à nouveau la seconde façon de remplir $cmd, comme c'était le cas au début.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 15:05:02 (5899 messages postés) - honor

❤ 0

J'ai enlevé ++ sur tout le chemin, dont l'exécutable (ils étaient nommés comme ça de base).

J'ai défini le chemin de l'exécutable (=> Bureau => Tranlator => dossier du cmd => cmd.exe) avec les \\.

J'ai copié collé la ligne que tu m'as donnée à la place. J'ai laissé le reste avec les conseils que tu m'as donnés

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Warning: mb_detect_encoding(): Illegal argument in C:\Users\Username\Desktop\Translator\Translator\www\php\function\trans.php on line 12
 
 
 
C:\Users\Username\Desktop\Translator\Translator\3rdParty\rpgmt_cli_v4.5\rpgmt.exe "C:\Users\Username\AppData\Local\Temp\08dc026cd2e413327d20cc78e41f8ed1" -p "C:\Users\Username\AppData\Local\Temp\08dc026cd2e413327d20cc78e41f8ed1_patch" 
proutprout
 
Fatal error: Uncaught com_exception: Source: Unknown
Description: Unknown in C:\Users\Username\Desktop\Translator\Translator\www\php\plugins\rpgmakertrans\extractor.php:146
Stack trace:
#0 C:\Users\Username\Desktop\Translator\Translator\www\php\plugins\rpgmakertrans\extractor.php(146): com->Run('C:\\Users\\Username...', 1, true)
#1 C:\Users\Username\Desktop\Translator\Translator\www\php\plugins\rpgmakertrans\extractor.php(449): extractData('C:\\Users\\Username...', 'C:\\Users\\Username...')
#2 C:\Users\Username\Desktop\Translator\Translator\www\php\loadGameInfo.php(110): extractor('C:\\Users\\Username...')
#3 {main}
  thrown in C:\Users\Username\Desktop\Translator\Translator\www\php\plugins\rpgmakertrans\extractor.php on line 146
Error opening file : undefined
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be one of type string, Buffer, or URL. Received type undefined
 



Je ne suis même pas sûr de bien faire ce que tu me dis :barbu


Roi of the Suisse - posté le 07/04/2020 à 15:18:06 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Si si, tu fais ça bien.

Essaie de remplacer les "escape_win32_argv" par "escapeshellarg".
Tu n'es pas sur Windows ? Si tu es sur Linux ou Mac il faut que tu fasses cela.

L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 15:18:59 (5899 messages postés) - honor

❤ 0

Tous ceux du fichier ?


Roi of the Suisse - posté le 07/04/2020 à 15:21:10 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Tous, si en effet tu es sur Mac/Linux.

L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Roi of the Suisse - posté le 07/04/2020 à 15:26:10 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Des gens ici ont exactement le même problème que toi avec ce logiciel :
https://forums.rpgmakerweb.com/index.php?threads/translator-game-translation-tool.102706/page-4

En Mars, le logiciel était toujours buggé selon son auteur sur cette page.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 15:31:24 (5899 messages postés) - honor

❤ 0

Je suis sur Windows 10.

J'ai lu l'ensemble, et ils parlent du jeu qui pourrait être la cause. Sauf que j'essaye sur un jeu décrypté. J'avais également essayé sur un autre jeu pour lequel un autre logiciel avait fonctionné. Le cmd s'était lancé, mais il y avait quand même le message d'erreur. Je vais réessayer pour vérifier après avoir appliqué les derniers changements.

EDIT : Bon bah rien à faire, je viens d'essayer sur une dizaine de jeux différents et le problème reste le même. Je vais essayer d'en décrypter quelques uns mais je n'y crois pas trop :/

Plus qu'à trouver une autre solution.


Roi of the Suisse - posté le 07/04/2020 à 15:59:19 (29764 messages postés) - honor -

❤ 0

Alerte neige !

Pourquoi tu veux traduire un jeu ?
Tu peux demander à King Kadelfek d'adapter son script pour Windows 10.
Il acceptera peut-être, vu son dévouement pour la cause de la sauvegarde patrimoniale des jeux.

Essaie de contacter l'auteur du logiciel directement sur son site sinon. Il sera intéressé de savoir que ton truc ne fonctionne pas toujours.



L'essentialisme c'est quand ta voiture a un moteur essence. | Es-tu une star ? | Kujira no Hara | Polaris 03 | Planète Glutko


Gari - posté le 07/04/2020 à 16:10:42 (5899 messages postés) - honor

❤ 0

Je ne veux pas exactement traduire un jeu, mais effectuer des corrections (comme ce que j'ai fait pour Pourquoi Moi et A la croisée des chemins, le dernier était juste suffisamment court pour que je fasse les corrections manuellement).

J'ai déjà contacté King Kadelfek.

Il m'a parlé de deux solutions possibles, mais je pense que l'une d'elles l'obligerait à recoder. Je pense qu'il voudrait s'assurer d'abord que ça vaille le coup (aka il n'existe rien d'autre) avant de commencer quoi que ce soit.

J'ai fait mes recherches, et en enlevant les outils d'auto traduction (beurk), il existe ce type d'outils pour XP/VX/Ace (je crois qu'il existe des plugins fonctionnels pour MV, et l'outil pour RM2000/2003 fonctionne encore) :
_ des scripts pour exporter les messages du jeu
_ RPG Maker Trans, qui fonctionne sur certains jeux et n'est pas user friendly.
_ et Translator++, qui n'est peut-être pas compatible avec tous les supports.

Vu que l'option facile n'a pas été trouvée, je vais essayer l'option annexe, qui n'a pas de raison de ne pas fonctionner, si ce n'est ma propre incompétence en informatique ^^'

Merci RotS en tout cas.

Index du forum > Entraide > [RESOLU] [Translator++] Erreur pour un nouveau projet

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers