下面就看一下兩個方案的實現。
1. 微軟自家的修改resources.resw方案 —— 需要重啟生效
微軟的方案比較麻煩,不推薦使用。
這裡舉乙個簡單的例子。
a. 新建乙個頁面有乙個確定鍵,乙個取消鍵,乙個下拉框選擇語言。
注意需要翻譯的控制項,我都新增了uid屬性,系統就是根據這個找翻譯文字的,所以一定要定義好,而且不能重複。
"button_ok
" content="
ok"/>
"button_cancel
"margin="
0 30
" content="
cancel
"/>
"combobox_selectionchanged
">
"tb_lang_en
" text="
english
"/>
"tb_lang_zh
" text="
簡體中文
b. 如果解決方案中沒有strings資料夾,那麼新建乙個。然後再下面新建對應的語言資料夾。我這裡新建了zh-cn,en-us。
每乙個下面新建乙個資源檔案resources.resw。
然後開啟resources.resw,
編輯控制項的對應的屬性,比如button的content,textblock的text等等,要精確到屬性,不然只寫乙個button,是不可以被識別的。
為了避免uid出錯,可以編輯完乙個檔案,然後整體複製過去,只用改value就可以了。
c. 新增選擇語言事件,把選擇的語言記錄到本地儲存。
privatevoid combobox_selectionchanged(object
sender, selectionchangedeventargs e)
else
if ((sender as combobox).selectedindex == 1
)
}
public這樣就算完成了。else
zh-cn";
this
.initializecomponent();
this.suspending +=onsuspending;
}
你氣不氣!
2. github大神的動態載入方案 —— 實時生效,強烈推薦!!!
裡面包含了源**,還有例項檔案,非常非常全面。我就不多舉例了。
只需要定義好json檔案,然後在**裡面引用即可。
現在非常流行的localise**支援匯出世界通用的json,從翻譯到開發,完美對接。
而不像微軟的resw檔案,localise不支援,也不會支援。
總之,甩微軟的那套方案10086條街。
預覽效果:
vue實現國際化
這裡為了簡單,將所有的東西都寫到main.js,在實際的應用中需要將這些拆分到不同元件中。1.1 安裝vue的國際化支援npm install vue i18n當然如果你沒有沒事使用包管理工具,那麼你可以直接這樣使用 src script 1.2 配置使用 這裡我們使用包管理工具的方式配置,我們直接...
Django實現國際化
2.進入專案的應用資料夾下,新建資料夾locale 3.在命令列中,cd到這個目錄下,執行django admin.py makemessages l zh cn 4.在settings資料夾的middleware中加入 django.middleware.locale.localemiddlewa...
Qt Qml實現國際化
qml 中翻譯的字串需要用 qstr qstranslate 包裹起來。text qstr text11111 在.pro檔案中定義多個語言版本,如下所示 使用ide自帶工具 語言家來自動繫結qml中的qstr 字段。編輯ts多語言設定檔案 通過語言家工具編寫翻譯檔案 手動編寫翻譯檔案 locati...