0


WPF国际化的最佳实践

WPF国际化的最佳实践

1.创建项目资源文件

如果你的项目没有Properties文件夹和Resources.resx文件,可以通过右键项目-资源-常规-添加创建或打开程序集资源
在这里插入图片描述

2.添加国际化字符串

打开

Resources.resx

文件,添加需要翻译的文本字符,并将访问修饰符修改为

public

,才能在xaml中访问到此字符

在这里插入图片描述

3.添加其他国家地区资源文件

  • 在Properties文件夹下添加新的资源文件项
  • 注意一定要将新的文件名称格式命名为Resources.xx-xx.resx 这里一定要注意Resources是有s的,很多同事都命名错误导致无法国际化
  • 更多国家和地区的编码见文末

在这里插入图片描述

3.1 翻译文本

  • 将需要翻译的文本复制到新的地区资源文件中翻译

在这里插入图片描述

4.在代码中使用国际化文本

  • 在xaml中使用国际化文本<Button Width="40" Content="{x:Static prop:Resources.Confirm}" />
  • 引入Properties命名空间xmlns:prop="clr-namespace:WpfLanguage.Properties"---
  • 在代码中使用国际化文本label.Content = Properties.Resources.Confirm;

5.在程序启动切换到对应国际的资源文件

protected override void OnStartup(StartupEventArgs e)
{

    // 切换到英语资源文件
    var info = new CultureInfo("en-US");
    Thread.CurrentThread.CurrentUICulture = info;

    base.OnStartup(e);
}

在这里插入图片描述

6.常见的国家和地区码

CultureInfo地区af-ZA南非荷兰语(南非)sq阿尔巴尼亚语sq-AL阿尔巴尼亚语(阿尔巴尼亚)ar阿拉伯语ar-DZ阿拉伯语(阿尔及利亚)ar-BH阿拉伯语(巴林)ar-EG阿拉伯语(埃及)ar-IQ阿拉伯语(伊拉克)ar-JO阿拉伯语(约旦)ar-KW阿拉伯语(科威特)ar-LB阿拉伯语(黎巴嫩)ar-LY阿拉伯语(利比亚)ar-MA阿拉伯语(摩洛哥)ar-OM阿拉伯语(阿曼)ar-QA阿拉伯语(卡塔尔)ar-SA阿拉伯语(沙特阿拉伯)ar-SY阿拉伯语(叙利亚)ar-TN阿拉伯语(突尼斯)ar-AE阿拉伯语(阿联酋)ar-YE阿拉伯语(也门)hy亚美尼亚语hy-AM亚美尼亚语(亚美尼亚)az阿泽里语az-Cyrl-AZ阿泽里语(阿塞拜疆,西里尔语)az-Latn-AZ阿泽里语(阿塞拜疆,拉丁语)eu巴斯克语eu-ES巴斯克语(巴斯克地区)be白俄罗斯语be-BY白俄罗斯语(白俄罗斯)bg保加利亚语bg-BG保加利亚语(保加利亚)ca加泰罗尼亚语ca-ES加泰罗尼亚语(加泰罗尼亚地区)zh-HK中文(中国香港特别行政区)zh-MO中文(中国澳门特别行政区)zh-CN中文(中国)zh-Hans中文(简体)zh-SG中文(新加坡)zh-TW中文(台湾)zh-Hant中文(繁体)hr克罗地亚语hr-BA克罗地亚语(波斯尼亚和黑塞哥维那)hr-HR克罗地亚语(克罗地亚)cs捷克语cs-CZ捷克语(捷克共和国)da丹麦语da-DK丹麦语(丹麦)dv迪维希语dv-MV迪维希语(马尔代夫)nl荷兰语nl-BE荷兰语(比利时)nl-NL荷兰语(荷兰)en英语en-AU英语(澳大利亚)en-BZ英语(伯利兹)en-CA英语(加拿大)en-029英语(加勒比)en-IE英语(爱尔兰)en-JM英语(牙买加)en-NZ英语(新西兰)en-PH英语(菲律宾)en-ZA英语(南非)en-TT英语(特立尼达和多巴哥)en-GB英语(英国)en-US英语(美国)en-ZW英语(津巴布韦)et爱沙尼亚语et-EE爱沙尼亚语(爱沙尼亚)fo法罗语fo-FO法罗语(法罗群岛)fa波斯语fa-IR波斯语(伊朗)fi芬兰语fi-FI芬兰语(芬兰)fr法语fr-BE法语(比利时)fr-CA法语(加拿大)fr-FR法语(法国)fr-LU法语(卢森堡)fr-MC法语(摩纳哥)fr-CH法语(瑞士)gl加利西亚语gl-ES加利西亚语(西班牙)ka格鲁吉亚语ka-GE格鲁吉亚语(格鲁吉亚)de德语de-AT德语(奥地利)de-DE德语(德国)de-DE_phoneb德语(德国,电话簿排序)de-LI德语(列支敦士登)de-LU德语(卢森堡)de-CH德语(瑞士)el希腊语el-GR希腊语(希腊)gu古吉拉特语gu-IN古吉拉特语(印度)he希伯来语he-IL希伯来语(以色列)hi印地语hi-IN印地语(印度)hu匈牙利语hu-HU匈牙利语(匈牙利)is冰岛语is-IS冰岛语(冰岛)id印度尼西亚语id-ID印度尼西亚语(印度尼西亚)it意大利语it-IT意大利语(意大利)it-CH意大利语(瑞士)ja日语ja-JP日语(日本)kn卡纳达语kn-IN卡纳达语(印度)kk哈萨克语kk-KZ哈萨克语(哈萨克斯坦)kok贡根语kok-IN贡根语(印度)ko朝鲜语ko-KR朝鲜语(韩国)ky吉尔吉斯语ky-KG吉尔吉斯语(吉尔吉斯坦)lv拉脱维亚语lv-LV拉脱维亚语(拉脱维亚)lt立陶宛语lt-LT立陶宛语(立陶宛)mk马其顿语mk-MK马其顿语(马其顿,FYROM)ms马来语ms-BN马来语(文莱达鲁萨兰)ms-MY马来语(马来西亚)mr马拉地语mr-IN马拉地语(印度)mn蒙古语mn-MN蒙古语(蒙古)没有挪威语nb-NO挪威语(伯克梅尔,挪威)nn-NO挪威语(尼诺斯克,挪威)pl波兰语pl-PL波兰语(波兰)pt葡萄牙语pt-BR葡萄牙语(巴西)pt-PT葡萄牙语(葡萄牙)pa旁遮普语pa-IN旁遮普语(印度)ro罗马尼亚语ro-RO罗马尼亚语(罗马尼亚)ru俄语ru-RU俄语(俄罗斯)sa梵语sa-IN梵语(印度)sr-Cyrl-CS塞尔维亚语(塞尔维亚,西里尔语)sr-Latn-CS塞尔维亚语(塞尔维亚,拉丁语)sk斯洛伐克语sk-SK斯洛伐克语(斯洛伐克)sl斯洛文尼亚语sl-SI斯洛文尼亚语(斯洛文尼亚)es西班牙语es-AR西班牙语(阿根廷)es-BO西班牙语(玻利维亚)es-CL西班牙语(智利)es-CO西班牙语(哥伦比亚)es-CR西班牙语(哥斯达黎加)es-DO西班牙语(多米尼加共和国)es-EC西班牙语(厄瓜多尔)es-SV西班牙语(萨尔瓦多)es-GT西班牙语(危地马拉)es-HN西班牙语(洪都拉斯)es-MX西班牙语(墨西哥)es-NI西班牙语(尼加拉瓜)es-PA西班牙语(巴拿马)es-PY西班牙语(巴拉圭)es-PE西班牙语(秘鲁)es-PR西班牙语(波多黎各)es-ES西班牙语(西班牙)es-ES_tradnl西班牙语(西班牙,传统排序)es-UY西班牙语(乌拉圭)es-VE西班牙语(委内瑞拉)sw斯瓦希里语sw-KE斯瓦希里语(肯尼亚)sv瑞典语sv-FI瑞典语(芬兰)sv-SE瑞典语(瑞典)syr叙利亚语syr-SY叙利亚语(叙利亚)ta泰米尔语ta-IN泰米尔语(印度)tt鞑靼语tt-RU鞑靼语(俄罗斯)te泰卢固语te-IN泰卢固语(印度)th泰语th-TH泰语(泰国)tr土耳其语tr-TR土耳其语(土耳其)uk乌克兰语uk-UA乌克兰语(乌克兰)ur乌尔都语ur-PK乌尔都语(巴基斯坦)uz乌兹别克语uz-Cyrl-UZ乌兹别克语(乌兹别克斯坦,西里尔语)uz-Latn-UZ乌兹别克语(乌兹别克斯坦,拉丁语)vi越南语vi-VN越南语(越南)

标签: wpf 多语言 国际化

本文转载自: https://blog.csdn.net/q771410116/article/details/139505527
版权归原作者 安卓小小白 所有, 如有侵权,请联系我们删除。

“WPF国际化的最佳实践”的评论:

还没有评论