aboutsummaryrefslogtreecommitdiff
path: root/src/core/kconfigini.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/kconfigini.cpp')
-rw-r--r--src/core/kconfigini.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/kconfigini.cpp b/src/core/kconfigini.cpp
index f4ce9410..5fe4de03 100644
--- a/src/core/kconfigini.cpp
+++ b/src/core/kconfigini.cpp
@@ -85,6 +85,8 @@ KConfigIniBackend::parseConfig(const QByteArray &currentLocale, KEntryMap &entry
return ParseOk;
}
+ const QByteArray currentLanguage = currentLocale.split('_').first();
+
bool bDefault = options & ParseDefaults;
bool allowExecutableValues = options & ParseExpansions;
@@ -251,7 +253,7 @@ KConfigIniBackend::parseConfig(const QByteArray &currentLocale, KEntryMap &entry
}
printableToString(&aKey, file, lineNo);
if (!locale.isEmpty()) {
- if (locale != currentLocale) {
+ if (locale != currentLocale && locale != currentLanguage) {
// backward compatibility. C == en_US
if (locale.at(0) != 'C' || currentLocale != "en_US") {
if (merging) {
@@ -275,6 +277,9 @@ KConfigIniBackend::parseConfig(const QByteArray &currentLocale, KEntryMap &entry
}
if (!locale.isNull()) {
entryOptions |= KEntryMap::EntryLocalized;
+ if (locale.indexOf('_') != -1) {
+ entryOptions |= KEntryMap::EntryLocalizedCountry;
+ }
}
printableToString(&line, file, lineNo);
if (entryOptions & KEntryMap::EntryRawKey) {