feat(board,ecommerce,pay,verification,templates,core): 문의 답변 사슬·답글 삭제 정책·검증 계약 + 실패 사유 표면화 전수
공개 (답변 중복 등록)/(문의 삭제 시 답변 잔존) 수정과 동형 결함 전수 해소.
- 문의 답변 단일성: 1차(피벗 is_answered) + 2차(게시판 리스너 duplicate 마커) 이중 방어,
경합 경로에서도 사유(reply_already_exists 422)가 보존되도록 훅 반환 계약 확장
- 질문·답변·피벗 생명주기 대칭: 삭제/복원/영구삭제 훅 연동 + 고아 데이터 백필 업그레이드 스텝
- 게시판별 답글 삭제 정책(cascade/block) 신설, 정렬 화이트리스트·per_page 게이트
(전량 조회 소비처 200/999 를 수용하는 상한 999 — 조였다가 관리자 화면 2곳 422 회귀 즉시 정정)
- 결제/본인인증 플러그인 검증 계약: FormRequest 15종 승격 + 컨트롤러 catch 정합.
거래 조회 tid 상한은 저장 컬럼(varchar 100) 기준 — 해외 CBT TID(40자) 수용
- onError 토스트 고정 문구 전수 해소(67건/50파일/15확장) — 서버 실패 사유를 그대로 표면화,
change-password 오변수(response→error) 교정
- 코어 플러그인 설정 검증 안내의 항목 표시명이 스키마 라벨(ko/en) 폴백에 덮여 요청 로케일
(ja) 라벨을 잃던 회귀 정정 — 번역 등록이 있으면 그것을 우선 (7.0.7 미출시 기능 자체 결함)
- 사전 결함 정리(Icon 등가표 27·darkmode 2·validated 통일), API 문서·CHANGELOG·ja 팩 동기
- develop(60652fdc0) 리베이스: getTable 정비와 병합 — 양측 의도 보존 (충돌 18파일)
This commit is contained in:
@@ -4,10 +4,11 @@
|
||||
형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며,
|
||||
[Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다.
|
||||
|
||||
## [1.0.3] - 2026-08-12
|
||||
## [1.0.3] - 2026-08-17
|
||||
|
||||
### Added
|
||||
|
||||
- 답글 삭제 정책(reply_delete_policy) 설정 라벨·옵션·차단 안내 문구의 일본어 번역을 추가했습니다.
|
||||
- 게시판 유형 삭제 등 관리 작업이 서버 오류로 실패했을 때 표시되는 안내 문구의 일본어 번역을 추가했습니다.
|
||||
- 비공개(비밀) 게시글 목록 마스킹 시 표시되는 제목 플레이스홀더(`secret_post_title`)의 일본어 번역을 추가했습니다.
|
||||
- 첨부 영구 정리 설정의 라벨·도움말과 검증 항목명 일본어 번역을 추가했습니다 (`admin/settings.attachment_purge_*`, `validation.attributes.attachment_settings.*`) — 게시판 환경설정 > 기본 설정의 새 항목과 저장 시 오류 안내가 일본어 로케일에서 표시됩니다.
|
||||
|
||||
@@ -71,6 +71,7 @@ return [
|
||||
'use_comment' => 'コメント使用',
|
||||
'use_reply' => '返信使用',
|
||||
'max_reply_depth' => '最大返信深度',
|
||||
'reply_delete_policy' => '返信の削除方式',
|
||||
'use_report' => '通報使用',
|
||||
'use_file_upload' => 'ファイルアップロード使用',
|
||||
'max_file_size' => '最大ファイルサイズ',
|
||||
|
||||
@@ -6,6 +6,10 @@ return [
|
||||
'enabled' => '選択使用',
|
||||
'always' => '必須使用',
|
||||
],
|
||||
'reply_delete_policy' => [
|
||||
'block' => '削除をブロック(返信がある間は元の投稿を削除できません)',
|
||||
'cascade' => '一緒に削除(元の投稿の削除時に返信も削除されます)',
|
||||
],
|
||||
'order_direction' => [
|
||||
'asc' => '昇順',
|
||||
'desc' => '降順',
|
||||
|
||||
@@ -219,6 +219,9 @@ return [
|
||||
'notice_not_allowed' => 'お知らせには返信を作成することはできません。',
|
||||
],
|
||||
'reply_not_allowed' => 'この掲示板は返信機能が無効化されています。',
|
||||
'delete' => [
|
||||
'has_replies' => '返信が付いた投稿は削除できません。先に返信を削除してください。',
|
||||
],
|
||||
'status' => [
|
||||
'in' => '無効な投稿ステータスです。',
|
||||
],
|
||||
@@ -256,6 +259,7 @@ return [
|
||||
'basic_defaults.use_comment' => 'コメント使用有無',
|
||||
'basic_defaults.use_reply' => '返信使用有無',
|
||||
'basic_defaults.max_reply_depth' => '最大返信深さ',
|
||||
'basic_defaults.reply_delete_policy' => '返信の削除方式',
|
||||
'basic_defaults.max_comment_depth' => '最大コメント深さ',
|
||||
'basic_defaults.comment_order' => 'コメント並べ替え',
|
||||
'basic_defaults.show_view_count' => '閲覧数表示',
|
||||
@@ -339,6 +343,7 @@ return [
|
||||
'override_values.per_page' => 'ページあたりの投稿数',
|
||||
'override_values.per_page_mobile' => 'モバイルページあたりの投稿数',
|
||||
'override_values.max_reply_depth' => '最大返信深さ',
|
||||
'override_values.reply_delete_policy' => '返信の削除方式',
|
||||
'override_values.max_comment_depth' => '最大コメント深さ',
|
||||
'override_values.min_title_length' => '最小タイトル長',
|
||||
'override_values.max_title_length' => '最大タイトル長',
|
||||
|
||||
@@ -110,6 +110,14 @@
|
||||
"label": "返信投稿の最大深さ",
|
||||
"hint": "{{min}}~{{max}}の範囲内の値を入力してください"
|
||||
},
|
||||
"reply_delete_policy": {
|
||||
"label": "返信の削除方式",
|
||||
"hint": "返信が付いた投稿を削除するときの動作を設定します",
|
||||
"options": {
|
||||
"block": "削除をブロック",
|
||||
"cascade": "一緒に削除"
|
||||
}
|
||||
},
|
||||
"max_comment_depth": {
|
||||
"label": "返信への返信の最大深さ",
|
||||
"hint": "{{min}}~{{max}}の範囲内の値を入力してください。0に設定すると返信への返信機能が無効化されます。"
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
"max_content_length": "最大投稿文字数",
|
||||
"use_reply": "回答投稿の使用",
|
||||
"max_reply_depth": "回答投稿の最大深さ",
|
||||
"reply_delete_policy": "返信の削除方式",
|
||||
"use_comment": "コメントの使用",
|
||||
"comment_order": "コメント並べ替え順序",
|
||||
"min_comment_length": "最小コメント文字数",
|
||||
@@ -168,6 +169,7 @@
|
||||
"max_content_length": "投稿本文の最大文字数を設定します ({{min}}~{{max}})",
|
||||
"use_reply": "ON に設定する必要があります。新規掲示板に返信投稿機能が適用されます。",
|
||||
"max_reply_depth": "返信投稿の最大ネスト深さを設定します ({{min}}~{{max}})",
|
||||
"reply_delete_policy": "返信が付いた投稿を削除するときの動作を設定します",
|
||||
"blocked_keywords": "登録されたキーワードを含む投稿/コメントは作成がブロックされます",
|
||||
"use_comment": "ON に設定する必要があります。新規掲示板にコメント機能が適用されます。以下のコメント詳細設定も一緒に適用されます。",
|
||||
"comment_order": "コメントのデフォルト並べ替え方向を設定します",
|
||||
@@ -203,6 +205,10 @@
|
||||
"enabled": "選択可能",
|
||||
"always": "常に非公開"
|
||||
},
|
||||
"reply_delete_policy": {
|
||||
"block": "削除をブロック",
|
||||
"cascade": "一緒に削除"
|
||||
},
|
||||
"order_by": {
|
||||
"created_at": "最新順",
|
||||
"view_count": "閲覧数順",
|
||||
@@ -286,6 +292,7 @@
|
||||
"use_comment": "コメント使用",
|
||||
"use_reply": "返信コメント使用",
|
||||
"max_reply_depth": "返信コメント最大深さ",
|
||||
"reply_delete_policy": "返信の削除方式",
|
||||
"max_comment_depth": "返信の返信最大深さ",
|
||||
"comment_order": "コメント並べ替え順序",
|
||||
"show_view_count": "閲覧数表示",
|
||||
|
||||
@@ -4,11 +4,12 @@
|
||||
형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며,
|
||||
[Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다.
|
||||
|
||||
## [1.1.1] - 2026-08-12
|
||||
## [1.1.1] - 2026-08-17
|
||||
|
||||
### Added
|
||||
|
||||
- 확정 불가 상태의 주문 옵션 구매확정 시도 안내(`exceptions.order_option_not_confirmable`)의 일본어 번역을 추가했습니다.
|
||||
- 이미 답변된 상품 문의에 답변을 재등록할 때의 거절 안내(`inquiries.reply_already_exists`) 일본어 번역을 추가했습니다.
|
||||
- 이용할 수 없는 결제수단 선택 시의 주문 거절 안내 일본어 번역을 추가했습니다 (`validation.order.payment_method_unavailable`).
|
||||
- 관리자 주문설정 결제수단 목록의 「지정 PG 삭제됨」 배지 일본어 번역을 추가했습니다.
|
||||
- 배송지 변경 처리 중 서버 오류가 발생했을 때 표시되는 안내 문구의 일본어 번역을 추가했습니다.
|
||||
|
||||
@@ -1100,6 +1100,7 @@ return [
|
||||
'board_changed' => '掲示板設定が変更されたため、該当する投稿が見つかりません。管理者にお問い合わせください。',
|
||||
'reply_created' => '返信が登録されました。',
|
||||
'reply_failed' => '返信登録に失敗しました。',
|
||||
'reply_already_exists' => 'すでに登録された回答があります。既存の回答を修正または削除してから再度登録してください。',
|
||||
'reply_updated' => '返信が編集されました。',
|
||||
'reply_update_failed' => '回答の編集に失敗しました。',
|
||||
'reply_deleted' => '回答が削除されました。',
|
||||
|
||||
@@ -4,10 +4,11 @@
|
||||
형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며,
|
||||
[Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다.
|
||||
|
||||
## [1.1.1] - 2026-08-14
|
||||
## [1.1.1] - 2026-08-17
|
||||
|
||||
### Added
|
||||
|
||||
- 에스크로 배송등록·구매거절확인 검증 안내 문구(운송장번호·택배사·기본 확인자명)의 일본어 번역을 추가했습니다.
|
||||
- 결제 처리 실패 안내 문구의 일본어 번역을 추가했습니다 — 일본어 로케일에서 결제가 실패했을 때 한국어 안내가 보이던 문제가 해소됩니다.
|
||||
|
||||
## [1.1.0] - 2026-08-10
|
||||
|
||||
@@ -40,6 +40,11 @@ return [
|
||||
'cash_receipt' => [
|
||||
'provider_name' => 'KGイニシス',
|
||||
],
|
||||
'escrow' => [
|
||||
'invoice_required' => '送り状番号を入力してください。',
|
||||
'courier_required' => '配送業者を選択してください。',
|
||||
'default_confirmer' => '管理者',
|
||||
],
|
||||
'cbt_cvs' => [
|
||||
'simulate_success' => '入金シミュレーションが完了しました。',
|
||||
'simulate_failed' => '入金シミュレーションに失敗しました。',
|
||||
|
||||
@@ -4,10 +4,11 @@
|
||||
형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며,
|
||||
[Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다.
|
||||
|
||||
## [1.0.3] - 2026-08-14
|
||||
## [1.0.3] - 2026-08-17
|
||||
|
||||
### Added
|
||||
|
||||
- 에스크로 배송등록 검증 안내 문구(운송장번호·택배사)의 일본어 번역을 추가했습니다.
|
||||
- 결제 처리 실패 안내 문구의 일본어 번역을 추가했습니다 — 일본어 로케일에서 결제가 실패했을 때 한국어 안내가 보이던 문제가 해소됩니다.
|
||||
- 결제 취소에 필요한 서버 IP 등록 안내의 일본어 번역을 추가했습니다 — 등록이 필요한 이유, 상점 관리자에서의 등록 경로, 등록할 IP 확인·복사 안내가 일본어로 표시됩니다.
|
||||
- 관리자 결제 상세의 결제 상태·취소 금액·취소 일시·환불 상태·환불 번호 항목명과, 취소 완료·부분 취소 상태 표시의 일본어 번역을 추가했습니다.
|
||||
|
||||
@@ -6,6 +6,10 @@ return [
|
||||
'default_reason' => '購入者返金リクエスト',
|
||||
'in_progress' => 'NHN KCP 返金はすでに処理中です。',
|
||||
],
|
||||
'escrow' => [
|
||||
'invoice_required' => '送り状番号を入力してください。',
|
||||
'courier_required' => '配送業者を選択してください。',
|
||||
],
|
||||
'errors' => [
|
||||
'payment_failed' => '決済処理に失敗しました。しばらく後にもう一度お試しください。',
|
||||
'wsdl_missing' => 'KCP WSDL ファイルがありません: :file',
|
||||
|
||||
@@ -4,6 +4,16 @@
|
||||
형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/)를 따르며,
|
||||
[Semantic Versioning](https://semver.org/lang/ko/)을 준수합니다.
|
||||
|
||||
## [1.0.3] - 2026-08-17
|
||||
|
||||
### Added
|
||||
|
||||
- 가상계좌 환불 입력 필드 표시명(거래 ID·주문번호·취소 금액·취소 사유·환불 계좌번호·은행코드·예금주)의 일본어 번역을 추가했습니다.
|
||||
|
||||
### Removed
|
||||
|
||||
- 원본 플러그인에서 삭제된 가상계좌 환불 필수값 안내 문구(`errors.vbank_refund_required_fields`)를 함께 정리했습니다 — 개별 필드 검증 메시지로 대체되었습니다.
|
||||
|
||||
## [1.0.2] - 2026-08-10
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -6,7 +6,6 @@ return [
|
||||
'order_not_found' => '注文が見つかりません。',
|
||||
'invalid_request' => '無効なリクエストです。',
|
||||
'invalid_amount' => 'リクエスト金額が有効ではありません。',
|
||||
'vbank_refund_required_fields' => 'TID、注文番号、返金金額、返金口座情報(口座番号·銀行コード·口座名義人)をすべて入力してください。',
|
||||
'vbank_completed_requires_bank_info' => '仮想口座入金完了の場合は返金口座情報が必要です。管理者APIを通じて返金を進めてください。',
|
||||
'invalid_refund_amount' => '返金金額が有効ではありません。(リクエスト::amount)',
|
||||
'vbank_refund_order_not_found' => '返金する注文が見つかりません。',
|
||||
@@ -21,4 +20,13 @@ return [
|
||||
'defaults' => [
|
||||
'vbank_refund_msg' => '仮想口座返金',
|
||||
],
|
||||
'fields' => [
|
||||
'tid' => '取引ID(TID)',
|
||||
'moid' => '注文番号',
|
||||
'cancel_amt' => 'キャンセル金額',
|
||||
'cancel_msg' => 'キャンセル事由',
|
||||
'refund_acct_no' => '返金口座番号',
|
||||
'refund_bank_cd' => '返金銀行コード',
|
||||
'refund_acct_nm' => '返金口座名義人',
|
||||
],
|
||||
];
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"en": "G7 plugin (sirsoft-pay_nicepayments) Japanese language pack (bundled)",
|
||||
"ja": "G7 プラグイン (sirsoft-pay_nicepayments) 日本語 言語パック(バンドル)"
|
||||
},
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.3",
|
||||
"license": "MIT",
|
||||
"scope": "plugin",
|
||||
"target_identifier": "sirsoft-pay_nicepayments",
|
||||
|
||||
Reference in New Issue
Block a user