您的位置:首页 > 其它

Windows Phone 7的About模板——Your Last About Dialog(2)支持多语言

2011-12-28 10:01 302 查看
上次说到YLAD支持多语言。昨天配置了一下。方法很简单,默认的配置文件是Data.xml,如果要支持多语言,则加上语言的代码后缀即可,如中文为zh,则添加一个Data.zh.xml即可。

显示多语言的流程如下图:



YLAD会读取当前设置的语言代码,这个ISO 2 Letter Language Codes是 ISO 639-1标准制定的,用两个字符表示一种语言。完整的代码列表如下:

LanguageCode
AbkhazianAB
AfarAA
AfrikaansAF
AlbanianSQ
AmharicAM
ArabicAR
ArmenianHY
AssameseAS
AymaraAY
AzerbaijaniAZ
BashkirBA
BasqueEU
Bengali, BanglaBN
BhutaniDZ
BihariBH
BislamaBI
BretonBR
BulgarianBG
BurmeseMY
ByelorussianBE
CambodianKM
CatalanCA
ChineseZH
CorsicanCO
CroatianHR
CzechCS
DanishDA
DutchNL
English, AmericanEN
EsperantoEO
EstonianET
FaeroeseFO
FijiFJ
FinnishFI
FrenchFR
FrisianFY
Gaelic (Scots Gaelic)GD
GalicianGL
GeorgianKA
GermanDE
GreekEL
GreenlandicKL
GuaraniGN
GujaratiGU
HausaHA
HebrewIW
HindiHI
HungarianHU
IcelandicIS
IndonesianIN
InterlinguaIA
InterlingueIE
InupiakIK
IrishGA
ItalianIT
JapaneseJA
JavaneseJW
KannadaKN
KashmiriKS
KazakhKK
KinyarwandaRW
KirghizKY
KirundiRN
KoreanKO
KurdishKU
LaothianLO
LatinLA
Latvian, LettishLV
LingalaLN
LithuanianLT
MacedonianMK
MalagasyMG
MalayMS
MalayalamML
MalteseMT
MaoriMI
MarathiMR
MoldavianMO
MongolianMN
NauruNA
NepaliNE
NorwegianNO
OccitanOC
OriyaOR
Oromo, AfanOM
Pashto, PushtoPS
PersianFA
PolishPL
PortuguesePT
PunjabiPA
QuechuaQU
Rhaeto-RomanceRM
RomanianRO
RussianRU
SamoanSM
SangroSG
SanskritSA
SerbianSR
Serbo-CroatianSH
SesothoST
SetswanaTN
ShonaSN
SindhiSD
SinghaleseSI
SiswatiSS
SlovakSK
SlovenianSL
SomaliSO
SpanishES
SudaneseSU
SwahiliSW
SwedishSV
TagalogTL
TajikTG
TamilTA
TatarTT
TeguluTE
ThaiTH
TibetanBO
TigrinyaTI
TongaTO
TsongaTS
TurkishTR
TurkmenTK
TwiTW
UkrainianUK
UrduUR
UzbekUZ
VietnameseVI
VolapukVO
WelshCY
WolofWO
XhosaXH
YiddishJI
YorubaYO
ZuluZU
但在实际应用中,完整的country/region code和CultureInfo类里是这样表示的:zh-CN、zh-TW……等,中文就有好几种,如何区分简体中文和繁体中文呢?

下载了YLAD的源代码看,找到了读取语言设置的代码,在LocalizationHelper.cs里:

var language = culture.TwoLetterISOLanguageName;


是在这里读取的,既然我们想要完整的CultureInfo代码,可作如下修改:

var language = culture.Name;


重新编译,更新引用,就可以区分zh-CN和zh-TW了。相应的配置文件要改为Data.zh-CN.xml和Data.zh-TW.xml。

我在codeplex的项目讨论中提到了这个问题,作者说会做如下修改:

首先读取当前country/region设置,即我修改的方式;如果没有本地化的country/region代码,则读取当然的语言代码,即YLAD目前的方式,如果没有找到本地化的语言代码,则使用默认设置。

他提到这样做的原因是某些country/region的区别可能很小或几乎没有,比如de-AT和de-DE,这样设置一个Data.de.xml即可,如果某些country/region的区别较大,如zh-CN和zh-TW,则可以根据需要设置不同的配置文件。这样就比较灵活了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: