zoukankan      html  css  js  c++  java
  • Windows Phone 7的About模板——Your Last About Dialog(2)支持多语言

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

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

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

    LanguageCode
    Abkhazian AB
    Afar AA
    Afrikaans AF
    Albanian SQ
    Amharic AM
    Arabic AR
    Armenian HY
    Assamese AS
    Aymara AY
    Azerbaijani AZ
    Bashkir BA
    Basque EU
    Bengali, Bangla BN
    Bhutani DZ
    Bihari BH
    Bislama BI
    Breton BR
    Bulgarian BG
    Burmese MY
    Byelorussian BE
    Cambodian KM
    Catalan CA
    Chinese ZH
    Corsican CO
    Croatian HR
    Czech CS
    Danish DA
    Dutch NL
    English, American EN
    Esperanto EO
    Estonian ET
    Faeroese FO
    Fiji FJ
    Finnish FI
    French FR
    Frisian FY
    Gaelic (Scots Gaelic) GD
    Galician GL
    Georgian KA
    German DE
    Greek EL
    Greenlandic KL
    Guarani GN
    Gujarati GU
    Hausa HA
    Hebrew IW
    Hindi HI
    Hungarian HU
    Icelandic IS
    Indonesian IN
    Interlingua IA
    Interlingue IE
    Inupiak IK
    Irish GA
    Italian IT
    Japanese JA
    Javanese JW
    Kannada KN
    Kashmiri KS
    Kazakh KK
    Kinyarwanda RW
    Kirghiz KY
    Kirundi RN
    Korean KO
    Kurdish KU
    Laothian LO
    Latin LA
    Latvian, Lettish LV
    Lingala LN
    Lithuanian LT
    Macedonian MK
    Malagasy MG
    Malay MS
    Malayalam ML
    Maltese MT
    Maori MI
    Marathi MR
    Moldavian MO
    Mongolian MN
    Nauru NA
    Nepali NE
    Norwegian NO
    Occitan OC
    Oriya OR
    Oromo, Afan OM
    Pashto, Pushto PS
    Persian FA
    Polish PL
    Portuguese PT
    Punjabi PA
    Quechua QU
    Rhaeto-Romance RM
    Romanian RO
    Russian RU
    Samoan SM
    Sangro SG
    Sanskrit SA
    Serbian SR
    Serbo-Croatian SH
    Sesotho ST
    Setswana TN
    Shona SN
    Sindhi SD
    Singhalese SI
    Siswati SS
    Slovak SK
    Slovenian SL
    Somali SO
    Spanish ES
    Sudanese SU
    Swahili SW
    Swedish SV
    Tagalog TL
    Tajik TG
    Tamil TA
    Tatar TT
    Tegulu TE
    Thai TH
    Tibetan BO
    Tigrinya TI
    Tonga TO
    Tsonga TS
    Turkish TR
    Turkmen TK
    Twi TW
    Ukrainian UK
    Urdu UR
    Uzbek UZ
    Vietnamese VI
    Volapuk VO
    Welsh CY
    Wolof WO
    Xhosa XH
    Yiddish JI
    Yoruba YO
    Zulu ZU

    但在实际应用中,完整的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,则可以根据需要设置不同的配置文件。这样就比较灵活了。


  • 相关阅读:
    c++的socket编程 tcp
    qt下载
    定义数组类型
    虚析构函数
    运算符重载
    友元函数
    const成员函数
    静态成员变量,静态成员函数
    linux安装mysql
    智能指针
  • 原文地址:https://www.cnblogs.com/yanxiaodi/p/2304329.html
Copyright © 2011-2022 走看看