From 12341079e12f52b869cde3f843e8456e4e0767ff Mon Sep 17 00:00:00 2001 From: logikonline Date: Tue, 17 Mar 2026 03:52:30 -0400 Subject: [PATCH] feat(i18n): add translation keys for new pages sections Add locale keys for translating new landing page sections: gallery, comparison, blog, and expanded fields for stats, pricing, testimonials, and footer. Adds section headers and field labels for translation UI. Includes keys for all 29 supported languages. Enables full localization of new pages features added in recent commits. --- options/locale/locale_cs-CZ.json | 37 ++ options/locale/locale_de-DE.json | 37 ++ options/locale/locale_el-GR.json | 37 ++ options/locale/locale_en-US.json | 37 ++ options/locale/locale_es-ES.json | 37 ++ options/locale/locale_fa-IR.json | 37 ++ options/locale/locale_fi-FI.json | 37 ++ options/locale/locale_fr-FR.json | 37 ++ options/locale/locale_ga-IE.json | 37 ++ options/locale/locale_hi-IN.json | 37 ++ options/locale/locale_hu-HU.json | 37 ++ options/locale/locale_id-ID.json | 37 ++ options/locale/locale_is-IS.json | 37 ++ options/locale/locale_it-IT.json | 37 ++ options/locale/locale_ja-JP.json | 37 ++ options/locale/locale_ko-KR.json | 39 +- options/locale/locale_lv-LV.json | 39 +- options/locale/locale_nl-NL.json | 39 +- options/locale/locale_pl-PL.json | 39 +- options/locale/locale_pt-BR.json | 39 +- options/locale/locale_pt-PT.json | 39 +- options/locale/locale_ru-RU.json | 39 +- options/locale/locale_si-LK.json | 39 +- options/locale/locale_sk-SK.json | 39 +- options/locale/locale_sv-SE.json | 39 +- options/locale/locale_tr-TR.json | 39 +- options/locale/locale_uk-UA.json | 39 +- options/locale/locale_zh-CN.json | 39 +- options/locale/locale_zh-TW.json | 39 +- routers/web/repo/setting/pages.go | 405 +++++++++++++++++-- services/pages/generate.go | 136 ++++++- templates/repo/settings/pages_languages.tmpl | 202 ++++++++- 32 files changed, 1781 insertions(+), 63 deletions(-) diff --git a/options/locale/locale_cs-CZ.json b/options/locale/locale_cs-CZ.json index 00ea6ecd32..4f03b71813 100644 --- a/options/locale/locale_cs-CZ.json +++ b/options/locale/locale_cs-CZ.json @@ -4054,6 +4054,43 @@ "repo.settings.pages.trans_cta_headline": "Nadpis sekce CTA", "repo.settings.pages.trans_cta_subheadline": "Podnadpis sekce CTA", "repo.settings.pages.trans_cta_button": "\u0160t\u00edtek tla\u010d\u00edtka CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_de-DE.json b/options/locale/locale_de-DE.json index e7ab8a4f2e..107efc3850 100644 --- a/options/locale/locale_de-DE.json +++ b/options/locale/locale_de-DE.json @@ -4260,6 +4260,43 @@ "repo.settings.pages.trans_cta_headline": "CTA-Abschnitt \u00dcberschrift", "repo.settings.pages.trans_cta_subheadline": "CTA-Abschnitt Unter\u00fcberschrift", "repo.settings.pages.trans_cta_button": "CTA-Button-Beschriftung", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault-Plugin nicht installiert", "repo.vault.plugin_not_installed_desc": "Das Vault-Plugin ist auf diesem Server nicht verfügbar", "repo.vault.secret_limit_reached": "Geheimnis-Limit erreicht", diff --git a/options/locale/locale_el-GR.json b/options/locale/locale_el-GR.json index c0f33d8302..f19bc804bf 100644 --- a/options/locale/locale_el-GR.json +++ b/options/locale/locale_el-GR.json @@ -3747,6 +3747,43 @@ "repo.settings.pages.trans_cta_headline": "Τίτλος ενότητας CTA", "repo.settings.pages.trans_cta_subheadline": "Υπότιτλος ενότητας CTA", "repo.settings.pages.trans_cta_button": "Ετικέτα κουμπιού CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_en-US.json b/options/locale/locale_en-US.json index 95cce59648..766d3e6a87 100644 --- a/options/locale/locale_en-US.json +++ b/options/locale/locale_en-US.json @@ -4596,6 +4596,43 @@ "repo.settings.pages.trans_cta_headline": "CTA Section Headline", "repo.settings.pages.trans_cta_subheadline": "CTA Section Subheadline", "repo.settings.pages.trans_cta_button": "CTA Button Label", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault": "Vault", "repo.vault.secrets": "Secrets", "repo.vault.new_secret": "New Secret", diff --git a/options/locale/locale_es-ES.json b/options/locale/locale_es-ES.json index 5851801b0a..808556308d 100644 --- a/options/locale/locale_es-ES.json +++ b/options/locale/locale_es-ES.json @@ -3852,6 +3852,43 @@ "repo.settings.pages.trans_cta_headline": "T\u00edtulo de la secci\u00f3n CTA", "repo.settings.pages.trans_cta_subheadline": "Subt\u00edtulo de la secci\u00f3n CTA", "repo.settings.pages.trans_cta_button": "Etiqueta del bot\u00f3n CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_fa-IR.json b/options/locale/locale_fa-IR.json index a177f9bac3..967789b996 100644 --- a/options/locale/locale_fa-IR.json +++ b/options/locale/locale_fa-IR.json @@ -2947,6 +2947,43 @@ "repo.settings.pages.trans_cta_headline": "عنوان بخش فراخوان", "repo.settings.pages.trans_cta_subheadline": "زیرعنوان بخش فراخوان", "repo.settings.pages.trans_cta_button": "برچسب دکمه فراخوان", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_fi-FI.json b/options/locale/locale_fi-FI.json index df1f634d3a..581914ca76 100644 --- a/options/locale/locale_fi-FI.json +++ b/options/locale/locale_fi-FI.json @@ -2245,6 +2245,43 @@ "repo.settings.pages.trans_cta_headline": "CTA-osion otsikko", "repo.settings.pages.trans_cta_subheadline": "CTA-osion alaotsikko", "repo.settings.pages.trans_cta_button": "CTA-painikkeen teksti", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_fr-FR.json b/options/locale/locale_fr-FR.json index d0bf25c7af..d3f99a9156 100644 --- a/options/locale/locale_fr-FR.json +++ b/options/locale/locale_fr-FR.json @@ -4198,6 +4198,43 @@ "repo.settings.pages.trans_cta_headline": "Titre de la section CTA", "repo.settings.pages.trans_cta_subheadline": "Sous-titre de la section CTA", "repo.settings.pages.trans_cta_button": "Libell\u00e9 du bouton CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_ga-IE.json b/options/locale/locale_ga-IE.json index bcf3f8b5fc..5e47135b56 100644 --- a/options/locale/locale_ga-IE.json +++ b/options/locale/locale_ga-IE.json @@ -4127,6 +4127,43 @@ "repo.settings.pages.trans_cta_headline": "Ceannlíne rannóg CTA", "repo.settings.pages.trans_cta_subheadline": "Fo-cheannlíne rannóg CTA", "repo.settings.pages.trans_cta_button": "Lipéad cnaipe CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_hi-IN.json b/options/locale/locale_hi-IN.json index 01ed9e2bc8..b66c28d431 100644 --- a/options/locale/locale_hi-IN.json +++ b/options/locale/locale_hi-IN.json @@ -4033,6 +4033,43 @@ "repo.settings.pages.trans_cta_headline": "CTA \u0905\u0928\u0941\u092d\u093e\u0917 \u0936\u0940\u0930\u094d\u0937\u0915", "repo.settings.pages.trans_cta_subheadline": "CTA \u0905\u0928\u0941\u092d\u093e\u0917 \u0909\u092a\u0936\u0940\u0930\u094d\u0937\u0915", "repo.settings.pages.trans_cta_button": "CTA \u092c\u091f\u0928 \u0932\u0947\u092c\u0932", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault": "वॉल्ट", "repo.vault.secrets": "Secrets", "repo.vault.new_secret": "New Secret", diff --git a/options/locale/locale_hu-HU.json b/options/locale/locale_hu-HU.json index 198315a91a..3b3e279797 100644 --- a/options/locale/locale_hu-HU.json +++ b/options/locale/locale_hu-HU.json @@ -2162,6 +2162,43 @@ "repo.settings.pages.trans_cta_headline": "CTA szekci\u00f3 c\u00edmsor", "repo.settings.pages.trans_cta_subheadline": "CTA szekci\u00f3 alc\u00edmsor", "repo.settings.pages.trans_cta_button": "CTA gomb c\u00edmke", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_id-ID.json b/options/locale/locale_id-ID.json index a1bbfcd6e7..57caf3c995 100644 --- a/options/locale/locale_id-ID.json +++ b/options/locale/locale_id-ID.json @@ -1986,6 +1986,43 @@ "repo.settings.pages.trans_cta_headline": "Judul bagian CTA", "repo.settings.pages.trans_cta_subheadline": "Subjudul bagian CTA", "repo.settings.pages.trans_cta_button": "Label tombol CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_is-IS.json b/options/locale/locale_is-IS.json index 1a34c73c9e..b5abe813f3 100644 --- a/options/locale/locale_is-IS.json +++ b/options/locale/locale_is-IS.json @@ -1874,6 +1874,43 @@ "repo.settings.pages.trans_cta_headline": "Fyrirsögn CTA hluta", "repo.settings.pages.trans_cta_subheadline": "Undirfyrirsögn CTA hluta", "repo.settings.pages.trans_cta_button": "Merki CTA hnapps", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_it-IT.json b/options/locale/locale_it-IT.json index f284a21362..424c705f45 100644 --- a/options/locale/locale_it-IT.json +++ b/options/locale/locale_it-IT.json @@ -3298,6 +3298,43 @@ "repo.settings.pages.trans_cta_headline": "Titolo sezione CTA", "repo.settings.pages.trans_cta_subheadline": "Sottotitolo sezione CTA", "repo.settings.pages.trans_cta_button": "Etichetta pulsante CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_ja-JP.json b/options/locale/locale_ja-JP.json index dded1f51f0..952b171f54 100644 --- a/options/locale/locale_ja-JP.json +++ b/options/locale/locale_ja-JP.json @@ -4242,6 +4242,43 @@ "repo.settings.pages.trans_cta_headline": "CTA\u30bb\u30af\u30b7\u30e7\u30f3\u898b\u51fa\u3057", "repo.settings.pages.trans_cta_subheadline": "CTA\u30bb\u30af\u30b7\u30e7\u30f3\u30b5\u30d6\u898b\u51fa\u3057", "repo.settings.pages.trans_cta_button": "CTA\u30dc\u30bf\u30f3\u30e9\u30d9\u30eb", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_ko-KR.json b/options/locale/locale_ko-KR.json index dc775a2976..e42c4511f0 100644 --- a/options/locale/locale_ko-KR.json +++ b/options/locale/locale_ko-KR.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "홈", "dashboard": "대시보드", "explore_title": "탐색", @@ -2257,6 +2257,43 @@ "repo.settings.pages.trans_cta_headline": "CTA \uc139\uc158 \uc81c\ubaa9", "repo.settings.pages.trans_cta_subheadline": "CTA \uc139\uc158 \ubd80\uc81c\ubaa9", "repo.settings.pages.trans_cta_button": "CTA \ubc84\ud2bc \ub77c\ubca8", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_lv-LV.json b/options/locale/locale_lv-LV.json index 05b82ca6eb..4a82ad6e88 100644 --- a/options/locale/locale_lv-LV.json +++ b/options/locale/locale_lv-LV.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Sākums", "dashboard": "Infopanelis", "explore_title": "IzpÄ“tÄ«t", @@ -3768,6 +3768,43 @@ "repo.settings.pages.trans_cta_headline": "CTA sadaļas virsraksts", "repo.settings.pages.trans_cta_subheadline": "CTA sadaļas apakšvirsraksts", "repo.settings.pages.trans_cta_button": "CTA pogas etiķete", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_nl-NL.json b/options/locale/locale_nl-NL.json index 5b77f603ce..751cf4239b 100644 --- a/options/locale/locale_nl-NL.json +++ b/options/locale/locale_nl-NL.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Beginscherm", "dashboard": "Overzicht", "explore_title": "Verkennen", @@ -2916,6 +2916,43 @@ "repo.settings.pages.trans_cta_headline": "CTA-sectietitel", "repo.settings.pages.trans_cta_subheadline": "CTA-sectie ondertitel", "repo.settings.pages.trans_cta_button": "CTA-knoplabel", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_pl-PL.json b/options/locale/locale_pl-PL.json index 2d4e367775..17f8e11310 100644 --- a/options/locale/locale_pl-PL.json +++ b/options/locale/locale_pl-PL.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Strona główna", "dashboard": "Pulpit", "explore_title": "Odkrywaj", @@ -2887,6 +2887,43 @@ "repo.settings.pages.trans_cta_headline": "Nag\u0142\u00f3wek sekcji CTA", "repo.settings.pages.trans_cta_subheadline": "Podnag\u0142\u00f3wek sekcji CTA", "repo.settings.pages.trans_cta_button": "Etykieta przycisku CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_pt-BR.json b/options/locale/locale_pt-BR.json index 4a974ad9aa..f12a2d7369 100644 --- a/options/locale/locale_pt-BR.json +++ b/options/locale/locale_pt-BR.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Inicio", "dashboard": "Painel", "explore_title": "Explorar", @@ -4040,6 +4040,43 @@ "repo.settings.pages.trans_cta_headline": "T\u00edtulo da se\u00e7\u00e3o CTA", "repo.settings.pages.trans_cta_subheadline": "Subt\u00edtulo da se\u00e7\u00e3o CTA", "repo.settings.pages.trans_cta_button": "R\u00f3tulo do bot\u00e3o CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_pt-PT.json b/options/locale/locale_pt-PT.json index 69694e1699..68391d655c 100644 --- a/options/locale/locale_pt-PT.json +++ b/options/locale/locale_pt-PT.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Página inicial", "dashboard": "Painel de controlo", "explore_title": "Explorar", @@ -4129,6 +4129,43 @@ "repo.settings.pages.trans_cta_headline": "T\u00edtulo da sec\u00e7\u00e3o CTA", "repo.settings.pages.trans_cta_subheadline": "Subt\u00edtulo da sec\u00e7\u00e3o CTA", "repo.settings.pages.trans_cta_button": "Etiqueta do bot\u00e3o CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_ru-RU.json b/options/locale/locale_ru-RU.json index 6d3900a5d5..c86018e1d2 100644 --- a/options/locale/locale_ru-RU.json +++ b/options/locale/locale_ru-RU.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Главная", "dashboard": "Панель управления", "explore_title": "Обзор", @@ -3861,6 +3861,43 @@ "repo.settings.pages.trans_cta_headline": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0430 CTA", "repo.settings.pages.trans_cta_subheadline": "\u041f\u043e\u0434\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0440\u0430\u0437\u0434\u0435\u043b\u0430 CTA", "repo.settings.pages.trans_cta_button": "\u041c\u0435\u0442\u043a\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_si-LK.json b/options/locale/locale_si-LK.json index 355458178a..634d9b76f9 100644 --- a/options/locale/locale_si-LK.json +++ b/options/locale/locale_si-LK.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "මුල් පිටුව", "dashboard": "උපකරණ පුවරුව", "explore_title": "ගවේෂණය", @@ -2933,6 +2933,43 @@ "repo.settings.pages.trans_cta_headline": "CTA අංශ මාතෘකාව", "repo.settings.pages.trans_cta_subheadline": "CTA අංශ උපමාතෘකාව", "repo.settings.pages.trans_cta_button": "CTA බොත්තම් ලේබලය", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_sk-SK.json b/options/locale/locale_sk-SK.json index 713d0fd21c..3a1ced5e07 100644 --- a/options/locale/locale_sk-SK.json +++ b/options/locale/locale_sk-SK.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Domov", "dashboard": "Nástenka", "explore_title": "PreskúmaÅ¥", @@ -1959,6 +1959,43 @@ "repo.settings.pages.trans_cta_headline": "Nadpis sekcie CTA", "repo.settings.pages.trans_cta_subheadline": "Podnadpis sekcie CTA", "repo.settings.pages.trans_cta_button": "\u0160t\u00edtok tla\u010didla CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_sv-SE.json b/options/locale/locale_sv-SE.json index 0a4e3cc458..084ad0a2ec 100644 --- a/options/locale/locale_sv-SE.json +++ b/options/locale/locale_sv-SE.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Startsida", "dashboard": "Instrumentpanel", "explore_title": "Utforska", @@ -2517,6 +2517,43 @@ "repo.settings.pages.trans_cta_headline": "CTA-sektionsrubrik", "repo.settings.pages.trans_cta_subheadline": "CTA-sektions underrubrik", "repo.settings.pages.trans_cta_button": "CTA-knappsetikett", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_tr-TR.json b/options/locale/locale_tr-TR.json index 0c6326cc0d..2a8bb9b42d 100644 --- a/options/locale/locale_tr-TR.json +++ b/options/locale/locale_tr-TR.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Ana Sayfa", "dashboard": "Pano", "explore_title": "KeÅŸfet", @@ -4126,6 +4126,43 @@ "repo.settings.pages.trans_cta_headline": "CTA b\u00f6l\u00fcm ba\u015fl\u0131\u011f\u0131", "repo.settings.pages.trans_cta_subheadline": "CTA b\u00f6l\u00fcm alt ba\u015fl\u0131\u011f\u0131", "repo.settings.pages.trans_cta_button": "CTA d\u00fc\u011fme etiketi", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_uk-UA.json b/options/locale/locale_uk-UA.json index 77320d16c8..44b120c377 100644 --- a/options/locale/locale_uk-UA.json +++ b/options/locale/locale_uk-UA.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "Головна", "dashboard": "Панель управління", "explore_title": "Огляд", @@ -3911,6 +3911,43 @@ "repo.settings.pages.trans_cta_headline": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0440\u043e\u0437\u0434\u0456\u043b\u0443 CTA", "repo.settings.pages.trans_cta_subheadline": "\u041f\u0456\u0434\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0440\u043e\u0437\u0434\u0456\u043b\u0443 CTA", "repo.settings.pages.trans_cta_button": "\u041c\u0456\u0442\u043a\u0430 \u043a\u043d\u043e\u043f\u043a\u0438 CTA", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_zh-CN.json b/options/locale/locale_zh-CN.json index 83ca51fbf6..7886fbb1a4 100644 --- a/options/locale/locale_zh-CN.json +++ b/options/locale/locale_zh-CN.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "首页", "dashboard": "首页", "explore_title": "探索", @@ -4260,6 +4260,43 @@ "repo.settings.pages.trans_cta_headline": "\u884c\u52a8\u53f7\u53ec\u533a\u57df\u6807\u9898", "repo.settings.pages.trans_cta_subheadline": "\u884c\u52a8\u53f7\u53ec\u533a\u57df\u526f\u6807\u9898", "repo.settings.pages.trans_cta_button": "\u884c\u52a8\u53f7\u53ec\u6309\u94ae\u6807\u7b7e", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/options/locale/locale_zh-TW.json b/options/locale/locale_zh-TW.json index 6204e918cd..0a349b9ea6 100644 --- a/options/locale/locale_zh-TW.json +++ b/options/locale/locale_zh-TW.json @@ -1,4 +1,4 @@ -{ +{ "home_title": "首頁", "dashboard": "資訊主頁", "explore_title": "探索", @@ -4168,6 +4168,43 @@ "repo.settings.pages.trans_cta_headline": "\u884c\u52d5\u547c\u7c72\u5340\u57df\u6a19\u984c", "repo.settings.pages.trans_cta_subheadline": "\u884c\u52d5\u547c\u7c72\u5340\u57df\u526f\u6a19\u984c", "repo.settings.pages.trans_cta_button": "\u884c\u52d5\u547c\u7c72\u6309\u9215\u6a19\u7c64", + "repo.settings.pages.trans_section_brand": "Brand", + "repo.settings.pages.trans_section_hero": "Hero", + "repo.settings.pages.trans_section_stats": "Stats", + "repo.settings.pages.trans_section_value_props": "Value Propositions", + "repo.settings.pages.trans_section_features": "Features", + "repo.settings.pages.trans_section_testimonials": "Testimonials", + "repo.settings.pages.trans_section_pricing": "Pricing", + "repo.settings.pages.trans_section_cta": "Call to Action", + "repo.settings.pages.trans_section_blog": "Blog", + "repo.settings.pages.trans_section_gallery": "Gallery", + "repo.settings.pages.trans_section_comparison": "Comparison", + "repo.settings.pages.trans_section_footer": "Footer", + "repo.settings.pages.trans_section_seo": "SEO", + "repo.settings.pages.trans_brand_name": "Brand Name", + "repo.settings.pages.trans_brand_tagline": "Tagline", + "repo.settings.pages.trans_stat_value": "Value", + "repo.settings.pages.trans_stat_label": "Label", + "repo.settings.pages.trans_title": "Title", + "repo.settings.pages.trans_description": "Description", + "repo.settings.pages.trans_quote": "Quote", + "repo.settings.pages.trans_role": "Role", + "repo.settings.pages.trans_pricing_headline": "Pricing Headline", + "repo.settings.pages.trans_pricing_subheadline": "Pricing Subheadline", + "repo.settings.pages.trans_plan_name": "Plan Name", + "repo.settings.pages.trans_plan_period": "Period", + "repo.settings.pages.trans_plan_cta": "Plan Button", + "repo.settings.pages.trans_blog_headline": "Blog Headline", + "repo.settings.pages.trans_blog_subheadline": "Blog Subheadline", + "repo.settings.pages.trans_blog_cta": "Blog Button", + "repo.settings.pages.trans_gallery_headline": "Gallery Headline", + "repo.settings.pages.trans_gallery_subheadline": "Gallery Subheadline", + "repo.settings.pages.trans_comparison_headline": "Comparison Headline", + "repo.settings.pages.trans_comparison_subheadline": "Comparison Subheadline", + "repo.settings.pages.trans_footer_copyright": "Copyright", + "repo.settings.pages.trans_footer_link": "Link Label", + "repo.settings.pages.trans_seo_title": "SEO Title", + "repo.settings.pages.trans_seo_description": "SEO Description", "repo.vault.plugin_not_installed": "Vault Plugin Not Installed", "repo.vault.plugin_not_installed_desc": "The Vault plugin is not installed on this server. Contact your administrator to enable secrets management.", "repo.vault.secret_limit_reached": "Secret limit reached. Your current tier allows %d secrets per repository. Upgrade to Pro for unlimited secrets.", diff --git a/routers/web/repo/setting/pages.go b/routers/web/repo/setting/pages.go index d0a1800da6..3685d99d7a 100644 --- a/routers/web/repo/setting/pages.go +++ b/routers/web/repo/setting/pages.go @@ -716,19 +716,89 @@ func PagesThemePost(ctx *context.Context) { ctx.Redirect(ctx.Repo.Repository.Link() + "/settings/pages/theme") } -// TranslationView is a flattened view of a translation for the settings UI +// TranslationView is a flattened view of a translation for the settings UI. +// Slice fields are padded to match the base config array lengths. type TranslationView struct { - Headline string - Subheadline string - PrimaryCTA string - SecondaryCTA string + // Brand + BrandName string + BrandTagline string + // Hero + Headline string + Subheadline string + PrimaryCTA string + SecondaryCTA string + // Stats (parallel to Config.Stats) + StatsValues []string + StatsLabels []string + // Value Props (parallel to Config.ValueProps) + ValuePropTitles []string + ValuePropDescs []string + // Features (parallel to Config.Features) + FeatureTitles []string + FeatureDescs []string + // Testimonials (parallel to Config.SocialProof.Testimonials) + TestimonialQuotes []string + TestimonialRoles []string + // Pricing + PricingHeadline string + PricingSubheadline string + PlanNames []string + PlanPeriods []string + PlanCTAs []string + // CTA Section CTAHeadline string CTASubheadline string CTAButton string + // Blog + BlogHeadline string + BlogSubheadline string + BlogCTAButton string + // Gallery + GalleryHeadline string + GallerySubheadline string + // Comparison + ComparisonHeadline string + ComparisonSubheadline string + // Footer + FooterCopyright string + FooterLinkLabels []string + // SEO + SEOTitle string + SEODescription string } -// parseTranslationView parses a PagesTranslation into a flat view for the template -func parseTranslationView(t *pages_model.Translation) *TranslationView { +// overlayString extracts a string from a map +func overlayString(m map[string]any, key string) string { + if v, ok := m[key].(string); ok { + return v + } + return "" +} + +// overlayStringSlice extracts a []string-field slice from an overlay array of objects. +// Each array element is a map; fieldKey is the key to extract from each map. +func overlayStringSlice(overlay map[string]any, arrayKey, fieldKey string, padLen int) []string { + result := make([]string, padLen) + arr, ok := overlay[arrayKey].([]any) + if !ok { + return result + } + for i, item := range arr { + if i >= padLen { + break + } + if m, ok := item.(map[string]any); ok { + if v, ok := m[fieldKey].(string); ok { + result[i] = v + } + } + } + return result +} + +// parseTranslationView parses a PagesTranslation into a flat view for the template. +// config is used to determine array lengths for padding slices. +func parseTranslationView(t *pages_model.Translation, config *pages_module.LandingConfig) *TranslationView { if t == nil || t.ConfigJSON == "" { return nil } @@ -738,37 +808,135 @@ func parseTranslationView(t *pages_model.Translation) *TranslationView { } view := &TranslationView{} + + // Brand + if brand, ok := overlay["brand"].(map[string]any); ok { + view.BrandName = overlayString(brand, "name") + view.BrandTagline = overlayString(brand, "tagline") + } + + // Hero if hero, ok := overlay["hero"].(map[string]any); ok { - if v, ok := hero["headline"].(string); ok { - view.Headline = v - } - if v, ok := hero["subheadline"].(string); ok { - view.Subheadline = v - } + view.Headline = overlayString(hero, "headline") + view.Subheadline = overlayString(hero, "subheadline") if cta, ok := hero["primary_cta"].(map[string]any); ok { - if v, ok := cta["label"].(string); ok { - view.PrimaryCTA = v - } + view.PrimaryCTA = overlayString(cta, "label") } if cta, ok := hero["secondary_cta"].(map[string]any); ok { - if v, ok := cta["label"].(string); ok { - view.SecondaryCTA = v + view.SecondaryCTA = overlayString(cta, "label") + } + } + + // Stats + view.StatsValues = overlayStringSlice(overlay, "stats", "value", len(config.Stats)) + view.StatsLabels = overlayStringSlice(overlay, "stats", "label", len(config.Stats)) + + // Value Props + view.ValuePropTitles = overlayStringSlice(overlay, "value_props", "title", len(config.ValueProps)) + view.ValuePropDescs = overlayStringSlice(overlay, "value_props", "description", len(config.ValueProps)) + + // Features + view.FeatureTitles = overlayStringSlice(overlay, "features", "title", len(config.Features)) + view.FeatureDescs = overlayStringSlice(overlay, "features", "description", len(config.Features)) + + // Testimonials (stored under social_proof.testimonials) + view.TestimonialQuotes = make([]string, len(config.SocialProof.Testimonials)) + view.TestimonialRoles = make([]string, len(config.SocialProof.Testimonials)) + if sp, ok := overlay["social_proof"].(map[string]any); ok { + if arr, ok := sp["testimonials"].([]any); ok { + for i, item := range arr { + if i >= len(config.SocialProof.Testimonials) { + break + } + if m, ok := item.(map[string]any); ok { + view.TestimonialQuotes[i] = overlayString(m, "quote") + view.TestimonialRoles[i] = overlayString(m, "role") + } } } } + + // Pricing + if pricing, ok := overlay["pricing"].(map[string]any); ok { + view.PricingHeadline = overlayString(pricing, "headline") + view.PricingSubheadline = overlayString(pricing, "subheadline") + if plans, ok := pricing["plans"].([]any); ok { + view.PlanNames = make([]string, len(config.Pricing.Plans)) + view.PlanPeriods = make([]string, len(config.Pricing.Plans)) + view.PlanCTAs = make([]string, len(config.Pricing.Plans)) + for i, item := range plans { + if i >= len(config.Pricing.Plans) { + break + } + if m, ok := item.(map[string]any); ok { + view.PlanNames[i] = overlayString(m, "name") + view.PlanPeriods[i] = overlayString(m, "period") + view.PlanCTAs[i] = overlayString(m, "cta") + } + } + } else { + view.PlanNames = make([]string, len(config.Pricing.Plans)) + view.PlanPeriods = make([]string, len(config.Pricing.Plans)) + view.PlanCTAs = make([]string, len(config.Pricing.Plans)) + } + } else { + view.PlanNames = make([]string, len(config.Pricing.Plans)) + view.PlanPeriods = make([]string, len(config.Pricing.Plans)) + view.PlanCTAs = make([]string, len(config.Pricing.Plans)) + } + + // CTA Section if ctaSec, ok := overlay["cta_section"].(map[string]any); ok { - if v, ok := ctaSec["headline"].(string); ok { - view.CTAHeadline = v - } - if v, ok := ctaSec["subheadline"].(string); ok { - view.CTASubheadline = v - } + view.CTAHeadline = overlayString(ctaSec, "headline") + view.CTASubheadline = overlayString(ctaSec, "subheadline") if btn, ok := ctaSec["button"].(map[string]any); ok { - if v, ok := btn["label"].(string); ok { - view.CTAButton = v + view.CTAButton = overlayString(btn, "label") + } + } + + // Blog + if blog, ok := overlay["blog"].(map[string]any); ok { + view.BlogHeadline = overlayString(blog, "headline") + view.BlogSubheadline = overlayString(blog, "subheadline") + if btn, ok := blog["cta_button"].(map[string]any); ok { + view.BlogCTAButton = overlayString(btn, "label") + } + } + + // Gallery + if gallery, ok := overlay["gallery"].(map[string]any); ok { + view.GalleryHeadline = overlayString(gallery, "headline") + view.GallerySubheadline = overlayString(gallery, "subheadline") + } + + // Comparison + if comp, ok := overlay["comparison"].(map[string]any); ok { + view.ComparisonHeadline = overlayString(comp, "headline") + view.ComparisonSubheadline = overlayString(comp, "subheadline") + } + + // Footer + view.FooterLinkLabels = make([]string, len(config.Footer.Links)) + if footer, ok := overlay["footer"].(map[string]any); ok { + view.FooterCopyright = overlayString(footer, "copyright") + if links, ok := footer["links"].([]any); ok { + for i, item := range links { + if i >= len(config.Footer.Links) { + break + } + if m, ok := item.(map[string]any); ok { + view.FooterLinkLabels[i] = overlayString(m, "label") + } } } } + + // SEO + if seo, ok := overlay["seo"].(map[string]any); ok { + view.SEOTitle = overlayString(seo, "title") + view.SEODescription = overlayString(seo, "description") + } + return view } @@ -776,6 +944,19 @@ func parseTranslationView(t *pages_model.Translation) *TranslationView { func buildTranslationJSON(ctx *context.Context) string { overlay := map[string]any{} + // Brand + brand := map[string]any{} + if v := ctx.FormString("trans_brand_name"); v != "" { + brand["name"] = v + } + if v := ctx.FormString("trans_brand_tagline"); v != "" { + brand["tagline"] = v + } + if len(brand) > 0 { + overlay["brand"] = brand + } + + // Hero hero := map[string]any{} if v := ctx.FormString("trans_headline"); v != "" { hero["headline"] = v @@ -793,6 +974,103 @@ func buildTranslationJSON(ctx *context.Context) string { overlay["hero"] = hero } + // Stats (indexed) + var stats []map[string]any + for i := range 20 { + v := ctx.FormString(fmt.Sprintf("trans_stat_%d_value", i)) + l := ctx.FormString(fmt.Sprintf("trans_stat_%d_label", i)) + if v == "" && l == "" { + // Check if there are more by looking ahead + if ctx.FormString(fmt.Sprintf("trans_stat_%d_value", i+1)) == "" && + ctx.FormString(fmt.Sprintf("trans_stat_%d_label", i+1)) == "" { + break + } + } + stats = append(stats, map[string]any{"value": v, "label": l}) + } + if len(stats) > 0 { + overlay["stats"] = stats + } + + // Value Props (indexed) + var valueProps []map[string]any + for i := range 20 { + t := ctx.FormString(fmt.Sprintf("trans_vp_%d_title", i)) + d := ctx.FormString(fmt.Sprintf("trans_vp_%d_desc", i)) + if t == "" && d == "" { + if ctx.FormString(fmt.Sprintf("trans_vp_%d_title", i+1)) == "" && + ctx.FormString(fmt.Sprintf("trans_vp_%d_desc", i+1)) == "" { + break + } + } + valueProps = append(valueProps, map[string]any{"title": t, "description": d}) + } + if len(valueProps) > 0 { + overlay["value_props"] = valueProps + } + + // Features (indexed) + var features []map[string]any + for i := range 20 { + t := ctx.FormString(fmt.Sprintf("trans_feat_%d_title", i)) + d := ctx.FormString(fmt.Sprintf("trans_feat_%d_desc", i)) + if t == "" && d == "" { + if ctx.FormString(fmt.Sprintf("trans_feat_%d_title", i+1)) == "" && + ctx.FormString(fmt.Sprintf("trans_feat_%d_desc", i+1)) == "" { + break + } + } + features = append(features, map[string]any{"title": t, "description": d}) + } + if len(features) > 0 { + overlay["features"] = features + } + + // Testimonials (indexed) + var testimonials []map[string]any + for i := range 20 { + q := ctx.FormString(fmt.Sprintf("trans_test_%d_quote", i)) + r := ctx.FormString(fmt.Sprintf("trans_test_%d_role", i)) + if q == "" && r == "" { + if ctx.FormString(fmt.Sprintf("trans_test_%d_quote", i+1)) == "" && + ctx.FormString(fmt.Sprintf("trans_test_%d_role", i+1)) == "" { + break + } + } + testimonials = append(testimonials, map[string]any{"quote": q, "role": r}) + } + if len(testimonials) > 0 { + overlay["social_proof"] = map[string]any{"testimonials": testimonials} + } + + // Pricing + pricing := map[string]any{} + if v := ctx.FormString("trans_pricing_headline"); v != "" { + pricing["headline"] = v + } + if v := ctx.FormString("trans_pricing_subheadline"); v != "" { + pricing["subheadline"] = v + } + var plans []map[string]any + for i := range 10 { + n := ctx.FormString(fmt.Sprintf("trans_plan_%d_name", i)) + p := ctx.FormString(fmt.Sprintf("trans_plan_%d_period", i)) + c := ctx.FormString(fmt.Sprintf("trans_plan_%d_cta", i)) + if n == "" && p == "" && c == "" { + if ctx.FormString(fmt.Sprintf("trans_plan_%d_name", i+1)) == "" { + break + } + } + plans = append(plans, map[string]any{"name": n, "period": p, "cta": c}) + } + if len(plans) > 0 { + pricing["plans"] = plans + } + if len(pricing) > 0 { + overlay["pricing"] = pricing + } + + // CTA Section ctaSec := map[string]any{} if v := ctx.FormString("trans_cta_headline"); v != "" { ctaSec["headline"] = v @@ -807,6 +1085,79 @@ func buildTranslationJSON(ctx *context.Context) string { overlay["cta_section"] = ctaSec } + // Blog + blog := map[string]any{} + if v := ctx.FormString("trans_blog_headline"); v != "" { + blog["headline"] = v + } + if v := ctx.FormString("trans_blog_subheadline"); v != "" { + blog["subheadline"] = v + } + if v := ctx.FormString("trans_blog_cta"); v != "" { + blog["cta_button"] = map[string]any{"label": v} + } + if len(blog) > 0 { + overlay["blog"] = blog + } + + // Gallery + gallery := map[string]any{} + if v := ctx.FormString("trans_gallery_headline"); v != "" { + gallery["headline"] = v + } + if v := ctx.FormString("trans_gallery_subheadline"); v != "" { + gallery["subheadline"] = v + } + if len(gallery) > 0 { + overlay["gallery"] = gallery + } + + // Comparison + comp := map[string]any{} + if v := ctx.FormString("trans_comparison_headline"); v != "" { + comp["headline"] = v + } + if v := ctx.FormString("trans_comparison_subheadline"); v != "" { + comp["subheadline"] = v + } + if len(comp) > 0 { + overlay["comparison"] = comp + } + + // Footer + footer := map[string]any{} + if v := ctx.FormString("trans_footer_copyright"); v != "" { + footer["copyright"] = v + } + var footerLinks []map[string]any + for i := range 20 { + l := ctx.FormString(fmt.Sprintf("trans_footer_link_%d", i)) + if l == "" { + if ctx.FormString(fmt.Sprintf("trans_footer_link_%d", i+1)) == "" { + break + } + } + footerLinks = append(footerLinks, map[string]any{"label": l}) + } + if len(footerLinks) > 0 { + footer["links"] = footerLinks + } + if len(footer) > 0 { + overlay["footer"] = footer + } + + // SEO + seo := map[string]any{} + if v := ctx.FormString("trans_seo_title"); v != "" { + seo["title"] = v + } + if v := ctx.FormString("trans_seo_description"); v != "" { + seo["description"] = v + } + if len(seo) > 0 { + overlay["seo"] = seo + } + if len(overlay) == 0 { return "" } @@ -835,7 +1186,7 @@ func PagesLanguages(ctx *context.Context) { translations, err := pages_model.GetTranslationsByRepoID(ctx, ctx.Repo.Repository.ID) if err == nil { for _, t := range translations { - translationMap[t.Lang] = parseTranslationView(t) + translationMap[t.Lang] = parseTranslationView(t, config) } } ctx.Data["TranslationMap"] = translationMap diff --git a/services/pages/generate.go b/services/pages/generate.go index 0764586b21..5f20fd620b 100644 --- a/services/pages/generate.go +++ b/services/pages/generate.go @@ -219,25 +219,125 @@ func TranslateLandingPageContent(ctx context.Context, repo *repo_model.Repositor // buildTranslatableContent extracts translatable text from a config for the AI func buildTranslatableContent(config *pages_module.LandingConfig) string { - data, _ := json.Marshal(map[string]any{ - "hero": map[string]any{ - "headline": config.Hero.Headline, - "subheadline": config.Hero.Subheadline, - "primary_cta": map[string]string{"label": config.Hero.PrimaryCTA.Label}, - "secondary_cta": map[string]string{"label": config.Hero.SecondaryCTA.Label}, - }, - "stats": config.Stats, - "value_props": config.ValueProps, - "features": config.Features, - "cta_section": map[string]any{ - "headline": config.CTASection.Headline, - "subheadline": config.CTASection.Subheadline, - "button": map[string]string{"label": config.CTASection.Button.Label}, - }, - "seo": map[string]any{ + content := map[string]any{} + + // Brand + if config.Brand.Name != "" || config.Brand.Tagline != "" { + content["brand"] = map[string]any{ + "name": config.Brand.Name, + "tagline": config.Brand.Tagline, + } + } + + // Hero + content["hero"] = map[string]any{ + "headline": config.Hero.Headline, + "subheadline": config.Hero.Subheadline, + "primary_cta": map[string]string{"label": config.Hero.PrimaryCTA.Label}, + "secondary_cta": map[string]string{"label": config.Hero.SecondaryCTA.Label}, + } + + // Stats, Value Props, Features (already struct-serializable) + if len(config.Stats) > 0 { + content["stats"] = config.Stats + } + if len(config.ValueProps) > 0 { + content["value_props"] = config.ValueProps + } + if len(config.Features) > 0 { + content["features"] = config.Features + } + + // Testimonials + if len(config.SocialProof.Testimonials) > 0 { + testimonials := make([]map[string]string, 0, len(config.SocialProof.Testimonials)) + for _, t := range config.SocialProof.Testimonials { + testimonials = append(testimonials, map[string]string{ + "quote": t.Quote, + "role": t.Role, + }) + } + content["social_proof"] = map[string]any{"testimonials": testimonials} + } + + // Pricing + if config.Pricing.Headline != "" || len(config.Pricing.Plans) > 0 { + pricing := map[string]any{ + "headline": config.Pricing.Headline, + "subheadline": config.Pricing.Subheadline, + } + if len(config.Pricing.Plans) > 0 { + plans := make([]map[string]string, 0, len(config.Pricing.Plans)) + for _, p := range config.Pricing.Plans { + plans = append(plans, map[string]string{ + "name": p.Name, + "period": p.Period, + "cta": p.CTA, + }) + } + pricing["plans"] = plans + } + content["pricing"] = pricing + } + + // CTA Section + content["cta_section"] = map[string]any{ + "headline": config.CTASection.Headline, + "subheadline": config.CTASection.Subheadline, + "button": map[string]string{"label": config.CTASection.Button.Label}, + } + + // Blog + if config.Blog.Enabled { + blog := map[string]any{ + "headline": config.Blog.Headline, + "subheadline": config.Blog.Subheadline, + } + if config.Blog.CTAButton.Label != "" { + blog["cta_button"] = map[string]string{"label": config.Blog.CTAButton.Label} + } + content["blog"] = blog + } + + // Gallery + if config.Gallery.Enabled { + content["gallery"] = map[string]any{ + "headline": config.Gallery.Headline, + "subheadline": config.Gallery.Subheadline, + } + } + + // Comparison + if config.Comparison.Enabled { + content["comparison"] = map[string]any{ + "headline": config.Comparison.Headline, + "subheadline": config.Comparison.Subheadline, + } + } + + // Footer + if config.Footer.Copyright != "" || len(config.Footer.Links) > 0 { + footer := map[string]any{ + "copyright": config.Footer.Copyright, + } + if len(config.Footer.Links) > 0 { + links := make([]map[string]string, 0, len(config.Footer.Links)) + for _, l := range config.Footer.Links { + links = append(links, map[string]string{"label": l.Label}) + } + footer["links"] = links + } + content["footer"] = footer + } + + // SEO + if config.SEO.Title != "" || config.SEO.Description != "" { + content["seo"] = map[string]any{ "title": config.SEO.Title, "description": config.SEO.Description, - }, - }) + } + } + + data, _ := json.Marshal(content) return string(data) } diff --git a/templates/repo/settings/pages_languages.tmpl b/templates/repo/settings/pages_languages.tmpl index be59d3ca8e..1ae0667311 100644 --- a/templates/repo/settings/pages_languages.tmpl +++ b/templates/repo/settings/pages_languages.tmpl @@ -76,6 +76,25 @@ {{$trans := index $.TranslationMap .}} + {{/* ── Brand ── */}} + {{if or $.Config.Brand.Name $.Config.Brand.Tagline}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_brand"}}
+ {{if $.Config.Brand.Name}} +
+ + +
+ {{end}} + {{if $.Config.Brand.Tagline}} +
+ + +
+ {{end}} + {{end}} + + {{/* ── Hero ── */}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_hero"}}
@@ -84,14 +103,110 @@
+
+
+ + +
+
+ + +
+
+ + {{/* ── Stats ── */}} + {{if $.Config.Stats}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_stats"}}
+ {{range $i, $s := $.Config.Stats}} +
+
+ + +
+
+ + +
+
+ {{end}} + {{end}} + + {{/* ── Value Props ── */}} + {{if $.Config.ValueProps}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_value_props"}}
+ {{range $i, $vp := $.Config.ValueProps}}
- - + +
- - + +
+ {{end}} + {{end}} + + {{/* ── Features ── */}} + {{if $.Config.Features}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_features"}}
+ {{range $i, $f := $.Config.Features}} +
+ + +
+
+ + +
+ {{end}} + {{end}} + + {{/* ── Testimonials ── */}} + {{if $.Config.SocialProof.Testimonials}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_testimonials"}}
+ {{range $i, $t := $.Config.SocialProof.Testimonials}} +
+ + +
+
+ + +
+ {{end}} + {{end}} + + {{/* ── Pricing ── */}} + {{if or $.Config.Pricing.Headline $.Config.Pricing.Plans}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_pricing"}}
+
+ + +
+
+ + +
+ {{range $i, $p := $.Config.Pricing.Plans}} +
+
+ + +
+
+ + +
+
+ + +
+
+ {{end}} + {{end}} + + {{/* ── CTA Section ── */}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_cta"}}
@@ -105,6 +220,85 @@
+ {{/* ── Blog ── */}} + {{if $.Config.Blog.Enabled}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_blog"}}
+
+ + +
+
+ + +
+ {{if $.Config.Blog.CTAButton.Label}} +
+ + +
+ {{end}} + {{end}} + + {{/* ── Gallery ── */}} + {{if $.Config.Gallery.Enabled}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_gallery"}}
+
+ + +
+
+ + +
+ {{end}} + + {{/* ── Comparison ── */}} + {{if $.Config.Comparison.Enabled}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_comparison"}}
+
+ + +
+
+ + +
+ {{end}} + + {{/* ── Footer ── */}} + {{if or $.Config.Footer.Copyright $.Config.Footer.Links}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_footer"}}
+ {{if $.Config.Footer.Copyright}} +
+ + +
+ {{end}} + {{range $i, $link := $.Config.Footer.Links}} +
+ + +
+ {{end}} + {{end}} + + {{/* ── SEO ── */}} + {{if or $.Config.SEO.Title $.Config.SEO.Description}} +
{{ctx.Locale.Tr "repo.settings.pages.trans_section_seo"}}
+ {{if $.Config.SEO.Title}} +
+ + +
+ {{end}} + {{if $.Config.SEO.Description}} +
+ + +
+ {{end}} + {{end}} +