mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-27 03:36:39 +00:00
Add a preference combo box for the preferred user interface language. The rc variable gui_language now require a language name and not its code.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25387 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
1c83bf9420
commit
d748af0299
@ -347,8 +347,9 @@ void LyX::setRcGuiLanguage()
|
||||
{
|
||||
if (lyxrc.gui_language == "auto")
|
||||
return;
|
||||
LYXERR(Debug::LOCALE, "Setting LANGUAGE to " << lyxrc.gui_language);
|
||||
if (!setEnv("LANGUAGE", lyxrc.gui_language))
|
||||
Language const * language = languages.getLanguage(lyxrc.gui_language);
|
||||
LYXERR(Debug::LOCALE, "Setting LANGUAGE to " << language->code());
|
||||
if (!setEnv("LANGUAGE", language->code()))
|
||||
LYXERR(Debug::LOCALE, "\t... failed!");
|
||||
LYXERR(Debug::LOCALE, "Setting LC_ALL to en_US");
|
||||
if (!setEnv("LC_ALL", "en_US"))
|
||||
|
@ -1529,6 +1529,9 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
|
||||
|
||||
actOnUpdatedPrefs(lyxrc_orig, lyxrc);
|
||||
|
||||
// Set the language defined by the user.
|
||||
LyX::ref().setRcGuiLanguage();
|
||||
|
||||
theApp()->resetGui();
|
||||
|
||||
/// We force the redraw in any case because there might be
|
||||
|
@ -1689,13 +1689,35 @@ PrefLanguage::PrefLanguage(GuiPreferences * form)
|
||||
this, SIGNAL(changed()));
|
||||
connect(defaultLanguageCO, SIGNAL(activated(int)),
|
||||
this, SIGNAL(changed()));
|
||||
connect(uiLanguageCO, SIGNAL(activated(int)),
|
||||
this, SIGNAL(changed()));
|
||||
|
||||
defaultLanguageCO->clear();
|
||||
uiLanguageCO->clear();
|
||||
|
||||
QAbstractItemModel * language_model = guiApp->languageModel();
|
||||
// FIXME: it would be nice if sorting was enabled/disabled via a checkbox.
|
||||
language_model->sort(0);
|
||||
defaultLanguageCO->setModel(language_model);
|
||||
|
||||
// FIXME: This is wrong, we need filter this list based on the available
|
||||
// translation.
|
||||
uiLanguageCO->blockSignals(true);
|
||||
uiLanguageCO->addItem(qt_("Default"), toqstr("auto"));
|
||||
for (int i = 0; i != language_model->rowCount(); ++i) {
|
||||
QModelIndex index = language_model->index(i, 0);
|
||||
uiLanguageCO->addItem(index.data(Qt::DisplayRole).toString(),
|
||||
index.data(Qt::UserRole).toString());
|
||||
}
|
||||
uiLanguageCO->blockSignals(false);
|
||||
}
|
||||
|
||||
|
||||
void PrefLanguage::on_uiLanguageCO_currentIndexChanged(int)
|
||||
{
|
||||
QMessageBox::information(this, qt_("LyX needs to be restarted!"),
|
||||
qt_("The change of user interface language will be fully "
|
||||
"effective only after a restart."));
|
||||
}
|
||||
|
||||
|
||||
@ -1714,6 +1736,8 @@ void PrefLanguage::apply(LyXRC & rc) const
|
||||
rc.language_command_end = fromqstr(endCommandED->text());
|
||||
rc.default_language = fromqstr(
|
||||
defaultLanguageCO->itemData(defaultLanguageCO->currentIndex()).toString());
|
||||
rc.gui_language = fromqstr(
|
||||
uiLanguageCO->itemData(uiLanguageCO->currentIndex()).toString());
|
||||
}
|
||||
|
||||
|
||||
@ -1734,8 +1758,12 @@ void PrefLanguage::update(LyXRC const & rc)
|
||||
startCommandED->setText(toqstr(rc.language_command_begin));
|
||||
endCommandED->setText(toqstr(rc.language_command_end));
|
||||
|
||||
int const pos = defaultLanguageCO->findData(toqstr(rc.default_language));
|
||||
int pos = defaultLanguageCO->findData(toqstr(rc.default_language));
|
||||
defaultLanguageCO->setCurrentIndex(pos);
|
||||
pos = uiLanguageCO->findData(toqstr(rc.gui_language));
|
||||
uiLanguageCO->blockSignals(true);
|
||||
uiLanguageCO->setCurrentIndex(pos);
|
||||
uiLanguageCO->blockSignals(false);
|
||||
}
|
||||
|
||||
|
||||
|
@ -369,6 +369,9 @@ public:
|
||||
|
||||
void apply(LyXRC & rc) const;
|
||||
void update(LyXRC const & rc);
|
||||
|
||||
private Q_SLOTS:
|
||||
void on_uiLanguageCO_currentIndexChanged(int);
|
||||
};
|
||||
|
||||
|
||||
|
@ -12,14 +12,165 @@
|
||||
<property name="windowTitle" >
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" >
|
||||
<property name="margin" >
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="10" column="0" colspan="3" >
|
||||
<layout class="QGridLayout" name="gridLayout" >
|
||||
<item row="0" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="uiLanguageLA" >
|
||||
<property name="text" >
|
||||
<string>&User Interface language:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>defaultLanguageCO</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QComboBox" name="uiLanguageCO" >
|
||||
<property name="toolTip" >
|
||||
<string>Select the default language of your documents</string>
|
||||
</property>
|
||||
<property name="maxVisibleItems" >
|
||||
<number>20</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="defaultLanguageLA" >
|
||||
<property name="text" >
|
||||
<string>&Default language:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>defaultLanguageCO</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2" >
|
||||
<widget class="QComboBox" name="defaultLanguageCO" >
|
||||
<property name="toolTip" >
|
||||
<string>Select the default language of your documents</string>
|
||||
</property>
|
||||
<property name="maxVisibleItems" >
|
||||
<number>20</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="languagePackageLA" >
|
||||
<property name="text" >
|
||||
<string>Language pac&kage:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>languagePackageED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" >
|
||||
<widget class="QLineEdit" name="languagePackageED" >
|
||||
<property name="toolTip" >
|
||||
<string>Enter the command to load the language package (default: babel)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="startCommandLA" >
|
||||
<property name="text" >
|
||||
<string>Command s&tart:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>startCommandED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" >
|
||||
<widget class="QLineEdit" name="startCommandED" >
|
||||
<property name="toolTip" >
|
||||
<string>The LaTeX command that starts a switch to a foreign language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="endCommandLA" >
|
||||
<property name="text" >
|
||||
<string>Command e&nd:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>endCommandED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2" >
|
||||
<widget class="QLineEdit" name="endCommandED" >
|
||||
<property name="toolTip" >
|
||||
<string>The LaTeX command that ends a switch to a foreign language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="useBabelCB" >
|
||||
<property name="toolTip" >
|
||||
<string>Use the babel package for multilingual support</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Use b&abel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="globalCB" >
|
||||
<property name="toolTip" >
|
||||
<string>Check to pass the language globally (to the document class), not locally (to the language package)</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Global</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="autoBeginCB" >
|
||||
<property name="toolTip" >
|
||||
<string>If checked, the document language is not explicitely set by a language switch command</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Auto &begin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="autoEndCB" >
|
||||
<property name="toolTip" >
|
||||
<string>If checked, the document language is not explicitely closed by a language switch command</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Auto &end</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0" colspan="4" >
|
||||
<widget class="QCheckBox" name="markForeignCB" >
|
||||
<property name="toolTip" >
|
||||
<string>Check to highlight foreign languages visually in the work area</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Mark &foreign languages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="11" column="0" colspan="3" >
|
||||
<widget class="QGroupBox" name="rtlGB2" >
|
||||
<property name="toolTip" >
|
||||
<string/>
|
||||
@ -55,7 +206,7 @@
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>101</width>
|
||||
<height>20</height>
|
||||
@ -65,12 +216,12 @@
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="cursorMovementLA" >
|
||||
<property name="text" >
|
||||
@ -103,17 +254,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0" colspan="4" >
|
||||
<widget class="QCheckBox" name="markForeignCB" >
|
||||
<property name="toolTip" >
|
||||
<string>Check to highlight foreign languages visually in the work area</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Mark &foreign languages</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1" >
|
||||
<item row="12" column="1" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
@ -121,7 +262,7 @@
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
@ -129,43 +270,12 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QComboBox" name="defaultLanguageCO" >
|
||||
<property name="toolTip" >
|
||||
<string>Select the default language of your documents</string>
|
||||
</property>
|
||||
<property name="maxVisibleItems" >
|
||||
<number>20</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2" >
|
||||
<widget class="QLineEdit" name="startCommandED" >
|
||||
<property name="toolTip" >
|
||||
<string>The LaTeX command that starts a switch to a foreign language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2" >
|
||||
<widget class="QLineEdit" name="languagePackageED" >
|
||||
<property name="toolTip" >
|
||||
<string>Enter the command to load the language package (default: babel)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" >
|
||||
<widget class="QLineEdit" name="endCommandED" >
|
||||
<property name="toolTip" >
|
||||
<string>The LaTeX command that ends a switch to a foreign language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3" >
|
||||
<item row="2" column="3" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
@ -173,102 +283,6 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="defaultLanguageLA" >
|
||||
<property name="text" >
|
||||
<string>&Default language:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>defaultLanguageCO</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="languagePackageLA" >
|
||||
<property name="text" >
|
||||
<string>Language pac&kage:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>languagePackageED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="startCommandLA" >
|
||||
<property name="text" >
|
||||
<string>Command s&tart:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>startCommandED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2" >
|
||||
<widget class="QLabel" name="endCommandLA" >
|
||||
<property name="text" >
|
||||
<string>Command e&nd:</string>
|
||||
</property>
|
||||
<property name="buddy" >
|
||||
<cstring>endCommandED</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="globalCB" >
|
||||
<property name="toolTip" >
|
||||
<string>Check to pass the language globally (to the document class), not locally (to the language package)</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Global</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="autoBeginCB" >
|
||||
<property name="toolTip" >
|
||||
<string>If checked, the document language is not explicitely set by a language switch command</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Auto &begin</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="autoEndCB" >
|
||||
<property name="toolTip" >
|
||||
<string>If checked, the document language is not explicitely closed by a language switch command</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Auto &end</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0" colspan="3" >
|
||||
<widget class="QCheckBox" name="useBabelCB" >
|
||||
<property name="toolTip" >
|
||||
<string>Use the babel package for multilingual support</string>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Use b&abel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>16</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
|
Loading…
Reference in New Issue
Block a user