diff --git a/options/locale/locale_en-US.json b/options/locale/locale_en-US.json index 1b2d574572..bd5b092033 100644 --- a/options/locale/locale_en-US.json +++ b/options/locale/locale_en-US.json @@ -4572,6 +4572,7 @@ "repo.settings.pages.ai_generate": "AI Content Generator", "repo.settings.pages.ai_generate_desc": "Automatically generate landing page content (headline, features, stats, CTAs) from your repository's README and metadata using AI.", "repo.settings.pages.ai_generate_button": "Generate Content with AI", + "repo.settings.pages.ai_generating": "Generating content with AI\u2026 This may take a moment.", "repo.settings.pages.ai_generate_success": "Landing page content has been generated successfully. Review and customize it in the other tabs.", "repo.settings.pages.ai_generate_failed": "Failed to generate content with AI. Please try again later or configure the content manually.", "repo.settings.pages.languages": "Languages", @@ -4587,6 +4588,7 @@ "repo.settings.pages.ai_translate_all": "Translate All (AI)", "repo.settings.pages.ai_translate_all_success": "Successfully translated %d languages.", "repo.settings.pages.ai_translate_all_partial": "Translated %d of %d languages. %d failed.", + "repo.settings.pages.ai_translating": "Translating with AI\u2026 This may take a moment.", "repo.settings.pages.delete_translation": "Delete", "repo.settings.pages.save_translation": "Save Translation", "repo.settings.pages.translation_saved": "Translation saved successfully.", diff --git a/templates/repo/settings/pages.tmpl b/templates/repo/settings/pages.tmpl index 3e222bc05b..d0501cccbe 100644 --- a/templates/repo/settings/pages.tmpl +++ b/templates/repo/settings/pages.tmpl @@ -29,15 +29,19 @@ {{if .AIEnabled}}
-
+ {{.CsrfTokenHtml}}

{{ctx.Locale.Tr "repo.settings.pages.ai_generate_desc"}}

-
- +
+ +
+
+
+

{{ctx.Locale.Tr "repo.settings.pages.ai_generating"}}

{{end}} @@ -169,4 +173,17 @@
{{end}} + {{template "repo/settings/layout_footer" .}} diff --git a/templates/repo/settings/pages_brand.tmpl b/templates/repo/settings/pages_brand.tmpl index 26cbea3256..d6c5270bba 100644 --- a/templates/repo/settings/pages_brand.tmpl +++ b/templates/repo/settings/pages_brand.tmpl @@ -26,7 +26,7 @@
- + @@ -59,7 +59,7 @@
- + diff --git a/templates/repo/settings/pages_languages.tmpl b/templates/repo/settings/pages_languages.tmpl index 0f0fff8cd1..17250eb50c 100644 --- a/templates/repo/settings/pages_languages.tmpl +++ b/templates/repo/settings/pages_languages.tmpl @@ -60,7 +60,7 @@ -
+ {{.CsrfTokenHtml}} @@ -73,6 +73,10 @@
+
+
+

{{ctx.Locale.Tr "repo.settings.pages.ai_translating"}}

+
{{/* ── Language panels (one per non-default language, only one visible at a time) ── */}} {{range .Config.I18n.Languages}} @@ -350,6 +354,22 @@ selector.addEventListener('change', showPanel); // Show first language on load showPanel(); + + // Loading spinners for AI translate buttons + function showTranslateLoading(form) { + if (!form) return; + form.addEventListener('submit', function() { + var btn = form.querySelector('button[type="submit"]'); + btn.classList.add('loading', 'disabled'); + btn.disabled = true; + // Hide all lang panels and action bar buttons, show loader + document.querySelectorAll('.lang-panel').forEach(function(p) { p.style.display = 'none'; }); + var loading = document.getElementById('ai-translate-loading'); + if (loading) loading.classList.remove('tw-hidden'); + }); + } + showTranslateLoading(document.getElementById('ai-translate-form')); + showTranslateLoading(document.getElementById('ai-translate-all-form')); })(); {{template "repo/settings/layout_footer" .}}