diff --git a/build.bat b/build.bat index 5ad8f73a..10cb4c05 100644 --- a/build.bat +++ b/build.bat @@ -1,2 +1,2 @@ -pyinstaller --windowed --clean --noconfirm --icon="./img/vrct_logo_mark_black.ico" --add-data "./img;img/" --add-data "./locales;locales/" --add-data "./batch;batch/" --name VRCT --exclude-module numpy --exclude-module pandas --exclude-module matplotlib --exclude-module PyQt5 main.py +pyinstaller --windowed --clean --noconfirm --icon="./img/vrct_logo_mark_black.ico" --add-data "./img;img/" --add-data "./locales;locales/" --add-data "./batch;batch/" --name VRCT --add-data ".venv\Lib\site-packages\customtkinter;customtkinter/" --exclude-module pandas --exclude-module matplotlib --exclude-module PyQt5 main.py "C:\Program Files (x86)\NSIS\makensis.exe" installer/installer.nsi \ No newline at end of file diff --git a/installer/installer.nsi b/installer/installer.nsi index 6e246132..7d3b9a94 100644 --- a/installer/installer.nsi +++ b/installer/installer.nsi @@ -22,7 +22,7 @@ VIAddVersionKey "FileDescription" "Communication tool with translation & transcr Unicode true ; アプリケーション名 -Name "VRCT Setup" +Name "VRCT" ; 作成されるインストーラ OutFile "VRCT_Setup.exe" @@ -38,8 +38,8 @@ XPStyle on ; ページ !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "..\LICENSE" -;!insertmacro MUI_PAGE_DIRECTORY -Page custom OptionPage OptionPageLeave +Page custom OptionPage1 OptionPageLeave1 +Page custom OptionPage2 OptionPageLeave2 !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_PAGE_FINISH ; アンインストーラ ページ @@ -60,21 +60,27 @@ Var Checkbox_InstallShortcut Var Dialog_Options Var InstallDocs Var InstallShortcut -Var Label_DescriptionOptions -Var Label_DescriptionComboBox -Var ComboBox_Language +Var DropList_Language Var Set_Langage +Var DownloadWeight +Var RadioButton_Download +Var RadioButton_NotDownload +Var Label_Translation_subtitle_1 +Var Label_Translation_subtitle_2 +Var subFont ; 初期化時コールバック Function .onInit ; オプション値を初期化します。 StrCpy $InstallDocs ${BST_CHECKED} StrCpy $InstallShortcut ${BST_CHECKED} - StrCpy $ComboBox_Language "English" + StrCpy $DropList_Language "English" + StrCpy $DownloadWeight ${BST_CHECKED} FunctionEnd -; オプション ページ -Function OptionPage +; オプション ページ 1 +Function OptionPage1 + !insertmacro MUI_HEADER_TEXT "オプション (Options)" "オプションを設定してください。 (Please set the options.)" ; nsDialogsを作成します。 nsDialogs::Create 1018 ; 作成されたnsDialogsを変数に代入します。 @@ -85,29 +91,12 @@ Function OptionPage Abort ${EndIf} - ; ラベルを作成します。 - ${NSD_CreateLabel} 0 0 100% 12u "オプションを選択してください。" - ; ラベルを変数に代入します。 - Pop $Label_DescriptionOptions - - ${NSD_CreateCheckbox} 0 13u 100% 12u "ドキュメントをインストールする(&D)" + ${NSD_CreateCheckbox} 0 0u 100% 12u "ドキュメントをインストールする (Install documents)" Pop $Checkbox_InstallDocs - ${NSD_CreateCheckbox} 0 26u 100% 12u "デスクトップにショートカットを作成(&D)" + ${NSD_CreateCheckbox} 0 13u 100% 12u "デスクトップにショートカットを作成 (Install shortcut on desktop)" Pop $Checkbox_InstallShortcut - ; ComboBoxを作成します。 - ${NSD_CreateLabel} 0 42u 100% 12u "UIの言語を設定してください。" - ; ラベルを変数に代入します。 - Pop $Label_DescriptionComboBox - - ${NSD_CreateComboBox} 0 55u 100% 12u "" - Pop $ComboBox_Language - - ${NSD_CB_AddString} $ComboBox_Language "English" - ${NSD_CB_AddString} $ComboBox_Language "日本語" - ${NSD_CB_AddString} $ComboBox_Language "한국어" - ${If} $InstallDocs == ${BST_CHECKED} ; チェックが入力済の場合、チェックボックスにチェックを入れます。 ${NSD_Check} $Checkbox_InstallDocs @@ -116,15 +105,69 @@ Function OptionPage ; チェックが入力済の場合、チェックボックスにチェックを入れます。 ${NSD_Check} $Checkbox_InstallShortcut ${EndIf} - ${NSD_CB_SelectString} $ComboBox_Language "English" nsDialogs::Show FunctionEnd -; オプション ページ退出コールバック -Function OptionPageLeave +; オプション ページ 1 退出コールバック +Function OptionPageLeave1 ${NSD_GetState} $Checkbox_InstallDocs $InstallDocs ${NSD_GetState} $Checkbox_InstallShortcut $InstallShortcut - ${NSD_GetText} $ComboBox_Language $ComboBox_Language +FunctionEnd + +; オプション ページ 2 +Function OptionPage2 + CreateFont $subFont "MS UI Gothic" "8" "400" + + !insertmacro MUI_HEADER_TEXT "初期設定 (Initial Settings)" "後から変更可能です。 (Changeable later.)" + ; nsDialogsを作成します。 + nsDialogs::Create 1018 + ; 作成されたnsDialogsを変数に代入します。 + Pop $Dialog_Options + + ${If} $Dialog_Options == error + ; ダイアログの作成に失敗した場合には終了します。 + Abort + ${EndIf} + + ; ComboBoxを作成します。 + ${NSD_CreateLabel} 0 20u 30% 12u "UIの言語 (Language)" + + ${NSD_CreateDropList} 33% 20u 33% 12u "" + Pop $DropList_Language + + # ラジオボタンを追加しWEIGHTをDownloadするか選択する + ${NSD_CreateLabel} 0 70u 30% 12u "翻訳機能 (Translation)" + ${NSD_CreateLabel} 0 83u 30% 8u "言語モデルをダウンロード" + Pop $Label_Translation_subtitle_1 + SendMessage $Label_Translation_subtitle_1 ${WM_SETFONT} $subFont 0 + SetCtlColors $Label_Translation_subtitle_1 0x696969 0xF0F0F0 + ${NSD_CreateLabel} 0 92u 30% 8u "(Download language model)" + Pop $Label_Translation_subtitle_2 + SendMessage $Label_Translation_subtitle_2 ${WM_SETFONT} $subFont 0 + SetCtlColors $Label_Translation_subtitle_2 0x696969 0xF0F0F0 + + ${NSD_CreateRadioButton} 33% 70u 33% 12u "使用する (Use)" + Pop $RadioButton_Download + ${NSD_CreateRadioButton} 66% 70u 33% 12u "使用しない (Don't use)" + Pop $RadioButton_NotDownload + + ${NSD_CB_AddString} $DropList_Language "English" + ${NSD_CB_AddString} $DropList_Language "日本語" + ${NSD_CB_AddString} $DropList_Language "한국어" + + ${NSD_CB_SelectString} $DropList_Language "English" + + ${If} $DownloadWeight == ${BST_CHECKED} + ; チェックが入力済の場合、チェックボックスにチェックを入れます。 + ${NSD_Check} $RadioButton_Download + ${EndIf} + nsDialogs::Show +FunctionEnd + +; オプション ページ 2 退出コールバック +Function OptionPageLeave2 + ${NSD_GetText} $DropList_Language $DropList_Language + ${NSD_GetState} $RadioButton_Download $DownloadWeight FunctionEnd ; デフォルト セクション @@ -169,15 +212,21 @@ Section ${EndIf} ; ComboBoxの選択値から言語を判定しconfig.jsonを$INSTDIRに作成 - ${If} $ComboBox_Language == "English" + ${If} $DropList_Language == "English" StrCpy $Set_Langage "en" - ${ElseIf} $ComboBox_Language == "日本語" + ${ElseIf} $DropList_Language == "日本語" StrCpy $Set_Langage "ja" - ${ElseIf} $ComboBox_Language == "한국어" + ${ElseIf} $DropList_Language == "한국어" StrCpy $Set_Langage "ko" ${EndIf} - StrCpy $1 '{"UI_LANGUAGE": "$Set_Langage"}' + ${If} $DownloadWeight == 1 + StrCpy $DownloadWeight "true" + ${Else} + StrCpy $DownloadWeight "false" + ${EndIf} + + StrCpy $1 '{"UI_LANGUAGE": "$Set_Langage", "USE_TRANSLATION_FEATURE": $DownloadWeight}' FileOpen $0 "$INSTDIR\config.json" w FileWrite $0 $1 FileClose $0