From 4e5142aaefbaed3525d72206e3ca7e989f35aa3b Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Tue, 3 Mar 2009 01:50:40 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BF=E3=82=A8=E3=83=87?= =?UTF-8?q?=E3=82=A3=E3=82=BF:=E3=82=BD=E3=83=BC=E3=82=B9=E5=86=85?= =?UTF-8?q?=E3=81=AEGUI=E3=83=A1=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=82=92xml=E3=82=BF=E3=82=B0=E3=81=AB=E7=BD=AE=E3=81=8D?= =?UTF-8?q?=E6=8F=9B=E3=81=88=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@195 7061adef-622a-194b-ae81-725974e89856 --- .../MasterEditorTWL/MasterEditorTWL.ncb | Bin 11480064 -> 11480064 bytes .../MasterEditorTWL/MasterEditorTWL.suo | Bin 73728 -> 73216 bytes .../MasterEditorTWL/Debug/BuildLog.htm | Bin 22906 -> 22906 bytes .../MasterEditorTWL/MasterEditorTWL/Form1.h | 214 ++++++++---------- .../MasterEditorTWL/Form_constructor.cpp | 4 +- .../MasterEditorTWL/Form_file.cpp | 30 +-- .../MasterEditorTWL/Form_init.cpp | 11 +- .../MasterEditorTWL/Form_srl.cpp | 6 - .../MasterEditorTWL/Form_tmp.cpp | 4 +- .../MasterEditorTWL/Form_util.cpp | 25 +- .../MasterEditorTWL/message_bank.cpp | 4 +- .../MasterEditorTWL/resource/gui_msg_e.xml | 6 +- .../MasterEditorTWL/resource/gui_msg_j.xml | 10 +- 13 files changed, 128 insertions(+), 186 deletions(-) diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb index 52504e3e93f0519f2879050eafb59877cdf4c036..0fa3581d264c171aea85bbdfe68242fc1393bf35 100644 GIT binary patch delta 44870 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 Gss9IF9X<#E delta 39506 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 EKb^rfy#N3J diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm index ea6fd712d653df97d9910a0f21f52d87b749e77f..e1866f1ff0f8cfc55d87cd0529e15b320ca88dc7 100644 GIT binary patch delta 416 zcmeyhiSgGa#tmj{!ln!+48{zm3Re+@15}WSL5l%KBotTmkoeGST@453yn=&|}>t@hnNMcB2 YD486{rn%X~Z3oDK7>YLkcdr%%0PdkpCIA2c delta 416 zcmeyhiSgGa#tmj{!Uhb648{zW3`PtlK-w5c8*J7V-N>~07so6vY_gNd1jrqF$CABmuGl#j?rTqNbbAsV)(~Cb_xQtPo@m$Z6=hj5pg@getBinDir() + "tmp.srl"); } + // GUIメッセージファイル + System::String^ getGuiMessageFileJ(void) + { + return (this->getResDir() + "gui_msg_j.xml"); + } + System::String^ getGuiMessageFileE(void) + { + return (this->getResDir() + "gui_msg_e.xml"); + } + // MRCメッセージファイル + System::String^ getMrcMessageFileJ(void) + { + return (this->getResDir() + "mrc_msg_j.xml"); + } + System::String^ getMrcMessageFileE(void) + { + return (this->getResDir() + "mrc_msg_e.xml"); + } private: // ---------------------------------------------- @@ -3537,24 +3558,42 @@ private: System::Windows::Forms::Label^ labCountryCodeL; System::Boolean checkDeliverableForms(void); // ---------------------------------------------- - // ダイアログ + // メッセージダイアログ // ---------------------------------------------- - void sucMsg( System::String ^msgJ, System::String ^msgE ) + // @arg[in] 外部メッセージファイルのタグ(RCMessageBankに引き渡す) + // @arg[in] 引数がある場合は指定 (可変長引数) + void sucMsg( System::String ^tag, ... cli::array ^args ) { - if( this->isJapanese() ) - MessageBox::Show( msgJ, "Information", MessageBoxButtons::OK, MessageBoxIcon::None ); - else - MessageBox::Show( msgE, "Information", MessageBoxButtons::OK, MessageBoxIcon::None ); + this->sucMsgCore( this->makeMsg(tag, args) ); } - - // エラーメッセージを出力 - void errMsg( System::String ^msgJ, System::String ^msgE ) + void errMsg( System::String ^tag, ... cli::array ^args ) { + this->errMsgCore( this->makeMsg(tag, args) ); + } + System::String^ makeMsg( System::String ^tag, ... cli::array ^args ) + { + System::String ^lang; if( this->isJapanese() ) - MessageBox::Show( msgJ, "Error", MessageBoxButtons::OK, MessageBoxIcon::Error ); + { + lang = "J"; + } else - MessageBox::Show( msgE, "Error", MessageBoxButtons::OK, MessageBoxIcon::Error ); + { + lang = "E"; + } + System::String ^fmt = this->hMsg->getMessage( tag, lang ); // メッセージファイルから書式を取得 + System::String ^msg = System::String::Format( fmt, args ); // 書式をStringに展開 + return msg; + } + // 文字列を直に指定する + void errMsgCore( System::String ^msg ) + { + MessageBox::Show( msg, "Error", MessageBoxButtons::OK, MessageBoxIcon::Error ); + } + void sucMsgCore( System::String ^msg ) + { + MessageBox::Show( msg, "Information", MessageBoxButtons::OK, MessageBoxIcon::None ); } private: @@ -3637,7 +3676,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; // セーブするディレクトリをダイアログで取得 // @ret 取得したディレクトリ名(\\で終わるように調整される) エラーのときnullptr - System::String^ saveDirDlg( System::String ^msgJ, System::String ^msgE ); + System::String^ saveDirDlg( System::String ^msg ); // ファイルが存在するかを調べて上書き確認をする bool isOverwriteFile( System::String ^path ); @@ -3677,7 +3716,6 @@ private: System::Windows::Forms::Label^ labCountryCodeL; filename = this->openFileDlg( "rom format (*.srl;*.tad)|*.srl;*.tad|All files (*.*)|*.*" ); if( filename == nullptr ) { - //this->errMsg( "ROMデータファイルのオープンがキャンセルされました。", "Opening the ROM data file is canceled by user." ); return; } @@ -3688,7 +3726,6 @@ private: System::Windows::Forms::Label^ labCountryCodeL; } this->tboxFile->Text = filename; this->clearOtherForms(); // ROMヘッダには反映されない編集情報を更新 - //this->sucMsg( "ROMデータファイルのオープンに成功しました。", "The ROM data file is opened successfully." ); } //stripItemOpenRom_Click() private: @@ -3700,8 +3737,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; // SRLが読み込まれていないときにはリードさせない if( System::String::IsNullOrEmpty( this->tboxFile->Text ) ) { - this->errMsg( "ROMデータファイルが読み込まれていませんので、マスターROMの作成ができません。", - "ROM data file has not opened yet. A master ROM data can't be made." ); + this->errMsg( "E_SaveRom_Empty" ); return; } @@ -3710,8 +3746,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; this->hWarnList->Clear(); if( this->checkSrlForms() == false ) { - this->errMsg( "不正な設定があるためマスターROMの作成ができません。", - "Setting is illegal. A master ROM data can't be made." ); + this->errMsg( "E_SaveRom_Setting" ); return; } @@ -3720,20 +3755,13 @@ private: System::Windows::Forms::Label^ labCountryCodeL; System::String ^srlfile = prefix + ".SRL"; // 注意書き - this->sucMsg( - "以下のファイルが作成されます。\n\n" - + srlfile + " (マスターROM)\n", - - "Following file for submission will be made. \n\n" - + srlfile + " (Master ROM)\n" - ); + this->sucMsg( "SaveRom_Name", srlfile ); // ダイアログからSRLを保存するディレクトリを取得する - System::String ^dir = this->saveDirDlg( "保存先フォルダを選択してください。", "Please select a folder for saving the file" ); + System::String ^dir = this->saveDirDlg( this->makeMsg( "SaveRom_Folder" ) ); if( !dir ) { - this->errMsg( "フォルダの選択がキャンセルされましたのでマスターROMは作成されません。", - "A master ROM isn't made, since selecting folder is canceled." ); + this->errMsg( "E_SaveRom_FolderCancel" ); return; } srlfile = dir + srlfile; @@ -3741,8 +3769,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; // ファイルが存在するかを調べて上書き確認をする if( !this->isOverwriteFile(srlfile) ) { - this->errMsg( "ファイルの上書きがキャンセルされましたのでマスターROMは作成されません。", - "Since overwriting a file is canceled, a master ROM isn't made." ); + this->errMsg( "E_SaveRom_OWCancel" ); return; } @@ -3751,68 +3778,56 @@ private: System::Windows::Forms::Label^ labCountryCodeL; ECFormResult result = this->saveRom( srlfile ); if( result != ECFormResult::NOERROR ) { - System::String^ msgJ = "マスターROMの作成に失敗しました。作成を中止するため一部のファイルは作成されません。"; - System::String^ msgE = "Making a master ROM failed. Therefore, a part of files can't be made."; + System::String ^msg = this->makeMsg( "E_SaveSet_FileDefault" ); switch( result ) { case ECFormResult::ERROR_FILE_OPEN: - msgJ += "\n\n原因:\n出力ファイルのオープンに失敗しました。"; - msgE += "\n\nReason:\nOpening an output file is failed."; + msg += this->makeMsg( "E_SaveSet_FileOpen" ); break; case ECFormResult::ERROR_FILE_READ: - msgJ += "\n\n原因:\nファイルの読み込みに失敗しました。"; - msgE += "\n\nReason:\nReading the file is failed."; + msg += this->makeMsg( "E_SaveSet_FileRead" ); break; case ECFormResult::ERROR_FILE_WRITE: - msgJ += "\n\n原因:\n出力ファイルへの書き出しに失敗しました。"; - msgE += "\n\nReason:\nWriting the file is failed."; + msg += this->makeMsg( "E_SaveSet_FileWrite" ); break; case ECFormResult::ERROR_FILE_COPY: - msgJ += "\n\n原因:\n入力ROMデータファイルのコピーに失敗しました。"; - msgE += "\n\nReason:\nCopying the ROM data file failed."; + msg += this->makeMsg( "E_SaveSet_FileCopy" ); break; case ECFormResult::ERROR_FILE_EXIST: - msgJ += "\n\n原因:\n入力ROMデータファイルが元のフォルダに存在しないとき出力ファイルを作成できません。"; - msgE += "\n\nReason:\nWhen the input ROM data file doesn't exist in the original folder, output file can't be made."; + msg += this->makeMsg( "E_SaveSet_FileExist" ); break; case ECFormResult::ERROR_FILE_SIGN: - msgJ += "\n\n原因:\n出力ファイルのディジタル署名の計算に失敗しました。"; - msgE += "\n\nReason:\nCalculation the digital signature of the output file failed."; + msg += this->makeMsg( "E_SaveSet_FileSign" ); break; default: break; } - this->errMsg( msgJ, msgE ); + this->errMsgCore( msg ); return; } - this->sucMsg( "マスターROMの作成が成功しました。", "A master ROM is made successfully." ); + this->sucMsg( "SaveRom_Success" ); this->tboxFile->Text = srlfile; } catch( System::Exception ^ex ) { - System::String ^msgJ = "マスターROMの作成に失敗しました。"; - System::String ^msgE = "Making a master ROM failed. "; - msgJ += "\n\n例外:\n" + ex->ToString() + "\n" + ex->Message; - msgE += "\n\n例外:\n" + ex->ToString() + "\n" + ex->Message; - this->errMsg( msgJ, msgE ); + this->errMsg( "E_SaveRom_Exception", ex->ToString(), ex->Message ); return; } - u16 crc; // SRL全体のCRCを計算する + u16 crc; // 書き出したSRLを再読み込みするのでCRCを再計算する if( !getWholeCRCInFile( srlfile, &crc ) ) { - this->errMsg( "CRCの計算に失敗しました。", - "Calculating CRC is failed. " ); + this->errMsg( "E_SaveRom_CRC" ); return; } this->tboxWholeCRC->Clear(); this->tboxWholeCRC->AppendText( "0x" ); - this->tboxWholeCRC->AppendText( crc.ToString("X4") ); // 書き出したSRLを再読み込みするのでCRCを再計算する + this->tboxWholeCRC->AppendText( crc.ToString("X4") ); } //stripItemMasterRom_Click() @@ -3827,7 +3842,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; // SRLが読み込まれていないときにはリードさせない if( System::String::IsNullOrEmpty( this->tboxFile->Text ) ) { - this->errMsg( "ROMデータファイルが読み込まれていません。", "ROM file has not opened yet." ); + this->errMsg( "E_SaveSet_Empty" ); return; } @@ -3836,14 +3851,12 @@ private: System::Windows::Forms::Label^ labCountryCodeL; this->hWarnList->Clear(); if( this->checkSrlForms() == false ) { - this->errMsg( "不正な設定があるため提出データを作成できません。", - "Setting is illegal. Submission data can't be made." ); + this->errMsg( "E_SaveSet_Setting" ); return; } if( this->checkDeliverableForms() == false ) { - this->errMsg( "入力情報に不足があるため提出データを作成できません。", - "Input is not enough. Submission data can't be made." ); + this->errMsg( "E_SaveSet_Input" ); return; } @@ -3855,28 +3868,13 @@ private: System::Windows::Forms::Label^ labCountryCodeL; System::String ^middlefilePrint = prefix + "_MIDDLEWARE.HTML"; // 注意書き - this->sucMsg( - "以下の提出ファイルが一度に作成されます。\n\n" - + srlfile + " (マスターROM)\n" - + delivfile + " (マスターROM提出確認書)\n" - + middlefile + " (ミドルウェア一覧)\n" - + middlefilePrint + " (ミドルウェア一覧 印刷用)\n" - + "\n", - - "Following files for submission will be made. \n\n" - + srlfile + " (Master ROM)\n" - + delivfile + " (Submission Sheet)\n" - + middlefile + " (Middleware List)\n" - + middlefilePrint + " (Middleware List For Print)\n" - + "\n" - ); + this->sucMsg( "SaveSet_Name", srlfile, delivfile, middlefile, middlefilePrint ); // ダイアログからSRLを保存するディレクトリを取得する - System::String ^dir = this->saveDirDlg( "保存先フォルダを選択してください。", "Please select a folder for saving files" ); + System::String ^dir = this->saveDirDlg( this->makeMsg("SaveSet_Folder") ); if( !dir ) { - this->errMsg( "フォルダの選択がキャンセルされましたので提出データ一式は作成されません。", - "A set of submission data can not be made, since selecting folder is canceled." ); + this->errMsg( "E_SaveSet_FolderCancel" ); return; } srlfile = dir + srlfile; @@ -3888,8 +3886,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; if( !this->isOverwriteFile(srlfile) || !this->isOverwriteFile(delivfile) || !this->isOverwriteFile(middlefile) || !this->isOverwriteFile(middlefilePrint) ) { - this->errMsg( "ファイルの上書きがキャンセルされましたので提出データ一式は作成されません。", - "Since overwriting a file is canceled, a set of submission data can not be made." ); + this->errMsg( "E_SaveSet_OWCancel" ); return; } @@ -3903,62 +3900,50 @@ private: System::Windows::Forms::Label^ labCountryCodeL; ECFormResult result = this->saveRom( srlfile ); if( result != ECFormResult::NOERROR ) { - System::String^ msgJ = "マスターROMの作成に失敗しました。作成を中止するため一部のファイルは作成されません。"; - System::String^ msgE = "Making a master ROM failed. Therefore, a part of files can't be made."; + System::String ^msg = this->makeMsg( "E_SaveSet_FileDefault" ); switch( result ) { case ECFormResult::ERROR_FILE_OPEN: - msgJ += "\n\n原因:\n出力ファイルのオープンに失敗しました。"; - msgE += "\n\nReason:\nOpening an output file is failed."; + msg += this->makeMsg( "E_SaveSet_FileOpen" ); break; case ECFormResult::ERROR_FILE_READ: - msgJ += "\n\n原因:\nファイルの読み込みに失敗しました。"; - msgE += "\n\nReason:\nReading the file is failed."; + msg += this->makeMsg( "E_SaveSet_FileRead" ); break; case ECFormResult::ERROR_FILE_WRITE: - msgJ += "\n\n原因:\n出力ファイルへの書き出しに失敗しました。"; - msgE += "\n\nReason:\nWriting the file is failed."; + msg += this->makeMsg( "E_SaveSet_FileWrite" ); break; case ECFormResult::ERROR_FILE_COPY: - msgJ += "\n\n原因:\n入力ROMデータファイルのコピーに失敗しました。"; - msgE += "\n\nReason:\nCopying the ROM data file failed."; + msg += this->makeMsg( "E_SaveSet_FileCopy" ); break; case ECFormResult::ERROR_FILE_EXIST: - msgJ += "\n\n原因:\n入力ROMデータファイルが元のフォルダに存在しないとき出力ファイルを作成できません。"; - msgE += "\n\nReason:\nWhen the input ROM data file doesn't exist in the original folder, output file can't be made."; + msg += this->makeMsg( "E_SaveSet_FileExist" ); break; case ECFormResult::ERROR_FILE_SIGN: - msgJ += "\n\n原因:\n出力ファイルのディジタル署名の計算に失敗しました。"; - msgE += "\n\nReason:\nCalculation the digital signature of the output file failed."; + msg += this->makeMsg( "E_SaveSet_FileSign" ); break; default: break; } - this->errMsg( msgJ, msgE ); + this->errMsgCore( msg ); return; } this->tboxFile->Text = srlfile; // 成功してからテキストボックスに反映 } catch( System::Exception ^ex ) { - System::String ^msgJ = "マスターROMの作成に失敗しました。作成を中止するため一部のファイルは作成されません。"; - System::String ^msgE = "Making a master ROM failed. Therefore, a part of files can't be made."; - msgJ += "例外:\n" + ex->ToString() + "\n" + ex->Message; - msgE += "例外:\n" + ex->ToString() + "\n" + ex->Message; - this->errMsg( msgJ, msgE ); + this->errMsg( "E_SaveSet_Exception", ex->ToString(), ex->Message ); return; } u16 crc; // SRL全体のCRCを計算する(書類に記述するため) if( !getWholeCRCInFile( srlfile, &crc ) ) { - this->errMsg( "CRCの計算に失敗しました。作成を中止するため一部のファイルは作成されません。", - "Calculating CRC is failed. Therefore, a part of files can't be made." ); + this->errMsg( "E_SaveSet_CRC" ); return; } this->tboxWholeCRC->Clear(); @@ -3968,8 +3953,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; // ミドルウェアのリストを作成 if( !this->saveMiddlewareListXmlEmbeddedXsl( middlefile ) || !this->saveMiddlewareListHtml( middlefilePrint ) ) { - this->errMsg( "ミドルウェアのリストが作成できませんでした。作成を中止するため一部のファイルは作成されません。", - "Making a list of middleware failed. Therefore, a part of files can't be made."); + this->errMsg( "E_SaveSet_MWList" ); return; } @@ -3982,22 +3966,20 @@ private: System::Windows::Forms::Label^ labCountryCodeL; switch( result ) { case ECDeliverableResult::ERROR_FILE_OPEN: - this->errMsg( "提出確認書のテンプレートが開けなかったため、提出確認書の作成に失敗しました。", - "Since a templete of the submission sheet can't be opened, making the sheet is failed." ); + this->errMsg( "E_SaveSet_SheetTemplate" ); break; case ECDeliverableResult::ERROR_FILE_WRITE: - this->errMsg( "提出確認書にデータを書き込みできませんでした。同名ファイルがすでに開かれていないかご確認ください。", - "Writing data into a submission sheet failed. Please check that the file has been opened already." ); + this->errMsg( "E_SaveSet_SheetOpen" ); break; default: - this->errMsg( "提出確認書の作成に失敗しました。", "Making the submission sheet is failed." ); + this->errMsg( "E_SaveSet_Sheet_Default" ); break; } return; } - this->sucMsg( "提出データ一式の作成に成功しました。", "A set of submission data is made successfully." ); + this->sucMsg( "SaveSet_Success" ); } //stripItemSheet_Click() @@ -4037,7 +4019,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; { if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) { - this->errMsg( "ROMデータファイルが読み込まれていません。", "ROM file has not opened yet." ); + this->errMsg( "E_MWList_Empty" ); return; } @@ -4045,7 +4027,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; if( !filename || !this->saveMiddlewareListXmlEmbeddedXsl(filename) ) { - this->errMsg( "ミドルウェアリストの作成に失敗しました。","Making a middleware list failed." ); + this->errMsg( "E_MWList_Default" ); } } //stripItemMiddlewareXml_Click() @@ -4057,7 +4039,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; { if( System::String::IsNullOrEmpty(this->tboxFile->Text) ) { - this->errMsg( "ROMデータファイルがオープンされていません。", "ROM file has not opened yet." ); + this->errMsg( "E_MWList_Empty" ); return; } @@ -4065,7 +4047,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; if( !filename || !this->saveMiddlewareListHtml(filename) ) { - this->errMsg( "ミドルウェアリストの作成に失敗しました。","Making a middleware list failed." ); + this->errMsg( "E_MWList_Default" ); } } //stripItemMiddlewareHtml_Click @@ -4092,8 +4074,7 @@ private: System::Windows::Forms::Label^ labCountryCodeL; if( System::IO::File::Exists(filename) == false ) { - this->errMsg( "ファイルが存在しませんので読み込むことができません。", - "File is not found. Therefore the file can not be opened." ); + this->errMsg( "E_LoadRom_Exist" ); return; } if( System::IO::Path::GetExtension(filename)->ToLower() == ".xml" ) @@ -4108,7 +4089,6 @@ private: System::Windows::Forms::Label^ labCountryCodeL; } this->tboxFile->Text = filename; this->clearOtherForms(); - //this->sucMsg( "ROMデータファイルのオープンに成功しました。", "The ROM data file is opened successfully." ); } } diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_constructor.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_constructor.cpp index e60bbde..0c82b21 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_constructor.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_constructor.cpp @@ -40,6 +40,7 @@ void Form1::construct(void) this->IsSpreadSheet = true; this->IsReadOnly = false; this->SizeGboxExFlags = this->gboxExFlags->Size; + this->hMsg = gcnew RCMessageBank( this->getGuiMessageFileJ(), this->getGuiMessageFileE() ); // バージョン情報を表示 //this->labAssemblyVersion->Text = System::Windows::Forms::Application::ProductVersion; @@ -50,8 +51,7 @@ void Form1::construct(void) //System::Diagnostics::Debug::WriteLine( this->getSplitTadTmpFile() ); if( System::IO::File::Exists( this->getSplitTadTmpFile() ) ) { - this->sucMsg( "本プログラムで作成する一時ファイルと同名のファイルが存在します。このファイルを削除します。", - "There is the file which has same name as temporary file made by this program. That file is deleted." ); + this->sucMsg( "E_Start_TmpExist" ); System::IO::File::Delete( this->getSplitTadTmpFile() ); } diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_file.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_file.cpp index 457447f..db25d2d 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_file.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_file.cpp @@ -87,7 +87,7 @@ System::Boolean Form1::loadTad( System::String ^tadfile ) System::String ^srlfile = this->getSplitTadTmpFile(); if( splitTad( tadfile, srlfile ) != 0 ) // 上書きで保存 { - this->errMsg( "TADファイルの読み込みに失敗しました。", "Reading TAD file failed." ); + this->errMsg( "E_LoadRom_Tad" ); return false; } System::Boolean result = this->loadSrl( srlfile ); // 一時保存したSRLを読み込み @@ -105,19 +105,16 @@ System::Boolean Form1::loadSrl( System::String ^srlfile ) switch( result ) { case ECSrlResult::ERROR_PLATFORM: - this->errMsg( "本ツールはTWL用です。NTR専用ROMなどのTWL非対応ROMを読み込むことはできません。", - "This tool can only read TWL ROM. This can't read an other data e.g. NTR limited ROM." ); + this->errMsg( "E_LoadRom_Platform" ); break; case ECSrlResult::ERROR_SIGN_DECRYPT: case ECSrlResult::ERROR_SIGN_VERIFY: - this->errMsg( "不正なROMデータです。TWL対応/専用ROMでないかROMデータが改ざんされている可能性があります。", - "Illegal ROM data. It is not for TWL ROM, or is altered illegally." ); + this->errMsg( "E_LoadRom_Sign" ); break; default: - this->errMsg( "ROMデータファイルの読み込みに失敗しました。\n再度ROMデータを読み込ませてください。", - "Reading the ROM data file failed. \nPlease read a ROM data file again, with \"Open a ROM data file\"" ); + this->errMsg( "E_LoadRom_Default" ); break; } return false; @@ -138,8 +135,7 @@ System::Boolean Form1::loadSrl( System::String ^srlfile ) u16 crc; if( !getWholeCRCInFile( srlfile, &crc ) ) { - this->errMsg( "ROMデータのCRC計算に失敗しました。ROMデータの読み込みはキャンセルされました。", - "Calculating CRC of the ROM data failed. Therefore reading ROM data is canceled." ); + this->errMsg( "E_LoadRom_CRC" ); return false; } System::UInt16 ^hcrc = gcnew System::UInt16( crc ); @@ -239,17 +235,13 @@ ECFormResult Form1::copyFile( System::String ^infile, System::String ^outfile ) FILE *ifp = NULL; if( fopen_s( &ifp, pchInfile, "rb" ) != NULL ) { - //this->errMsg( - // "ファイルコピーにおいて入力ファイルのオープンに失敗しました。", - // "In Copying file, the input file can't be opened." ); + //this->errMsgCore( "ファイルコピーにおいて入力ファイルのオープンに失敗しました。" ); return (ECFormResult::ERROR_FILE_OPEN); } FILE *ofp = NULL; if( fopen_s( &ofp, pchOutfile, "wb" ) != NULL ) // 同名ファイルを削除して新規にライト・バイナリ { - //this->errMsg( - // "ファイルコピーにおいて出力ファイルのオープンに失敗しました。", - // "In Copying file, the output file can't be opened." ); + //this->errMsg( "ファイルコピーにおいて出力ファイルのオープンに失敗しました。" ); fclose(ifp); return (ECFormResult::ERROR_FILE_OPEN); } @@ -268,18 +260,14 @@ ECFormResult Form1::copyFile( System::String ^infile, System::String ^outfile ) if( datasize != fread(buf, 1, datasize, ifp) ) { - //this->errMsg( - // "ファイルコピーにおいて入力ファイルからのデータリードに失敗しました。", - // "In Copying file, contents can't be read from the input file." ); + //this->errMsg( "ファイルコピーにおいて入力ファイルからのデータリードに失敗しました。" ); fclose(ofp); fclose(ifp); return ECFormResult::ERROR_FILE_READ; } if( datasize != fwrite(buf, 1, datasize, ofp) ) { - //this->errMsg( - // "ファイルコピーにおいて出力ファイルからのデータライトに失敗しました。", - // "In Copying file, contents can't be written to the output file." ); + //this->errMsg( "ファイルコピーにおいて出力ファイルからのデータライトに失敗しました。" ); fclose(ofp); fclose(ifp); return ECFormResult::ERROR_FILE_READ; diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_init.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_init.cpp index 8f68442..be87a23 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_init.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_init.cpp @@ -39,13 +39,13 @@ void Form1::loadInit(void) catch( System::IO::FileNotFoundException ^s ) { (void)s; - this->errMsg( "設定ファイルが見つかりません。", "Setting file is not found." ); + this->errMsg( "E_Start_InitExist" ); return; } catch( System::Exception ^s ) { (void)s; - this->errMsg( "設定ファイルを開くことができませんでした。", "Setting file can't be opened." ); + this->errMsg( "E_Start_InitOpen" ); return; } @@ -182,13 +182,13 @@ void Form1::loadAppendInit(void) catch( System::IO::FileNotFoundException ^s ) { (void)s; - this->errMsg( "追加設定ファイルが見つかりません。", "Setting file is not found." ); + this->errMsg( "E_Start_AppendExist" ); return; } catch( System::Exception ^s ) { (void)s; - this->errMsg( "追加設定ファイルを開くことができませんでした。", "Setting file can't be opened." ); + this->errMsg( "E_Start_AppendOpen" ); return; } System::Xml::XmlElement ^root = doc->DocumentElement; @@ -218,8 +218,7 @@ void Form1::loadAppendInit(void) catch ( System::Exception ^ex ) { (void)ex; - this->errMsg( "設定ファイル中のSDKバージョンが読み込めませんでした。バージョンは0とみなされます。", - "SDK ver. can't be read from setting file. Therefore it is set by 0." ); + this->errMsg( "E_Start_SDK" ); this->hSrl->hMrcExternalCheckItems->SDKVer = 0; } diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp index 2fd7f48..186f6e9 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp @@ -66,12 +66,6 @@ void Form1::setSrlForms(void) this->tboxHeaderCRC->AppendText( "0x" ); this->tboxHeaderCRC->AppendText( this->hSrl->HeaderCRC.ToString("X4") ); - if( this->hSrl->hPlatform == nullptr ) - { - this->errMsg( "プラットホーム指定が不正です。ROMデータのビルド設定を見直してください。", - "Illegal Platform: Please check build settings of the ROM data."); - } - // TWL拡張情報 this->tboxTitleIDLo->Text = this->hSrl->hTitleIDLo; this->tboxTitleIDHi->Text = this->hSrl->TitleIDHi.ToString("X8"); diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_tmp.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_tmp.cpp index 469ad6a..5190fca 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_tmp.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_tmp.cpp @@ -112,7 +112,7 @@ System::Void Form1::saveTmp( System::String ^filename ) catch( System::Exception ^ex ) { (void)ex; - this->errMsg( "一時情報の保存に失敗しました。", "Saving a temporary file failed." ); + this->errMsg( "E_SaveTemp" ); } } //saveTmp() @@ -129,7 +129,7 @@ void Form1::loadTmp( System::String ^filename ) catch( System::Exception ^ex ) { (void)ex; - this->errMsg( "一時情報の読み込みに失敗しました。", "Loading a temporary file failed." ); + this->errMsg( "E_LoadTemp" ); } System::Xml::XmlElement ^root = doc->DocumentElement; System::String ^text; diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_util.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_util.cpp index 5b77d77..b9c1eb1 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_util.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_util.cpp @@ -328,7 +328,7 @@ System::String^ Form1::saveFileDlg( System::String ^filter, System::String ^exte // セーブするディレクトリをダイアログで取得 // @ret 取得したディレクトリ名(\\で終わるように調整される) エラーのときnullptr -System::String^ Form1::saveDirDlg( System::String ^msgJ, System::String ^msgE ) +System::String^ Form1::saveDirDlg( System::String ^msg ) { System::String ^dir; System::Windows::Forms::FolderBrowserDialog ^dlg = gcnew (System::Windows::Forms::FolderBrowserDialog); @@ -344,16 +344,7 @@ System::String^ Form1::saveDirDlg( System::String ^msgJ, System::String ^msgE ) dlg->SelectedPath = this->prevDir; } dlg->ShowNewFolderButton = true; - - // ダイアログの上部に出るメッセージ - if( this->isEnglish() && msgE ) - { - dlg->Description = msgE; - } - else if( msgJ ) - { - dlg->Description = msgJ; - } + dlg->Description = msg; // ダイアログの上部に出るメッセージ if( dlg->ShowDialog() != System::Windows::Forms::DialogResult::OK ) { @@ -377,17 +368,7 @@ bool Form1::isOverwriteFile( System::String ^path ) { if( System::IO::File::Exists( path ) ) { - System::String ^msg; - if( this->isJapanese() ) - { - msg = gcnew System::String( path + "はすでに存在します。上書きしますか?" ); - } - else - { - msg = gcnew System::String( path + "already exists. Overwrite it?" ); - } - - if( MessageBox::Show( msg, "Information", MessageBoxButtons::YesNo, MessageBoxIcon::None ) + if( MessageBox::Show( this->makeMsg( "OverWrite", path ), "Information", MessageBoxButtons::YesNo, MessageBoxIcon::None ) == System::Windows::Forms::DialogResult::No ) { return false; diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/message_bank.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/message_bank.cpp index 319c3b8..e869158 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/message_bank.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/message_bank.cpp @@ -32,7 +32,7 @@ void RCMessageBank::loadMessage( System::String ^filepath, System::String ^lang System::Xml::XmlElement ^root = doc->DocumentElement; // 言語によってXMLルートの格納先を変更 - if( lang == "J" ) + if( lang->ToUpper() == "J" ) { this->rootJ = root; } @@ -48,7 +48,7 @@ void RCMessageBank::loadMessage( System::String ^filepath, System::String ^lang System::String^ RCMessageBank::getMessage( System::String ^tag, System::String ^lang ) { System::Xml::XmlElement ^root; - if( lang == "J" ) + if( lang->ToUpper() == "J" ) { root = this->rootJ; } diff --git a/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_e.xml b/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_e.xml index b71a831..afec4ba 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_e.xml +++ b/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_e.xml @@ -20,7 +20,7 @@ The reading of the TAD file has failed. -ROM data file has not been read +ROM data file has not been read. Submission data cannot be created due to illegal settings. Submission data cannot be created due to insufficient input information. The following submission files are all created at one time. @@ -33,7 +33,7 @@ Select a save-to folder. Submission data is not created because folder selection has been canceled. Submission data is not created because file overwrite has been canceled. -Failed to create Master ROM. Halted during creation, so some files were not created. +Failed to create Master ROM. Halted during creation, so some files were not created. Master ROM file not created due to failure to open the output file. Master ROM file not created due to failure to read the file. Master ROM file not created due to failure to write to the output file. @@ -60,7 +60,7 @@ Exception:{0} Select a save-to folder. The Master ROM was not created because folder selection has been canceled. Creation of Master ROM was canceled. -Failed to create Master ROM. +Failed to create Master ROM. Failed to create Master ROM. 萓句、:{0} diff --git a/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_j.xml b/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_j.xml index 1284f75..1fd44b8 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_j.xml +++ b/build/tools/MasterEditor/MasterEditorTWL/resource/gui_msg_j.xml @@ -33,22 +33,22 @@ 菫晏ュ伜医ヵ繧ゥ繝ォ繝繧帝∈謚槭@縺ヲ縺上□縺輔>縲 繝輔か繝ォ繝縺ョ驕ク謚槭′繧ュ繝」繝ウ繧サ繝ォ縺輔l縺セ縺励◆縺ョ縺ァ謠仙コ繝繝シ繧ソ荳蠑上ッ菴懈舌&繧後∪縺帙s縲 繝輔ぃ繧、繝ォ縺ョ荳頑嶌縺阪′繧ュ繝」繝ウ繧サ繝ォ縺輔l縺セ縺励◆縺ョ縺ァ謠仙コ繝繝シ繧ソ荳蠑上ッ菴懈舌&繧後∪縺帙s縲 -繝槭せ繧ソ繝シROM縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲ゆス懈舌r荳ュ豁「縺吶k縺溘a荳驛ィ縺ョ繝輔ぃ繧、繝ォ縺ッ菴懈舌&繧後∪縺帙s縲 +繝槭せ繧ソ繝シROM縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲ゆス懈舌r荳ュ豁「縺吶k縺溘a荳驛ィ縺ョ繝輔ぃ繧、繝ォ縺ッ菴懈舌&繧後∪縺帙s縲 蜴溷屏:蜃コ蜉帙ヵ繧。繧、繝ォ縺ョ繧ェ繝シ繝励Φ縺ォ螟ア謨励@縺セ縺励◆縲 蜴溷屏:繝輔ぃ繧、繝ォ縺ョ隱ュ縺ソ霎シ縺ソ縺ォ螟ア謨励@縺セ縺励◆縲 蜴溷屏:蜃コ蜉帙ヵ繧。繧、繝ォ縺ク縺ョ譖ク縺榊コ縺励↓螟ア謨励@縺セ縺励◆縲 蜴溷屏:蜈・蜉娚OM繝繝シ繧ソ繝輔ぃ繧、繝ォ縺ョ繧ウ繝斐シ縺ォ螟ア謨励@縺セ縺励◆縲 蜴溷屏:蜈・蜉娚OM繝繝シ繧ソ繝輔ぃ繧、繝ォ縺悟縺ョ繝輔か繝ォ繝縺ォ蟄伜惠縺励↑縺縺ィ縺榊コ蜉帙ヵ繧。繧、繝ォ繧剃ス懈舌〒縺阪∪縺帙s縲 蜴溷屏:蜃コ蜉帙ヵ繧。繧、繝ォ縺ョ繝繧」繧ク繧ソ繝ォ鄂イ蜷阪ョ險育ョ励↓螟ア謨励@縺セ縺励◆縲 +CRC縺ョ險育ョ励↓螟ア謨励@縺セ縺励◆縲ゆス懈舌r荳ュ豁「縺吶k縺溘a荳驛ィ縺ョ繝輔ぃ繧、繝ォ縺ッ菴懈舌&繧後∪縺帙s縲 +繝溘ラ繝ォ繧ヲ繧ァ繧「縺ョ繝ェ繧ケ繝医′菴懈舌〒縺阪∪縺帙s縺ァ縺励◆縲ゆス懈舌r荳ュ豁「縺吶k縺溘a荳驛ィ縺ョ繝輔ぃ繧、繝ォ縺ッ菴懈舌&繧後∪縺帙s縲 繝槭せ繧ソ繝シROM縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲ゆス懈舌r荳ュ豁「縺吶k縺溘a荳驛ィ縺ョ繝輔ぃ繧、繝ォ縺ッ菴懈舌&繧後∪縺帙s縲 萓句、:{0} {1} -CRC縺ョ險育ョ励↓螟ア謨励@縺セ縺励◆縲ゆス懈舌r荳ュ豁「縺吶k縺溘a荳驛ィ縺ョ繝輔ぃ繧、繝ォ縺ッ菴懈舌&繧後∪縺帙s縲 -繝溘ラ繝ォ繧ヲ繧ァ繧「縺ョ繝ェ繧ケ繝医′菴懈舌〒縺阪∪縺帙s縺ァ縺励◆縲ゆス懈舌r荳ュ豁「縺吶k縺溘a荳驛ィ縺ョ繝輔ぃ繧、繝ォ縺ッ菴懈舌&繧後∪縺帙s縲 -謠仙コ遒コ隱肴嶌縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲 謠仙コ遒コ隱肴嶌縺ョ繝繝ウ繝励Ξ繝シ繝医′髢九¢縺ェ縺九▲縺溘◆繧√∵署蜃コ遒コ隱肴嶌縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲 謠仙コ遒コ隱肴嶌縺ォ繝繝シ繧ソ繧呈嶌縺崎セシ縺ソ縺ァ縺阪∪縺帙s縺ァ縺励◆縲ょ酔蜷阪ヵ繧。繧、繝ォ縺後☆縺ァ縺ォ髢九°繧後※縺縺ェ縺縺九#遒コ隱阪¥縺縺輔>縲 +謠仙コ遒コ隱肴嶌縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲 謠仙コ繝繝シ繧ソ荳蠑上ョ菴懈舌↓謌仙粥縺励∪縺励◆縲 @@ -60,7 +60,7 @@ 菫晏ュ伜医ヵ繧ゥ繝ォ繝繧帝∈謚槭@縺ヲ縺上□縺輔>縲 繝輔か繝ォ繝縺ョ驕ク謚槭′繧ュ繝」繝ウ繧サ繝ォ縺輔l縺セ縺励◆縺ョ縺ァ繝槭せ繧ソ繝シROM縺ッ菴懈舌&繧後∪縺帙s縲 繝輔ぃ繧、繝ォ縺ョ荳頑嶌縺阪′繧ュ繝」繝ウ繧サ繝ォ縺輔l縺セ縺励◆縺ョ縺ァ繝槭せ繧ソ繝シROM縺ッ菴懈舌&繧後∪縺帙s縲 -繝槭せ繧ソ繝シROM縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲 +繝槭せ繧ソ繝シROM縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲 繝槭せ繧ソ繝シROM縺ョ菴懈舌↓螟ア謨励@縺セ縺励◆縲 萓句、:{0}