[calendar] Use ui language for getting the month name

Simple QDate::longMonthName(..) won't do the job as it
will return the month name using LC_DATE locale which is used
for date formatting etc. So for example, in en_US locale
and cs_CZ LC_DATE, it would return Czech month names while
it should return English ones. So here we force the first ui
language locale and take the month name from that.

BUG: 353715
REVIEW: 125705
This commit is contained in:
Martin Klapetek 2015-11-18 12:23:17 -05:00
parent e571628b18
commit 6f3fed77d5

View File

@ -184,7 +184,18 @@ QString Calendar::dayName(int weekday) const
QString Calendar::monthName() const QString Calendar::monthName() const
{ {
return QDate::longMonthName(m_displayedDate.month(), QDate::StandaloneFormat); // Simple QDate::longMonthName won't do the job as it
// will return the month name using LC_DATE locale which is used
// for date formatting etc. So for example, in en_US locale
// and cs_CZ LC_DATE, it would return Czech month names while
// it should return English ones. So here we force the LANG
// locale and take the month name from that.
//
// See https://bugs.kde.org/show_bug.cgi?id=353715
const QString lang = QLocale().uiLanguages().first();
// If lang is empty, it will create just a system locale
QLocale langLocale(lang);
return langLocale.standaloneMonthName(m_displayedDate.month());
} }
int Calendar::year() const int Calendar::year() const