fix(languages): show error instead of silently no-oping when adding a duplicate locale
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
addLocale() always cleared the input, even when LocaleSyncService rejected the code because it was already supported - same silent-failure shape as the widgets JSON bug fixed earlier this session. Now checks locales() first and shows an inline error, leaving the input untouched, instead of clearing it like the add succeeded. Verified live: typing an existing locale code and clicking Add now shows 'This language is already supported.' Navigation-section was also audited (id generation, label locale-migration, reorder swap, grouped-footer read-only fallback) - no defects found, it's solid as-is. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -679,6 +679,7 @@ export const en: Translations = {
|
||||
catalogNavTopCarousel: 'Top category carousel',
|
||||
catalogNavTopCarouselDesc: 'Horizontally scrollable category chips above the catalog grid.',
|
||||
newLanguageDesc: 'ISO language code to add as a supported storefront language (e.g. de, fr).',
|
||||
languageAlreadyAdded: 'This language is already supported.',
|
||||
languagesTabDesc: 'Languages available to shoppers. The default language is used as a fallback everywhere.',
|
||||
linkLabelDesc: 'Text shown for this navigation link.',
|
||||
linkUrlDesc: 'Path or URL this navigation link points to.',
|
||||
|
||||
@@ -679,6 +679,7 @@ export const hy: Translations = {
|
||||
catalogNavTopCarousel: 'Վերևի կատեգորիաների կարուսել',
|
||||
catalogNavTopCarouselDesc: 'Հորիզոնական թերթվող կատեգորիաների chip-եր կատալոգի ցանցի վերևում։',
|
||||
newLanguageDesc: 'ISO լեզվի կոդ՝ որպես աջակցվող լեզու ավելացնելու համար (օր․՝ de, fr)։',
|
||||
languageAlreadyAdded: 'Այս լեզուն արդեն ավելացված է։',
|
||||
languagesTabDesc: 'Գնորդներին հասանելի լեզուներ։ Լռելյայն լեզուն օգտագործվում է որպես պահուստային ամենուր։',
|
||||
linkLabelDesc: 'Այս նավիգացիոն հղման համար ցուցադրվող տեքստը։',
|
||||
linkUrlDesc: 'Ուղին կամ URL-ը, որին ուղղորդում է այս նավիգացիոն հղումը։',
|
||||
|
||||
@@ -679,6 +679,7 @@ export const ru: Translations = {
|
||||
catalogNavTopCarousel: 'Карусель категорий сверху',
|
||||
catalogNavTopCarouselDesc: 'Горизонтально прокручиваемые чипы категорий над сеткой каталога.',
|
||||
newLanguageDesc: 'Код языка ISO для добавления в поддерживаемые языки витрины (например, de, fr).',
|
||||
languageAlreadyAdded: 'Этот язык уже добавлен.',
|
||||
languagesTabDesc: 'Языки, доступные покупателям. Язык по умолчанию используется как резервный везде.',
|
||||
linkLabelDesc: 'Текст, отображаемый для этой ссылки навигации.',
|
||||
linkUrlDesc: 'Путь или URL, на который ведёт эта ссылка навигации.',
|
||||
|
||||
@@ -677,6 +677,7 @@ export interface Translations {
|
||||
catalogNavTopCarousel: string;
|
||||
catalogNavTopCarouselDesc: string;
|
||||
newLanguageDesc: string;
|
||||
languageAlreadyAdded: string;
|
||||
languagesTabDesc: string;
|
||||
linkLabelDesc: string;
|
||||
linkUrlDesc: string;
|
||||
|
||||
Reference in New Issue
Block a user