diff --git a/src/mmg/mmg.cpp b/src/mmg/mmg.cpp index ccc64d53c..088ab8586 100644 --- a/src/mmg/mmg.cpp +++ b/src/mmg/mmg.cpp @@ -93,6 +93,9 @@ extract_language_code(wxString source) { wxString copy; int pos; + if (source.Find("---") == 0) + return "---"; + copy = source; if ((pos = copy.Find(" (")) >= 0) copy.Remove(pos); @@ -242,6 +245,24 @@ to_utf8_wx(wxString &src) { return retval; } +bool +is_popular_language(const char *lang) { + return + !strcmp(lang, "Chinese") || + !strcmp(lang, "Dutch") || + !strcmp(lang, "English") || + !strcmp(lang, "Finnish") || + !strcmp(lang, "French") || + !strcmp(lang, "German") || + !strcmp(lang, "Italian") || + !strcmp(lang, "Japanese") || + !strcmp(lang, "Norwegian") || + !strcmp(lang, "Portuguese") || + !strcmp(lang, "Russian") || + !strcmp(lang, "Spanish") || + !strcmp(lang, "Swedish"); +} + mmg_dialog::mmg_dialog(): wxFrame(NULL, -1, "mkvmerge GUI v" VERSION, wxPoint(0, 0), #ifdef SYS_WINDOWS diff --git a/src/mmg/mmg.h b/src/mmg/mmg.h index 8621d08d1..0ba8630ab 100644 --- a/src/mmg/mmg.h +++ b/src/mmg/mmg.h @@ -95,6 +95,7 @@ extern bool title_was_present; wxString &break_line(wxString &line, int break_after = 80); wxString extract_language_code(wxString source); +bool is_popular_language(const char *lang); wxString shell_escape(wxString source); vector split(const wxString &src, const char *pattern = ",", int max_num = -1); diff --git a/src/mmg/tab_input.cpp b/src/mmg/tab_input.cpp index 72a666ee8..fed46e291 100644 --- a/src/mmg/tab_input.cpp +++ b/src/mmg/tab_input.cpp @@ -45,7 +45,7 @@ bool title_was_present = false; tab_input::tab_input(wxWindow *parent): wxPanel(parent, -1, wxDefaultPosition, wxSize(100, 400), wxTAB_TRAVERSAL) { - uint32_t i; + uint32_t i, insert_idx; wxString language; new wxStaticText(this, wxID_STATIC, _("Input files:"), wxPoint(5, 5), @@ -122,6 +122,17 @@ tab_input::tab_input(wxWindow *parent): sorted_iso_codes.Add(language); } sorted_iso_codes.Sort(); + sorted_iso_codes.Insert("---common---", 0); + insert_idx = 1; + for (i = 0; iso639_languages[i].iso639_2_code != NULL; i++) { + if (!is_popular_language(iso639_languages[i].english_name)) + continue; + language.Printf("%s (%s)", iso639_languages[i].iso639_2_code, + iso639_languages[i].english_name); + sorted_iso_codes.Insert(language, insert_idx); + insert_idx++; + } + sorted_iso_codes.Insert("---all---", insert_idx); } cob_language =