0

Here is the line of code which help to find assembly for required culture:

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

But how to find languages for which satellite assemblies exist for application, lets say if there are 3 language support for which 3 different folder created, now I want those folders and languages supported in it. I use this in drop down from where user can select language and drop down values should be dynamically loaded as per supported satellite assemblies.

Ankush Madankar
  • 3,689
  • 4
  • 40
  • 74
  • 1
    Possible dublicate of http://stackoverflow.com/questions/553244/programmatic-way-to-get-all-the-available-languages-in-satellite-assemblies – hcp Oct 06 '15 at 06:37

1 Answers1

0

I have solve above problem with following solution:

This would be one of solution on basis of following statement:
Each satellite assembly for a specific language is named the same but lies in a sub-folder named after the specific culture e.g. fr or 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)));
}
Ankush Madankar
  • 3,689
  • 4
  • 40
  • 74