+ 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."));
+ 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."));
+ break;
+ case dcp::VerificationNote::Code::MISMATCHED_SOUND_HASHES:
+ add(i, _("The PKL and CPL hashes disagree for sound asset %f."));
+ break;
+ case dcp::VerificationNote::Code::EMPTY_ASSET_PATH:
+ add(i, _("An asset has an empty path in the ASSETMAP."));
+ break;
+ case dcp::VerificationNote::Code::MISSING_ASSET:
+ add(i, _("The asset %f is missing."));
+ break;
+ case dcp::VerificationNote::Code::MISMATCHED_STANDARD:
+ add(i, _("Parts of the DCP are written according to the Interop standard and parts according to SMPTE."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_XML:
+ if (i.line()) {
+ add(i, _("The XML in %f is malformed on line %l (%n)."));
+ } else {
+ add(i, _("The XML in %f is malformed (%n)."));
+ }
+ break;
+ case dcp::VerificationNote::Code::MISSING_ASSETMAP:
+ add(i, _("No ASSETMAP or ASSETMAP.xml file was found."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_INTRINSIC_DURATION:
+ add(i, _("The asset %n has an instrinsic duration of less than 1 second, which is invalid."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_DURATION:
+ add(i, _("The asset %n has a duration of less than 1 second, which is invalid."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_PICTURE_FRAME_SIZE_IN_BYTES:
+ add(i, _("At least one frame of the video asset %f is over the limit of 250Mbit/s."));
+ break;
+ case dcp::VerificationNote::Code::NEARLY_INVALID_PICTURE_FRAME_SIZE_IN_BYTES:
+ add(i, _("At least one frame of the video asset %f is close to the limit of 250MBit/s."));
+ break;
+ case dcp::VerificationNote::Code::EXTERNAL_ASSET:
+ add(i, _("This DCP refers to at the asset %n in another DCP (and perhaps others), so it is a \"version file\" (VF)"));
+ break;
+ case dcp::VerificationNote::Code::INVALID_STANDARD:
+ add(i, _("This DCP uses the Interop standard, but it should be made with SMPTE."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_LANGUAGE:
+ add(i, _("The invalid language tag %n is used."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_PICTURE_SIZE_IN_PIXELS:
+ add(i, _("The video asset %f uses the invalid image size %n."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_PICTURE_FRAME_RATE_FOR_2K:
+ add(i, _("The video asset %f uses the invalid frame rate %n."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_PICTURE_FRAME_RATE_FOR_4K:
+ add(i, _("The video asset %f uses the frame rate %n which is invalid for 4K video."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_PICTURE_ASSET_RESOLUTION_FOR_3D:
+ add(i, _("The video asset %f uses the frame rate %n which is invalid for 3D video."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES:
+ add(i, _("The XML in the closed caption asset %f takes up %n bytes which is over the 256KB limit."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES:
+ add(i, _("The timed text asset %f takes up %n bytes which is over the 115MB limit."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES:
+ add(i, _("The fonts in the timed text asset %f take up %n bytes which is over the 10MB limit."));
+ break;
+ case dcp::VerificationNote::Code::MISSING_SUBTITLE_LANGUAGE:
+ add(i, _("The subtitle asset %f contains no <Language> tag."));
+ break;
+ case dcp::VerificationNote::Code::MISMATCHED_SUBTITLE_LANGUAGES:
+ add(i, _("Not all subtitle assets specify the same <Language> tag."));
+ break;
+ case dcp::VerificationNote::Code::MISSING_SUBTITLE_START_TIME:
+ add(i, _("The subtitle asset %f contains no <StartTime> tag."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_SUBTITLE_START_TIME:
+ add(i, _("The subtitle asset %f has a <StartTime> which is not zero."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_SUBTITLE_FIRST_TEXT_TIME:
+ add(i, _("The first subtitle or closed caption happens before 4s into the first reel."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_SUBTITLE_DURATION:
+ add(i, _("At least one subtitle lasts less than 15 frames."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_SUBTITLE_SPACING:
+ add(i, _("At least one pair of subtitles is separated by less than 2 frames."));
+ break;
+ case dcp::VerificationNote::Code::INVALID_SUBTITLE_LINE_COUNT:
+ add(i, _("There are more than 3 subtitle lines in at least one place."));