Programmatic way to get all the available languages (in satellite assemblies)

前端 未结 7 529
青春惊慌失措
青春惊慌失措 2020-11-28 08:11

I\'m designing a multilingual application using .resx files.

I have a few files like GlobalStrings.resx, GlobalStrings.es.resx, GlobalStrings.en.resx, etc. When I wa

7条回答
  •  孤独总比滥情好
    2020-11-28 08:41

    Using what Rune Grimstad said I end up with this:

    string executablePath = Path.GetDirectoryName(Application.ExecutablePath);
    string[] directories = Directory.GetDirectories(executablePath);
    foreach (string s in directories)
    {
        try
        {
            DirectoryInfo langDirectory = new DirectoryInfo(s);
            cmbLanguage.Items.Add(CultureInfo.GetCultureInfo(langDirectory.Name));
        }
        catch (Exception)
        {
    
        }
    }
    

    or another way

    int pathLenght = executablePath.Length + 1;
    foreach (string s in directories)
    {
        try
        {
            cmbLanguage.Items.Add(CultureInfo.GetCultureInfo(s.Remove(0, pathLenght)));
        }
        catch (Exception)
        {
    
        }
    }
    

    I still don't think that this is a good idea ...

提交回复
热议问题