Как отобразить 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"
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]