rime / weasel

【小狼毫】Rime for Windows
https://rime.im
GNU General Public License v3.0
4.17k stars 528 forks source link

中文系統若使用非默認排序方式,則小狼毫界面語言變爲英文 #1299

Closed skylee03 closed 1 month ago

skylee03 commented 1 month ago

上报前请检查

操作系统信息

描述遇到的问题

Windows 顯示語言爲「中文(繁體,台灣)」且排序方式爲「部首/筆劃」,小狼毫輸入法界面語言爲英文。

复现步骤

將 Windows 顯示語言設爲「中文(繁體,台灣)」,並在「地區格式」中將「排序方法」設爲「部首/筆劃」。

预期行为

小狼毫顯示繁體中文界面。

截图

image

image

其他补充说明

根據 MS-LCID,一個 LCID 的結構如下:

image

由於 LCID 包含 Sort ID,而我所設置的排序方式並非中文(台灣)的默認排序方式, GetUserDefaultLCID() 所獲取到的 LCID 爲 263172 (0x00040404) 而非 1028 (0x00000404)。

該問題曾於 #1288 評論區提及。由於該問題與原 issue 並非同一問題,故單獨提出 issue。

建議修改

獲取系統語言的代碼可考慮改爲 GetUserDefaultLCID() & 0xFFFF 或使用其他 API。

相關 API 在我電腦上得到的結果如下:

GetUserDefaultUILanguage:   1028
GetSystemDefaultUILanguage: 1028

GetUserDefaultLangID:       1028
GetSystemDefaultLangID:     1028

GetUserDefaultLCID:         263172
GetSystemDefaultLCID:       1028
fxliang commented 1 month ago

很细致,刚也看到MS-LCID那份资料

@ccyybn 可以看看这个

skylee03 commented 1 month ago

裝上了最新的 artifact,問題已被修復。感謝 @fxliang 和 @ccyybn! image

skylee03 commented 1 month ago