kdebase4-workspace/kde-workspace-4.10.3-fix-kcmkdm-locale.patch

35 lines
1.2 KiB
Diff

diff -urN kde-workspace-4.10.3/kdm/kcm/kdm-gen.cpp kde-workspace-4.10.3-patched/kdm/kcm/kdm-gen.cpp
--- kde-workspace-4.10.3/kdm/kcm/kdm-gen.cpp 2013-05-03 15:36:45.000000000 +1100
+++ kde-workspace-4.10.3-patched/kdm/kcm/kdm-gen.cpp 2013-05-28 01:23:48.374492633 +1100
@@ -35,6 +35,8 @@
#include <QFormLayout>
#include <QVBoxLayout>
+#include <locale.h>
+
extern KConfig *config;
KDMGeneralWidget::KDMGeneralWidget(QWidget *parent)
@@ -208,7 +210,21 @@
colcombo->setCurrentId(configGrp.readEntry("ColorScheme"));
// get the language
- langcombo->setCurrentItem(configGrp.readEntry("Language", "C"));
+ QString langEntry = configGrp.readEntry("Language", "C");
+ if ((langEntry == "C") || !langcombo->contains(langEntry))
+ {
+ char *locale = setlocale(LC_MESSAGES, NULL);
+
+ QString lang, country, modifier, charset;
+ KLocale::splitLocale(locale, lang, country, modifier, charset);
+
+ if (lang.toLower() == country.toLower())
+ langEntry = lang;
+ else
+ langEntry = lang + "_" + country;
+ }
+
+ langcombo->setCurrentItem(langEntry);
// Read the fonts
QFont font = stdFontChooser->font();