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

Reply via email to