Merge branch 'installer' into develop

This commit is contained in:
misyaguziya
2024-01-22 22:34:17 +09:00
2 changed files with 86 additions and 37 deletions

View File

@@ -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

View File

@@ -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