부가세 신고 페이지 및 컴포넌트 다국어화 완료

- 부가세 신고 페이지 다국어화 (3개 페이지)
  * 조회 페이지: 헤더 타이틀, 탭, 검색/다운로드
  * 상세 페이지: 세금계산서 상세 정보
  * 참조번호 발급 페이지: 신청 완료/실패 메시지
- 부가세 엔티티 컴포넌트 다국어화 (11개 컴포넌트)
  * vat-return-tab: 세금계산서/부가세참고 탭
  * list-wrap: 조회 페이지 래퍼
  * list-item: 거래 항목 (통화 표기 포함)
  * reference-wrap: 참조 자료 신청
  * reference-request-success/fail: 신청 결과
  * list-detail-bottom-sheet: 상세 내역 (10개 통화 인스턴스)
- 섹션 컴포넌트 다국어화 (4개)
  * amount-section: 금액 상세 (공급가액, VAT, 합계금액)
  * issue-section: 발행 정보 (발행대상일자, 적요 등)
  * supplier-section: 공급자 정보
  * receiver-section: 공급받는 자 정보
- 통화 표기 통일 (10개 인스턴스)
  * 한국어: 1,000원 (suffix)
  * 영어: ₩1,000 (prefix)
- 번역 키 추가: vatReturn 네임스페이스 29개 키
- 기존 번역 키 재사용 (merchant, transaction, common, home)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-10-30 09:25:50 +09:00
parent 04fc07cfe5
commit bc1540ca04
16 changed files with 234 additions and 129 deletions

View File

@@ -1,4 +1,5 @@
import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { PATHS } from '@/shared/constants/paths';
import { useLocation } from 'react-router';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
@@ -12,7 +13,7 @@ import {
VatReturnDetailResponse
} from '@/entities/vat-return/model/types';
import {
useSetOnBack,
useSetOnBack,
useSetHeaderTitle,
useSetHeaderType,
useSetFooterMode
@@ -26,6 +27,7 @@ import { VatReturnListDetailBottomSheet } from '@/entities/vat-return/ui/list-de
import { useVatReturnBreakdownMutation } from '@/entities/vat-return/api/use-vat-return-breakdown-mutation';
export const DetailPage = () => {
const { t } = useTranslation();
const { navigate } = useNavigate();
const location = useLocation();
@@ -37,7 +39,7 @@ export const DetailPage = () => {
const [detail, setDetail] = useState<VatReturnDetailResponse>({});
const [breakdown, setBreakdown] = useState<Array<Breakdown>>([]);
useSetHeaderTitle('세금계산서 상세');
useSetHeaderTitle(t('vatReturn.taxInvoiceDetail'));
useSetHeaderType(HeaderType.RightClose);
useSetOnBack(() => {
navigate(PATHS.vatReturn.list);
@@ -100,10 +102,10 @@ export const DetailPage = () => {
</div>
</div>
<div className="apply-row">
<button
<button
className="btn-50 btn-blue flex-1"
onClick={ onClickToOpenBottomSheet }
> </button>
>{t('vatReturn.viewDetails')}</button>
</div>
</div>
</div>

View File

@@ -1,11 +1,12 @@
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { VatReturnTab } from '@/entities/vat-return/ui/vat-return-tab';
import { ListWrap } from '@/entities/vat-return/ui/list-wrap';
import { VatReturnTabKeys } from '@/entities/vat-return/model/types';
import { HeaderType } from '@/entities/common/model/types';
import {
import {
useSetHeaderTitle,
useSetHeaderType,
useSetFooterMode,
@@ -13,11 +14,12 @@ import {
} from '@/widgets/sub-layout/use-sub-layout';
export const ListPage = () => {
const { t } = useTranslation();
const { navigate } = useNavigate();
const [activeTab, setActiveTab] = useState<VatReturnTabKeys>(VatReturnTabKeys.List);
useSetHeaderTitle('부가세 신고 자료');
useSetHeaderTitle(t('vatReturn.title'));
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false);
useSetOnBack(() => {

View File

@@ -1,11 +1,12 @@
import { useState } from 'react';
import { useTranslation } from 'react-i18next';
import { PATHS } from '@/shared/constants/paths';
import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { VatReturnTab } from '@/entities/vat-return/ui/vat-return-tab';
import { ReferenceWrap } from '@/entities/vat-return/ui/reference-wrap';
import { VatReturnTabKeys } from '@/entities/vat-return/model/types';
import { HeaderType } from '@/entities/common/model/types';
import {
import {
useSetHeaderTitle,
useSetHeaderType,
useSetFooterMode,
@@ -13,11 +14,12 @@ import {
} from '@/widgets/sub-layout/use-sub-layout';
export const ReferencePage = () => {
const { t } = useTranslation();
const { navigate } = useNavigate();
const [activeTab, setActiveTab] = useState<VatReturnTabKeys>(VatReturnTabKeys.VatReference);
useSetHeaderTitle('부가세 신고 자료');
useSetHeaderTitle(t('vatReturn.title'));
useSetHeaderType(HeaderType.LeftArrow);
useSetFooterMode(false);
useSetOnBack(() => {