Skip to content

Commit

Permalink
support English
Browse files Browse the repository at this point in the history
  • Loading branch information
ccyybn authored and fxliang committed May 27, 2024
1 parent 919890d commit 22fce58
Show file tree
Hide file tree
Showing 25 changed files with 195 additions and 121 deletions.
20 changes: 16 additions & 4 deletions RimeWithWeasel/RimeWithWeasel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ void RimeWithWeaselHandler::_Setup() {
weasel_traits.shared_data_dir = shared_dir.c_str();
weasel_traits.user_data_dir = user_dir.c_str();
weasel_traits.prebuilt_data_dir = weasel_traits.shared_data_dir;
std::string distribution_name = wstring_to_string(WEASEL_IME_NAME, CP_UTF8);
std::string distribution_name =
wstring_to_string(get_weasel_ime_name(), CP_UTF8);
weasel_traits.distribution_name = distribution_name.c_str();
weasel_traits.distribution_code_name = WEASEL_CODE_NAME;
weasel_traits.distribution_version = WEASEL_VERSION;
Expand Down Expand Up @@ -723,15 +724,26 @@ bool RimeWithWeaselHandler::_ShowMessage(Context& ctx, Status& status) {
bool show_icon = false;
if (m_message_type == "deploy") {
if (m_message_value == "start")
tips = L"正在部署 RIME";
if (GetThreadUILanguage() == MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US))
tips = L"Deploying RIME";
else
tips = L"正在部署 RIME";
else if (m_message_value == "success")
tips = L"部署完成";
if (GetThreadUILanguage() == MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US))
tips = L"Deployed";
else
tips = L"部署完成";
else if (m_message_value == "failure") {
if (GetThreadUILanguage() ==
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL))
tips = L"有錯誤,請查看日誌 %TEMP%\\rime.weasel\\rime.weasel.*.INFO";
else
else if (GetThreadUILanguage() ==
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED))
tips = L"有错误,请查看日志 %TEMP%\\rime.weasel\\rime.weasel.*.INFO";
else
tips =
L"There is an error, please check the logs "
L"%TEMP%\\rime.weasel\\rime.weasel.*.INFO";
}
} else if (m_message_type == "schema") {
tips = /*L"【" + */ status.schema_name /* + L"】"*/;
Expand Down
3 changes: 2 additions & 1 deletion WeaselDeployer/Configurator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ void Configurator::Initialize() {
weasel_traits.shared_data_dir = shared_dir.c_str();
weasel_traits.user_data_dir = user_dir.c_str();
weasel_traits.prebuilt_data_dir = weasel_traits.shared_data_dir;
std::string distribution_name = wstring_to_string(WEASEL_IME_NAME, CP_UTF8);
std::string distribution_name =
wstring_to_string(get_weasel_ime_name(), CP_UTF8);
weasel_traits.distribution_name = distribution_name.c_str();
weasel_traits.distribution_code_name = WEASEL_CODE_NAME;
weasel_traits.distribution_version = WEASEL_VERSION;
Expand Down
12 changes: 7 additions & 5 deletions WeaselDeployer/WeaselDeployer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,17 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
UNREFERENCED_PARAMETER(hPrevInstance);

LCID lcid = GetUserDefaultLCID();
LANGID langId;
if (lcid == 2052 || lcid == 3072 || lcid == 4100) {
LANGID langId = SetThreadUILanguage(
langId = SetThreadUILanguage(
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED));
SetThreadLocale(langId);
} else {
LANGID langId = SetThreadUILanguage(
} else if (lcid == 1028 || lcid == 3076 || lcid == 5124) {
langId = SetThreadUILanguage(
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL));
SetThreadLocale(langId);
} else {
langId = SetThreadUILanguage(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
SetThreadLocale(langId);

HRESULT hRes = ::CoInitialize(NULL);
// If you are running on NT 4.0 or higher you can use the following call
Expand Down
Binary file modified WeaselDeployer/WeaselDeployer.rc
Binary file not shown.
3 changes: 1 addition & 2 deletions WeaselIME/WeaselIME.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
#include <strsafe.h>
#include <ResponseParser.h>
#include <StringAlgorithm.hpp>
#include <WeaselConstants.h>
#include "WeaselIME.h"

// logging disabled
Expand All @@ -22,7 +21,7 @@ static void error_message(const WCHAR* msg) {
DWORD now = GetTickCount();
if (now > next_tick) {
next_tick = now + 10000; // (ms)
MessageBox(NULL, msg, WEASEL_IME_NAME, MB_ICONERROR | MB_OK);
MessageBox(NULL, msg, get_weasel_ime_name().c_str(), MB_ICONERROR | MB_OK);
}
}

Expand Down
24 changes: 12 additions & 12 deletions WeaselServer/WeaselServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include <ShellScalingApi.h>
#include <WinUser.h>
#include <memory>
#include <atlstr.h>
#pragma comment(lib, "Shcore.lib")
CAppModule _Module;

Expand All @@ -22,24 +23,23 @@ int WINAPI _tWinMain(HINSTANCE hInstance,
LPTSTR lpstrCmdLine,
int nCmdShow) {
LCID lcid = GetUserDefaultLCID();
LANGID langId;
if (lcid == 2052 || lcid == 3072 || lcid == 4100) {
LANGID langId = SetThreadUILanguage(
langId = SetThreadUILanguage(
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED));
SetThreadLocale(langId);
} else {
LANGID langId = SetThreadUILanguage(
} else if (lcid == 1028 || lcid == 3076 || lcid == 5124) {
langId = SetThreadUILanguage(
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL));
SetThreadLocale(langId);
} else {
langId = SetThreadUILanguage(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
SetThreadLocale(langId);

if (!IsWindowsBlueOrLaterEx()) {
if (GetThreadUILanguage() ==
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL))
::MessageBox(NULL, L"僅支持Windows 8.1或更高版本系統", L"系統版本過低",
MB_ICONERROR);
else
::MessageBox(NULL, L"仅支持Windows 8.1或更高版本系统", L"系统版本过低",
MB_ICONERROR);
CString info, cap;
info.LoadStringW(IDS_STR_SYSTEM_VERSION_WARNING);
cap.LoadStringW(IDS_STR_SYSTEM_VERSION_WARNING_CAPTION);
MessageBoxExW(NULL, info, cap, MB_ICONERROR, langId);
return 0;
}
SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE);
Expand Down
Binary file modified WeaselServer/WeaselServer.rc
Binary file not shown.
8 changes: 8 additions & 0 deletions WeaselServer/WeaselServerApp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ int WeaselServerApp::Run() {

// win_sparkle_set_appcast_url("http://localhost:8000/weasel/update/appcast.xml");
win_sparkle_set_registry_path("Software\\Rime\\Weasel\\Updates");
if (GetThreadUILanguage() ==
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL))
win_sparkle_set_lang("zh-TW");
else if (GetThreadUILanguage() ==
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED))
win_sparkle_set_lang("zh-CN");
else
win_sparkle_set_lang("en");
win_sparkle_init();
m_ui.Create(m_server.GetHWnd());

Expand Down
17 changes: 8 additions & 9 deletions WeaselServer/WeaselTrayIcon.cpp
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#include "stdafx.h"
#include "WeaselTrayIcon.h"
#include <WeaselConstants.h>
#include <atlstr.h>

// nasty
#include <resource.h>

static UINT mode_icon[] = {IDI_ZH, IDI_ZH, IDI_EN, IDI_RELOAD};
static const WCHAR* mode_label[] = {NULL, /*L"中文"*/ NULL, /*L"西文"*/ NULL,
L"維護中"};
L"Under maintenance"};

WeaselTrayIcon::WeaselTrayIcon(weasel::UI& ui)
: m_style(ui.style()),
Expand All @@ -23,8 +23,9 @@ BOOL WeaselTrayIcon::Create(HWND hTargetWnd) {
HMODULE hModule = GetModuleHandle(NULL);
CIcon icon;
icon.LoadIconW(IDI_ZH);
BOOL bRet = CSystemTray::Create(hModule, NULL, WM_WEASEL_TRAY_NOTIFY,
WEASEL_IME_NAME, icon, IDR_MENU_POPUP);
BOOL bRet =
CSystemTray::Create(hModule, NULL, WM_WEASEL_TRAY_NOTIFY,
get_weasel_ime_name().c_str(), icon, IDR_MENU_POPUP);
if (hTargetWnd) {
SetTargetWnd(hTargetWnd);
}
Expand Down Expand Up @@ -79,11 +80,9 @@ void WeaselTrayIcon::Refresh() {
SetIcon(mode_icon[mode]);

if (mode_label[mode] && m_disabled == false) {
if (GetThreadUILanguage() ==
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL))
ShowBalloon(mode_label[mode], WEASEL_IME_NAME);
else
ShowBalloon(L"维护中", WEASEL_IME_NAME);
CString info;
info.LoadStringW(IDS_STR_UNDER_MAINTENANCE);
ShowBalloon(info, get_weasel_ime_name().c_str());
m_disabled = true;
}
if (m_mode != DISABLED)
Expand Down
14 changes: 9 additions & 5 deletions WeaselServer/resource.h
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// WeaselServer.rc 使用
// Microsoft Visual C++ generated include file.
// Used by WeaselServer.rc
//
#define IDI_WEASEL 100
#define IDI_EN 101
#define IDI_ZH 102
#define IDI_RELOAD 103
#define IDR_MENU_POPUP 105
#define IDI_FULL_SHAPE 106
#define IDI_HALF_SHAPE 107

#define IDI_FULL_SHAPE 106
#define IDI_HALF_SHAPE 107
#define IDS_STR_SYSTEM_VERSION_WARNING_CAPTION 300
#define IDS_STR_SYSTEM_VERSION_WARNING 301
#define IDS_STR_UNDER_MAINTENANCE 302
#define ID_WEASELTRAY_QUIT 40001
#define ID_WEASELTRAY_DEPLOY 40002
#define ID_WEASELTRAY_CHECKUPDATE 40003
Expand All @@ -23,6 +25,8 @@
#define ID_WEASELTRAY_SYNC 40012
#define ID_WEASELTRAY_ENABLE_ASCII 40013
#define ID_WEASELTRAY_DISABLE_ASCII 40014
#define ID_WEASELTRAY_RERUN_SERVICE 40015
#define ID_WEASELTRAY_LOGDIR 40016

// Next default values for new objects
//
Expand Down
8 changes: 8 additions & 0 deletions WeaselServer/stdafx.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,11 @@
#include <VersionHelpers.hpp>

extern CAppModule _Module;

#if defined _M_IX86
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif
12 changes: 7 additions & 5 deletions WeaselSetup/WeaselSetup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,17 @@ int WINAPI _tWinMain(HINSTANCE hInstance,
ATLASSERT(SUCCEEDED(hRes));

LCID lcid = GetUserDefaultLCID();
LANGID langId;
if (lcid == 2052 || lcid == 3072 || lcid == 4100) {
LANGID langId = SetThreadUILanguage(
langId = SetThreadUILanguage(
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED));
SetThreadLocale(langId);
} else {
LANGID langId = SetThreadUILanguage(
} else if (lcid == 1028 || lcid == 3076 || lcid == 5124) {
langId = SetThreadUILanguage(
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL));
SetThreadLocale(langId);
} else {
langId = SetThreadUILanguage(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
}
SetThreadLocale(langId);

int nRet = Run(lpstrCmdLine);

Expand Down
Binary file modified WeaselSetup/WeaselSetup.rc
Binary file not shown.
7 changes: 4 additions & 3 deletions WeaselSetup/imesetup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ int register_ime(const std::wstring& ime_path,
const WCHAR PRELOAD_KEY[] = L"Keyboard Layout\\Preload";

if (register_ime) {
HKL hKL = ImmInstallIME(ime_path.c_str(), WEASEL_IME_NAME);
HKL hKL = ImmInstallIME(ime_path.c_str(), get_weasel_ime_name().c_str());
if (!hKL) {
// manually register ime
WCHAR hkl_str[16] = {0};
Expand Down Expand Up @@ -323,9 +323,10 @@ int register_ime(const std::wstring& ime_path,
const WCHAR layout_file[] = L"kbdus.dll";
RegSetValueEx(hSubKey, L"Layout File", 0, REG_SZ,
(LPBYTE)layout_file, sizeof(layout_file));
const WCHAR layout_text[] = WEASEL_IME_NAME;
const std::wstring layout_text = get_weasel_ime_name();
RegSetValueEx(hSubKey, L"Layout Text", 0, REG_SZ,
(LPBYTE)layout_text, sizeof(layout_text));
(LPBYTE)layout_text.c_str(),
layout_text.size() * sizeof(wchar_t));
RegCloseKey(hSubKey);
hKL = (HKL)k;
}
Expand Down
96 changes: 48 additions & 48 deletions WeaselSetup/resource.h
Original file line number Diff line number Diff line change
@@ -1,48 +1,48 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// WeaselSetup.rc 使用
//
#define IDI_WEASELSETUP 107
#define IDR_WEASELSETUP 107
#define IDR_MAINFRAME 128
#define IDS_STRING_INSTALL 129
#define IDS_STRING_MODIFY 130
#define IDS_STR_INSTALL_FAILED 131
#define IDS_STR_INSTALL_SUCCESS_CAP 132
#define IDS_STR_UNINSTALL_SUCCESS_CAP 133
#define IDS_STR_UNINSTALL_FAILED 134
#define IDS_STR_ERRCANCELFSREDIRECT 135
#define IDS_STR_ERRRECOVERFSREDIRECT 136
#define IDS_STR_ERRREGIME 137
#define IDS_STR_ERRREGTSF 138
#define IDS_STR_ERRREGIMEWRITESVREXE 139
#define IDS_STR_INORUN_FAILED 140
#define IDS_STR_ERRWRITEWEASELROOT 141
#define IDS_STR_INSTALL_SUCCESS_INFO 142
#define IDS_STR_UNINSTALL_SUCCESS_INFO 143
#define IDS_STR_ERR_WRITE_USER_DIR 144
#define IDS_STR_ERR_WRITE_HANT 145
#define IDS_STR_MODIFY_SUCCESS_INFO 146
#define IDS_STR_MODIFY_SUCCESS_CAP 147
#define IDD_INSTALL_OPTIONS 201
#define IDD_DIALOG1 203
#define IDC_RADIO_CN 1000
#define IDC_RADIO_TW 1001
#define IDC_RADIO_DEFAULT_DIR 1002
#define IDC_RADIO_CUSTOM_DIR 1003
#define IDC_EDIT_DIR 1004
#define IDC_REMOVE 1005
#define IDC_CHECK1 1006
#define IDC_CHECK_INSTIME 1006
#define IDC_BUTTON_CUSTOM_DIR 1007

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 205
#define _APS_NEXT_COMMAND_VALUE 32775
#define _APS_NEXT_CONTROL_VALUE 1008
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by WeaselSetup.rc
//
#define IDI_WEASELSETUP 107
#define IDR_WEASELSETUP 107
#define IDR_MAINFRAME 128
#define IDS_STRING_INSTALL 129
#define IDS_STRING_MODIFY 130
#define IDS_STR_INSTALL_FAILED 131
#define IDS_STR_INSTALL_SUCCESS_CAP 132
#define IDS_STR_UNINSTALL_SUCCESS_CAP 133
#define IDS_STR_UNINSTALL_FAILED 134
#define IDS_STR_ERRCANCELFSREDIRECT 135
#define IDS_STR_ERRRECOVERFSREDIRECT 136
#define IDS_STR_ERRREGIME 137
#define IDS_STR_ERRREGTSF 138
#define IDS_STR_ERRREGIMEWRITESVREXE 139
#define IDS_STR_INORUN_FAILED 140
#define IDS_STR_ERRWRITEWEASELROOT 141
#define IDS_STR_INSTALL_SUCCESS_INFO 142
#define IDS_STR_UNINSTALL_SUCCESS_INFO 143
#define IDS_STR_ERR_WRITE_USER_DIR 144
#define IDS_STR_ERR_WRITE_HANT 145
#define IDS_STR_MODIFY_SUCCESS_INFO 146
#define IDS_STR_MODIFY_SUCCESS_CAP 147
#define IDD_INSTALL_OPTIONS 201
#define IDD_DIALOG1 203
#define IDC_RADIO_CN 1000
#define IDC_RADIO_TW 1001
#define IDC_RADIO_DEFAULT_DIR 1002
#define IDC_RADIO_CUSTOM_DIR 1003
#define IDC_EDIT_DIR 1004
#define IDC_REMOVE 1005
#define IDC_CHECK1 1006
#define IDC_CHECK_INSTIME 1006
#define IDC_BUTTON_CUSTOM_DIR 1007

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 205
#define _APS_NEXT_COMMAND_VALUE 32775
#define _APS_NEXT_CONTROL_VALUE 1008
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
4 changes: 2 additions & 2 deletions WeaselTSF/Globals.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
#define TEXTSERVICE_LANGID_MACAU MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_MACAU)
#define TEXTSERVICE_LANGID_SINGAPORE \
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SINGAPORE)
#define TEXTSERVICE_LANGID MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)
#define TEXTSERVICE_LANGID_HANS \
MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)

#define TEXTSERVICE_DESC WEASEL_IME_NAME
#define TEXTSERVICE_DESC_A WEASEL_CODE_NAME
#define TEXTSERVICE_MODEL "Apartment"

Expand Down
Loading

0 comments on commit 22fce58

Please sign in to comment.