mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
+ add: provide Mono-Language IDs
This commit is contained in:
parent
10567daa26
commit
fa80353c72
@ -5,6 +5,67 @@
|
||||
#ifndef _COMMON_RES_H_
|
||||
#define _COMMON_RES_H_
|
||||
|
||||
// undefined Sub-Language
|
||||
#define SUBLANG_SPANISH_LATIN_AMERICA 0x16
|
||||
|
||||
#if defined(MUI_BASE_LNG_EN_US)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
|
||||
#elif defined(MUI_BASE_LNG_AF_ZA)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_AFRIKAANS, SUBLANG_AFRIKAANS_SOUTH_AFRICA)
|
||||
#elif defined(MUI_BASE_LNG_BE_BY)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_BELARUSIAN, SUBLANG_BELARUSIAN_BELARUS)
|
||||
#elif defined(MUI_BASE_LNG_DE_DE)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN)
|
||||
#elif defined(MUI_BASE_LNG_EL_GR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_GREEK, SUBLANG_GREEK_GREECE)
|
||||
#elif defined(MUI_BASE_LNG_EN_GB)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK)
|
||||
#elif defined(MUI_BASE_LNG_ES_419)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_LATIN_AMERICA)
|
||||
#elif defined(MUI_BASE_LNG_ES_ES)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN)
|
||||
#elif defined(MUI_BASE_LNG_FR_FR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH)
|
||||
#elif defined(MUI_BASE_LNG_HI_IN)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_HINDI, SUBLANG_HINDI_INDIA)
|
||||
#elif defined(MUI_BASE_LNG_HU_HU)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_HUNGARIAN, SUBLANG_HUNGARIAN_HUNGARY)
|
||||
#elif defined(MUI_BASE_LNG_ID_ID)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_INDONESIAN, SUBLANG_INDONESIAN_INDONESIA)
|
||||
#elif defined(MUI_BASE_LNG_IT_IT)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ITALIAN, SUBLANG_ITALIAN)
|
||||
#elif defined(MUI_BASE_LNG_JA_JP)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN)
|
||||
#elif defined(MUI_BASE_LNG_KO_KR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_KOREAN, SUBLANG_KOREAN)
|
||||
#elif defined(MUI_BASE_LNG_NL_NL)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_DUTCH, SUBLANG_DUTCH)
|
||||
#elif defined(MUI_BASE_LNG_PL_PL)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_POLISH, SUBLANG_POLISH_POLAND)
|
||||
#elif defined(MUI_BASE_LNG_PT_BR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN)
|
||||
#elif defined(MUI_BASE_LNG_PT_PT)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE)
|
||||
#elif defined(MUI_BASE_LNG_RU_RU)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_RUSSIAN, SUBLANG_RUSSIAN_RUSSIA)
|
||||
#elif defined(MUI_BASE_LNG_SK_SK)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SLOVAK, SUBLANG_SLOVAK_SLOVAKIA)
|
||||
#elif defined(MUI_BASE_LNG_SV_SE)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SWEDISH, SUBLANG_SWEDISH)
|
||||
#elif defined(MUI_BASE_LNG_TR_TR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_TURKISH, SUBLANG_TURKISH_TURKEY)
|
||||
#elif defined(MUI_BASE_LNG_VI_VN)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_VIETNAMESE, SUBLANG_VIETNAMESE_VIETNAM
|
||||
#elif defined(MUI_BASE_LNG_ZH_CN)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)
|
||||
#elif defined(MUI_BASE_LNG_ZH_TW)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_CHINESE_TRADITIONAL, SUBLANG_CHINESE_TRADITIONAL)
|
||||
#else
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
|
||||
#endif
|
||||
|
||||
// ==========================================
|
||||
|
||||
#ifndef IDC_STATIC
|
||||
#define IDC_STATIC (-1)
|
||||
#endif
|
||||
@ -14,9 +75,6 @@
|
||||
#define IDC_STATIC5 (-5)
|
||||
#define IDC_STATIC6 (-6)
|
||||
|
||||
// undefined Sub-Language
|
||||
#define SUBLANG_SPANISH_LATIN_AMERICA 0x16
|
||||
|
||||
#define IDR_MUI_MAINMENU 10001
|
||||
#define IDR_MUI_POPUPMENU 10002
|
||||
|
||||
|
||||
@ -5,7 +5,65 @@
|
||||
#define _COMMON_RES_H_
|
||||
|
||||
// undefined Sub-Language
|
||||
#define SUBLANG_SPANISH_LATIN_AMERICA 0x16
|
||||
#define SUBLANG_SPANISH_LATIN_AMERICA 0x16
|
||||
|
||||
#if defined(MUI_BASE_LNG_EN_US)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
|
||||
#elif defined(MUI_BASE_LNG_AF_ZA)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_AFRIKAANS, SUBLANG_AFRIKAANS_SOUTH_AFRICA)
|
||||
#elif defined(MUI_BASE_LNG_BE_BY)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_BELARUSIAN, SUBLANG_BELARUSIAN_BELARUS)
|
||||
#elif defined(MUI_BASE_LNG_DE_DE)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_GERMAN, SUBLANG_GERMAN)
|
||||
#elif defined(MUI_BASE_LNG_EL_GR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_GREEK, SUBLANG_GREEK_GREECE)
|
||||
#elif defined(MUI_BASE_LNG_EN_GB)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_UK)
|
||||
#elif defined(MUI_BASE_LNG_ES_419)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_LATIN_AMERICA)
|
||||
#elif defined(MUI_BASE_LNG_ES_ES)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SPANISH, SUBLANG_SPANISH_MODERN)
|
||||
#elif defined(MUI_BASE_LNG_FR_FR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH)
|
||||
#elif defined(MUI_BASE_LNG_HI_IN)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_HINDI, SUBLANG_HINDI_INDIA)
|
||||
#elif defined(MUI_BASE_LNG_HU_HU)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_HUNGARIAN, SUBLANG_HUNGARIAN_HUNGARY)
|
||||
#elif defined(MUI_BASE_LNG_ID_ID)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_INDONESIAN, SUBLANG_INDONESIAN_INDONESIA)
|
||||
#elif defined(MUI_BASE_LNG_IT_IT)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ITALIAN, SUBLANG_ITALIAN)
|
||||
#elif defined(MUI_BASE_LNG_JA_JP)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_JAPANESE, SUBLANG_JAPANESE_JAPAN)
|
||||
#elif defined(MUI_BASE_LNG_KO_KR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_KOREAN, SUBLANG_KOREAN)
|
||||
#elif defined(MUI_BASE_LNG_NL_NL)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_DUTCH, SUBLANG_DUTCH)
|
||||
#elif defined(MUI_BASE_LNG_PL_PL)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_POLISH, SUBLANG_POLISH_POLAND)
|
||||
#elif defined(MUI_BASE_LNG_PT_BR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN)
|
||||
#elif defined(MUI_BASE_LNG_PT_PT)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_PORTUGUESE, SUBLANG_PORTUGUESE)
|
||||
#elif defined(MUI_BASE_LNG_RU_RU)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_RUSSIAN, SUBLANG_RUSSIAN_RUSSIA)
|
||||
#elif defined(MUI_BASE_LNG_SK_SK)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SLOVAK, SUBLANG_SLOVAK_SLOVAKIA)
|
||||
#elif defined(MUI_BASE_LNG_SV_SE)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_SWEDISH, SUBLANG_SWEDISH)
|
||||
#elif defined(MUI_BASE_LNG_TR_TR)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_TURKISH, SUBLANG_TURKISH_TURKEY)
|
||||
#elif defined(MUI_BASE_LNG_VI_VN)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_VIETNAMESE, SUBLANG_VIETNAMESE_VIETNAM
|
||||
#elif defined(MUI_BASE_LNG_ZH_CN)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED)
|
||||
#elif defined(MUI_BASE_LNG_ZH_TW)
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_CHINESE_TRADITIONAL, SUBLANG_CHINESE_TRADITIONAL)
|
||||
#else
|
||||
#define MUI_BASE_LNG_ID MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)
|
||||
#endif
|
||||
|
||||
// ==========================================
|
||||
|
||||
#define IDR_MAINWND 100
|
||||
#define IDC_COMMANDLINE 100
|
||||
|
||||
@ -515,7 +515,6 @@ INT_PTR CALLBACK AboutDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
|
||||
|
||||
switch(umsg) {
|
||||
case WM_INITDIALOG: {
|
||||
WCHAR wch[256];
|
||||
LOGFONT lf;
|
||||
|
||||
if (g_hDlgIconSmall) {
|
||||
@ -540,6 +539,7 @@ INT_PTR CALLBACK AboutDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
|
||||
hFontTitle = CreateFontIndirect(&lf);
|
||||
SendDlgItemMessage(hwnd,IDC_VERSION,WM_SETFONT,(WPARAM)hFontTitle,TRUE);
|
||||
|
||||
WCHAR wch[256];
|
||||
if (GetDlgItem(hwnd,IDC_WEBPAGE) == NULL) {
|
||||
SetDlgItemText(hwnd,IDC_WEBPAGE2,VERSION_WEBPAGEDISPLAY);
|
||||
ShowWindow(GetDlgItem(hwnd,IDC_WEBPAGE2),SW_SHOWNORMAL);
|
||||
|
||||
@ -283,10 +283,8 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int
|
||||
// Init OLE and Common Controls
|
||||
OleInitialize(NULL);
|
||||
|
||||
INITCOMMONCONTROLSEX icex;
|
||||
ZeroMemory(&icex, sizeof(INITCOMMONCONTROLSEX));
|
||||
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
|
||||
icex.dwICC = ICC_WIN95_CLASSES|ICC_COOL_CLASSES|ICC_BAR_CLASSES|ICC_USEREX_CLASSES;
|
||||
INITCOMMONCONTROLSEX icex = { sizeof(INITCOMMONCONTROLSEX) };
|
||||
icex.dwICC = ICC_WIN95_CLASSES | ICC_COOL_CLASSES | ICC_BAR_CLASSES | ICC_USEREX_CLASSES | ICC_NATIVEFNTCTL_CLASS | ICC_STANDARD_CLASSES;
|
||||
InitCommonControlsEx(&icex);
|
||||
|
||||
msgTaskbarCreated = RegisterWindowMessage(L"TaskbarCreated");
|
||||
@ -305,8 +303,6 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int
|
||||
// ----------------------------------------------------
|
||||
// MultiLingual
|
||||
//
|
||||
BOOL bPrefLngNotAvail = FALSE;
|
||||
|
||||
int res = 0;
|
||||
if (lstrlenW(g_tchPrefLngLocName) > 0) {
|
||||
WCHAR wchLngLocalName[LOCALE_NAME_MAX_LENGTH];
|
||||
@ -345,19 +341,21 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int
|
||||
}
|
||||
|
||||
#ifdef HAVE_DYN_LOAD_LIBS_MUI_LNGS
|
||||
bool bPrefLngNotAvail = false;
|
||||
g_hLngResContainer = _LoadLanguageResources(g_tchPrefLngLocName, g_iPrefLANGID);
|
||||
if (!g_hLngResContainer) { // fallback en-US (1033)
|
||||
g_hLngResContainer = g_hInstance;
|
||||
g_iPrefLANGID = MUI_BASE_LNG_ID;
|
||||
bPrefLngNotAvail = true;
|
||||
}
|
||||
#else
|
||||
g_hLngResContainer = NULL;
|
||||
g_hLngResContainer = g_hInstance;
|
||||
g_iPrefLANGID = MUI_BASE_LNG_ID;
|
||||
#endif
|
||||
|
||||
if (!g_hLngResContainer) { // fallback en-US (1033)
|
||||
LANGID const langID = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US);
|
||||
g_hLngResContainer = g_hInstance;
|
||||
InitMUILanguage(langID);
|
||||
if (g_iPrefLANGID != langID) {
|
||||
bPrefLngNotAvail = TRUE;
|
||||
}
|
||||
}
|
||||
SetThreadUILanguage(g_iPrefLANGID);
|
||||
InitMUILanguage(g_iPrefLANGID);
|
||||
|
||||
// ----------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@ -49,9 +49,13 @@
|
||||
//#define MUI_BASE_LNG_VI_VN 1
|
||||
//#define MUI_BASE_LNG_ZH_CN 1
|
||||
//#define MUI_BASE_LNG_ZH_TW 1
|
||||
|
||||
#endif
|
||||
|
||||
// -----------------------------------------------------
|
||||
// 3. Extent minipath.rc file accordingly (new language)
|
||||
// 3. In case of a new language:
|
||||
// Extent Notepad3.rc file accordingly
|
||||
// and the language_id mapping in ../language/common_res.h
|
||||
// -----------------------------------------------------
|
||||
|
||||
#include "../language/common_res.h"
|
||||
|
||||
@ -281,12 +281,16 @@ void SetPreferredLanguage(LANGID iPreferredLanguageID)
|
||||
{
|
||||
int const langIdx = GetMUILanguageIndexByLangID(iPreferredLanguageID);
|
||||
if (langIdx < 0) {
|
||||
Globals.iPrefLANGID = MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US); // internal
|
||||
SetMuiLocaleAll(MUI_LanguageDLLs[0].szLocaleName);
|
||||
Globals.iPrefLANGID = MUI_BASE_LNG_ID; // internal
|
||||
int const idx = GetMUILanguageIndexByLangID(MUI_BASE_LNG_ID);
|
||||
if (idx >= 0) {
|
||||
SetMuiLocaleAll(MUI_LanguageDLLs[idx].szLocaleName);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (iPreferredLanguageID != Globals.iPrefLANGID) {
|
||||
|
||||
Globals.iPrefLANGID = iPreferredLanguageID; // == MUI_LanguageDLLs[langIdx].LangId
|
||||
|
||||
const WCHAR* const szLocaleName = MUI_LanguageDLLs[langIdx].szLocaleName;
|
||||
|
||||
@ -861,6 +861,10 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance,
|
||||
//
|
||||
#if defined(HAVE_DYN_LOAD_LIBS_MUI_LNGS)
|
||||
SetPreferredLanguage(LoadLanguageResources());
|
||||
#else
|
||||
Globals.iPrefLANGID = MUI_BASE_LNG_ID;
|
||||
SetThreadUILanguage(MUI_BASE_LNG_ID);
|
||||
InitMUILanguage(MUI_BASE_LNG_ID);
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------
|
||||
@ -9470,6 +9474,7 @@ static void _SaveRedoSelection(int token)
|
||||
}
|
||||
|
||||
if ((_UndoRedoActionMap(token, &pSel) >= 0) && (pSel != NULL)) {
|
||||
|
||||
int const selMode = ((numOfSel > 1) && !SciCall_IsSelectionRectangle()) ? NP3_SEL_MULTI : SciCall_GetSelectionMode();
|
||||
|
||||
pSel->selMode_redo = selMode;
|
||||
|
||||
@ -47,12 +47,14 @@
|
||||
//#define MUI_BASE_LNG_VI_VN 1
|
||||
//#define MUI_BASE_LNG_ZH_CN 1
|
||||
//#define MUI_BASE_LNG_ZH_TW 1
|
||||
#endif
|
||||
// -----------------------------------------------------
|
||||
// 3. Extent Notepad3.rc file accordingly (new language)
|
||||
// -----------------------------------------------------
|
||||
|
||||
// ==========================================
|
||||
#endif
|
||||
|
||||
// -----------------------------------------------------
|
||||
// 3. In case of a new language:
|
||||
// Extent Notepad3.rc file accordingly
|
||||
// and the language_id mapping in ../language/common_res.h
|
||||
// -----------------------------------------------------
|
||||
|
||||
#ifndef IDC_STATIC
|
||||
#define IDC_STATIC (-1)
|
||||
@ -110,6 +112,7 @@
|
||||
|
||||
#define IDS_WARN_PREF_LNG_NOT_AVAIL 4000
|
||||
|
||||
// ==========================================
|
||||
|
||||
#include "../language/common_res.h"
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user