As promised, the patch goes to the list first... Can I commit it please?
Angus
Index: src/frontends/controllers/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/controllers/ChangeLog,v retrieving revision 1.167 diff -u -p -r1.167 ChangeLog --- src/frontends/controllers/ChangeLog 29 Apr 2002 15:56:36 -0000 1.167 +++ src/frontends/controllers/ChangeLog 30 Apr 2002 14:13:02 -0000 @@ -1,3 +1,12 @@ +2002-04-30 Angus Leeming <[EMAIL PROTECTED]> + + * frnt_lang.[Ch] (getLanguageData): passed a bool character_dlg. + If the the caller is the character dialog, add "No change" and "Reset" + to the vector, else don't. + Internationalise the GUI strings here rather than in the different + calling dialogs. + Sort the translated strings, albeit simply. + 2002-04-29 Angus Leeming <[EMAIL PROTECTED]> * character.[Ch]: rename namespace character as namespace frnt. Index: src/frontends/controllers/frnt_lang.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/controllers/frnt_lang.C,v retrieving revision 1.1 diff -u -p -r1.1 frnt_lang.C --- src/frontends/controllers/frnt_lang.C 29 Apr 2002 15:56:36 -0000 1.1 +++ src/frontends/controllers/frnt_lang.C 30 Apr 2002 14:13:02 -0000 @@ -15,25 +15,45 @@ #include "frnt_lang.h" #include "gettext.h" #include "language.h" +#include <iostream> using std::vector; +namespace { + +struct Sorter { + bool operator()(frnt::LanguagePair const & lhs, + frnt::LanguagePair const & rhs) const + { + return lhs.first < rhs.first; + } +}; + +} // namespace anon + namespace frnt { -vector<LanguagePair> const getLanguageData() +vector<LanguagePair> const getLanguageData(bool character_dlg) { - vector<LanguagePair> langs(languages.size() + 2); + vector<LanguagePair>::size_type const size = character_dlg ? + languages.size() + 2 : languages.size(); - langs[0].first = N_("No change"); langs[0].second = "No change"; - langs[1].first = N_("Reset"); langs[1].second = "Reset"; + vector<LanguagePair> langs(size); - vector<string>::size_type i = 2; + if (character_dlg) { + langs[0].first = N_("No change"); langs[0].second = "No change"; + langs[1].first = N_("Reset"); langs[1].second = "Reset"; + } + + vector<string>::size_type i = character_dlg ? 2 : 0; for (Languages::const_iterator cit = languages.begin(); cit != languages.end(); ++cit) { - langs[i].first = cit->second.display(); + langs[i].first = _(cit->second.display()); langs[i].second = cit->second.lang(); ++i; } + + std::sort(langs.begin(), langs.end(), Sorter()); return langs; } Index: src/frontends/controllers/frnt_lang.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/controllers/frnt_lang.h,v retrieving revision 1.1 diff -u -p -r1.1 frnt_lang.h --- src/frontends/controllers/frnt_lang.h 29 Apr 2002 15:56:36 -0000 1.1 +++ src/frontends/controllers/frnt_lang.h 30 Apr 2002 14:13:02 -0000 @@ -23,8 +23,10 @@ namespace frnt { /// typedef std::pair<string, string> LanguagePair; - /// - std::vector<LanguagePair> const getLanguageData(); + /** If the caller is the character dialog, add "No change" and "Reset" + * to the vector. + */ + std::vector<LanguagePair> const getLanguageData(bool character_dlg); } // namespace frnt Index: src/frontends/xforms/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/ChangeLog,v retrieving revision 1.364 diff -u -p -r1.364 ChangeLog --- src/frontends/xforms/ChangeLog 29 Apr 2002 16:16:35 -0000 1.364 +++ src/frontends/xforms/ChangeLog 30 Apr 2002 14:13:11 -0000 @@ -1,3 +1,11 @@ +2002-04-30 Angus Leeming <[EMAIL PROTECTED]> + + * FormCharacter.C: + * FormDocument.C: + * FormPreferences.C: use the bool flag to getLanguageData as + appropriate. No longer translate the strings as this is done in + getLanguageData. + 2002-04-29 Angus Leeming <[EMAIL PROTECTED]> * FormCharacter.h: Index: src/frontends/xforms/FormCharacter.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/FormCharacter.C,v retrieving revision 1.26 diff -u -p -r1.26 FormCharacter.C --- src/frontends/xforms/FormCharacter.C 29 Apr 2002 15:56:36 -0000 1.26 +++ src/frontends/xforms/FormCharacter.C 30 Apr 2002 14:13:11 -0000 @@ -48,13 +48,13 @@ void FormCharacter::build() { dialog_.reset(build_character()); - vector<FamilyPair> const family = getFamilyData(); - vector<SeriesPair> const series = getSeriesData(); - vector<ShapePair> const shape = getShapeData(); - vector<SizePair> const size = getSizeData(); - vector<BarPair> const bar = getBarData(); - vector<ColorPair> const color = getColorData(); - vector<LanguagePair> const langs = getLanguageData(); + vector<FamilyPair> const family = getFamilyData(); + vector<SeriesPair> const series = getSeriesData(); + vector<ShapePair> const shape = getShapeData(); + vector<SizePair> const size = getSizeData(); + vector<BarPair> const bar = getBarData(); + vector<ColorPair> const color = getColorData(); + vector<LanguagePair> const langs = getLanguageData(true); // Store the identifiers for later family_ = getSecond(family); @@ -103,7 +103,7 @@ void FormCharacter::build() vector<LanguagePair>::const_iterator it = langs.begin(); vector<LanguagePair>::const_iterator end = langs.end(); for (; it != end; ++it) { - combo_language2_->addto(_(it->first)); + combo_language2_->addto(it->first); } combo_language2_->select(1); Index: src/frontends/xforms/FormDocument.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/FormDocument.C,v retrieving revision 1.97 diff -u -p -r1.97 FormDocument.C --- src/frontends/xforms/FormDocument.C 29 Apr 2002 15:56:36 -0000 1.97 +++ src/frontends/xforms/FormDocument.C 30 Apr 2002 14:13:12 -0000 @@ -242,7 +242,7 @@ void FormDocument::build() "default|auto|latin1|latin2|latin3|latin4|latin5|latin9" "|koi8-r|koi8-u|cp866|cp1251|iso88595"); - vector<frnt::LanguagePair> const langs = frnt::getLanguageData(); + vector<frnt::LanguagePair> const langs = frnt::getLanguageData(false); // Store the identifiers for later lang_ = getSecond(langs); @@ -260,7 +260,7 @@ void FormDocument::build() vector<frnt::LanguagePair>::const_iterator lit = langs.begin(); vector<frnt::LanguagePair>::const_iterator lend = langs.end(); for (; lit != lend; ++lit) { - combo_language->addto(_(lit->first)); + combo_language->addto(lit->first); } combo_language->select(1); Index: src/frontends/xforms/FormPreferences.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/xforms/FormPreferences.C,v retrieving revision 1.108 diff -u -p -r1.108 FormPreferences.C --- src/frontends/xforms/FormPreferences.C 29 Apr 2002 16:16:35 -0000 1.108 +++ src/frontends/xforms/FormPreferences.C 30 Apr 2002 14:13:20 -0000 @@ -1633,7 +1633,7 @@ void FormPreferences::Language::build() fl_set_input_return(dialog_->input_command_end, FL_RETURN_CHANGED); // Store the lang identifiers for later - vector<frnt::LanguagePair> const langs = frnt::getLanguageData(); + vector<frnt::LanguagePair> const langs = frnt::getLanguageData(false); lang_ = getSecond(langs); // The default_language is a combo-box and has to be inserted manually @@ -1652,7 +1652,7 @@ void FormPreferences::Language::build() vector<frnt::LanguagePair>::const_iterator lit = langs.begin(); vector<frnt::LanguagePair>::const_iterator lend = langs.end(); for (; lit != lend; ++lit) { - combo_default_lang->addto(_(lit->first)); + combo_default_lang->addto(lit->first); } combo_default_lang->select(1);