QML面板 介面漢化

2021-06-07 01:48:20 字數 785 閱讀 8215

移植現有的qml**,介面均為英文,試圖將其漢化,但發現有如下問題:

1. 介面上的文字竟然寫死在源**中,介面設計時沒有多語言支援的規劃

2. 漢語僅支援utf-8編碼格式,對於中文通用的gb2312等編碼格式不支援,顯示亂碼

3. 對於部分字串,型別和字面顯示共用之,而qml對漢語字串作為型別標識支援不完善。

對於如上的漢化,有兩種途徑,其一為笨方法,即在程式中用漢語字串替換法,其二為稍好些的方法,即將所有qml字串用變數替換,將變數統一放在乙個js

檔案中,採用import的方式引用

第一種辦法需要注意,如果在windows下的sourceinsight等環境下寫程式,預設的編碼格式如果不是utf-8,會導致顯示亂碼,可以用記事本開啟,選擇另存為,

在另存為的格式中選擇utf格式,儲存、替換即可。記事本會將檔案轉碼儲存。如果再linux下,採用vi等方式改寫,則有可能預設既是utf-8編碼,此時直接替換即

可。如果需要更改很多檔案,則需要將每乙個源**檔案均做修改,這樣明顯不合適,可採用第二種辦法,將所有的介面顯示的英文摘錄出來,原位置用變數替換,統

一在乙個js檔案中用漢語為變數賦值,然後再所有需要漢化的原檔案中import這個js檔案即可。如果在gb2312等編碼支援的環境下編寫,則僅需要將此js檔案轉碼

為utf編碼即可,方法如第一種辦法中所述。

此方法也不完美,沒有解決問題 3 ,即對型別和顯示共用的字串,還不能進行漢化,另:還沒有找到動態更改介面語言轉換的辦法,也沒有實現支援多種編碼漢語,還需要其他工作。

若有更好的實現方式,望大俠們指點。

Qml 展開收起面板

搜了一下網上沒有類似功能的ui,實現了乙個給大家參考。accordionelement.qml 由乙個layout組成,layout裡包含標題和內容元件,可以在外部實現內容元件進行替換,如isopen為false,內容元件將收縮起來,反之則展開。import qtquick 2.5 import q...

DNN pane 窗格 面板 漢化

dnn中乙個沒有完全本地化的地方。管理員進入後,編輯狀態時,窗格 的漢化問題。圖1 圖2 解決方案 通過修改了兩個主要.vb檔案。1.website admin controlpanel iconbar.ascx.vb 第226行 圖1 涉及的檔案 cbopanes.items.add new li...

MFC介面面板

mfc使用skin 外觀美化 一.載入skin 1.將skinppwtl.lib skinppwtl.dll skinppwtl.h三個檔案及相應 ssk 拷貝至工程資料夾下 一般還要將這些檔案放在debug資料夾下。在 vc6 project settings link object librar...