From 29d19a53a34a48791effbee9b0461666a593eac8 Mon Sep 17 00:00:00 2001 From: sr55 Date: Sat, 23 Jan 2016 14:44:49 +0000 Subject: WinGui: Fix an issue loading the language lists in the Audio / Subtitle default tabs. --- .../Utilities/LanguageUtilities.cs | 392 +++++++++++---------- .../Presets/Factories/JsonPresetFactory.cs | 12 +- 2 files changed, 210 insertions(+), 194 deletions(-) (limited to 'win/CS') diff --git a/win/CS/HandBrake.ApplicationServices/Utilities/LanguageUtilities.cs b/win/CS/HandBrake.ApplicationServices/Utilities/LanguageUtilities.cs index 94a1fb201..1acc9cccc 100644 --- a/win/CS/HandBrake.ApplicationServices/Utilities/LanguageUtilities.cs +++ b/win/CS/HandBrake.ApplicationServices/Utilities/LanguageUtilities.cs @@ -35,194 +35,195 @@ namespace HandBrake.ApplicationServices.Utilities } languageMap = new Dictionary - { - {"(Any)", "und"}, - {"Afar", "aar"}, - {"Abkhazian", "abk"}, - {"Afrikaans", "afr"}, - {"Akan", "aka"}, - {"Albanian", "sqi"}, - {"Amharic", "amh"}, - {"Arabic", "ara"}, - {"Aragonese", "arg"}, - {"Armenian", "hye"}, - {"Assamese", "asm"}, - {"Avaric", "ava"}, - {"Avestan", "ave"}, - {"Aymara", "aym"}, - {"Azerbaijani", "aze"}, - {"Bashkir", "bak"}, - {"Bambara", "bam"}, - {"Basque", "eus"}, - {"Belarusian", "bel"}, - {"Bengali", "ben"}, - {"Bihari", "bih"}, - {"Bislama", "bis"}, - {"Bosnian", "bos"}, - {"Breton", "bre"}, - {"Bulgarian", "bul"}, - {"Burmese", "mya"}, - {"Catalan", "cat"}, - {"Chamorro", "cha"}, - {"Chechen", "che"}, - {"Chinese", "zho"}, - {"Church Slavic", "chu"}, - {"Chuvash", "chv"}, - {"Cornish", "cor"}, - {"Corsican", "cos"}, - {"Cree", "cre"}, - {"Czech", "ces"}, - {"Dansk", "dan"}, - {"Divehi", "div"}, - {"Nederlands", "nld"}, - {"Dzongkha", "dzo"}, - {"English", "eng"}, - {"Esperanto", "epo"}, - {"Estonian", "est"}, - {"Ewe", "ewe"}, - {"Faroese", "fao"}, - {"Fijian", "fij"}, - {"Suomi", "fin"}, - {"Francais", "fra"}, - {"Western Frisian", "fry"}, - {"Fulah", "ful"}, - {"Georgian", "kat"}, - {"Deutsch", "deu"}, - {"Gaelic (Scots)", "gla"}, - {"Irish", "gle"}, - {"Galician", "glg"}, - {"Manx", "glv"}, - {"Greek, Modern", "ell"}, - {"Guarani", "grn"}, - {"Gujarati", "guj"}, - {"Haitian", "hat"}, - {"Hausa", "hau"}, - {"Hebrew", "heb"}, - {"Herero", "her"}, - {"Hindi", "hin"}, - {"Hiri Motu", "hmo"}, - {"Magyar", "hun"}, - {"Igbo", "ibo"}, - {"Islenska", "isl"}, - {"Ido", "ido"}, - {"Sichuan Yi", "iii"}, - {"Inuktitut", "iku"}, - {"Interlingue", "ile"}, - {"Interlingua", "ina"}, - {"Indonesian", "ind"}, - {"Inupiaq", "ipk"}, - {"Italiano", "ita"}, - {"Javanese", "jav"}, - {"Japanese", "jpn"}, - {"Kalaallisut", "kal"}, - {"Kannada", "kan"}, - {"Kashmiri", "kas"}, - {"Kanuri", "kau"}, - {"Kazakh", "kaz"}, - {"Central Khmer", "khm"}, - {"Kikuyu", "kik"}, - {"Kinyarwanda", "kin"}, - {"Kirghiz", "kir"}, - {"Komi", "kom"}, - {"Kongo", "kon"}, - {"Korean", "kor"}, - {"Kuanyama", "kua"}, - {"Kurdish", "kur"}, - {"Lao", "lao"}, - {"Latin", "lat"}, - {"Latvian", "lav"}, - {"Limburgan", "lim"}, - {"Lingala", "lin"}, - {"Lithuanian", "lit"}, - {"Luxembourgish", "ltz"}, - {"Luba-Katanga", "lub"}, - {"Ganda", "lug"}, - {"Macedonian", "mkd"}, - {"Marshallese", "mah"}, - {"Malayalam", "mal"}, - {"Maori", "mri"}, - {"Marathi", "mar"}, - {"Malay", "msa"}, - {"Malagasy", "mlg"}, - {"Maltese", "mlt"}, - {"Moldavian", "mol"}, - {"Mongolian", "mon"}, - {"Nauru", "nau"}, - {"Navajo", "nav"}, - {"Ndebele, South", "nbl"}, - {"Ndebele, North", "nde"}, - {"Ndonga", "ndo"}, - {"Nepali", "nep"}, - {"Norwegian Nynorsk", "nno"}, - {"Norwegian Bokmål", "nob"}, - {"Norsk", "nor"}, - {"Chichewa; Nyanja", "nya"}, - {"Occitan", "oci"}, - {"Ojibwa", "oji"}, - {"Oriya", "ori"}, - {"Oromo", "orm"}, - {"Ossetian", "oss"}, - {"Panjabi", "pan"}, - {"Persian", "fas"}, - {"Pali", "pli"}, - {"Polish", "pol"}, - {"Portuguese", "por"}, - {"Pushto", "pus"}, - {"Quechua", "que"}, - {"Romansh", "roh"}, - {"Romanian", "ron"}, - {"Rundi", "run"}, - {"Russian", "rus"}, - {"Sango", "sag"}, - {"Sanskrit", "san"}, - {"Serbian", "srp"}, - {"Hrvatski", "hrv"}, - {"Sinhala", "sin"}, - {"Slovak", "slk"}, - {"Slovenian", "slv"}, - {"Northern Sami", "sme"}, - {"Samoan", "smo"}, - {"Shona", "sna"}, - {"Sindhi", "snd"}, - {"Somali", "som"}, - {"Sotho Southern", "sot"}, - {"Espanol", "spa"}, - {"Sardinian", "srd"}, - {"Swati", "ssw"}, - {"Sundanese", "sun"}, - {"Swahili", "swa"}, - {"Svenska", "swe"}, - {"Tahitian", "tah"}, - {"Tamil", "tam"}, - {"Tatar", "tat"}, - {"Telugu", "tel"}, - {"Tajik", "tgk"}, - {"Tagalog", "tgl"}, - {"Thai", "tha"}, - {"Tibetan", "bod"}, - {"Tigrinya", "tir"}, - {"Tonga", "ton"}, - {"Tswana", "tsn"}, - {"Tsonga", "tso"}, - {"Turkmen", "tuk"}, - {"Turkish", "tur"}, - {"Twi", "twi"}, - {"Uighur", "uig"}, - {"Ukrainian", "ukr"}, - {"Urdu", "urd"}, - {"Uzbek", "uzb"}, - {"Venda", "ven"}, - {"Vietnamese", "vie"}, - {"Volapük", "vol"}, - {"Welsh", "cym"}, - {"Walloon", "wln"}, - {"Wolof", "wol"}, - {"Xhosa", "xho"}, - {"Yiddish", "yid"}, - {"Yoruba", "yor"}, - {"Zhuang", "zha"}, - {"Zulu", "zul"} - }; + { + { "(Any)", "und" }, + { "Afar", "aar" }, + { "Abkhazian", "abk" }, + { "Afrikaans", "afr" }, + { "Akan", "aka" }, + { "Albanian", "sqi" }, + { "Amharic", "amh" }, + { "Arabic", "ara" }, + { "Aragonese", "arg" }, + { "Armenian", "hye" }, + { "Assamese", "asm" }, + { "Avaric", "ava" }, + { "Avestan", "ave" }, + { "Aymara", "aym" }, + { "Azerbaijani", "aze" }, + { "Bashkir", "bak" }, + { "Bambara", "bam" }, + { "Basque", "eus" }, + { "Belarusian", "bel" }, + { "Bengali", "ben" }, + { "Bihari", "bih" }, + { "Bislama", "bis" }, + { "Bosnian", "bos" }, + { "Breton", "bre" }, + { "Bulgarian", "bul" }, + { "Burmese", "mya" }, + { "Catalan", "cat" }, + { "Chamorro", "cha" }, + { "Chechen", "che" }, + { "Chinese", "zho" }, + { "Church Slavic", "chu" }, + { "Chuvash", "chv" }, + { "Cornish", "cor" }, + { "Corsican", "cos" }, + { "Cree", "cre" }, + { "Czech", "ces" }, + { "Dansk", "dan" }, + { "Divehi", "div" }, + { "Nederlands", "nld" }, + { "Dzongkha", "dzo" }, + { "English", "eng" }, + { "Esperanto", "epo" }, + { "Estonian", "est" }, + { "Ewe", "ewe" }, + { "Faroese", "fao" }, + { "Fijian", "fij" }, + { "Suomi", "fin" }, + { "Francais", "fra" }, + { "Western Frisian", "fry" }, + { "Fulah", "ful" }, + { "Georgian", "kat" }, + { "Deutsch", "deu" }, + { "Gaelic (Scots)", "gla" }, + { "Irish", "gle" }, + { "Galician", "glg" }, + { "Manx", "glv" }, + { "Greek, Modern", "ell" }, + { "Guarani", "grn" }, + { "Gujarati", "guj" }, + { "Haitian", "hat" }, + { "Hausa", "hau" }, + { "Hebrew", "heb" }, + { "Herero", "her" }, + { "Hindi", "hin" }, + { "Hiri Motu", "hmo" }, + { "Magyar", "hun" }, + { "Igbo", "ibo" }, + { "Islenska", "isl" }, + { "Ido", "ido" }, + { "Sichuan Yi", "iii" }, + { "Inuktitut", "iku" }, + { "Interlingue", "ile" }, + { "Interlingua", "ina" }, + { "Indonesian", "ind" }, + { "Inupiaq", "ipk" }, + { "Italiano", "ita" }, + { "Javanese", "jav" }, + { "Japanese", "jpn" }, + { "Kalaallisut", "kal" }, + { "Kannada", "kan" }, + { "Kashmiri", "kas" }, + { "Kanuri", "kau" }, + { "Kazakh", "kaz" }, + { "Central Khmer", "khm" }, + { "Kikuyu", "kik" }, + { "Kinyarwanda", "kin" }, + { "Kirghiz", "kir" }, + { "Komi", "kom" }, + { "Kongo", "kon" }, + { "Korean", "kor" }, + { "Kuanyama", "kua" }, + { "Kurdish", "kur" }, + { "Lao", "lao" }, + { "Latin", "lat" }, + { "Latvian", "lav" }, + { "Limburgan", "lim" }, + { "Lingala", "lin" }, + { "Lithuanian", "lit" }, + { "Luxembourgish", "ltz" }, + { "Luba-Katanga", "lub" }, + { "Ganda", "lug" }, + { "Macedonian", "mkd" }, + { "Marshallese", "mah" }, + { "Malayalam", "mal" }, + { "Maori", "mri" }, + { "Marathi", "mar" }, + { "Malay", "msa" }, + { "Malagasy", "mlg" }, + { "Maltese", "mlt" }, + { "Moldavian", "mol" }, + { "Mongolian", "mon" }, + { "Nauru", "nau" }, + { "Navajo", "nav" }, + { "Ndebele, South", "nbl" }, + { "Ndebele, North", "nde" }, + { "Ndonga", "ndo" }, + { "Nepali", "nep" }, + { "Norwegian Nynorsk", "nno" }, + { "Norwegian Bokmål", "nob" }, + { "Norsk", "nor" }, + { "Chichewa; Nyanja", "nya" }, + { "Occitan", "oci" }, + { "Ojibwa", "oji" }, + { "Oriya", "ori" }, + { "Oromo", "orm" }, + { "Ossetian", "oss" }, + { "Panjabi", "pan" }, + { "Persian", "fas" }, + { "Pali", "pli" }, + { "Polish", "pol" }, + { "Portuguese", "por" }, + { "Pushto", "pus" }, + { "Quechua", "que" }, + { "Romansh", "roh" }, + { "Romanian", "ron" }, + { "Rundi", "run" }, + { "Russian", "rus" }, + { "Sango", "sag" }, + { "Sanskrit", "san" }, + { "Serbian", "srp" }, + { "Hrvatski", "hrv" }, + { "Sinhala", "sin" }, + { "Slovak", "slk" }, + { "Slovenian", "slv" }, + { "Northern Sami", "sme" }, + { "Samoan", "smo" }, + { "Shona", "sna" }, + { "Sindhi", "snd" }, + { "Somali", "som" }, + { "Sotho Southern", "sot" }, + { "Espanol", "spa" }, + { "Sardinian", "srd" }, + { "Swati", "ssw" }, + { "Sundanese", "sun" }, + { "Swahili", "swa" }, + { "Svenska", "swe" }, + { "Tahitian", "tah" }, + { "Tamil", "tam" }, + { "Tatar", "tat" }, + { "Telugu", "tel" }, + { "Tajik", "tgk" }, + { "Tagalog", "tgl" }, + { "Thai", "tha" }, + { "Tibetan", "bod" }, + { "Tigrinya", "tir" }, + { "Tonga", "ton" }, + { "Tswana", "tsn" }, + { "Tsonga", "tso" }, + { "Turkmen", "tuk" }, + { "Turkish", "tur" }, + { "Twi", "twi" }, + { "Uighur", "uig" }, + { "Ukrainian", "ukr" }, + { "Urdu", "urd" }, + { "Uzbek", "uzb" }, + { "Venda", "ven" }, + { "Vietnamese", "vie" }, + { "Volapük", "vol" }, + { "Welsh", "cym" }, + { "Walloon", "wln" }, + { "Wolof", "wol" }, + { "Xhosa", "xho" }, + { "Yiddish", "yid" }, + { "Yoruba", "yor" }, + { "Zhuang", "zha" }, + { "Zulu", "zul" } + }; + return languageMap; } @@ -267,7 +268,7 @@ namespace HandBrake.ApplicationServices.Utilities foreach (var item in userLanguages) { string isoCode; - if (LanguageUtilities.MapLanguages().TryGetValue(item, out isoCode)) + if (MapLanguages().TryGetValue(item, out isoCode)) { iso6392Codes.Add(isoCode); } @@ -276,6 +277,19 @@ namespace HandBrake.ApplicationServices.Utilities return iso6392Codes; } + public static List GetLanguageNames(IList languageCodes) + { + // Translate to Iso Codes + List names = new List(); + foreach (var item in languageCodes) + { + KeyValuePair name = MapLanguages().FirstOrDefault(v => v.Value == item); // Slightly inefficient but small set anyway so not a big issue. + names.Add(name.Key); + } + + return names; + } + /// /// The get iso codes. /// diff --git a/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs b/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs index 9e958a0aa..9cdb554d1 100644 --- a/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs +++ b/win/CS/HandBrakeWPF/Services/Presets/Factories/JsonPresetFactory.cs @@ -335,9 +335,10 @@ namespace HandBrakeWPF.Services.Presets.Factories if (importedPreset.AudioLanguageList != null) { - foreach (var item in importedPreset.AudioLanguageList) + IList names = LanguageUtilities.GetLanguageNames(importedPreset.AudioLanguageList); + foreach (var name in names) { - preset.AudioTrackBehaviours.SelectedLangauges.Add(item); + preset.AudioTrackBehaviours.SelectedLangauges.Add(name); } } @@ -376,13 +377,14 @@ namespace HandBrakeWPF.Services.Presets.Factories preset.SubtitleTrackBehaviours.AddForeignAudioScanTrack = importedPreset.SubtitleAddForeignAudioSearch; if (importedPreset.SubtitleLanguageList != null) { - foreach (var item in importedPreset.SubtitleLanguageList) + IList names = LanguageUtilities.GetLanguageNames(importedPreset.SubtitleLanguageList); + foreach (var name in names) { - preset.SubtitleTrackBehaviours.SelectedLangauges.Add(item); + preset.SubtitleTrackBehaviours.SelectedLangauges.Add(name); } } - /* Chapter Marker Settings */ + /* Chapter Marker Settings */ preset.Task.IncludeChapterMarkers = importedPreset.ChapterMarkers; /* Advanced Settings */ -- cgit v1.2.3