最近、いくつかのカスタム カルチャを ASP.NET に登録しましたが、後でクライアントからそのうちの 1 つについて何か変更するように依頼されました。たとえばen-EU
、EU の英語の包括的な「欧州連合の英語」言語ロケールを登録しました。欧州連合からヨーロッパだけにラベルを変更するように依頼されました. ISOコードen-EU
はそのままですが、英語名とネイティブ名の属性を からEnglish (European Union)
に変更する必要がありますEnglish (Europe)
。登録解除して再登録せずにこれを行うことはできますか? 登録を解除して再登録する必要がある場合、これに保存されているコンテンツは失われますか?
1 に答える
1
再度登録する前に、登録を解除する必要があるようです (カスタム カルチャが既に登録されている場合、 Registerは InvalidOperationException をスローするため)。
ただし、できることは、CultureAndRegionInfoBuilder を既存のカスタム カルチャから初期化し、登録を解除して (この時点ではもう必要ありません)、変更を加えて再度登録することです。
つまり、次のようになります: (テストされていないコード)
// Initalize the CultureAndRegionInfoBuilder with en-EU
CultureAndRegionInfoBuilder car = new CultureAndRegionInfoBuilder("en-EU",
CultureAndRegionModifiers.None);
car.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("en-EU"));
car.LoadDataFromRegionInfo(new RegionInfo("en-EU"));
// Unregister it
CultureAndRegionInfoBuilder.Unregister("en-EU");
// Update it
car.CultureEnglishName = "English (European Union)";
car.CultureNativeName = "English (Europe)";
// Re-register it
car.Register();
于 2012-12-13T10:13:48.647 に答える