site_ followed by 26 characters, or a legacy 16-character alphanumeric key. Get your current key from your account at statamic.com. Do not use UUID license keys.',
'licensing_incorrect_key_format_heading' => 'Incorrect site key format',
'licensing_production_alert' => 'This site is running Statamic Pro and commercial addons on a production domain. To continue using these features, please ensure you have valid licenses.',
'licensing_production_alert_addons' => 'This site is using commercial addons on a production domain. To continue using these features, please ensure you have valid licenses.',
'licensing_production_alert_renew_statamic' => 'Your Statamic Pro license needs to be renewed to use this version. Please update your license or downgrade your Statamic version to continue.',
'licensing_production_alert_statamic' => 'This site is running Statamic Pro on a production domain. To continue using Pro features, please ensure you have a valid license.',
+ 'licensing_site_key_already_exists' => 'This site already has a key.',
+ 'licensing_site_key_found' => 'Site key found — no license attached yet. Run `php please license` to attach one.',
+ 'licensing_site_key_generated' => 'Site key generated. Commit .env.example so other environments pick it up.',
+ 'licensing_site_key_missing' => 'This site does not have a site key yet. Generate one from the Licensing utility.',
+ 'licensing_fresh_key_unavailable' => 'A new site key can only be generated before this key has been linked to an account.',
+ 'licensing_fresh_key_prompt' => 'This site key is already linked to a different account. Generate a new key so this project gets its own identity.',
+ 'licensing_fresh_key_confirm' => 'Generate a new site key? Any other environment using the old key will need to be updated.',
+ 'licensing_not_connected' => 'This site key isn\'t linked to a statamic.com account yet.',
+ 'licensing_connected_unlicensed' => 'This site is linked to a statamic.com account but has no license attached.',
+ 'licensing_connected_needs_renewal' => 'This site\'s Statamic Pro license needs to be renewed.',
+ 'licensing_renew_pro_description' => 'Your Statamic Pro license does not cover this version. Renew to keep using it, or downgrade to a version in range.',
+ 'licensing_refresh_instructions' => 'License data refreshes from statamic.com hourly. Use Refresh after you make changes there.',
+ 'licensing_buy_addon_detail' => ':author',
+ 'licensing_buy_addons_description' => 'These commercial addons need a license for :site.',
+ 'licensing_buy_mixed_description' => ':site needs Statamic Pro and commercial addon licenses.',
+ 'licensing_buy_pro_description' => 'Statamic Pro unlocks users, revisions, Git, multi-site, and more. One license per production site.',
+ 'licensing_buy_pro_detail' => 'Per site. First year, then $99/year to renew.',
'licensing_sync_instructions' => 'License data syncs from statamic.com hourly. Use the sync button to check for any recent changes you\'ve made.',
'licensing_trial_mode_alert' => 'This site is using Statamic Pro and commercial addons in trial mode. Valid licenses will be required when you\'re ready to launch.',
'licensing_trial_mode_alert_addons' => 'This site is using commercial addons in trial mode. Valid licenses will be required when you\'re ready to launch.',
diff --git a/resources/js/components/LicensingAlert.vue b/resources/js/components/LicensingAlert.vue
index 8518c9e7888..a205d9950cd 100644
--- a/resources/js/components/LicensingAlert.vue
+++ b/resources/js/components/LicensingAlert.vue
@@ -1,19 +1,41 @@
@@ -42,7 +93,49 @@ function manageLicenses() {
+ {{ __('statamic::messages.licensing_fresh_key_prompt') }} +
+ +