diff options
Diffstat (limited to 'lib/dolce/utils/code-translator.ts')
| -rw-r--r-- | lib/dolce/utils/code-translator.ts | 128 |
1 files changed, 73 insertions, 55 deletions
diff --git a/lib/dolce/utils/code-translator.ts b/lib/dolce/utils/code-translator.ts index efe2c3d9..0450c08e 100644 --- a/lib/dolce/utils/code-translator.ts +++ b/lib/dolce/utils/code-translator.ts @@ -4,6 +4,56 @@ * 코드 값을 다국어로 번역하고, 검색 시 번역된 텍스트도 매칭할 수 있도록 지원 */ +const B3_REGISTER_KIND_MAP: Record<string, Record<string, string>> = { + "APPR": { + ko: "승인 제출용 도면(Full)", + en: "For Approval(Full)", + }, + "APPR-P": { + ko: "승인 제출용 도면(Partial)", + en: "For Approval(Partial)", + }, + "WORK": { + ko: "작업용 입수도면(Full)", + en: "For Working(Full)", + }, + "WORK-P": { + ko: "작업용 입수도면(Partial)", + en: "For Working(Partial)", + }, + "CMTV": { + ko: "Comment", + en: "Comment", + }, +}; + +const B4_REGISTER_KIND_MAP: Record<string, Record<string, string>> = { + "RECW": { + ko: "Working 도면입수(GTT→SHI)", + en: "Working Dwg(GTT→SHI)", + }, + "RECP": { + ko: "Pre. 도면입수(GTT→SHI)", + en: "Pre. Dwg(GTT→SHI)", + }, + "SUBW": { + ko: "Working 제출용(SHI→GTT)", + en: "Working Submission(SHI→GTT)", + }, + "SUBP": { + ko: "Pre. 제출용(SHI→GTT)", + en: "Pre. Submission(SHI→GTT)", + }, + "CMTM": { + ko: "Mark-Up", + en: "Mark-Up", + }, + "CMTQ": { + ko: "TQ", + en: "TQ", + }, +}; + // B3 DrawingUsage 번역 export function translateB3DrawingUsage(code: string, lng: string): string { const translations: Record<string, Record<string, string>> = { @@ -34,30 +84,7 @@ export function translateB3DrawingUsage(code: string, lng: string): string { // B3 RegisterKind 번역 export function translateB3RegisterKind(code: string, lng: string): string { - const translations: Record<string, Record<string, string>> = { - "APPR": { - ko: "승인 제출용 도면(Full)", - en: "For Approval(Full)", - }, - "APPP": { - ko: "승인 제출용 도면(Partial)", - en: "For Approval(Partial)", - }, - "WORK": { - ko: "작업용 입수도면(Full)", - en: "For Working(Full)", - }, - "WORP": { - ko: "작업용 입수도면(Partial)", - en: "For Working(Partial)", - }, - "CMTV": { - ko: "Comment", - en: "Comment", - }, - }; - - return translations[code]?.[lng] || code; + return B3_REGISTER_KIND_MAP[code]?.[lng] || code; } // B4 DrawingUsage 번역 @@ -82,34 +109,7 @@ export function translateB4DrawingUsage(code: string, lng: string): string { // B4 RegisterKind 번역 export function translateB4RegisterKind(code: string, lng: string): string { - const translations: Record<string, Record<string, string>> = { - "RECW": { - ko: "Working 도면입수(GTT→SHI)", - en: "Working Dwg(GTT→SHI)", - }, - "RECP": { - ko: "Pre. 도면입수(GTT→SHI)", - en: "Pre. Dwg(GTT→SHI)", - }, - "SUBW": { - ko: "Working 제출용(SHI→GTT)", - en: "Working Submission(SHI→GTT)", - }, - "SUBP": { - ko: "Pre. 제출용(SHI→GTT)", - en: "Pre. Submission(SHI→GTT)", - }, - "CMTM": { - ko: "Mark-Up", - en: "Mark-Up", - }, - "CMTQ": { - ko: "TQ", - en: "TQ", - }, - }; - - return translations[code]?.[lng] || code; + return B4_REGISTER_KIND_MAP[code]?.[lng] || code; } // DrawingMoveGbn 번역 (B4 GTT) @@ -182,6 +182,25 @@ export function matchesTranslatedCode( return false; } +// 텍스트(ENM 등)로부터 코드를 찾는 함수 +export function findRegisterKindCode(text: string, drawingKind: "B3" | "B4"): string { + if (!text) return ""; + + const map = drawingKind === "B3" ? B3_REGISTER_KIND_MAP : B4_REGISTER_KIND_MAP; + + // 코드가 직접 들어온 경우 체크 + if (map[text]) return text; + + // 번역 텍스트와 매칭 + for (const [code, trans] of Object.entries(map)) { + if (trans.en === text || trans.ko === text) { + return code; + } + } + + return text; +} + // 옵션 목록 생성 (Select 컴포넌트용) export function getB3DrawingUsageOptions(lng: string) { return [ @@ -195,7 +214,7 @@ export function getB3RegisterKindOptions(drawingUsage: string, lng: string) { if (drawingUsage === "APP") { return [ { value: "APPR", label: translateB3RegisterKind("APPR", lng) }, - { value: "APPP", label: translateB3RegisterKind("APPP", lng) }, + { value: "APPR-P", label: translateB3RegisterKind("APPR-P", lng) }, ]; } else if (drawingUsage === "CMT") { return [ @@ -204,7 +223,7 @@ export function getB3RegisterKindOptions(drawingUsage: string, lng: string) { } else if (drawingUsage === "WOR") { return [ { value: "WORK", label: translateB3RegisterKind("WORK", lng) }, - { value: "WORP", label: translateB3RegisterKind("WORP", lng) }, + { value: "WORK-P", label: translateB3RegisterKind("WORK-P", lng) }, ]; } return []; @@ -237,4 +256,3 @@ export function getB4RegisterKindOptions(drawingUsage: string, lng: string) { } return []; } - |
