diff --git a/src/engraving/rendering/score/headerfooterlayout.cpp b/src/engraving/rendering/score/headerfooterlayout.cpp index cf6d19191ad44..6817e1428cfaa 100644 --- a/src/engraving/rendering/score/headerfooterlayout.cpp +++ b/src/engraving/rendering/score/headerfooterlayout.cpp @@ -257,6 +257,12 @@ TextBlock HeaderFooterLayout::replaceTextMacros(LayoutContext& ctx, const Page* } for (size_t i = 0, n = s.size(); i < n; ++i) { + auto dateFormat = muse::DateFormat::LocaleShortFormat; + const char* locale = "de"; // TODO: get the actual locale from the score's style settings + if (!std::setlocale(LC_TIME, locale)) { + LOGW() << "Failed to set LC_TIME locale for language code:" << locale << "using ISO format instead"; + dateFormat = muse::DateFormat::ISODate; + } Char c = s.at(i); if (c == '$' && (i < (n - 1))) { Char nc = s.at(i + 1); @@ -306,35 +312,33 @@ TextBlock HeaderFooterLayout::replaceTextMacros(LayoutContext& ctx, const Page* newFragments.back().text += page->score()->masterScore()->fileInfo()->path().toString(); break; case 'd': - newFragments.back().text += muse::Date::currentDate().toString(muse::DateFormat::ISODate); + newFragments.back().text += muse::Date::currentDate().toString(dateFormat); break; case 'D': { String creationDate = page->score()->metaTag(u"creationDate"); if (creationDate.isEmpty()) { - newFragments.back().text += page->score()->masterScore()->fileInfo()->birthTime().date().toString( - muse::DateFormat::ISODate); + newFragments.back().text += page->score()->masterScore()->fileInfo()->birthTime().date().toString(dateFormat); } else { - newFragments.back().text += muse::Date::fromStringISOFormat(creationDate).toString( - muse::DateFormat::ISODate); + newFragments.back().text += muse::Date::fromStringISOFormat(creationDate).toString(dateFormat); } } break; case 'm': { IFileInfoProviderPtr fileInfo = page->score()->masterScore()->fileInfo(); if (fileInfo->isNewlyCreated()) { - newFragments.back().text += String(u"HH:mm:ss"); + newFragments.back().text += muse::Time::currentTime().toString(dateFormat); } else { - newFragments.back().text += fileInfo->lastModified().time().toString(muse::DateFormat::ISODate); + newFragments.back().text += fileInfo->lastModified().time().toString(dateFormat); } } break; case 'M': { IFileInfoProviderPtr fileInfo = page->score()->masterScore()->fileInfo(); if (fileInfo->isNewlyCreated()) { - newFragments.back().text += String(u"YYYY-MM-DD"); + newFragments.back().text += muse::Date::currentDate().toString(dateFormat); } else { - newFragments.back().text += fileInfo->lastModified().date().toString(muse::DateFormat::ISODate); + newFragments.back().text += fileInfo->lastModified().date().toString(dateFormat); } } break;