Программный способ получить все доступные языки (в сборках-сателлитах)

Есть две проблемы:

  • вы проверяете тип OrderedDict, но это, вероятно, относится к используемой вами версии Python; в Python 3.x вместо этого вы можете проверить dict;

  • aaa1 и аналогичные значения находятся внутри списка, между [], и это то, что вы видя как выход.

Это то, что вы должны сделать, чтобы проверить это тоже:

def check1(json_struct):
    for k, v in json_struct.items():
        if isinstance(v, OrderedDict):
            check1(v)
        elif isinstance(v, list):
            for e in v:
                check1(e)
        else:
            print "{0} : {1}".format(k, v)

Вам может потребоваться dict вместо OrderedDict, при использовании версий Python 3.

29
задан Peter Mortensen 1 August 2010 в 17:57
поделиться

2 ответа

Используя то, какая Руна Гримстад сказала, что я заканчиваю с этим:

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)
    {

    }
}

или иначе

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

    }
}

я все еще не думаю, что это - хорошая идея...

2
ответ дан Matías 28 November 2019 в 01:22
поделиться

Я не уверен в получении языков, возможно, можно просканировать папку установки для dll-файлов, но установка языка на неподдерживаемый язык не должна быть проблемой.

.NET будет нейтрализация к культуре нейтральные ресурсы, если никакая культура, определенные файлы могут быть найдены так Вами, не может безопасно выбрать неподдерживаемые языки.

, пока Вы управляете приложением сами, Вы могли просто сохранить доступные языки в параметре настройки приложения где-нибудь. Просто разделенная от запятой строка с именами культуры должна быть достаточной: "en, es"

2
ответ дан Rune Grimstad 28 November 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: