Как отобразить QDate-месяц с языком, отличным от системного?
Функция QDate::toString(const QString &format)
позволяет отображать название месяца с MMM
(например, с января по декабрь) или MMMM
(например, с января по декабрь).
Но эта функция использует системную локаль из QLocale::system()
( исходный код).
Какой самый простой способ отобразить QDate
с названием месяца, для конкретного QLocale?
1 ответ
Решение
Вы должны использовать toString()
метод QLocale
вместо QDate
,
QDate d = QDate::currentDate();
QList<QLocale> locales {QLocale(QLocale::Spanish),
QLocale(QLocale::English),
QLocale(QLocale::Dutch),
QLocale(QLocale::Japanese),
QLocale(QLocale::French),
QLocale(QLocale::Chinese)};
QString format = "dd MMMM yyyy";
for(const QLocale locale: locales){
qDebug()<<locale.toString(d, format);
}
выход:
"16 octubre 2017"
"16 October 2017"
"16 oktober 2017"
"16 10月 2017"
"16 octobre 2017"
"16 十月 2017"