{{t('faq-title')}}

{{t('kavita+-desc-part-1')}} {{t('kavita+-desc-part-2')}} {{t('kavita+-desc-part-3')}}

{{t('kavita+-warning')}}

@if (hasLicense()) { ********* @if (isChecking()) {
{{t('loading')}}
} @else { @if (licenseInfo()?.isActive) { {{t('license-valid')}} } @else { {{t('license-not-valid')}} } } @if (!isChecking() && hasLicense() && !licenseInfo()) {
{{t('license-mismatch')}}
} } @else { {{t('no-license-key')}} }
{{t('activate-license-label')}}
{{t('activate-email-label')}}
{{t('activate-discordId-label')}} {{t('help-label')}} @if (formGroup.dirty || !formGroup.untouched) {
@if (formGroup.get('discordId')?.errors?.pattern) {
{{t('discord-validation')}}
}
}
@if (hasLicense()) { @if (licenseInfo()?.isActive) { {{t('manage')}} } @else { {{t('renew')}} } } @else { {{t('buy')}}
}
@let licInfo = licenseInfo(); @if (hasLicense() && licInfo) {

### {{t('info-title')}}

@if (isChecking()) { {{null | defaultValue}} } @else { {{licInfo.isActive ? t('valid') : t('invalid')}] }
@let validVersion = licInfo.isValidVersion; {{validVersion ? t('valid') : t('invalid')}]
{{licInfo.expirationDate | utcToLocalTime | defaultValue}}
{{licInfo.totalMonthsSubbed | number}}
@if (showEmail()) { {{licInfo.registeredEmail}} } @else { *************** }
{{licInfo.installId}}

### {{t('actions-title')}}

{{t('cancel-label')}}
{{t('manage')}}
}