};
auto add = [&counts, &add_bullet](dcp::VerificationNote note, wxString message) {
+ if (note.reference_hash()) {
+ message.Replace("%reference_hash", std_to_wx(note.reference_hash().get()));
+ }
+ if (note.calculated_hash()) {
+ message.Replace("%calculated_hash", std_to_wx(note.calculated_hash().get()));
+ }
if (note.note()) {
message.Replace("%n", std_to_wx(note.note().get()));
}
add (i, std_to_wx(*i.note()));
break;
case dcp::VerificationNote::Code::MISMATCHED_CPL_HASHES:
- add(i, _("The hash of the CPL %n in the PKL does not agree with the CPL file. This probably means that the CPL file is corrupt."));
+ add(i, _("The hash (%reference_hash) of the CPL %n in the PKL does not agree with the CPL file (%calculated_hash). This probably means that the CPL file is corrupt."));
break;
case dcp::VerificationNote::Code::INVALID_PICTURE_FRAME_RATE:
add(i, _("The picture in a reel has a frame rate of %n, which is not valid."));
break;
case dcp::VerificationNote::Code::INCORRECT_PICTURE_HASH:
- add(i, _("The hash of the picture asset %f does not agree with the PKL file. This probably means that the asset file is corrupt."));
+ add(i, _("The hash (%calculated_hash) of the picture asset %f does not agree with the PKL file (%reference_hash). This probably means that the asset file is corrupt."));
break;
case dcp::VerificationNote::Code::MISMATCHED_PICTURE_HASHES:
add(i, _("The PKL and CPL hashes disagree for picture asset %f."));
break;
case dcp::VerificationNote::Code::INCORRECT_SOUND_HASH:
- add(i, _("The hash of the sound asset %f does not agree with the PKL file. This probably means that the asset file is corrupt."));
+ add(i, _("The hash (%calculated_hash) of the sound asset %f does not agree with the PKL file (%reference_hash). This probably means that the asset file is corrupt."));
break;
case dcp::VerificationNote::Code::MISMATCHED_SOUND_HASHES:
add(i, _("The PKL and CPL hashes disagree for sound asset %f."));
add(i, _("A subtitle or closed caption refers to a font with ID %id that does not have a corresponding <LoadFont> node."));
break;
case dcp::VerificationNote::Code::MISSING_LOAD_FONT:
- add(i, "The SMPTE subtitle asset %id has <Text> nodes but no <LoadFont> node");
+ add(i, _("The SMPTE subtitle asset %id has <Text> nodes but no <LoadFont> node"));
break;
case dcp::VerificationNote::Code::MISMATCHED_ASSET_MAP_ID:
add(i, _("The asset with ID %id in the asset map actually has an id of %other_id"));
break;
+ case dcp::VerificationNote::Code::EMPTY_CONTENT_VERSION_LABEL_TEXT:
+ add(i, _("The <LabelText> in a <ContentVersion> in CPL %id is empty"));
+ break;
}
}