fix(project-editor): validate footer payment/social links, add footer logo picker
- header-section: raw checkboxes -> app-toggle, wrap in SectionCard - footer-section: replace unvalidated pipe-delimited textareas for payment icons/social links with KeyValueEditor + MediaPickerComponent, add missing footer logo picker, validate social link URLs (http/https), wrap in SectionCard - i18n: add footer logo / key-value-editor labels and URL validation message Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -452,6 +452,15 @@ export const en: Translations = {
|
||||
copyright: 'Copyright',
|
||||
paymentIcons: 'Payment Icons',
|
||||
socialLinks: 'Social Links',
|
||||
footerLogo: 'Footer Logo',
|
||||
addPaymentIcon: 'Add Payment Icon',
|
||||
removePaymentIcon: 'Remove',
|
||||
iconAltLabel: 'Icon Label',
|
||||
addSocialLink: 'Add Social Link',
|
||||
removeSocialLink: 'Remove',
|
||||
socialLinkLabel: 'Platform',
|
||||
socialLinkUrl: 'URL',
|
||||
invalidUrl: 'Enter a valid URL starting with http:// or https://.',
|
||||
createPage: 'Create Page',
|
||||
deletePage: 'Delete Page',
|
||||
pageId: 'Page ID',
|
||||
@@ -590,6 +599,9 @@ export const en: Translations = {
|
||||
copyrightDesc: 'Copyright line shown at the bottom of every page.',
|
||||
paymentIconsDesc: 'One payment icon entry per line (image URL and label) shown in the footer.',
|
||||
socialLinksDesc: 'One social link entry per line (platform and URL) shown in the footer.',
|
||||
footerLogoDesc: 'Logo shown in the footer, if different from the header logo.',
|
||||
iconAltLabelDesc: 'Alt text describing the payment icon for accessibility.',
|
||||
socialLinkUrlDesc: 'Full URL to the social media profile, must start with http:// or https://.',
|
||||
staticPagesFieldDesc: 'Static pages (about, terms, privacy, etc.) linked from the footer.',
|
||||
sectionVisibleDesc: 'Whether this homepage section is shown to shoppers.',
|
||||
layoutStrategyLabel: 'Layout strategy',
|
||||
|
||||
@@ -452,6 +452,15 @@ export const hy: Translations = {
|
||||
copyright: 'Copyright',
|
||||
paymentIcons: 'Վճարման icon-ներ',
|
||||
socialLinks: 'Սոցիալական հղումներ',
|
||||
footerLogo: 'Footer-ի լոգո',
|
||||
addPaymentIcon: 'Ավելացնել վճարային icon',
|
||||
removePaymentIcon: 'Հեռացնել',
|
||||
iconAltLabel: 'Icon-ի պիտակ',
|
||||
addSocialLink: 'Ավելացնել սոցիալական հղում',
|
||||
removeSocialLink: 'Հեռացնել',
|
||||
socialLinkLabel: 'Հարթակ',
|
||||
socialLinkUrl: 'URL',
|
||||
invalidUrl: 'Մուտքագրեք վավեր URL, որը սկսվում է http:// կամ https://։',
|
||||
createPage: 'Ստեղծել էջ',
|
||||
deletePage: 'Ջնջել էջը',
|
||||
pageId: 'Էջի ID',
|
||||
@@ -590,6 +599,9 @@ export const hy: Translations = {
|
||||
copyrightDesc: 'Copyright տողը՝ ցուցադրվում է յուրաքանչյուր էջի ներքևում։',
|
||||
paymentIconsDesc: 'Մեկ վճարային icon մեկ տողում (պատկերի URL և պիտակ)՝ ցուցադրվում է footer-ում։',
|
||||
socialLinksDesc: 'Մեկ սոցիալական հղում մեկ տողում (հարթակ և URL)՝ ցուցադրվում է footer-ում։',
|
||||
footerLogoDesc: 'Footer-ում ցուցադրվող լոգո, եթե տարբերվում է header-ի լոգոյից։',
|
||||
iconAltLabelDesc: 'Վճարային icon-ի այլընտրանքային տեքստ՝ մատչելիության համար։',
|
||||
socialLinkUrlDesc: 'Սոցիալական պրոֆիլի ամբողջական URL, պետք է սկսվի http:// կամ https://-ով։',
|
||||
staticPagesFieldDesc: 'Ստատիկ էջեր (մեր մասին, պայմաններ, գաղտնիության քաղաքականություն և այլն), որոնց հղում է անում footer-ը։',
|
||||
sectionVisibleDesc: 'Արդյո՞ք գլխավոր էջի այս սեկցիան ցուցադրվում է գնորդներին։',
|
||||
layoutStrategyLabel: 'Դասավորության ռազմավարություն',
|
||||
|
||||
@@ -452,6 +452,15 @@ export const ru: Translations = {
|
||||
copyright: 'Копирайт',
|
||||
paymentIcons: 'Иконки оплаты',
|
||||
socialLinks: 'Социальные ссылки',
|
||||
footerLogo: 'Логотип в футере',
|
||||
addPaymentIcon: 'Добавить иконку оплаты',
|
||||
removePaymentIcon: 'Удалить',
|
||||
iconAltLabel: 'Подпись иконки',
|
||||
addSocialLink: 'Добавить соцсеть',
|
||||
removeSocialLink: 'Удалить',
|
||||
socialLinkLabel: 'Платформа',
|
||||
socialLinkUrl: 'URL',
|
||||
invalidUrl: 'Введите корректный URL, начинающийся с http:// или https://.',
|
||||
createPage: 'Создать страницу',
|
||||
deletePage: 'Удалить страницу',
|
||||
pageId: 'ID страницы',
|
||||
@@ -590,6 +599,9 @@ export const ru: Translations = {
|
||||
copyrightDesc: 'Строка копирайта внизу каждой страницы.',
|
||||
paymentIconsDesc: 'По одной иконке оплаты на строку (URL изображения и подпись), показываются в футере.',
|
||||
socialLinksDesc: 'По одной социальной ссылке на строку (платформа и URL), показываются в футере.',
|
||||
footerLogoDesc: 'Логотип, отображаемый в футере, если отличается от логотипа в шапке.',
|
||||
iconAltLabelDesc: 'Альтернативный текст для иконки оплаты (для доступности).',
|
||||
socialLinkUrlDesc: 'Полный URL профиля в соцсети, должен начинаться с http:// или https://.',
|
||||
staticPagesFieldDesc: 'Статические страницы (о компании, условия, политика и т.д.), на которые ссылается футер.',
|
||||
sectionVisibleDesc: 'Показывать ли эту секцию главной страницы покупателям.',
|
||||
layoutStrategyLabel: 'Стратегия раскладки',
|
||||
|
||||
@@ -450,6 +450,15 @@ export interface Translations {
|
||||
copyright: string;
|
||||
paymentIcons: string;
|
||||
socialLinks: string;
|
||||
footerLogo: string;
|
||||
addPaymentIcon: string;
|
||||
removePaymentIcon: string;
|
||||
iconAltLabel: string;
|
||||
addSocialLink: string;
|
||||
removeSocialLink: string;
|
||||
socialLinkLabel: string;
|
||||
socialLinkUrl: string;
|
||||
invalidUrl: string;
|
||||
createPage: string;
|
||||
deletePage: string;
|
||||
pageId: string;
|
||||
@@ -588,6 +597,9 @@ export interface Translations {
|
||||
copyrightDesc: string;
|
||||
paymentIconsDesc: string;
|
||||
socialLinksDesc: string;
|
||||
footerLogoDesc: string;
|
||||
iconAltLabelDesc: string;
|
||||
socialLinkUrlDesc: string;
|
||||
staticPagesFieldDesc: string;
|
||||
sectionVisibleDesc: string;
|
||||
layoutStrategyLabel: string;
|
||||
|
||||
Reference in New Issue
Block a user