이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.
VLM 기반 Rust OCR 번역기
VLM(비전-언어 모델)을 기반으로 한 Rust와 Slint로 구축된 실시간 화면 OCR 및 번역 도구입니다.
<img src="screenshot.png" alt="screenshot1" width="50%">
기능
- 현대적인 UI: 다크 모드, 글래스모피즘, 메인 제어 창에 Windows 11 Mica 배경 지원.
- 전환 가능한 오버레이: OCR 프로세스를 중단하지 않고 번역 상자를 숨기거나 표시할 수 있는 전용 토글 및 로직.
- 대화형 영역 선택: 마우스를 드래그하여 번역할 영역을 정확히 선택할 수 있습니다. Escape 키로 취소 가능.
- 자동 자동화: 영역을 선택하면 즉시 캡처 프로세스가 시작되어 결과를 바로 확인할 수 있습니다.
- 변경 감지: 화면 변경을 감지하여 불필요한 API 호출을 방지하는 지능형 로직.
- 사용자 정의 가능한 오버레이: 배경색, 텍스트 색상, 투명도 및 별도 텍스트 상자를 즉시 변경하여 취향에 맞게 조정할 수 있습니다.
- 텍스트 상자 모드 및 클릭 통과: 텍스트 상자 모드를 활성화하면 오버레이의 닫기 버튼이 숨겨지고 클릭 통과 상호작용이 활성화되어 캡처 영역 뒤에 있는 애플리케이션을 클릭할 수 있으면서도 번역 경계를 볼 수 있습니다.
- 동적 크기 조정: 선택한 영역 내에서 텍스트에 맞게 글꼴 크기가 자동으로 조정됩니다.
- 클립보드 동기화: 번역된 텍스트가 자동으로 시스템 클립보드에 복사되어 다른 곳에서 쉽게 사용할 수 있습니다.
- 다중 API 지원:
- Google Gemini: API 키는 Windows 자격 증명 관리자에 일반 자격 증명으로 저장되며
x-goog-api-key 헤더와 함께 전송됩니다.
- LMStudio / Ollama: OpenAI 호환 로컬 AI 엔드포인트와 함께 작동합니다. (기본값: unsloth/gemma-4-26b-a4b-it 또는 사용자 정의)
- 권장: gemma-4-26b-a4b (최상의 균형), gemma-4-31b-it (최고 품질), qwen3.5-9b (빠름)
- 더 빠른 응답을 위해 thinking 비활성화
- 외부 설정 파일:
gemini.txt: 현재 작업 디렉토리 또는 실행 파일 디렉토리에서 Google Gemini API 키를 자동으로 로드합니다. 값이 발견되면 Windows 자격 증명 관리자에 저장됩니다.
system_prompt.txt: 사용자 정의 번역 지침을 자동으로 로드합니다.
model.txt: LMStudio의 기본 모델 이름을 자동으로 로드합니다.
- 조정 가능한 창의성: Temperature 슬라이더(0.0 - 1.0)를 사용하여 번역 일관성과 창의성을 제어할 수 있습니다.
- 전역 단축키:
- Win + Alt + A: 영역 선택 트리거.
- Win + Alt + P: 번역 프로세스 시작 또는 중지.
사전 요구 사항
- Rust: Rust 설치
- C++ 빌드 도구:
windows-rs 및 slint에 필요합니다.
시작하기
📥 다운로드
릴리스 페이지에서 최신 버전을 다운로드할 수 있습니다.
수동 빌드
- 저장소를 클론합니다.
- (선택 사항) 현재 작업 디렉토리 또는 실행 파일 옆에
gemini.txt(API 키용) 및 system_prompt.txt(사용자 정의 지침용)를 생성합니다.
cargo run --release를 실행합니다. 또는 cargo build --release를 실행하여 바이너리를 생성합니다.
- 메인 창을 엽니다:
- 제공자(LMStudio 또는 Google Gemini)를 선택합니다.
- SELECT AREA를 클릭하고 번역할 영역(예: 자막)을 드래그하여 선택합니다.
- 캡처가 자동으로 시작됩니다. STOP 버튼으로 일시 중지하거나 Win + Alt + A로 영역을 다시 선택할 수 있습니다.
- Overlay 체크박스를 사용하여 실행 중에 번역 텍스트를 숨기거나 표시할 수 있습니다.
- Textbox 모드를 사용하여 번역을 별도의 드래그 가능한 창으로 이동할 수 있습니다.
🎨 사용자 정의
- 글꼴 크기 옆의 ▼ Style 버튼을 클릭하여 사용자 정의 옵션을 표시합니다.
- 배경색: 어두운, 밝은, 종이 같은 테마를 포함한 다양한 프리셋 중에서 선택할 수 있습니다. 선택한 색상이 강조 표시됩니다.
- 텍스트 색상: 선택한 배경에 대해 읽기 쉬운 대비 색상을 선택합니다.
- 투명도: 슬라이더를 사용하여 오버레이를 통해 원래 화면이 얼마나 보이는지 조정합니다. 변경 사항이 실시간으로 반영됩니다.
- 동적 크기 조정: 애플리케이션이 선택한 영역 내에서 내용에 맞게 글꼴 크기를 자동으로 조정합니다.
- 텍스트 상자 모드: 오버레이를 활성 상태로 유지하면서(10% 불투명도) 번역 결과를 별도의 크기 조정 가능한 창에 표시할 수 있습니다. 이 모드에서는 오버레이의 닫기 버튼이 숨겨지고 클릭 통과 상호작용이 활성화되어 캡처 영역 뒤에 있는 애플리케이션을 클릭할 수 있습니다.
프로젝트 구조
src/main.rs: 오케스트레이션, 이벤트 루프 및 UI 로직.
src/capture.rs: 화면 캡처 및 변경 감지.
src/api.rs: 다중 모드 AI 클라이언트(Gemini/OpenAI).
src/win_utils.rs: Windows 특화 UI 해킹(계층 창, 클릭 통과, Mica).
ui/main.slint: Slint용 현대적인 UI 정의.
라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.