fix(core, sirsoft-ecommerce, sirsoft-basic): 배송국가 다국어 표시·입력 지원
$localized 가 ActionDispatcher 경로에서 항상 ko 를 반환했다. 컨텍스트에 $locale 이 없다는 것은 "로케일이 ko" 라는 뜻이 아니라 "이 경로가 로케일을 넘기지 않는다" 는 뜻인데, context.$locale || 'ko' 로 하드코딩 폴백하고 있었다. 바로 아래 $t 는 engine-v1.38.2 에서 이미 앱 설정 회수 폴백을 갖췄으나 $localized 만 정의 순서상 그 폴백보다 위에 있어 혜택을 받지 못했다. 로케일/templateId 해석을 두 헬퍼 앞으로 끌어올려 공유한다 (engine-v1.52.1). 국가 추가 폼은 이름 입력칸이 ko/en 두 칸으로 고정돼 그 외 언어의 국가명을 넣을 수 없었다. 설치된 언어를 $locales 로 순회해 입력칸을 만들고, 추가 조건도 특정 로케일 대신 "어느 한 언어라도 채워졌는가" 로 바꾼다. 백엔드 StoreEcommerceSettingsRequest 도 name 을 array 로만 요구하므로 계약이 일치한다. 저장 시 입력하지 않은 로케일은 남기지 않는다. 기존 저장본에 박힌 빈 문자열은 업그레이드 스텝이 청소한다 — 부재 로케일은 서버 localize_catalog_field 가 읽기 시점에 언어팩으로 보강하므로, 빈 문자열은 그 보강을 막는 어중간한 상태였다. 동일 결함 재발을 막는 audit 룰(engine-context-locale-hardcoded-fallback)을 함께 추가한다. 수정 전 코드에서 1건 검출, 수정 후 0건을 확인했다.
This commit is contained in:
+4
-4
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user