This patch does that. There's still hardcoded English in the messages of the Advanced widget. This needs some reworking of InsetListingsParams, and I leave this to Bo.
OK for this one? Jürgen
Index: src/frontends/qt4/QDocument.cpp =================================================================== --- src/frontends/qt4/QDocument.cpp (Revision 18408) +++ src/frontends/qt4/QDocument.cpp (Arbeitskopie) @@ -214,7 +214,8 @@ this, SLOT(change_adaptor())); connect(textLayoutModule->listingsED, SIGNAL(textChanged()), this, SLOT(validate_listings_params())); - textLayoutModule->listingsTB->setPlainText("Input listings parameters below. Enter ? for a list of parameters."); + textLayoutModule->listingsTB->setPlainText( + qt_("Input listings parameters on the right. Enter ? for a list of parameters.")); textLayoutModule->lspacingLE->setValidator(new QDoubleValidator( textLayoutModule->lspacingLE)); textLayoutModule->skipLE->setValidator(unsignedLengthValidator( Index: src/frontends/qt4/QInclude.cpp =================================================================== --- src/frontends/qt4/QInclude.cpp (Revision 18408) +++ src/frontends/qt4/QInclude.cpp (Arbeitskopie) @@ -91,7 +91,8 @@ InsetListingsParams par(fromqstr(listingsED->toPlainText())); if (!isOK) { isOK = true; - listingsTB->setPlainText("Input listings parameters on the right. Enter ? for a list of parameters."); + listingsTB->setPlainText( + qt_("Input listings parameters on the right. Enter ? for a list of parameters.")); okPB->setEnabled(true); } } catch (invalidParam & e) { @@ -206,7 +207,8 @@ dialog_->captionLE->clear(); dialog_->labelLE->clear(); dialog_->listingsED->clear(); - dialog_->listingsTB->setPlainText("Input listings parameters on the right. Enter ? for a list of parameters."); + dialog_->listingsTB->setPlainText( + qt_("Input listings parameters on the right. Enter ? for a list of parameters.")); string cmdname = controller().params().getCmdName(); if (cmdname != "include" && @@ -246,6 +248,7 @@ if (cap[0] == '{' && cap[cap.size()-1] == '}') dialog_->captionLE->setText(toqstr(cap.substr(1, cap.size()-2))); else + // FIXME: make this translatable! throw invalidParam("caption parameter is not quoted with braces"); *it = ""; } else if (prefixIs(*it, "label=")) { @@ -253,6 +256,7 @@ if (lbl[0] == '{' && lbl[lbl.size()-1] == '}') dialog_->labelLE->setText(toqstr(lbl.substr(1, lbl.size()-2))); else + // FIXME: make this translatable! throw invalidParam("label parameter is not quoted with braces"); *it = ""; } Index: src/frontends/qt4/ui/ListingsUi.ui =================================================================== --- src/frontends/qt4/ui/ListingsUi.ui (Revision 18409) +++ src/frontends/qt4/ui/ListingsUi.ui (Arbeitskopie) @@ -258,7 +258,7 @@ <string>Choose the Font Size</string> </property> <property name="editable" > - <bool>true</bool> + <bool>false</bool> </property> <property name="autoCompletion" > <bool>true</bool> @@ -269,7 +269,23 @@ </widget> </item> <item row="0" column="1" > - <widget class="QComboBox" name="numberSideCO" /> + <widget class="QComboBox" name="numberSideCO" > + <item> + <property name="text" > + <string>None</string> + </property> + </item> + <item> + <property name="text" > + <string>Left</string> + </property> + </item> + <item> + <property name="text" > + <string>Right</string> + </property> + </item> + </widget> </item> </layout> </widget> @@ -424,7 +440,7 @@ <string>Choose the Font Style</string> </property> <property name="editable" > - <bool>true</bool> + <bool>false</bool> </property> <property name="autoCompletion" > <bool>true</bool> @@ -461,7 +477,7 @@ <string>Choose the Font Size</string> </property> <property name="editable" > - <bool>true</bool> + <bool>false</bool> </property> <property name="autoCompletion" > <bool>true</bool> Index: src/frontends/qt4/QListings.cpp =================================================================== --- src/frontends/qt4/QListings.cpp (Revision 18409) +++ src/frontends/qt4/QListings.cpp (Arbeitskopie) @@ -30,6 +30,7 @@ using std::string; using std::vector; +using lyx::support::findToken; using lyx::support::getVectorFromString; using lyx::support::getStringFromVector; using lyx::support::prefixIs; @@ -45,18 +46,38 @@ ///////////////////////////////////////////////////////////////////// -string const allowed_languages = - "no language\nBAP\nACSL\nAda\nALGOL\nC\nC++\nCaml\nClean\nCobol\n" - "Comal 80\ncsh\nDelphi\nEiffel\nElan\nEuphoria\nFortran\nHaskell\n" - "HTML\nIDL\nJava\nLisp\nLogo\nmake\nMathematica\nMatlab\nMercury\n" - "Miranda\nML\nModula-2\nOberon-2\nOCL\nPascal\nPerl\nPHP\nPL/I\nPOV\n" - "Python\nProlog\nR\nS\nSAS\nSHELXL\nSimula\ntcl\nSQL\nTeX\nVBScript\n" - "VHDL\nXML"; -string const allowed_fontsizes = "default\ntiny\nscriptsize\nfootnotesize\nsmall\n" - "normalsize\nlarge\nLarge"; -string const allowed_fontstyles = "default\nrmfamily\nttfamily\nsffamily"; -string const allowed_sides = "none\nleft\nright"; +char const * languages[] = +{ "no language", "BAP", "ACSL", "Ada", "ALGOL", "C", "C++", "Caml", "Clean", "Cobol", + "Comal 80", "csh", "Delphi", "Eiffel", "Elan", "Euphoria", "Fortran", "Haskell", + "HTML", "IDL", "Java", "Lisp", "Logo", "make", "Mathematica", "Matlab", "Mercury", + "Miranda", "ML", "Modula-2", "Oberon-2", "OCL", "Pascal", "Perl", "PHP", "PL/I", "POV", + "Python", "Prolog", "R", "S", "SAS", "SHELXL", "Simula", "tcl", "SQL", "TeX", "VBScript", + "VHDL", "XML", "" }; +char const * languages_gui[] = +{ N_("No language"), "BAP", "ACSL", "Ada", "ALGOL", "C", "C++", "Caml", "Clean", "Cobol", + "Comal 80", "csh", "Delphi", "Eiffel", "Elan", "Euphoria", "Fortran", "Haskell", + "HTML", "IDL", "Java", "Lisp", "Logo", "make", "Mathematica", "Matlab", "Mercury", + "Miranda", "ML", "Modula-2", "Oberon-2", "OCL", "Pascal", "Perl", "PHP", "PL/I", "POV", + "Python", "Prolog", "R", "S", "SAS", "SHELXL", "Simula", "tcl", "SQL", "TeX", "VBScript", + "VHDL", "XML", "" }; + +char const * font_sizes[] = +{ "default", "tiny", "scriptsize", "footnotesize", "small", "normalsize", "large", + "Large", "" }; + +char const * font_sizes_gui[] = +{ N_("Default"), N_("Tiny"), N_("Smallest"), N_("Smaller"), N_("Small"), N_("Normal"), N_("Large"), + N_("Larger"), "" }; + +char const * font_styles[] = +{ "default", "rmfamily", "ttfamily", "sffamily", "" }; + +char const * font_styles_gui[] = +{ N_("Default"), N_("Roman"), N_("Typewriter"), N_("Sans Serif"), "" }; + + + QListingsDialog::QListingsDialog(QListings * form) : form_(form) { @@ -101,19 +122,33 @@ string QListingsDialog::construct_params() { - string language = fromqstr(languageCO->currentText()); + string language = languages[languageCO->currentIndex()]; bool float_ = floatCB->checkState() == Qt::Checked; string placement = placementLE->isEnabled() ? fromqstr(placementLE->text()) : string(); - - string numberSide = fromqstr(numberSideCO->currentText()); + + string numberSide; + switch (numberSideCO->currentIndex()) { + case 0: + numberSide = "none"; + break; + case 1: + numberSide = "left"; + break; + case 2: + numberSide = "right"; + break; + default: + numberSide = "none"; + break; + } string stepnumber = fromqstr(numberStepLE->text()); - string numberfontsize = fromqstr(numberFontSizeCO->currentText()); + string numberfontsize = font_sizes[numberFontSizeCO->currentIndex()]; string firstline = fromqstr(firstlineLE->text()); string lastline = fromqstr(lastlineLE->text()); - string fontsize = fromqstr(fontsizeCO->currentText()); - string fontstyle = fromqstr(fontstyleCO->currentText()); + string fontsize = font_sizes[fontsizeCO->currentIndex()]; + string fontstyle = font_styles[fontstyleCO->currentIndex()]; string basicstyle; if (fontsize != "default") basicstyle = "\\" + fontsize; @@ -163,7 +198,7 @@ if (!isOK) { isOK = true; listingsTB->setPlainText( - "Input listings parameters on the right. Enter ? for a list of parameters."); + qt_("Input listings parameters on the right. Enter ? for a list of parameters.")); okPB->setEnabled(true); } } catch (invalidParam & e) { @@ -214,7 +249,7 @@ bcview().setApply(dialog_->applyPB); bcview().setCancel(dialog_->closePB); dialog_->listingsTB->setPlainText( - "Input listings parameters on the right. Enter ? for a list of parameters."); + qt_("Input listings parameters on the right. Enter ? for a list of parameters.")); update_contents(); } @@ -231,40 +266,20 @@ void QListings::update_contents() { - // first prepare all choices - vector<string> const languages = - getVectorFromString(allowed_languages, "\n"); - vector<string> const fontstyles = - getVectorFromString(allowed_fontstyles, "\n"); - vector<string> const fontsizes = - getVectorFromString(allowed_fontsizes, "\n"); - vector<string> const sides = - getVectorFromString(allowed_sides, "\n"); + dialog_->languageCO->clear(); + for (int n = 0; languages[n][0]; ++n) + dialog_->languageCO->addItem(languages_gui[n]); - dialog_->languageCO->clear(); - for (vector<string>::const_iterator it = languages.begin(); - it != languages.end(); ++it) { - dialog_->languageCO->addItem(toqstr(*it)); - } - dialog_->numberSideCO->clear(); - for (vector<string>::const_iterator it = sides.begin(); - it != sides.end(); ++it) { - dialog_->numberSideCO->addItem(toqstr(*it)); - } dialog_->fontstyleCO->clear(); - dialog_->fontstyleCO->setEditable(false); - for (vector<string>::const_iterator it = fontstyles.begin(); - it != fontstyles.end(); ++it) { - dialog_->fontstyleCO->addItem(toqstr(*it)); - } + for (int n = 0; font_styles[n][0]; ++n) + dialog_->fontstyleCO->addItem(font_styles_gui[n]); + dialog_->fontsizeCO->clear(); - dialog_->fontsizeCO->setEditable(false); dialog_->numberFontSizeCO->clear(); - dialog_->numberFontSizeCO->setEditable(false); - for (vector<string>::const_iterator it = fontsizes.begin(); - it != fontsizes.end(); ++it) { - dialog_->fontsizeCO->addItem(toqstr(*it)); - dialog_->numberFontSizeCO->addItem(toqstr(*it)); + for (int n = 0; font_sizes[n][0]; ++n) { + QString font = toqstr(font_sizes_gui[n]); + dialog_->fontsizeCO->addItem(font); + dialog_->numberFontSizeCO->addItem(font); } // set validators @@ -274,22 +289,18 @@ dialog_->placementLE->setValidator(new QRegExpValidator(QRegExp("[tbph]*"), this)); // set default values - dialog_->listingsTB->setPlainText("Input listings parameters on the right. Enter ? for a list of parameters."); - dialog_->languageCO->setCurrentIndex( - dialog_->languageCO->findText(toqstr("no language"))); + dialog_->listingsTB->setPlainText( + qt_("Input listings parameters on the right. Enter ? for a list of parameters.")); + dialog_->languageCO->setCurrentIndex(findToken(languages, "no language")); dialog_->floatCB->setChecked(false); dialog_->placementLE->clear(); - dialog_->numberSideCO->setCurrentIndex( - dialog_->numberSideCO->findText(toqstr("none"))); + dialog_->numberSideCO->setCurrentIndex(0); dialog_->numberStepLE->clear(); - dialog_->numberFontSizeCO->setCurrentIndex( - dialog_->numberFontSizeCO->findText(toqstr("default"))); + dialog_->numberFontSizeCO->setCurrentIndex(findToken(font_sizes, "default")); dialog_->firstlineLE->clear(); dialog_->lastlineLE->clear(); - dialog_->fontstyleCO->setCurrentIndex( - dialog_->fontstyleCO->findText(toqstr("default"))); - dialog_->fontsizeCO->setCurrentIndex( - dialog_->fontsizeCO->findText(toqstr("default"))); + dialog_->fontstyleCO->setCurrentIndex(findToken(font_styles, "default")); + dialog_->fontsizeCO->setCurrentIndex(findToken(font_sizes, "default")); dialog_->breaklinesCB->setChecked(false); dialog_->spaceCB->setChecked(false); dialog_->extendedcharsCB->setChecked(false); @@ -307,14 +318,8 @@ for (vector<string>::iterator it = pars.begin(); it != pars.end(); ++it) { if (prefixIs(*it, "language=")) { - for (vector<string>::const_iterator st = languages.begin(); - st != languages.end(); ++st) { - if (*it == "language=" + *st) { - dialog_->languageCO->setCurrentIndex( - dialog_->languageCO->findText(toqstr(*st))); - *it = ""; - } - } + int n = findToken(languages, it->substr(9)); + dialog_->languageCO->setCurrentIndex(n); } else if (prefixIs(*it, "floatplacement=")) { dialog_->floatCB->setChecked(true); dialog_->placementLE->setEnabled(true); @@ -329,21 +334,20 @@ dialog_->placementLE->setText(toqstr(it->substr(6))); *it = ""; } else if (prefixIs(*it, "numbers=")) { - dialog_->numberSideCO->setCurrentIndex( - dialog_->numberSideCO->findText(toqstr(it->substr(8)))); + string s = it->substr(8); + int n = 0; + if (s == "left") + n = 1; + else if (s == "right") + n = 2; + dialog_->numberSideCO->setCurrentIndex(n); *it = ""; } else if (prefixIs(*it, "stepnumber=")) { dialog_->numberStepLE->setText(toqstr(it->substr(11))); *it = ""; } else if (prefixIs(*it, "numberstyle=")) { - for (vector<string>::const_iterator st = fontsizes.begin(); - st != fontsizes.end(); ++st) { - if (*it == "numberstyle=\\" + *st) { - dialog_->numberFontSizeCO->setCurrentIndex( - dialog_->numberFontSizeCO->findText(toqstr(*st))); - *it = ""; - } - } + int n = findToken(font_sizes, it->substr(13)); + dialog_->numberFontSizeCO->setCurrentIndex(n); } else if (prefixIs(*it, "firstline=")) { dialog_->firstlineLE->setText(toqstr(it->substr(10))); *it = ""; @@ -353,25 +357,27 @@ } else if (prefixIs(*it, "basicstyle=")) { string style; string size; - for (vector<string>::const_iterator st = fontstyles.begin(); - st != fontstyles.end(); ++st) - if (contains(*it, "\\" + *st)) { - style = "\\" + *st; + for (int n = 0; font_styles[n][0]; ++n) { + string const s = font_styles[n]; + if (contains(*it, "\\" + s)) { + style = "\\" + s; break; } - for (vector<string>::const_iterator st = fontsizes.begin(); - st != fontsizes.end(); ++st) - if (contains(*it, "\\" + *st)) { - size = "\\" + *st; + } + for (int n = 0; font_sizes[n][0]; ++n) { + string const s = font_sizes[n]; + if (contains(*it, "\\" + s)) { + size = "\\" + s; break; } + } if (it->substr(11) == style + size || it->substr(11) == size + style) { if (!style.empty()) dialog_->fontstyleCO->setCurrentIndex( - dialog_->fontstyleCO->findText(toqstr(style.substr(1)))); + findToken(font_styles, style.substr(1))); if (!size.empty()) dialog_->fontsizeCO->setCurrentIndex( - dialog_->fontsizeCO->findText(toqstr(size.substr(1)))); + findToken(font_sizes, size.substr(1))); *it = ""; } } else if (prefixIs(*it, "breaklines=")) {