summaryrefslogtreecommitdiff
path: root/lib/dolce/utils/code-translator.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dolce/utils/code-translator.ts')
-rw-r--r--lib/dolce/utils/code-translator.ts128
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 [];
}
-