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}} +