WPF 本地化資原始檔及執行時切換語言
阿新 • • 發佈:2022-05-20
本地化資原始檔建立
前期準備
Visual Studio 搜尋並安裝擴充套件外掛 ResXManager
-
在專案內 Properties 資料夾內新增新建項 資原始檔 Resource.resx
-
手動重新編譯專案,然後 Resource.resx 右鍵選單 -> 在 ResX Manager 中開啟
-
開啟後介面如下
3.1.
新增新語言,由於語言比較多,點開下拉稍等一會後選擇需要新增的新語言
3.2.
檢測程式碼引用,指示該鍵在專案中被呼叫的次數
3.3.
索引序號,表內鍵序號
3.4.
新增新鍵
3.5.(重要)
匯入匯出Excel是這個擴充套件最重要的一個功能,是用於給運維、產品、翻譯等非開發人員做語言翻譯的一個Excel表格,根據這個表內已有的Key來翻譯相應語言,翻譯完成後可直接匯入到專案使用(第一語言在Excel中是空列名)
(擴充套件內檢視如下)
執行時切換語言
1.新建類 ResourceService
public class ResourceService : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private static readonly ResourceService _current = new ResourceService(); public static ResourceService Current => _current; readonly Properties.Resource resource = new Properties.Resource(); public Properties.Resource Resources => resource; protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = null) { var handler = this.PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } public void ChangedCulture(string name) { Properties.Resource.Culture = CultureInfo.GetCultureInfo(name); this.RaisePropertyChanged("Resources"); } }
2.XAML使用<Button Content="{Binding Resources.Hello, Source={x:Static local:ResourceService.Current}}"/>
3.切換語言
private void Changed()
{
ResourceService.Current.ChangedCulture("en-US");
}