# HG changeset patch # User Wuzzy # Date 1522173552 -7200 # Node ID 1fbf2ac1f13e482149f40527ec0c3969d72ab054 # Parent fd1017c85dd431520e2bc8f8a71ed87e6b9a6407 Videos frontend page: Locale-aware text formatting diff -r fd1017c85dd4 -r 1fbf2ac1f13e QTfrontend/ui/page/pagevideos.cpp --- a/QTfrontend/ui/page/pagevideos.cpp Tue Mar 27 13:45:58 2018 -0400 +++ b/QTfrontend/ui/page/pagevideos.cpp Tue Mar 27 19:59:12 2018 +0200 @@ -234,19 +234,8 @@ // get file size as string static QString FileSizeStr(const QString & path) { - quint64 size = QFileInfo(path).size(); - - quint64 KiB = 1024; - quint64 MiB = 1024*KiB; - quint64 GiB = 1024*MiB; - QString sizeStr; - if (size >= GiB) - return QString("%1 GiB").arg(QString::number(float(size)/GiB, 'f', 2)); - if (size >= MiB) - return QString("%1 MiB").arg(QString::number(float(size)/MiB, 'f', 2)); - if (size >= KiB) - return QString("%1 KiB").arg(QString::number(float(size)/KiB, 'f', 2)); - return PageVideos::tr("%1 bytes", "", size).arg(QString::number(size)); + qint64 size = QFileInfo(path).size(); + return QLocale().formattedDataSize(size); } // set file size in file list in specified row @@ -319,7 +308,8 @@ { QProgressBar * progressBar = (QProgressBar*)filesTable->cellWidget(row, vcProgress); progressBar->setValue(value*10000); - progressBar->setFormat(QString("%1%").arg(value*100, 0, 'f', 2)); + //: Video encoding progress. %1 = number + progressBar->setFormat(QString(tr("%1%")).arg(QLocale().toString(value*100, 'f', 2))); item->progress = value; } @@ -694,14 +684,17 @@ { VideoItem * item = nameItem(i); QString process; - if (!item->ready()) - process = tr("encoding"); - else + if (item->ready()) continue; float progress = 100*item->progress; if (progress > 99.99) progress = 99.99; // displaying 100% may be confusing - list += item->name + " (" + QString::number(progress, 'f', 2) + "% - " + process + ")\n"; + //: Video encoding list entry. %1 = file name, %2 = percent complete, %3 = video operation type (e.g. “encoding”) + list += QString(tr("%1 (%2%) - %3")) + .arg(item->name) + .arg(QLocale().toString(progress, 'f', 2)) + .arg(tr("encoding")) + + "\n"; } return list; } diff -r fd1017c85dd4 -r 1fbf2ac1f13e QTfrontend/util/LibavInteraction.cpp --- a/QTfrontend/util/LibavInteraction.cpp Tue Mar 27 13:45:58 2018 -0400 +++ b/QTfrontend/util/LibavInteraction.cpp Tue Mar 27 19:59:12 2018 +0200 @@ -302,21 +302,30 @@ if (!pCodec) continue; + + AVCodec* pDecoder = avcodec_find_decoder(pCodec->codec_id); + QString decoderName = pDecoder ? pDecoder->name : tr("unknown"); if (pCodec->codec_type == AVMEDIA_TYPE_VIDEO) { - desc += QString(tr("Video: %1x%2")).arg(pCodec->width).arg(pCodec->height) + ", "; if (pStream->avg_frame_rate.den) { float fps = float(pStream->avg_frame_rate.num)/pStream->avg_frame_rate.den; - desc += QString(tr("%1 FPS")).arg(fps, 0, 'f', 2) + ", "; + //: Video metadata. %1 = video width, %2 = video height, %3 = frames per second = %4 = decoder name + desc += QString(tr("Video: %1x%2, %3 FPS, %4")).arg(pCodec->width).arg(pCodec->height).arg(QLocale().toString(fps, 'f', 2)).arg(decoderName); + } + else + { + //: Video metadata. %1 = video width, %2 = video height, %3 = decoder name + desc += QString(tr("Video: %1x%2, %3")).arg(pCodec->width).arg(pCodec->height).arg(decoderName); } } else if (pCodec->codec_type == AVMEDIA_TYPE_AUDIO) + { desc += tr("Audio: "); + desc += decoderName; + } else continue; - AVCodec* pDecoder = avcodec_find_decoder(pCodec->codec_id); - desc += pDecoder? pDecoder->name : tr("unknown"); desc += "\n"; } AVDictionaryEntry* pComment = av_dict_get(pContext->metadata, "comment", NULL, 0); diff -r fd1017c85dd4 -r 1fbf2ac1f13e share/hedgewars/Data/Locale/hedgewars_de.ts --- a/share/hedgewars/Data/Locale/hedgewars_de.ts Tue Mar 27 13:45:58 2018 -0400 +++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Tue Mar 27 19:59:12 2018 +0200 @@ -1049,7 +1049,7 @@ Video: %1x%2 - Video: %1×%2 + Video: %1×%2 %1 fps @@ -1062,7 +1062,7 @@ %1 FPS - %1 FPS + %1 FPS Player: %1 @@ -1080,6 +1080,16 @@ Record: %1 Aufzeichnung: %1 + + Video: %1x%2, %3 FPS, %4 + Video metadata. %1 = video width, %2 = video height, %3 = frames per second = %4 = decoder name + Video: %1×%2, %3 FPS, %4 + + + Video: %1x%2, %3 + Video metadata. %1 = video width, %2 = video height, %3 = decoder name + Video: %1×%2, %3 + MainWindow @@ -2241,7 +2251,7 @@ %1 bytes - + %1 Byte %1 Bytes @@ -2276,6 +2286,21 @@ Size: %1 Größe: %1 + + %1% + Video encoding progress. %1 = number + %1% + + + %1 (%2%) - %3) + Video encoding list entry. %1 = file name, %2 = percent complete, %3 = video operation type (e.g. “encoding”) + %1 (%2%) – %3 + + + %1 (%2%) - %3 + Video encoding list entry. %1 = file name, %2 = percent complete, %3 = video operation type (e.g. “encoding”) + %1 (%2%) – %3 + QAction diff -r fd1017c85dd4 -r 1fbf2ac1f13e share/hedgewars/Data/Locale/hedgewars_en.ts --- a/share/hedgewars/Data/Locale/hedgewars_en.ts Tue Mar 27 13:45:58 2018 -0400 +++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Tue Mar 27 19:59:12 2018 +0200 @@ -1003,7 +1003,7 @@ Video: %1x%2 - Video: %1×%2 + Video: %1×%2 Duration: %1min %2s @@ -1012,7 +1012,7 @@ %1 FPS - %1 FPS + %1 FPS Player: %1 @@ -1030,6 +1030,16 @@ Record: %1 Record: %1 + + Video: %1x%2, %3 FPS, %4 + Video metadata. %1 = video width, %2 = video height, %3 = frames per second = %4 = decoder name + Video: %1×%2, %3 FPS, %4 + + + Video: %1x%2, %3 + Video metadata. %1 = video width, %2 = video height, %3 = decoder name + Video: %1×%2, %3 + MapModel @@ -2129,7 +2139,7 @@ %1 bytes - + %1 byte %1 bytes @@ -2154,6 +2164,21 @@ Size: %1 Size: %1 + + %1% + Video encoding progress. %1 = number + %1% + + + %1 (%2%) - %3) + Video encoding list entry. %1 = file name, %2 = percent complete, %3 = video operation type (e.g. “encoding”) + %1 (%2%) - %3 + + + %1 (%2%) - %3 + Video encoding list entry. %1 = file name, %2 = percent complete, %3 = video operation type (e.g. “encoding”) + %1 (%2%)—%3 + QAction