지원 엔진 · Ren'Py
Ren'Py는 지배적인 파이썬 기반 비주얼 노벨 엔진으로, 인디 키네틱 노벨부터 장기 연재 성인 VN까지 모든 것에 쓰입니다. RuneTranslate는 세 가지 모드로 번역합니다: 소스 기반 프로젝트(game/**/*.rpy), 컴파일 전용 출시작(.rpyc, 번들된 unrpyc 사이드카로 디컴파일), 아카이브 전용 출시작(.rpa, 자동 난독화 키 감지가 있는 번들된 rpatool 사이드카로 언팩). say / 서술 / 메뉴 줄과 _() / __() / _p() UI 문자열을 추출합니다. 내보내기 시 대사와 메뉴는 런타임에 적용됩니다: 생성된 .rpy가 각 원본 줄을 game/rt_translations.json 맵과 내용으로 매칭(config.say_menu_text_filter)하고 게임의 언어를 여러분의 번역으로 강제합니다 — 의도적으로 Ren'Py의 네이티브 id 기반 tl/ 블록이 아닙니다. 그 id는 항상 재현될 수 없기 때문입니다. _() UI 문자열만 진짜 game/tl/translated/translation.rpy 블록으로 쓰입니다. 비라틴 대상의 경우, RuneTranslate가 CJK / 태국어 / 아랍어 지원 폰트를 번들하고 게임의 폰트를 config.font_replacement_map을 통해 라우팅해 번역된 텍스트가 절대 상자로 렌더링되지 않게 합니다. 아무것도 다시 패킹되지 않습니다 — 여분의 .rpy 파일과 JSON이 원본 옆 game/에 떨궈집니다. Supporter 등급 용어집과 짝지어 긴 VN에 걸쳐 캐릭터 이름과 대표 용어를 고정하세요.
Ren'Py VN은 캐릭터의 목소리로 살고 죽습니다 — 그리고 여주인공이 세 장면에 걸쳐 'Alice' / 'Aris' / 'Arisu'로 불리면 독자의 몰입이 빠르게 깨집니다. 모든 캐릭터 이름, 주인공의 별명 변형, 지명, 지어낸 세계 용어를 용어집으로 고정하세요. 마스크는 제공자에 구애받지 않으므로, 예산 실행을 위한 DeepL에 있든 대사 많은 본편 챕터를 위한 Claude에 있든 여러분의 용어가 똑같이 유지됩니다. 용어집 기초 →
RuneTranslate를 게임 실행 파일이 있는 폴더로 지정하세요. 엔진 감지가 프로젝트를 소스 기반(.rpy 존재), 컴파일(.rpyc만), 또는 아카이브(.rpa만)로 자동 분류합니다. 번들된 unrpyc와 rpatool 사이드카가 자동으로 실행됩니다 — Python 설치가 필요 없습니다.
대상 언어(지원되는 30개 이상 중 하나)와 제공자를 고르세요. Anthropic Claude와 OpenAI GPT-4o가 Ren'Py 대사에 가장 강한데, 통계적 MT보다 어조, 격식, 의성어를 더 잘 보존하기 때문입니다. DeepL은 긴 서술 서사에 탄탄한 2순위입니다.
RuneTranslate가 모든 번역 가능한 줄(대사, 선택 텍스트, 화면 라벨, UI 문자열)을 추출해 배치로 묶습니다. Ren'Py 특유의 태그([[player_name]], {color=#fff}…{/color}, {b}…{/b})는 번역 중 가려져 LLM이 그것을 불투명한 플레이스홀더로 취급하게 한 뒤 그대로 복원됩니다.
RuneTranslate가 game/에 몇 개의 작은 파일을 떨굽니다: rt_translations.json 맵과, 각 원본 줄을 런타임에 내용으로 매칭(config.say_menu_text_filter)해 언어를 여러분의 번역으로 강제하는 생성된 .rpy — 그래서 .rpa를 다시 패킹하지 않고도 대사와 메뉴가 번역되어 표시됩니다. _() UI 문자열은 game/tl/translated/translation.rpy로 가고, 대상에 필요할 때 CJK / 비라틴 폰트가 번들됩니다. 번역기를 다시 실행해도 손 편집한 줄이 보존됩니다.