# DeepL CSV Translation

이 디렉토리는 CSV 기반 다국어 번역 작업을 위한 스크립트와 입출력 파일을 관리합니다.

## 구성

- `cvs/`: 번역할 원본 CSV 파일
- `glossary/`: DeepL glossary 생성에 사용하는 TSV 파일
- `output/all/`: 파일명 기준 최신 번역본 저장 위치
- `output/YYYYMMDDHHMMSS/`: 실행 시점별 번역 결과 보관 위치
- `../script/deepl.py`: DeepL API를 사용해 CSV를 번역하는 실행 스크립트

## 동작 방식

기본 동작은 다음과 같습니다.

1. 입력 CSV 파일 또는 디렉토리를 읽습니다.
2. `--renew`가 없으면 `output/all/` 아래 같은 파일명의 최신 번역본을 먼저 찾아 재사용합니다.
3. 번역 결과를 이번 실행 전용 디렉토리 `output/YYYYMMDDHHMMSS/`에 저장합니다.
4. 같은 결과 파일을 `output/all/`에도 복사해 최신본으로 유지합니다.
5. 기본 출력 인코딩은 `UTF-8 with BOM`입니다.

## 사용 예시

전체 디렉토리 번역:

```bash
cd /home/ubuntu/springtime-server
python3 ./script/deepl.py --file /home/ubuntu/springtime-server/translate/cvs --renew
```

단일 파일 번역:

```bash
cd /home/ubuntu/springtime-server
python3 ./script/deepl.py --file "/home/ubuntu/springtime-server/translate/cvs/CommonUI Text.csv"
```

BOM 없이 저장:

```bash
cd /home/ubuntu/springtime-server
python3 ./script/deepl.py --file "/home/ubuntu/springtime-server/translate/cvs/CommonUI Text.csv" --no-bom
```

이전 번역을 무시하고 강제 재번역:

```bash
cd /home/ubuntu/springtime-server
python3 ./script/deepl.py --file /home/ubuntu/springtime-server/translate/cvs --renew
```

백그라운드 실행 후 로그 저장:

```bash
cd /home/ubuntu/springtime-server
nohup python3 ./script/deepl.py --file /home/ubuntu/springtime-server/translate/cvs --renew > deepl.log 2>&1 &
```

## 주요 옵션

- `--file`, `-f`: 번역할 CSV 파일 또는 CSV 디렉토리 경로
- `--previous_output`, `-p`: 이전 번역 재사용 소스를 직접 지정할 때 사용
- `--renew`, `-r`: 기존 번역과 최신본 캐시를 무시하고 전체 재번역
- `--no-bom`: 출력 CSV를 `UTF-8 with BOM` 대신 `UTF-8`로 저장

## Glossary 주의사항

`glossary/` 아래 TSV 파일은 비어 있지 않은 각 줄마다 탭 문자가 정확히 1개 있어야 합니다.
형식이 잘못되면 DeepL glossary 생성이 실패할 수 있습니다.

## 결과 확인

최신 번역본은 항상 `output/all/` 아래에서 확인할 수 있습니다.
실행 이력별 보관본은 `output/` 아래 타임스탬프 디렉토리에서 확인할 수 있습니다.
