UWP App國際化的兩種實現

2022-01-15 16:48:06 字數 1959 閱讀 6249

下面就看一下兩個方案的實現。

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. 新增選擇語言事件,把選擇的語言記錄到本地儲存。

private

void 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...