# Releases & coverage hub — wired to the coverage-track APIs (preview counts, per-edition policy, apply-to-existing, readiness/backfill/export)
ui.cov.coveredN=covered for {0} of {1}
ui.cov.notCoveredN={0} not covered
ui.cov.pv.title=Who this release is covered for
ui.cov.pv.lead=Counts update as you type — based on every license of this product and the date above.
ui.cov.pv.covered=covered (incl. licenses with no coverage set up)
ui.cov.pv.notCovered=not covered
ui.cov.pv.total=licenses
ui.cov.noEditions=No editions yet
ui.cov.noEditionsBody=A coverage policy belongs to an edition. Add one under Products first.
ui.cov.policySaved=Policy saved for {0} — new licenses of this edition get it automatically.
ui.cov.clearPolicy=Remove policy
ui.cov.clearPolicyBody=New licenses of this edition will no longer get coverage terms at issue. Existing licenses are not affected.
ui.cov.currentPolicy=Policy in effect
ui.cov.currentPolicyNote=New licenses of this edition get these terms. Change and save to update.
ui.cov.noPolicyYet=No policy saved yet — new licenses of this edition currently allow every version.
ui.cov.saveNote=Saving applies to licenses issued from now on. Use "Apply to existing customers" below to extend current licenses.
ui.cov.applyQuestion=Apply these terms to existing customers?
ui.cov.applyNote=Optional. Coverage can only grow for a customer; nobody loses a version they can use today. Preview first.
ui.cov.refVersion=Reference version
ui.cov.refVersionHint=The counts show who can use this version before and after.
ui.cov.refVersionNeeded=Enter a reference version (e.g. 2.5.0) to preview.
ui.cov.applyExisting=Apply to existing customers
ui.cov.applyBody=Extend every existing {0} license with these terms? This appends coverage and is recorded on each license; it can't be undone.
ui.cov.mg.gain=would gain {0}
ui.cov.mg.already=already have it
ui.cov.mg.lose=would lose anything
ui.cov.mg.done={0} of {1} licenses gained coverage.
ui.cov.rd.configured=With coverage terms
ui.cov.rd.missing=Without any terms
ui.cov.rd.allHaveDates=Every license has coverage terms
ui.cov.rd.missingDates={0} licenses have no coverage terms yet
ui.cov.rd.readyTitle=Ready.
ui.cov.rd.readyBody=Every license carries coverage terms, so a build with RequireCoverage will never lock a customer out.
ui.cov.rd.notReadyTitle={0} licenses need terms first.
ui.cov.rd.notReadyBody=Backfill them below before shipping a RequireCoverage build — issued terms can't be taken back, so choose carefully.
ui.cov.bf.title=Backfill older licenses
ui.cov.bf.lead=Licenses issued before coverage existed get a term marked "existing customer". Pick lifetime, their own expiry date, or upload per-license dates.
ui.cov.bf.lifetime=Treat them as lifetime
ui.cov.bf.supportEnd=Use each license's expiry date
ui.cov.bf.confirm=This gives {0} licenses coverage terms now. Customers never lose anything; terms can only be extended later.
ui.cov.bf.done={0} licenses backfilled.
ui.cov.bf.csvHelp=One license per line: licenseId, supportUntil (yyyy-mm-dd; blank = lifetime).
ui.cov.exportLead=For air-gapped customers: a signed coverage file per license to deliver out of band.
ui.cov.exportDone=Exported {0} coverage files.
ui.cov.rd.whyTitle=Why terms first?
ui.cov.rd.whyBody=Enforcement lives in your build (RequireCoverage). Once a customer's signed coverage file is delivered it can't be revoked, only extended — so every license needs the right terms before you ship an enforcing build.
