列举附属程序集支持的语言



下面是帮助查找所需区域性的程序集的代码行:

Assembly.GetExecutingAssembly().GetSatelliteAssembly(new CultureInfo(cultureCode))

但是如何找到用于应用程序的卫星程序集的语言,让我们说如果有3种语言支持哪3个不同的文件夹创建,现在我想要这些文件夹和语言支持在它。我使用这在下拉菜单中,用户可以选择语言和下拉值应该根据支持的卫星程序集动态加载。

我用以下方法解决了上述问题:

这将是基于以下语句的解决方案之一:
特定语言的每个附属程序集命名相同,但位于以特定区域性命名的子文件夹中,例如fr或fr- ca。

public IEnumerable<CultureInfo> GetSupportedCulture()
{
    //Get all culture 
    CultureInfo[] culture = CultureInfo.GetCultures(CultureTypes.AllCultures);
    //Find the location where application installed.
    string exeLocation = Path.GetDirectoryName(Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path));
    //Return all culture for which satellite folder found with culture code.
    return culture.Where(cultureInfo => Directory.Exists(Path.Combine(exeLocation, cultureInfo.Name)));
}

最新更新