diff options
Diffstat (limited to 'src/corelib/kernel/qtranslator.cpp')
-rw-r--r-- | src/corelib/kernel/qtranslator.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp index 1824153966..521503b96b 100644 --- a/src/corelib/kernel/qtranslator.cpp +++ b/src/corelib/kernel/qtranslator.cpp @@ -449,7 +449,7 @@ bool QTranslator::load(const QString & filename, const QString & directory, QString prefix; if (QFileInfo(filename).isRelative()) { prefix = directory; - if (prefix.length() && !prefix.endsWith(u'/')) + if (prefix.size() && !prefix.endsWith(u'/')) prefix += u'/'; } @@ -472,7 +472,7 @@ bool QTranslator::load(const QString & filename, const QString & directory, break; int rightmost = 0; - for (int i = 0; i < (int)delims.length(); i++) { + for (int i = 0; i < (int)delims.size(); i++) { int k = fname.lastIndexOf(delims[i]); if (k > rightmost) rightmost = k; @@ -620,17 +620,22 @@ static QString find_translation(const QLocale & locale, // see http://www.unicode.org/reports/tr35/#LanguageMatching for inspiration + // For each language_country returned by locale.uiLanguages(), add + // also a lowercase version to the list. Since these languages are + // used to create file names, this is important on case-sensitive + // file systems, where otherwise a file called something like + // "prefix_en_us.qm" won't be found under the "en_US" locale. Note + // that the Qt resource system is always case-sensitive, even on + // Windows (in other words: this codepath is *not* UNIX-only). QStringList languages = locale.uiLanguages(); -#if defined(Q_OS_UNIX) for (int i = languages.size()-1; i >= 0; --i) { QString lang = languages.at(i); QString lowerLang = lang.toLower(); if (lang != lowerLang) languages.insert(i + 1, lowerLang); } -#endif - for (QString localeName : qAsConst(languages)) { + for (QString localeName : std::as_const(languages)) { localeName.replace(u'-', u'_'); // try the complete locale name first and progressively truncate from @@ -909,7 +914,7 @@ end: if (!tn) return QString(); QString str(tn_length / 2, Qt::Uninitialized); - qFromBigEndian<ushort>(tn, str.length(), str.data()); + qFromBigEndian<ushort>(tn, str.size(), str.data()); return str; } |