.NET 在操作 Culture 時,免不了要帶入 CultureInfo 的 Name,多半是用 Hard code 的形式帶入,像是下面這樣:
...
var currentThread = Thread.CurrentThread;
currentThread.CurrentCulture = CultureInfo.GetCultureInfo("zh-tw");
...
{% img /images/posts/T4CultureNames/1.png %}
這邊筆者做了個 T4 Template,期望能解決這樣的問題。
namespace System.Globalization
{
public static class CultureNames
{
///
///
///
public const string = "";
}
}
該 T4 Template 運行後會將所有可用的 Culture Name 彙整成一個靜態類別。
namespace System.Globalization
{
public static class CultureNames
{
///
/// ar-SA
///
public const string AR_SA = "ar-SA";
///
/// bg-BG
///
public const string BG_BG = "bg-BG";
///
/// ca-ES
///
public const string CA_ES = "ca-ES";
///
/// zh-TW
///
public const string ZH_TW = "zh-TW";
///
/// cs-CZ
///
public const string CS_CZ = "cs-CZ";
///
/// da-DK
///
public const string DA_DK = "da-DK";
///
/// de-DE
///
public const string DE_DE = "de-DE";
///
/// el-GR
///
public const string EL_GR = "el-GR";
///
/// en-US
///
public const string EN_US = "en-US";
///
/// fi-FI
///
public const string FI_FI = "fi-FI";
///
/// fr-FR
///
public const string FR_FR = "fr-FR";
///
/// he-IL
///
public const string HE_IL = "he-IL";
///
/// hu-HU
///
public const string HU_HU = "hu-HU";
///
/// is-IS
///
public const string IS_IS = "is-IS";
///
/// it-IT
///
public const string IT_IT = "it-IT";
///
/// ja-JP
///
public const string JA_JP = "ja-JP";
///
/// ko-KR
///
public const string KO_KR = "ko-KR";
///
/// nl-NL
///
public const string NL_NL = "nl-NL";
///
/// nb-NO
///
public const string NB_NO = "nb-NO";
///
/// pl-PL
///
public const string PL_PL = "pl-PL";
///
/// pt-BR
///
public const string PT_BR = "pt-BR";
///
/// rm-CH
///
public const string RM_CH = "rm-CH";
///
/// ro-RO
///
public const string RO_RO = "ro-RO";
///
/// ru-RU
///
public const string RU_RU = "ru-RU";
///
/// hr-HR
///
public const string HR_HR = "hr-HR";
///
/// sk-SK
///
public const string SK_SK = "sk-SK";
///
/// sq-AL
///
public const string SQ_AL = "sq-AL";
///
/// sv-SE
///
public const string SV_SE = "sv-SE";
///
/// th-TH
///
public const string TH_TH = "th-TH";
///
/// tr-TR
///
public const string TR_TR = "tr-TR";
///
/// ur-PK
///
public const string UR_PK = "ur-PK";
///
/// id-ID
///
public const string ID_ID = "id-ID";
///
/// uk-UA
///
public const string UK_UA = "uk-UA";
///
/// be-BY
///
public const string BE_BY = "be-BY";
///
/// sl-SI
///
public const string SL_SI = "sl-SI";
///
/// et-EE
///
public const string ET_EE = "et-EE";
///
/// lv-LV
///
public const string LV_LV = "lv-LV";
///
/// lt-LT
///
public const string LT_LT = "lt-LT";
///
/// tg-Cyrl-TJ
///
public const string TG_CYRL_TJ = "tg-Cyrl-TJ";
///
/// fa-IR
///
public const string FA_IR = "fa-IR";
///
/// vi-VN
///
public const string VI_VN = "vi-VN";
///
/// hy-AM
///
public const string HY_AM = "hy-AM";
///
/// az-Latn-AZ
///
public const string AZ_LATN_AZ = "az-Latn-AZ";
///
/// eu-ES
///
public const string EU_ES = "eu-ES";
///
/// hsb-DE
///
public const string HSB_DE = "hsb-DE";
///
/// mk-MK
///
public const string MK_MK = "mk-MK";
///
/// tn-ZA
///
public const string TN_ZA = "tn-ZA";
///
/// xh-ZA
///
public const string XH_ZA = "xh-ZA";
///
/// zu-ZA
///
public const string ZU_ZA = "zu-ZA";
///
/// af-ZA
///
public const string AF_ZA = "af-ZA";
///
/// ka-GE
///
public const string KA_GE = "ka-GE";
///
/// fo-FO
///
public const string FO_FO = "fo-FO";
///
/// hi-IN
///
public const string HI_IN = "hi-IN";
///
/// mt-MT
///
public const string MT_MT = "mt-MT";
///
/// se-NO
///
public const string SE_NO = "se-NO";
///
/// ms-MY
///
public const string MS_MY = "ms-MY";
///
/// kk-KZ
///
public const string KK_KZ = "kk-KZ";
///
/// ky-KG
///
public const string KY_KG = "ky-KG";
///
/// sw-KE
///
public const string SW_KE = "sw-KE";
///
/// tk-TM
///
public const string TK_TM = "tk-TM";
///
/// uz-Latn-UZ
///
public const string UZ_LATN_UZ = "uz-Latn-UZ";
///
/// tt-RU
///
public const string TT_RU = "tt-RU";
///
/// bn-IN
///
public const string BN_IN = "bn-IN";
///
/// pa-IN
///
public const string PA_IN = "pa-IN";
///
/// gu-IN
///
public const string GU_IN = "gu-IN";
///
/// or-IN
///
public const string OR_IN = "or-IN";
///
/// ta-IN
///
public const string TA_IN = "ta-IN";
///
/// te-IN
///
public const string TE_IN = "te-IN";
///
/// kn-IN
///
public const string KN_IN = "kn-IN";
///
/// ml-IN
///
public const string ML_IN = "ml-IN";
///
/// as-IN
///
public const string AS_IN = "as-IN";
///
/// mr-IN
///
public const string MR_IN = "mr-IN";
///
/// sa-IN
///
public const string SA_IN = "sa-IN";
///
/// mn-MN
///
public const string MN_MN = "mn-MN";
///
/// bo-CN
///
public const string BO_CN = "bo-CN";
///
/// cy-GB
///
public const string CY_GB = "cy-GB";
///
/// km-KH
///
public const string KM_KH = "km-KH";
///
/// lo-LA
///
public const string LO_LA = "lo-LA";
///
/// gl-ES
///
public const string GL_ES = "gl-ES";
///
/// kok-IN
///
public const string KOK_IN = "kok-IN";
///
/// syr-SY
///
public const string SYR_SY = "syr-SY";
///
/// si-LK
///
public const string SI_LK = "si-LK";
///
/// iu-Cans-CA
///
public const string IU_CANS_CA = "iu-Cans-CA";
///
/// am-ET
///
public const string AM_ET = "am-ET";
///
/// ne-NP
///
public const string NE_NP = "ne-NP";
///
/// fy-NL
///
public const string FY_NL = "fy-NL";
///
/// ps-AF
///
public const string PS_AF = "ps-AF";
///
/// fil-PH
///
public const string FIL_PH = "fil-PH";
///
/// dv-MV
///
public const string DV_MV = "dv-MV";
///
/// ha-Latn-NG
///
public const string HA_LATN_NG = "ha-Latn-NG";
///
/// yo-NG
///
public const string YO_NG = "yo-NG";
///
/// quz-BO
///
public const string QUZ_BO = "quz-BO";
///
/// nso-ZA
///
public const string NSO_ZA = "nso-ZA";
///
/// ba-RU
///
public const string BA_RU = "ba-RU";
///
/// lb-LU
///
public const string LB_LU = "lb-LU";
///
/// kl-GL
///
public const string KL_GL = "kl-GL";
///
/// ig-NG
///
public const string IG_NG = "ig-NG";
///
/// ii-CN
///
public const string II_CN = "ii-CN";
///
/// arn-CL
///
public const string ARN_CL = "arn-CL";
///
/// moh-CA
///
public const string MOH_CA = "moh-CA";
///
/// br-FR
///
public const string BR_FR = "br-FR";
///
/// ug-CN
///
public const string UG_CN = "ug-CN";
///
/// mi-NZ
///
public const string MI_NZ = "mi-NZ";
///
/// oc-FR
///
public const string OC_FR = "oc-FR";
///
/// co-FR
///
public const string CO_FR = "co-FR";
///
/// gsw-FR
///
public const string GSW_FR = "gsw-FR";
///
/// sah-RU
///
public const string SAH_RU = "sah-RU";
///
/// qut-GT
///
public const string QUT_GT = "qut-GT";
///
/// rw-RW
///
public const string RW_RW = "rw-RW";
///
/// wo-SN
///
public const string WO_SN = "wo-SN";
///
/// prs-AF
///
public const string PRS_AF = "prs-AF";
///
/// gd-GB
///
public const string GD_GB = "gd-GB";
///
/// ar-IQ
///
public const string AR_IQ = "ar-IQ";
///
/// zh-CN
///
public const string ZH_CN = "zh-CN";
///
/// de-CH
///
public const string DE_CH = "de-CH";
///
/// en-GB
///
public const string EN_GB = "en-GB";
///
/// es-MX
///
public const string ES_MX = "es-MX";
///
/// fr-BE
///
public const string FR_BE = "fr-BE";
///
/// it-CH
///
public const string IT_CH = "it-CH";
///
/// nl-BE
///
public const string NL_BE = "nl-BE";
///
/// nn-NO
///
public const string NN_NO = "nn-NO";
///
/// pt-PT
///
public const string PT_PT = "pt-PT";
///
/// sr-Latn-CS
///
public const string SR_LATN_CS = "sr-Latn-CS";
///
/// sv-FI
///
public const string SV_FI = "sv-FI";
///
/// az-Cyrl-AZ
///
public const string AZ_CYRL_AZ = "az-Cyrl-AZ";
///
/// dsb-DE
///
public const string DSB_DE = "dsb-DE";
///
/// se-SE
///
public const string SE_SE = "se-SE";
///
/// ga-IE
///
public const string GA_IE = "ga-IE";
///
/// ms-BN
///
public const string MS_BN = "ms-BN";
///
/// uz-Cyrl-UZ
///
public const string UZ_CYRL_UZ = "uz-Cyrl-UZ";
///
/// bn-BD
///
public const string BN_BD = "bn-BD";
///
/// mn-Mong-CN
///
public const string MN_MONG_CN = "mn-Mong-CN";
///
/// iu-Latn-CA
///
public const string IU_LATN_CA = "iu-Latn-CA";
///
/// tzm-Latn-DZ
///
public const string TZM_LATN_DZ = "tzm-Latn-DZ";
///
/// quz-EC
///
public const string QUZ_EC = "quz-EC";
///
/// ar-EG
///
public const string AR_EG = "ar-EG";
///
/// zh-HK
///
public const string ZH_HK = "zh-HK";
///
/// de-AT
///
public const string DE_AT = "de-AT";
///
/// en-AU
///
public const string EN_AU = "en-AU";
///
/// es-ES
///
public const string ES_ES = "es-ES";
///
/// fr-CA
///
public const string FR_CA = "fr-CA";
///
/// sr-Cyrl-CS
///
public const string SR_CYRL_CS = "sr-Cyrl-CS";
///
/// se-FI
///
public const string SE_FI = "se-FI";
///
/// quz-PE
///
public const string QUZ_PE = "quz-PE";
///
/// ar-LY
///
public const string AR_LY = "ar-LY";
///
/// zh-SG
///
public const string ZH_SG = "zh-SG";
///
/// de-LU
///
public const string DE_LU = "de-LU";
///
/// en-CA
///
public const string EN_CA = "en-CA";
///
/// es-GT
///
public const string ES_GT = "es-GT";
///
/// fr-CH
///
public const string FR_CH = "fr-CH";
///
/// hr-BA
///
public const string HR_BA = "hr-BA";
///
/// smj-NO
///
public const string SMJ_NO = "smj-NO";
///
/// ar-DZ
///
public const string AR_DZ = "ar-DZ";
///
/// zh-MO
///
public const string ZH_MO = "zh-MO";
///
/// de-LI
///
public const string DE_LI = "de-LI";
///
/// en-NZ
///
public const string EN_NZ = "en-NZ";
///
/// es-CR
///
public const string ES_CR = "es-CR";
///
/// fr-LU
///
public const string FR_LU = "fr-LU";
///
/// bs-Latn-BA
///
public const string BS_LATN_BA = "bs-Latn-BA";
///
/// smj-SE
///
public const string SMJ_SE = "smj-SE";
///
/// ar-MA
///
public const string AR_MA = "ar-MA";
///
/// en-IE
///
public const string EN_IE = "en-IE";
///
/// es-PA
///
public const string ES_PA = "es-PA";
///
/// fr-MC
///
public const string FR_MC = "fr-MC";
///
/// sr-Latn-BA
///
public const string SR_LATN_BA = "sr-Latn-BA";
///
/// sma-NO
///
public const string SMA_NO = "sma-NO";
///
/// ar-TN
///
public const string AR_TN = "ar-TN";
///
/// en-ZA
///
public const string EN_ZA = "en-ZA";
///
/// es-DO
///
public const string ES_DO = "es-DO";
///
/// sr-Cyrl-BA
///
public const string SR_CYRL_BA = "sr-Cyrl-BA";
///
/// sma-SE
///
public const string SMA_SE = "sma-SE";
///
/// ar-OM
///
public const string AR_OM = "ar-OM";
///
/// en-JM
///
public const string EN_JM = "en-JM";
///
/// es-VE
///
public const string ES_VE = "es-VE";
///
/// bs-Cyrl-BA
///
public const string BS_CYRL_BA = "bs-Cyrl-BA";
///
/// sms-FI
///
public const string SMS_FI = "sms-FI";
///
/// ar-YE
///
public const string AR_YE = "ar-YE";
///
/// en-029
///
public const string EN_029 = "en-029";
///
/// es-CO
///
public const string ES_CO = "es-CO";
///
/// sr-Latn-RS
///
public const string SR_LATN_RS = "sr-Latn-RS";
///
/// smn-FI
///
public const string SMN_FI = "smn-FI";
///
/// ar-SY
///
public const string AR_SY = "ar-SY";
///
/// en-BZ
///
public const string EN_BZ = "en-BZ";
///
/// es-PE
///
public const string ES_PE = "es-PE";
///
/// sr-Cyrl-RS
///
public const string SR_CYRL_RS = "sr-Cyrl-RS";
///
/// ar-JO
///
public const string AR_JO = "ar-JO";
///
/// en-TT
///
public const string EN_TT = "en-TT";
///
/// es-AR
///
public const string ES_AR = "es-AR";
///
/// sr-Latn-ME
///
public const string SR_LATN_ME = "sr-Latn-ME";
///
/// ar-LB
///
public const string AR_LB = "ar-LB";
///
/// en-ZW
///
public const string EN_ZW = "en-ZW";
///
/// es-EC
///
public const string ES_EC = "es-EC";
///
/// sr-Cyrl-ME
///
public const string SR_CYRL_ME = "sr-Cyrl-ME";
///
/// ar-KW
///
public const string AR_KW = "ar-KW";
///
/// en-PH
///
public const string EN_PH = "en-PH";
///
/// es-CL
///
public const string ES_CL = "es-CL";
///
/// ar-AE
///
public const string AR_AE = "ar-AE";
///
/// es-UY
///
public const string ES_UY = "es-UY";
///
/// ar-BH
///
public const string AR_BH = "ar-BH";
///
/// es-PY
///
public const string ES_PY = "es-PY";
///
/// ar-QA
///
public const string AR_QA = "ar-QA";
///
/// en-IN
///
public const string EN_IN = "en-IN";
///
/// es-BO
///
public const string ES_BO = "es-BO";
///
/// en-MY
///
public const string EN_MY = "en-MY";
///
/// es-SV
///
public const string ES_SV = "es-SV";
///
/// en-SG
///
public const string EN_SG = "en-SG";
///
/// es-HN
///
public const string ES_HN = "es-HN";
///
/// es-NI
///
public const string ES_NI = "es-NI";
///
/// es-PR
///
public const string ES_PR = "es-PR";
///
/// es-US
///
public const string ES_US = "es-US";
}
}
有了該靜態類別我們就可以將這部份的 Hard code 拿掉了。
...
var currentThread = Thread.CurrentThread;
currentThread.CurrentCulture = CultureInfo.GetCultureInfo(CultureNames.ZH_TW);
Console.WriteLine(currentThread.CurrentCulture.Name);
...
{% img /images/posts/T4CultureNames/2.png %}