2025/06/13

, ,

자작 5탄, Gemini API 기반 EPUB/TEXT 만능 번역기

🤖📖 메모장으로 열리는 건 다 번역한다! AICoding 5탄

AI와 함께하는 AICoding 그 대망의 다섯 번째 작품은 Text/Epub 문서 번역기다. 원래 목적은 자작 1탄인 SRT 자막 번역기와 구별되는 텍스트 전용 번역기를 만들려고 했는데, 프롬프트 기능을 추가해 놓고 보니 사실상 텍스트(txt) 기반의 모든 파일은 원본 형식을 유지한 채 번역이 가능한 만능 번역기가 되고 말았다. 한마디로, 메모장으로 열 수 있는 파일은 다 번역할 수 있다는 것. 역시 프롬프트 기반의 AI 번역기는 다재다능하다.

예를 들어, smi 형식의 자막(확장자는 txt로 변경)도 “원래 서식인 SAMI 형식을 유지하십시오”라고 프롬프트를 넣어주면, 말 그대로 SAMI 형식을 유지한 채 번역이 완료된다.

EPUB 번역 기능도 넣긴 했지만, 텍스트 번역에 비해 번역 시간도 더디고, EPUB 기본 구조를 유지하기는 하지만, 원본 구조를 그대로 유지하지는 못한다. 고로 EPUB을 텍스트로 변환한 후 번역할 것을 추천한다.

무료 API는 어디까지나 테스트, 소규모 프로젝트, 개인적인 학습 등을 위한 것이지 대량 번역을 위한 것은 아니다. 과도한 사용은 API가 차단될 수 있으며 전체 사용자에게도 악영향을 끼칠 수 있음을 명심하자. 대량 번역은 유료 API 결제!

✨ 주요 장점 ✨

  • New 품질 프리셋(퀄리티 프로파일) 기능 추가(v5)!
  • New 용어집 주입 기능 추가(v4)!
  • 강력한 Gemini API 활용: 최신 AI 모델인 Google Gemini를 통해 자연스럽고 품질 높은 번역 결과를 얻을 수 있음.
  • EPUB 및 TXT 파일 지원: 전자책 표준인 EPUB 파일은 물론, 일반 텍스트 파일(TXT)도 번역 가능.
  • 프롬프트 지원: 사용자가 직접 프롬프트를 입력하여 번역 스타일, 번역 대상 언어, 출력 형식(번역본만/원본+번역본 등)까지 세밀하게 제어 가능. 이로써 AI의 능력 최대 활용!
  • 다국어 UI 지원: 한국어와 영어 인터페이를 지원하며, 필요에 따라 다른 언어 UI도 쉽게 추가할 수 있는 구조.
  • API 키 관리: 여러 개의 API 키를 등록하고 자동으로 다음 키로 전환하여 안정적인 번역 가능.
  • 요청 지연 설정: API 요청 사이에 지연 시간을 두어 API 사용량 제한에 유연하게 대응.
  • 청크 크기 조절(TXT): TXT 파일 번역 시 한 번에 API로 보낼 글자 수를 조절하여, 긴 글도 효과적으로 분할 번역.
  • 자동 진행 저장(TXT): TXT 파일 번역 시 일정 간격 자동 저장.
  • 번역 완료 후 자동 절전(Windows): 번역 작업 후 자동으로 절전 상태로 전환.

⬇ EPUB/TEXT Translate 다운로드(업데이트: 2025/06/13) ⬇

다운로드: 🔗 테라 링크 / 🔗 픽팍 링크
┗ v4, v5 업데이트는 론 DeRossi님 작품!!!


자작 AI 코딩 시리즈
소설/책 AI 번역을 위한 맞춤 프롬프트 추천

🆕 v4 업데이트 내역 🆕

📜 펼쳐보기 📜

1. API 키 유효성 검사 (핑 테스트) 재활성화 및 개선

  • 번역 전 또는 API 키 첫 사용 시 간단한 "hello" 요청으로 유효성 검사 수행
  • 사용 방법:
    • 단일 API 키: 번역 시작 시 자동 검사 → 실패 시 오류 메시지
    • 다중 API 키: 각 키의 첫 번역 요청 전 검사
    • 타임아웃 설정(request_options) 적용됨

2. Gemini API 타임아웃 설정 방식 변경

  • client_options 대신 request_options={"timeout": seconds} 사용 (라이브러리 권장 방식)
  • 기본값:
    • 핑 테스트: 60초
    • 실제 번역: 180초
  • 사용자 조작 불필요

3. API 키 관리 로직 개선

  • collections.deque로 활성 키/무효 키 풀 분리 관리
  • 키 순환 및 재시도 로직 강화
  • 사용 방법:
    • 여러 API 키 파일에 등록 시 프로그램이 자동 순환

4. 로깅 및 오류 메시지 개선

  • 로그 메시지 명확화, 다국어 지원 메시지 업데이트
  • 사용 방법:
    • 로그 창/메시지 박스에서 상세 정보 확인 가능

5. 용어집 주입 기능 추가

  • 프롬프트 템플릿에 {{glossary_data}} 플레이스홀더 지원
  • 사용 방법:
    • 용어집 파일(glossary.txt)에 원본단어=번역단어 형식 작성
    • GUI에서 파일 경로 지정 후 프롬프트 템플릿에 플레이스홀더 포함
      (예: {{glossary_data}}
      다음 텍스트를 한국어로 번역해주세요: {{text_chunk}})

6. EPUB 시스템 파일 처리 명확화

  • .css, .js, .opf, .ncx 등 시스템 파일은 번역 제외 후 복사
  • 사용 방법:
    • EPUB 선택 시 HTML/XHTML 콘텐츠만 번역

7. GUI 핸들러 중복 추가 방지

  • 로그 메시지 중복 출력 방지를 위해 TextHandler 추가 전 중복 확인

※ 공통: 대부분의 기능은 자동 적용되며, 용어집 기능만 별도 설정 필요합니다.

🆕 v5 업데이트 내역 🆕

📜 펼쳐보기 📜

1. 품질 프리셋(퀄리티 프로파일) 기능 추가

v5에서는 사용자가 직접 온도(temperature), top_p, API 모델을 설정하는 대신,

  • FastestFlash, BalancedFlash, QualityFlash, Quality2_5사전 정의된 프로파일을 선택할 수 있게 되었습니다.
  • "Custom" 모드에서는 수동 설정도 가능.
  • GUI에 "Quality Preset" 드롭다운 추가됨.

2. 파라미터 설정값 범위 및 검증 로직 추가

  • 설정 항목별로 허용 범위 (SETTING_RANGES)를 도입해 유효성 검사 가능.
    • 예: request_delay: 0~60초, temperature: 0.0~2.0 등.
  • 유효하지 않은 값은 자동으로 교정되며, 관련 메시지가 GUI에 표시됨.

3. 새로운 하이퍼파라미터 설정 추가

  • temperature (창의성 조절)
  • top_p (nucleus sampling)
  • Gemini API에 대한 제어 수준이 향상됨.

4. EPUB 번역 중간 저장 및 복원 기능 개선

  • v5에서는 EPUB 번역 도중 중단되면 다음 실행 시 자동 복원.
  • 관련 파일:
    • "_progress" 폴더
    • "_progress_state.json"
    • ".html_translated_temp" 확장자 임시 파일

5. 실패한 번역 파트 별도 로깅

  • 실패한 청크 또는 EPUB 항목에 대해 별도 로그 파일 생성 (_failed_parts.txt)
  • GUI에서 사용자에게 경고 및 경로 제공

6. 코드 구조 및 안정성 개선

7. UI 텍스트 및 다국어 번역 갱신

📚 사용 방법 📚

Gemini API 기반 EPUB/TEXT 만능 번역기 사용법

1. Google Gemini API 키 준비: Google AI Studio 등에서 API 키를 발급받은 다음 API. txt 텍스트 파일에 발급받은 API 키를 한 줄에 하나씩 입력하여 저장(주석은 #으로 시작).

2. (프로그램 실행 후) UI 언어 및 Gemini API 모델 선택.

3. 번역할 EPUB 또는 TXT 파일 선택.

4. 번역된 파일이 저장될 폴더 선택(기본적으로 원본 파일 폴더로 지정).

5. API 키 파일 선택(기본적으로 같은 폴더의 API.txt 선택).

6. 요청 지연: API 요청 간격을 초 단위로 설정(API가 다수라면 2초 권장, 한 개라면 3초 이상 권장, 번역 분량에 따라 적절히 조절).

7. API 키 전환: 하나의 API 키로 몇 번 번역 요청하고 다음 키로 넘어갈지 결정(0이면 비활성화).

8. 청크당 최대 글자수(TXT): TXT 파일 번역 시 한 번에 처리할 최대 글자 수 설정(API 키가 다수라면 5000 추천).

9. 결과 파일 언어 태그: 출력 파일명에 붙을 태그 입력(예: Eng, Korean). EPUB의 경우, 2~3글자 ISO 언어 코드(예: en, ko, fr)를 입력하면 EPUB 메타데이터에도 반영됨.

10. 프롬프트 설정(고급): 이 부분이 매우 중요! 여기에 번역 대상 언어와 원하는 출력 형식을 직접 명시. 이때 ‘원본 텍스트 : {text_chunk}’ 플레이스홀더는 반드시 포함되어야 함(이 부분에 실제 번역할 텍스트가 들어감).

11. 자동 진행 저장(TXT만): TXT 파일 번역 시, 설정된 청크/항목 수마다 중간 결과를 저장.


프롬프트 예시: 미쓰다 신조의 '도조 겐야 시리즈'의 중국어판입니다.
이것을 한국어로 번역하세요.
번역된 텍스트만 제공하세요.
원래 형식을 유지하세요.

원본 텍스트:
{text_chunk}

⚠ 사용 시 주의 사항 ⚠

  • API 키 유출 주의: API 키는 개인 정보와 같으므로, 절대 공개적인 곳에 공유하거나 코드에 직접 하드 코딩하면 안 된다.
  • 무료 API 제한: Google Gemini 무료 API는 사용량에 따라 제한될 수 있다. 테스트 용도로만 사용하고 본격적인 작업은 유료 API 결제 추천.
  • 프롬프트의 중요성: 번역 품질과 형식은 사용자가 작성한 '번역 프롬프트 템플릿'에 크게 좌우된다. 원하는 결과를 얻기 위해 다양한 프롬프트를 실험하면서 최적의 프롬프트를 찾는 것이 중요하다({text_chunk} 플레이스홀더는 필수).
  • EPUB 파일 복잡성: EPUB 파일은 내부 구조가 다양하고 복잡하다. 이 프로그램은 일반적인 HTML 구조의 텍스트를 추출하여 번역하지만, 이미지 내 텍스트, 특수한 스크립트로 동적 생성되는 텍스트 등은 번역되지 않을 수 있다. 또한, 번역 후 레이아웃이 일부 변경될 수 있다.
  • 번역 품질 한계: AI 번역은 매우 발전했지만, 여전히 문맥에 따른 미묘한 오류나 어색함이 있을 수 있다. 중요한 문서의 경우 반드시 전문가의 검토를 거치는 것을 추천.
  • 모델 및 Safety Settings: Gemini API는 자체적으로 유해 콘텐츠를 차단하는 기능(Safety Settings)이 있어서 때로는 번역 내용과 관계없이 응답이 차단될 수 있고, 이 경우 로그에 관련 정보가 표시된다. 프로그램에서는 기본적으로 대부분의 차단을 해제하려고 시도하지만, API 정책에 따라 달라질 수 있다.

☕ 마치면서 ☕

모델에 따라 번역 시간이 다르다는 것

번역 품질의 경우 현재로선 gemini-2.5-flash-preview 모델이 단연코 뛰어나 보이고(pro 모델은 무료 API로는 접근이 안 되는 것 같음), gemini-2.0 모델의 번역 품질도 기존의 구글/파파고/카카오에 비하면 비교 불가 급이다. 다만 2.5 모델은 번역 속도가 매우 느리다는 것.

무료 API는 어디까지나 테스트, 소규모 프로젝트, 개인적인 학습 등을 위한 것이고, 지속적이고 안정적인 대량 처리를 보장하지는 않는다. 고로 꼭 읽고 싶은 텍스트가 있는데 한국어판이 없을 때 한 달에 1~2권 정도 번역하는 데 사용해야지, 그렇지 않으면 사용자의 API가 제한될 뿐만 아니라 무료 API 정책에도 영향을 끼쳐 모두에게 피해가 갈 수도 있다는 것 명심하자! 대량 번역이라면 유료 API를 결제하도록.

Related Posts:

0 comments:

댓글 쓰기

댓글은 검토 후 게재됩니다.
본문이나 댓글을 정독하신 후 신중히 작성해주세요