From a8007e03996530efd3818c5b70a24e426244ec5f Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Wed, 3 Dec 2025 19:39:47 +0900 Subject: (임수민) partners 페이지 타이틀과 메뉴명 일치 작업 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../partners/(partners)/basic-contract/page.tsx | 10 ++++++---- app/[lng]/partners/(partners)/bid/page.tsx | 13 ++++++++++--- .../(partners)/document-list-ship/page.tsx | 6 +++--- app/[lng]/partners/(partners)/evaluation/page.tsx | 10 +++++++--- .../(partners)/general-contract-review/page.tsx | 14 ++++++++++---- app/[lng]/partners/(partners)/pcr/page.tsx | 14 ++++++++++---- app/[lng]/partners/(partners)/po/page.tsx | 8 ++++++-- app/[lng]/partners/(partners)/pq_new/page.tsx | 22 +++++++++++++++------- app/[lng]/partners/(partners)/rfq-last/page.tsx | 12 ++++++++---- .../(partners)/swp-document-upload/page.tsx | 13 +++++++++---- app/[lng]/partners/(partners)/tbe-last/page.tsx | 8 +++++--- 11 files changed, 89 insertions(+), 41 deletions(-) (limited to 'app') diff --git a/app/[lng]/partners/(partners)/basic-contract/page.tsx b/app/[lng]/partners/(partners)/basic-contract/page.tsx index e2213c57..c651ee54 100644 --- a/app/[lng]/partners/(partners)/basic-contract/page.tsx +++ b/app/[lng]/partners/(partners)/basic-contract/page.tsx @@ -11,13 +11,15 @@ import { BasicContractsVendorTable } from "@/lib/basic-contract/vendor-table/bas import { getServerSession } from "next-auth" import { authOptions } from "@/app/api/auth/[...nextauth]/route" import { InformationButton } from "@/components/information/information-button" +import { useTranslation } from "@/i18n" interface IndexPageProps { + params: Promise<{ lng: string }> searchParams: Promise } export default async function IndexPage(props: IndexPageProps) { - - + const { lng } = await props.params; + const { t } = await useTranslation(lng, 'menu') const session = await getServerSession(authOptions) const vendorId = session?.user.companyId @@ -43,7 +45,7 @@ export default async function IndexPage(props: IndexPageProps) {

- 기본계약서 서명 요청 + {t('menu.vendor.procurement.basic_contract_sign')}

@@ -77,4 +79,4 @@ export default async function IndexPage(props: IndexPageProps) { ) -} \ No newline at end of file +} diff --git a/app/[lng]/partners/(partners)/bid/page.tsx b/app/[lng]/partners/(partners)/bid/page.tsx index a09dec72..87b52021 100644 --- a/app/[lng]/partners/(partners)/bid/page.tsx +++ b/app/[lng]/partners/(partners)/bid/page.tsx @@ -5,8 +5,15 @@ import { authOptions } from "@/app/api/auth/[...nextauth]/route" import { getBiddingListForPartners } from '@/lib/bidding/detail/service' import { Shell } from '@/components/shell' import { DataTableSkeleton } from '@/components/data-table/data-table-skeleton' +import { useTranslation } from "@/i18n" -export default async function PartnersBidPage() { +interface IndexPageProps { + params: Promise<{ lng: string }> +} + +export default async function PartnersBidPage({ params }: IndexPageProps) { + const { lng } = await params; + const { t } = await useTranslation(lng, 'menu') // 세션에서 companyId 가져오기 const session = await getServerSession(authOptions) const companyId = session?.user?.companyId @@ -31,9 +38,9 @@ export default async function PartnersBidPage() {
-

입찰 참여

+

{t('menu.vendor.bidding.list')}

- 참여 가능한 입찰 목록을 확인하고 응찰하실 수 있습니다. + {t('menu.vendor.bidding.list_desc')}

diff --git a/app/[lng]/partners/(partners)/document-list-ship/page.tsx b/app/[lng]/partners/(partners)/document-list-ship/page.tsx index 46800a77..d67e96df 100644 --- a/app/[lng]/partners/(partners)/document-list-ship/page.tsx +++ b/app/[lng]/partners/(partners)/document-list-ship/page.tsx @@ -3,6 +3,7 @@ import { Skeleton } from "@/components/ui/skeleton"; import { Card, CardContent, CardHeader } from "@/components/ui/card"; import DolceUploadPageV2 from "./dolce-upload-page-v2"; import { Shell } from "@/components/shell"; +import { useTranslation } from "@/i18n" // ============================================================================ // 로딩 스켈레톤 @@ -39,6 +40,7 @@ export default async function DolceUploadPageWrapper({ searchParams: Promise<{ [key: string]: string | string[] | undefined }>; }) { const { lng } = await params; + const { t } = await useTranslation(lng, 'menu') const resolvedParams = await searchParams; return ( @@ -47,9 +49,7 @@ export default async function DolceUploadPageWrapper({

- {lng === "ko" - ? "조선 도면 업로드" - : "Shipbuilding Drawing Upload"} + {t('menu.vendor.engineering.document_list_ship')}

diff --git a/app/[lng]/partners/(partners)/evaluation/page.tsx b/app/[lng]/partners/(partners)/evaluation/page.tsx index be88ef3e..3680a826 100644 --- a/app/[lng]/partners/(partners)/evaluation/page.tsx +++ b/app/[lng]/partners/(partners)/evaluation/page.tsx @@ -13,11 +13,15 @@ import { getEvaluationSubmissions } from "@/lib/vendor-evaluation-submit/service import { getEvaluationsSubmitSchema } from "@/lib/vendor-evaluation-submit/validation" import { EvaluationSubmissionsTable } from "@/lib/vendor-evaluation-submit/table/submit-table" import { InformationButton } from "@/components/information/information-button" +import { useTranslation } from "@/i18n" interface IndexPageProps { + params: Promise<{ lng: string }> searchParams: Promise } export default async function IndexPage(props: IndexPageProps) { + const { lng } = await props.params; + const { t } = await useTranslation(lng, 'menu') const searchParams = await props.searchParams const search = getEvaluationsSubmitSchema.parse(searchParams) const validFilters = getValidFilters(search.filters) @@ -34,7 +38,7 @@ export default async function IndexPage(props: IndexPageProps) {

- 평가자료 입력 + {t('menu.vendor.procurement.evaluation_input')}

@@ -105,7 +109,7 @@ export default async function IndexPage(props: IndexPageProps) {

- 평가자료 입력 + {t('menu.vendor.procurement.evaluation_input')}

{/*

요청된 정기평가를 입력하고 제출할 수 있습니다. @@ -133,4 +137,4 @@ export default async function IndexPage(props: IndexPageProps) { ) -} \ No newline at end of file +} diff --git a/app/[lng]/partners/(partners)/general-contract-review/page.tsx b/app/[lng]/partners/(partners)/general-contract-review/page.tsx index 27afd859..5af40906 100644 --- a/app/[lng]/partners/(partners)/general-contract-review/page.tsx +++ b/app/[lng]/partners/(partners)/general-contract-review/page.tsx @@ -6,10 +6,16 @@ import { getVendorContractReviews } from "@/lib/general-contracts/service" import { VendorGeneralContractReviewTable } from "./vendor-general-contract-review-table" import { InformationButton } from "@/components/information/information-button" import { unstable_noStore as noStore } from 'next/cache' +import { useTranslation } from "@/i18n" -export default async function VendorGeneralContractReviewPage() { +interface pageProps { + params: { lng: string } +} + +export default async function VendorGeneralContractReviewPage({ params }: pageProps) { noStore() - + const { lng } = await params; + const { t } = await useTranslation(lng, 'menu') const session = await getServerSession(authOptions) if (!session?.user?.companyId) { @@ -31,12 +37,12 @@ export default async function VendorGeneralContractReviewPage() {

- 일반계약 조건검토 + {t('menu.vendor.procurement.general_contract_review')}

- 조건검토 요청된 계약 목록을 확인하고 검토합니다. + {t('menu.vendor.procurement.general_contract_review_desc')}

diff --git a/app/[lng]/partners/(partners)/pcr/page.tsx b/app/[lng]/partners/(partners)/pcr/page.tsx index dc639aa8..7148aedd 100644 --- a/app/[lng]/partners/(partners)/pcr/page.tsx +++ b/app/[lng]/partners/(partners)/pcr/page.tsx @@ -5,7 +5,7 @@ import { redirect } from "next/navigation"; import { Shell } from "@/components/shell" import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" import { InformationButton } from "@/components/information/information-button" - +import { useTranslation } from "@/i18n" import { PcrTable } from "@/lib/pcr/table/pcr-table"; import { getPcrPoListForPartners } from "@/lib/pcr/service"; @@ -14,6 +14,10 @@ export const metadata = { description: "Purchase Change Request를 조회하고 관리할 수 있습니다.", }; +interface pageProps { + params: { lng: string } +} + async function PartnersPcrTableWrapper() { // 세션에서 사용자 정보 확인 const session = await getServerSession(authOptions); @@ -33,7 +37,9 @@ async function PartnersPcrTableWrapper() { return ; } -export default function PartnersPcrPage() { +export default async function PartnersPcrPage({ params }: pageProps) { + const { lng } = await params; + const { t } = await useTranslation(lng, 'menu') return ( {/* ═══════════════════════════════════════════════════════════════ */} @@ -44,12 +50,12 @@ export default function PartnersPcrPage() {

- PCR 관리 + {t('menu.vendor.procurement.pcr')}

- Purchase Change Request를 조회하고 관리할 수 있습니다. PCR 승인 상태, 변경 구분, PO/계약 정보 등을 확인할 수 있습니다. + {t('menu.vendor.procurement.pcr_desc')}

diff --git a/app/[lng]/partners/(partners)/po/page.tsx b/app/[lng]/partners/(partners)/po/page.tsx index 709b975c..a2ab2916 100644 --- a/app/[lng]/partners/(partners)/po/page.tsx +++ b/app/[lng]/partners/(partners)/po/page.tsx @@ -11,12 +11,16 @@ import { getVendorPOs } from "@/lib/po/vendor-table/service" import { vendorPoSearchParamsCache } from "@/lib/po/vendor-table/validations" import { VendorPoTable } from "@/lib/po/vendor-table/vendor-po-table" import { InformationButton } from "@/components/information/information-button" +import { useTranslation } from "@/i18n" interface VendorPOPageProps { + params: Promise<{ lng: string }> searchParams: Promise } export default async function VendorPO(props: VendorPOPageProps) { + const { lng } = await props.params; + const { t } = await useTranslation(lng, 'menu') const searchParams = await props.searchParams const search = vendorPoSearchParamsCache.parse(searchParams) @@ -47,7 +51,7 @@ export default async function VendorPO(props: VendorPOPageProps) {

- PO/계약 목록 + {t('menu.vendor.procurement.po')}

@@ -72,4 +76,4 @@ export default async function VendorPO(props: VendorPOPageProps) { ) -} \ No newline at end of file +} diff --git a/app/[lng]/partners/(partners)/pq_new/page.tsx b/app/[lng]/partners/(partners)/pq_new/page.tsx index eea5b21d..fb77ce0e 100644 --- a/app/[lng]/partners/(partners)/pq_new/page.tsx +++ b/app/[lng]/partners/(partners)/pq_new/page.tsx @@ -25,6 +25,11 @@ import { DropdownMenuContent, DropdownMenuItem, } from "@/components/ui/dropdown-menu"; +import { useTranslation } from "@/i18n" + +interface IndexPageProps { + params: Promise<{ lng: string }> +} export const metadata: Metadata = { title: "사전 평가 (PQ) 목록", @@ -60,10 +65,11 @@ function getFormattedDate(date: Date | null) { }).format(new Date(date)); } -export default async function PQListPage() { +export default async function PQListPage({ params }: IndexPageProps) { // 캐시 비활성화 noStore(); - + const { lng } = await params; + const { t } = await useTranslation(lng, 'menu') // 인증 확인 const session = await getServerSession(authOptions); @@ -74,10 +80,10 @@ export default async function PQListPage() {

- 사전 평가 (PQ) 목록 + {t('menu.vendor.procurement.pq_new')}

- 요청된 사전 평가 목록을 확인하고 작성합니다. + {t('menu.vendor.procurement.pq_new_desc')}

@@ -139,11 +145,13 @@ export default async function PQListPage() {
-

사전 평가 (PQ) 목록

+

+ {t('menu.vendor.procurement.pq_new')} +

- 요청된 사전 평가 목록을 확인하고 작성합니다. + {t('menu.vendor.procurement.pq_new_desc')}

@@ -295,4 +303,4 @@ export default async function PQListPage() { ); -} \ No newline at end of file +} diff --git a/app/[lng]/partners/(partners)/rfq-last/page.tsx b/app/[lng]/partners/(partners)/rfq-last/page.tsx index a49ed648..5a64d4b2 100644 --- a/app/[lng]/partners/(partners)/rfq-last/page.tsx +++ b/app/[lng]/partners/(partners)/rfq-last/page.tsx @@ -15,6 +15,7 @@ import { searchParamsVendorRfqCache } from "@/lib/rfq-last/vendor-response/valid import { InformationButton } from "@/components/information/information-button" import { getVendorQuotationsLast,getQuotationStatusCountsLast } from "@/lib/rfq-last/vendor-response/service"; import { VendorQuotationsTableLast } from "@/lib/rfq-last/vendor-response/vendor-quotations-table"; +import { useTranslation } from "@/i18n" export const metadata: Metadata = { title: "견적 목록", @@ -22,11 +23,14 @@ export const metadata: Metadata = { }; interface IndexPageProps { + params: Promise<{ lng: string }> searchParams: Promise } export default async function IndexPage(props: IndexPageProps) { + const { lng } = await props.params; + const { t } = await useTranslation(lng, 'menu') const searchParams = await props.searchParams const search = searchParamsVendorRfqCache.parse(searchParams) const validFilters = getValidFilters(search.filters) @@ -41,7 +45,7 @@ export default async function IndexPage(props: IndexPageProps) {

- 견적 목록 + {t('menu.vendor.procurement.rfq_response')}

@@ -112,9 +116,9 @@ export default async function IndexPage(props: IndexPageProps) {
-

견적 목록

+

{t('menu.vendor.procurement.rfq_response')}

- 진행 중인 견적서 목록을 확인하고 관리합니다. + {t('menu.vendor.procurement.rfq_response_desc')}

@@ -190,4 +194,4 @@ export default async function IndexPage(props: IndexPageProps) {
); -} \ No newline at end of file +} diff --git a/app/[lng]/partners/(partners)/swp-document-upload/page.tsx b/app/[lng]/partners/(partners)/swp-document-upload/page.tsx index b97bc7fc..55073062 100644 --- a/app/[lng]/partners/(partners)/swp-document-upload/page.tsx +++ b/app/[lng]/partners/(partners)/swp-document-upload/page.tsx @@ -3,6 +3,7 @@ import { Skeleton } from "@/components/ui/skeleton"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import VendorDocumentPage from "./vendor-document-page"; import { Shell } from "@/components/shell"; +import { useTranslation } from "@/i18n" export const metadata = { title: "Document Search and Upload", @@ -31,11 +32,15 @@ function VendorDocumentSkeleton() { } export default async function DocumentUploadPage({ + params, searchParams, }: { + params: Promise<{ lng: string }> searchParams: Promise<{ [key: string]: string | string[] | undefined }>; }) { - const params = await searchParams; + const { lng } = await params; + const { t } = await useTranslation(lng, 'menu') + const resolvedParams = await searchParams; return ( @@ -43,15 +48,15 @@ export default async function DocumentUploadPage({

- SWP Document Submission + {t('menu.vendor.engineering.document_submission')}

{/* 메인 컨텐츠 */} }> - +
); -} \ No newline at end of file +} diff --git a/app/[lng]/partners/(partners)/tbe-last/page.tsx b/app/[lng]/partners/(partners)/tbe-last/page.tsx index 62a982c7..c8da944a 100644 --- a/app/[lng]/partners/(partners)/tbe-last/page.tsx +++ b/app/[lng]/partners/(partners)/tbe-last/page.tsx @@ -10,6 +10,8 @@ import { Skeleton } from "@/components/ui/skeleton" import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" import { Shell } from "@/components/shell" import { InformationButton } from "@/components/information/information-button" +import { useTranslation } from "@/i18n" + interface IndexPageProps { // Next.js 13 App Router에서 기본으로 주어지는 객체들 params: { @@ -20,8 +22,8 @@ interface IndexPageProps { } export default async function RfqTBEPage(props: IndexPageProps) { - const resolvedParams = await props.params - const lng = resolvedParams.lng + const { lng } = await props.params + const { t } = await useTranslation(lng, 'menu') // 2) SearchParams 파싱 (Zod) // - "filters", "page", "perPage", "sort" 등 contact 전용 컬럼 @@ -51,7 +53,7 @@ export default async function RfqTBEPage(props: IndexPageProps) {

- TBE 관리 + {t('menu.vendor.engineering.tbe')}

-- cgit v1.2.3