You need to enable JavaScript to run this app. 如何使用阿拉伯文化信息为RadCombobox填充阿拉伯语国家列表
优惠活动
大模型
产品
解决方案
定价
更多

如何使用阿拉伯文化信息为RadCombobox填充阿拉伯语国家列表

实现阿拉伯语国家列表的修改方案

核心修改点

  • 原代码调用了RegionInfo.EnglishName获取英文国名,需要替换为阿拉伯语本地化的国名取值
  • 可选优化RadComboBox的显示属性,适配阿拉伯语从右到左的阅读习惯

修改后的代码

C# 后端代码

public static List<string> CountryList()
{
    List<string> arabCountryNames = new List<string>();
    // 用HashSet存英文国名去重,效率更高也更准确
    HashSet<string> addedCountries = new HashSet<string>();
    // 先保存原有的UI文化,用完切回避免影响其他功能
    var originalCulture = Thread.CurrentThread.CurrentUICulture;
    try
    {
        // 切换到阿拉伯语通用文化,强制获取阿拉伯语的国家名称
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar");
        CultureInfo[] getCultureInfo = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
        foreach (CultureInfo getCulture in getCultureInfo)
        {
            RegionInfo GetRegionInfo = new RegionInfo(getCulture.LCID);
            // 用英文国名去重,避免同一个国家多次添加
            if (addedCountries.Add(GetRegionInfo.EnglishName))
            {
                arabCountryNames.Add(GetRegionInfo.DisplayName);
            }
        }
        // 按阿拉伯语规则排序
        arabCountryNames.Sort(StringComparer.Create(new CultureInfo("ar"), false));
        return arabCountryNames;
    }
    finally
    {
        Thread.CurrentThread.CurrentUICulture = originalCulture;
    }
}
Countrycbx.ItemsSource = CountryList();

XAML 代码(可选优化)

添加FlowDirection属性适配阿拉伯语右对齐显示:

<telerik:RadComboBox x:Name="Countrycbx" Height="30" HorizontalAlignment="Center" FlowDirection="RightToLeft" />

注意事项

  • 确保运行环境安装了对应.NET版本的阿拉伯语本地化资源包,否则系统会自动降级返回英文名称
  • 如果需要特定地区的阿拉伯语翻译(比如沙特、埃及方言版本),可以把代码里的通用文化代码ar替换为对应地区的文化代码,比如ar-SA(沙特阿拉伯)、ar-EG(埃及)

内容的提问来源于stack exchange,提问作者csharp_devloper31

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 22:36:04