[Launcher] Add Launcher Language setting
This commit is contained in:
@@ -148,6 +148,8 @@ USE_DIVAHOOK_BAT_NAME=Use divahook.bat
|
|||||||
USE_DIVAHOOK_BAT_HINT=Launches divahook.bat intead of diva.exe.
|
USE_DIVAHOOK_BAT_HINT=Launches divahook.bat intead of diva.exe.
|
||||||
DARK_LAUNCHER_NAME=Dark Launcher
|
DARK_LAUNCHER_NAME=Dark Launcher
|
||||||
DARK_LAUNCHER_HINT=Sets the dark colour scheme in the launcher.
|
DARK_LAUNCHER_HINT=Sets the dark colour scheme in the launcher.
|
||||||
|
LAUNCHER_LANGUAGE_NAME=Launcher Language:
|
||||||
|
LAUNCHER_LANGUAGE_HINT=Sets the Language of the launcher.
|
||||||
NO_GPU_DIALOG_NAME=Disable GPU Warning
|
NO_GPU_DIALOG_NAME=Disable GPU Warning
|
||||||
NO_GPU_DIALOG_HINT=Disables the warning dialog for unsupported GPUs.
|
NO_GPU_DIALOG_HINT=Disables the warning dialog for unsupported GPUs.
|
||||||
|
|
||||||
|
|||||||
@@ -166,6 +166,8 @@ USE_DIVAHOOK_BAT_NAME=使用 divahook.bat
|
|||||||
USE_DIVAHOOK_BAT_HINT=启动 divahook.bat 而非 diva.exe
|
USE_DIVAHOOK_BAT_HINT=启动 divahook.bat 而非 diva.exe
|
||||||
DARK_LAUNCHER_NAME=暗黑模式
|
DARK_LAUNCHER_NAME=暗黑模式
|
||||||
DARK_LAUNCHER_HINT=启用启动器自带的暗黑主题
|
DARK_LAUNCHER_HINT=启用启动器自带的暗黑主题
|
||||||
|
LAUNCHER_LANGUAGE_NAME=启动器语言
|
||||||
|
LAUNCHER_LANGUAGE_HINT=设置启动器语言。
|
||||||
NO_GPU_DIALOG_NAME=停用 GPU 警告信息
|
NO_GPU_DIALOG_NAME=停用 GPU 警告信息
|
||||||
NO_GPU_DIALOG_HINT=停用对于不支持的 GPU 的警告信息
|
NO_GPU_DIALOG_HINT=停用对于不支持的 GPU 的警告信息
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ LPCWSTR KEYCONFIG_SECTION = L"keyconfig";
|
|||||||
|
|
||||||
int nSkipLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"skip", FALSE, CONFIG_FILE);
|
int nSkipLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"skip", FALSE, CONFIG_FILE);
|
||||||
int nNoGPUDialog = GetPrivateProfileIntW(LAUNCHER_SECTION, L"no_gpu_dialog", FALSE, CONFIG_FILE);
|
int nNoGPUDialog = GetPrivateProfileIntW(LAUNCHER_SECTION, L"no_gpu_dialog", FALSE, CONFIG_FILE);
|
||||||
|
int nLanguage = GetPrivateProfileIntW(LAUNCHER_SECTION, L"launcher_language", FALSE, CONFIG_FILE);
|
||||||
|
|
||||||
|
std::vector<LPCWSTR> languages = std::vector<LPCWSTR>({ L"Automatic", L"en", L"zh-Hans" });
|
||||||
|
|
||||||
void SetBackCol(Control^ elem, System::Drawing::Color color, System::Windows::Forms::FlatStyle cbxStyle)
|
void SetBackCol(Control^ elem, System::Drawing::Color color, System::Windows::Forms::FlatStyle cbxStyle)
|
||||||
{
|
{
|
||||||
@@ -281,6 +284,7 @@ ConfigOptionBase* optionsArray[] = {
|
|||||||
new OptionMetaSpacer(8),
|
new OptionMetaSpacer(8),
|
||||||
|
|
||||||
new BooleanOption(L"dark_launcher", LAUNCHER_SECTION, CONFIG_FILE, L"DARK_LAUNCHER_NAME", L"DARK_LAUNCHER_HINT", false, false),
|
new BooleanOption(L"dark_launcher", LAUNCHER_SECTION, CONFIG_FILE, L"DARK_LAUNCHER_NAME", L"DARK_LAUNCHER_HINT", false, false),
|
||||||
|
new DropdownOption(L"launcher_language",LAUNCHER_SECTION,CONFIG_FILE, L"LAUNCHER_LANGUAGE_NAME",L"LAUNCHER_LANGUAGE_HINT", 0, languages),
|
||||||
//new BooleanOption(L"acrylic_blur", LAUNCHER_SECTION, CONFIG_FILE, L"ACRYLIC_BLUR_NAME", L"ACRYLIC_BLUR_HINT", false, false),
|
//new BooleanOption(L"acrylic_blur", LAUNCHER_SECTION, CONFIG_FILE, L"ACRYLIC_BLUR_NAME", L"ACRYLIC_BLUR_HINT", false, false),
|
||||||
new BooleanOption(L"no_gpu_dialog", LAUNCHER_SECTION, CONFIG_FILE, L"NO_GPU_DIALOG_NAME", L"NO_GPU_DIALOG_HINT", false, false),
|
new BooleanOption(L"no_gpu_dialog", LAUNCHER_SECTION, CONFIG_FILE, L"NO_GPU_DIALOG_NAME", L"NO_GPU_DIALOG_HINT", false, false),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ namespace Launcher {
|
|||||||
using namespace System::Windows::Forms;
|
using namespace System::Windows::Forms;
|
||||||
using namespace System::Data;
|
using namespace System::Data;
|
||||||
using namespace System::Drawing;
|
using namespace System::Drawing;
|
||||||
|
using namespace System::Threading;
|
||||||
|
using namespace System::Globalization;
|
||||||
using namespace msclr::interop;
|
using namespace msclr::interop;
|
||||||
|
|
||||||
HWND hWnd;
|
HWND hWnd;
|
||||||
@@ -34,13 +36,12 @@ namespace Launcher {
|
|||||||
public:
|
public:
|
||||||
ui(void)
|
ui(void)
|
||||||
{
|
{
|
||||||
|
SetLanguage();
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
hWnd = (HWND)Control::Handle.ToPointer();
|
hWnd = (HWND)Control::Handle.ToPointer();
|
||||||
|
|
||||||
this->ClientSize = Drawing::Size(444, 323);
|
|
||||||
TabPadding^ tabpad = gcnew TabPadding(tabControl);
|
|
||||||
|
|
||||||
// if components.ini has no section name, add one
|
// if components.ini has no section name, add one
|
||||||
if (!IsLineInFile("[components]", COMPONENTS_FILE))
|
if (!IsLineInFile("[components]", COMPONENTS_FILE))
|
||||||
{
|
{
|
||||||
@@ -59,7 +60,19 @@ namespace Launcher {
|
|||||||
PrependFile("[keyconfig]\n", KEYCONFIG_FILE);
|
PrependFile("[keyconfig]\n", KEYCONFIG_FILE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// trick Optimus into switching to the NVIDIA GPU
|
||||||
|
if (cuInit != NULL) cuInit(0);
|
||||||
|
|
||||||
|
int argc = 1;
|
||||||
|
char* argv[1] = { (char*)"" };
|
||||||
|
|
||||||
|
glutInit(&argc, argv);
|
||||||
|
|
||||||
|
addOptions();
|
||||||
|
updateStyle();
|
||||||
|
}
|
||||||
|
|
||||||
|
void addOptions() {
|
||||||
this->panel_ScreenRes->SuspendLayout();
|
this->panel_ScreenRes->SuspendLayout();
|
||||||
|
|
||||||
// populate options (patches) from array in framework
|
// populate options (patches) from array in framework
|
||||||
@@ -202,21 +215,11 @@ namespace Launcher {
|
|||||||
this->panel_Custom->PerformLayout();
|
this->panel_Custom->PerformLayout();
|
||||||
|
|
||||||
|
|
||||||
// trick Optimus into switching to the NVIDIA GPU
|
|
||||||
if (cuInit != NULL) cuInit(0);
|
|
||||||
|
|
||||||
int argc = 1;
|
|
||||||
char* argv[1] = { (char*)"" };
|
|
||||||
|
|
||||||
|
|
||||||
updateLagCompMsec();
|
updateLagCompMsec();
|
||||||
|
|
||||||
updateStyle();
|
|
||||||
|
|
||||||
scanModpacks();
|
scanModpacks();
|
||||||
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
int window = glutCreateWindow("glut"); // a context must be created to use glGetString
|
int window = glutCreateWindow("glut"); // a context must be created to use glGetString
|
||||||
glutHideWindow();
|
glutHideWindow();
|
||||||
|
|
||||||
@@ -471,6 +474,26 @@ namespace Launcher {
|
|||||||
tabPage_Modpacks->Enabled = false;
|
tabPage_Modpacks->Enabled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateLanguage() {
|
||||||
|
int language = GetPrivateProfileIntW(LAUNCHER_SECTION, L"launcher_language", FALSE, CONFIG_FILE);
|
||||||
|
if (nLanguage == language)
|
||||||
|
return;
|
||||||
|
nLanguage = language;
|
||||||
|
|
||||||
|
SetLanguage();
|
||||||
|
|
||||||
|
this->Controls->Clear();
|
||||||
|
this->InitializeComponent();
|
||||||
|
this->addOptions();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetLanguage() {
|
||||||
|
if (nLanguage == 0) {
|
||||||
|
Thread::CurrentThread->CurrentUICulture = gcnew CultureInfo(GetUserDefaultLCID());
|
||||||
|
} else if (nLanguage <= languages.size() - 1) {
|
||||||
|
Thread::CurrentThread->CurrentUICulture = CultureInfo::CreateSpecificCulture(gcnew String(languages[nLanguage]));
|
||||||
|
}
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
@@ -1340,9 +1363,8 @@ private: System::Void button_github_Click(System::Object^ sender, System::EventA
|
|||||||
}
|
}
|
||||||
private: System::Void button_Apply_Click(System::Object^ sender, System::EventArgs^ e) {
|
private: System::Void button_Apply_Click(System::Object^ sender, System::EventArgs^ e) {
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
|
updateLanguage();
|
||||||
updateStyle();
|
updateStyle();
|
||||||
//ShowWindow(hWnd, SW_HIDE);
|
|
||||||
//ShowWindow(hWnd, SW_SHOW);
|
|
||||||
}
|
}
|
||||||
private: System::Void Ui_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e) {
|
private: System::Void Ui_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e) {
|
||||||
if (e->KeyCode == Keys::Escape) this->Close();
|
if (e->KeyCode == Keys::Escape) this->Close();
|
||||||
|
|||||||
Reference in New Issue
Block a user