diff --git a/src/app/features/content-management/components/page-editor/page-editor.component.html b/src/app/features/content-management/components/page-editor/page-editor.component.html index 8e8ace9..7bf137e 100644 --- a/src/app/features/content-management/components/page-editor/page-editor.component.html +++ b/src/app/features/content-management/components/page-editor/page-editor.component.html @@ -49,6 +49,25 @@ } +
+

{{ 'contentManagement.pageContentLabel' | translate }}

+

{{ 'contentManagement.pageContentDesc' | translate }}

+ @for (locale of locales(); track locale) { + + } +
+
{{ 'staticPages.heroImageLabel' | translate }} @@ -193,22 +212,6 @@ - -
- {{ 'contentManagement.groupAdvancedHtml' | translate }} - @for (locale of locales(); track locale) { - - } -
}
diff --git a/src/app/features/content-management/components/page-editor/page-editor.component.scss b/src/app/features/content-management/components/page-editor/page-editor.component.scss index f91fcb1..89e094e 100644 --- a/src/app/features/content-management/components/page-editor/page-editor.component.scss +++ b/src/app/features/content-management/components/page-editor/page-editor.component.scss @@ -109,16 +109,16 @@ gap: 8px; } -.page-editor__html-disclosure { - border: 1px solid var(--border-subtle, #e7ece9); - border-radius: 10px; - padding: 10px 14px; +.page-editor__content-block { + display: grid; + gap: 8px; +} - summary { - cursor: pointer; - font-weight: var(--font-weight-bold, 700); - color: var(--text-primary, #1e3c38); - } +.page-editor__content-heading { + margin: 0; + font-size: var(--font-size-base, 0.875rem); + font-weight: var(--font-weight-bold, 700); + color: var(--text-primary, #1e3c38); } .page-editor__html-block { diff --git a/src/app/features/project-editor/components/save-bar/project-editor-save-bar.component.ts b/src/app/features/project-editor/components/save-bar/project-editor-save-bar.component.ts index 25b0b2d..4407201 100644 --- a/src/app/features/project-editor/components/save-bar/project-editor-save-bar.component.ts +++ b/src/app/features/project-editor/components/save-bar/project-editor-save-bar.component.ts @@ -37,7 +37,9 @@ export class ProjectEditorSaveBarComponent { } publish(): void { - this.facade.publish(); + if (confirm(this.translate.t('builder.confirmPublish'))) { + this.facade.publish(); + } } resetDraft(): void { diff --git a/src/app/features/project-editor/sections/languages-section.component.ts b/src/app/features/project-editor/sections/languages-section.component.ts index 8faae25..2795408 100644 --- a/src/app/features/project-editor/sections/languages-section.component.ts +++ b/src/app/features/project-editor/sections/languages-section.component.ts @@ -59,7 +59,9 @@ export class ProjectEditorLanguagesSectionComponent { } removeLocale(code: string): void { - this.facade.removeLocale(code); + if (confirm(this.translate.t('builder.confirmRemoveLanguage'))) { + this.facade.removeLocale(code); + } } setDefault(code: string): void { diff --git a/src/app/i18n/en.ts b/src/app/i18n/en.ts index aac4058..99a3c24 100644 --- a/src/app/i18n/en.ts +++ b/src/app/i18n/en.ts @@ -574,6 +574,8 @@ export const en: Translations = { save: 'Save', publish: 'Publish', confirmLeaveUnsaved: 'You have unsaved changes. Leave anyway?', + confirmPublish: 'This makes your current changes live on the storefront immediately, replacing what shoppers see now. Continue?', + confirmRemoveLanguage: 'This removes the language and any content translated into it. Shoppers using this language will see the default language instead. Continue?', promptLinkUrl: 'URL', promptImageUrl: 'Image URL', promptEmbedUrl: 'Embed URL', @@ -1040,6 +1042,8 @@ export const en: Translations = { groupSharing: 'Sharing', groupAdvanced: 'Advanced', groupAdvancedHtml: 'Raw HTML (advanced)', + pageContentLabel: 'Page Content', + pageContentDesc: 'Write and format the text, images, and links shoppers will see on this page.', seoExplainDesc: 'This is what shows up in search results — a clear title and description help customers find this page.', seoTitleHelp: 'The headline shown in search results. Keep it short and descriptive.', seoDescriptionHelp: 'A short summary shown under the title in search results.', diff --git a/src/app/i18n/hy.ts b/src/app/i18n/hy.ts index 7fa0606..fb4cfda 100644 --- a/src/app/i18n/hy.ts +++ b/src/app/i18n/hy.ts @@ -574,6 +574,8 @@ export const hy: Translations = { save: 'Պահպանել', publish: 'Հրապարակել', confirmLeaveUnsaved: 'Կան չպահված փոփոխություններ։ Այնուամենայնիվ դուրս գա՞լ։', + confirmPublish: 'Սա անմիջապես կկիրառի ընթացիկ փոփոխությունները կայքում՝ փոխարինելով այն, ինչ գնորդներն այժմ տեսնում են։ Շարունակե՞լ։', + confirmRemoveLanguage: 'Սա կհեռացնի լեզուն և դրանով թարգմանված ողջ բովանդակությունը։ Այս լեզվով օգտվող գնորդները կտեսնեն հիմնական լեզուն։ Շարունակե՞լ։', promptLinkUrl: 'URL', promptImageUrl: 'Նկարի URL', promptEmbedUrl: 'Ներդրման URL', @@ -1040,6 +1042,8 @@ export const hy: Translations = { groupSharing: 'Տարածում', groupAdvanced: 'Լրացուցիչ', groupAdvancedHtml: 'Հում HTML (լրացուցիչ)', + pageContentLabel: 'Էջի բովանդակություն', + pageContentDesc: 'Գրեք և ձևավորեք տեքստը, նկարներն ու հղումները, որոնք գնորդները կտեսնեն այս էջում։', seoExplainDesc: 'Սա այն է, ինչ երևում է որոնման արդյունքներում․ հստակ վերնագիրն ու նկարագրությունը օգնում են հաճախորդներին գտնել այս էջը։', seoTitleHelp: 'Վերնագիրը, որ երևում է որոնման արդյունքներում։ Պահեք կարճ և հստակ։', seoDescriptionHelp: 'Կարճ նկարագրություն՝ վերնագրի տակ, որոնման արդյունքներում։', diff --git a/src/app/i18n/ru.ts b/src/app/i18n/ru.ts index c98d6de..c5cc465 100644 --- a/src/app/i18n/ru.ts +++ b/src/app/i18n/ru.ts @@ -574,6 +574,8 @@ export const ru: Translations = { save: 'Сохранить', publish: 'Опубликовать', confirmLeaveUnsaved: 'Есть несохранённые изменения. Всё равно уйти?', + confirmPublish: 'Это сразу применит текущие изменения на витрине магазина вместо того, что покупатели видят сейчас. Продолжить?', + confirmRemoveLanguage: 'Это удалит язык и весь переведённый на него контент. Покупатели, использующие этот язык, увидят язык по умолчанию. Продолжить?', promptLinkUrl: 'URL', promptImageUrl: 'URL изображения', promptEmbedUrl: 'URL для встраивания', @@ -1040,6 +1042,8 @@ export const ru: Translations = { groupSharing: 'Публикация в соцсетях', groupAdvanced: 'Дополнительно', groupAdvancedHtml: 'Исходный HTML (дополнительно)', + pageContentLabel: 'Содержимое страницы', + pageContentDesc: 'Напишите и оформите текст, изображения и ссылки, которые увидят покупатели на этой странице.', seoExplainDesc: 'Это то, что видно в результатах поиска — понятный заголовок и описание помогают клиентам найти страницу.', seoTitleHelp: 'Заголовок, отображаемый в результатах поиска. Делайте его коротким и понятным.', seoDescriptionHelp: 'Краткое описание под заголовком в результатах поиска.', diff --git a/src/app/i18n/translations.ts b/src/app/i18n/translations.ts index 3b4f37c..4e8a099 100644 --- a/src/app/i18n/translations.ts +++ b/src/app/i18n/translations.ts @@ -572,6 +572,8 @@ export interface Translations { save: string; publish: string; confirmLeaveUnsaved: string; + confirmPublish: string; + confirmRemoveLanguage: string; promptLinkUrl: string; promptImageUrl: string; promptEmbedUrl: string; @@ -1039,6 +1041,8 @@ export interface Translations { groupSharing: string; groupAdvanced: string; groupAdvancedHtml: string; + pageContentLabel: string; + pageContentDesc: string; seoExplainDesc: string; seoTitleHelp: string; seoDescriptionHelp: string;