我希望在我的下拉列表中用法语或英语显示所有国家/地区名称。这将取决于条件。
这是我的函数:
private void PopulateDropDownList()
{
List<string> cultureList = new List<string>();
CultureInfo[] getCultureInfo = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
// I fill my list cultureList with countries
foreach (CultureInfo getCulture in getCultureInfo)
{
RegionInfo getRegionInfo = new RegionInfo(getCulture.LCID);
if (!(cultureList.Contains(getRegionInfo.EnglishName)))
{
cultureList.Add(getRegionInfo.EnglishName);
}
}
// Sort the list to get all the countries in order
cultureList.Sort();
// Fill my DropDownList ddlCountry with my list of countries
ddlCountry.Items.Add(new ListItem("Select a country", ""));
foreach (string country in cultureList)
{
ddlCountry.Items.Add(new ListItem(country, country));
}
}
我的 asp 页面:
<label class="control-label">Country</label>
<asp:DropDownList runat="server" ID="ddlCountry" CssClass="form-control c-square c-theme">
</asp:DropDownList>
目前,所有国家/地区都是英文的。我的问题很简单:如何直接在我的函数 PopulateDropDownList() 中设置法语语言?
如果将
必要的语言包安装到系统中,则可以将其作为
var orgCulture = Thread.CurrentThread.CurrentUICulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr-FR"); //<-- *****
var countries = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(x => new RegionInfo(x.LCID))
.Select(x => x.DisplayName)
.Distinct()
.OrderBy(x=>x)
.ToList();
Thread.CurrentThread.CurrentUICulture = orgCulture;