← 기술 문서

언어 패키지 MOD

게임에 새 읽기 언어(한국어, 프랑스어…)를 추가하거나, 기존 언어의 UI 텍스트, 이름, 대사를 교체합니다. 번역하지 않은 부분은 직접 고른 대체 언어로 표시됩니다.

업데이트 2026-11-03

게임에는 일본어, 간체 중국어, 번체 중국어, 영어, 한국어의 다섯 가지 읽기 언어가 들어 있습니다. 언어 패키지는 여기에 언어를 하나 더 추가합니다. 설치하고 켠 다음 게임을 다시 시작하면 설정의 언어 메뉴와 언어 키(F7)에 나타납니다. 패키지가 번역하지 않은 UI 텍스트, 이름, 대사는 직접 고른 대체 언어로 표시되며, 대체 언어에도 없으면 일본어 원문이 표시됩니다.

기존 언어만 바꾸는 패키지도 만들 수 있습니다. 예를 들어 다른 영어 번역을 넣을 수 있습니다.

패키지 설치와 관리는 MOD 패키지: 설치와 제작에서 설명합니다. 0.5.3 이상이 필요합니다.

패키지에 들어가는 것

yourname.korean/
  mod.json
  dialogue/ko/language.json      언어 선언(새 언어에는 필수)
  dialogue/ko/terms.json         UI 텍스트와 이름
  dialogue/ko/story/…            스토리 대사
  dialogue/ko/battle/…           전투 대사
  dialogue/ko/fonts/…            글꼴(기본 글꼴에 그 문자가 없을 때)
  art/ko/scene-images/…          이 언어용으로 교체하는 그림(선택)
  art/ko/plates/…                세계 지도 이름판(선택)

ko는 언어 코드이며, 폴더 이름은 language.json에 적은 것과 같아야 합니다. 사용하는 것만 넣으면 됩니다. 번역하지 않은 대사 파일과 교체하지 않는 그림은 빼도 됩니다.

완전한 예시인 “한국어 (1화 데모)”의 소스는 config/recomp/mods/lang.ko에 있습니다(한국어는 이제 게임에 내장되어 있으므로 이 패키지 자체는 더 이상 내려받을 수 없습니다). 리얼로봇 남자 주인공 루트 첫 스테이지의 스토리 대사와 전투 대사, 그리고 모든 UI 텍스트가 한국어이며, 나머지는 영어로 표시됩니다.

만들기

도구는 소스 저장소에 있으며 Python 3이 필요합니다.

1. 기존 언어 하나를 바탕으로 출발점을 내보냅니다

python3 tools/mods/language_template.py --locale ko --name 한국어 --fallback en --id yourname.korean -o korean-source

대체 언어(여기서는 영어)의 텍스트를 모두 위와 같은 구성으로 korean-source에 씁니다. 모든 UI 텍스트와 이름은 terms.json에, 모든 대사 파일은 dialogue/ko/ 아래에 들어가고, mod.json과 language.json도 채워집니다. --id는 패키지의 고유 이름이며 “제작자.이름” 형식으로 씁니다. 배포한 뒤에는 바꾸지 마세요.

2. 번역합니다

terms.json과 대사 파일의 대체 언어 텍스트를 아래 각 절의 규칙에 따라 여러분의 언어로 바꿉니다. 번역하지 않은 항목은 남겨 두어도 지워도 됩니다. 패키지에 없는 부분은 게임이 대체 언어로 표시합니다. 일부만 번역해도 제대로 동작하는 패키지이며, 예시도 첫 스테이지만 번역했습니다.

3. 글꼴과 이름

기본 글꼴에 그 문자가 없다면 글꼴 파일을 dialogue/ko/fonts/에 넣고 language.json의 fonts에 적습니다. mod.json에는 제작자와 라이선스를 채워 넣습니다(MOD 패키지 참고).

4. 검사하고 묶습니다

python3 tools/mods/validate.py korean-source
python3 tools/mods/pack.py korean-source -o build/mods

validate.py는 파일 구조, 언어 코드, 글꼴, 모든 필드를 게임의 규칙대로 검사합니다. pack.py는 yourname.korean-0.1.0.srw64mod를 만들고 한 번 더 검사합니다. 제어 코드와 대사 페이지가 원작과 맞는지는 ROM이 있어야 하므로 게임 안에서만 확인할 수 있습니다. 로그에서 SRW64_MOD_LANGUAGE_PROBLEM을 찾아보세요. 사용자 폴더의 dialogue/dialogue-report.txt에는 문제가 있는 대사 레코드가 모두 나열됩니다.

5. 설치하고 언어를 고릅니다

다른 MOD처럼 설치한 뒤(컴퓨터에서는 게임 창에 끌어다 놓습니다. Android에서는 Documents/Marchwind64/mods에 넣거나 MOD 페이지의 파일에서 설치를 사용합니다) 게임을 다시 시작하고, 설정의 언어 메뉴나 언어 키(F7)로 언어를 고릅니다. 선택은 기억되어 다음 실행도 그 언어로 시작합니다.

작업하면서 바로 확인하기: 작업 중인 대사 파일을 사용자 폴더의 dialogue/ko/에 넣으면 패키지보다 우선합니다. 게임에서 F5를 눌러 다시 불러오면 현재 대사에 새 텍스트가 바로 표시됩니다. 작업이 끝나면 패키지에 다시 복사하세요. 전투 대사는 해당 스테이지까지 플레이하지 않고 타이틀 화면의 전투 뷰어에서 가장 빨리 확인할 수 있습니다.

저장소의 docs/guide/language-mods/ 폴더에는 번역 절차, 규칙 체크리스트, 한국어 데모에서 쓴 용어집이 있습니다. AI 어시스턴트에게 건네 그것을 기준으로 번역하게 할 수 있습니다.

language.json

{
  "schema": "srw64.language.v1",
  "locale": "ko",
  "name": "한국어",
  "fallback": "en",
  "fonts": { "text": ["fonts/MyGothic.ttf"], "title": "fonts/MyBrush.ttf" }
}
필드 의미
locale 언어 코드. ko, fr, pt-BR, es-419처럼 씁니다. ja, zh-Hans, zh-Hant, en은 쓸 수 없습니다
name 언어 메뉴에 나오는 이름. 그 언어 자체로 쓰며 24자 이내
fallback 선택. 패키지에 텍스트가 없는 곳에 표시할 언어: ja, zh-Hans, zh-Hant, en. 기본값은 en
fonts.text 선택. 본문과 UI 글꼴. 최대 4개이며 대체 언어의 글꼴보다 앞에 놓입니다
fonts.title 선택. 챕터 타이틀 카드의 글꼴

조판은 대체 언어를 따릅니다. 영어를 대체 언어로 쓰는 언어는 단어 사이에 공백을 두고 공백에서 줄을 바꿉니다. 중국어나 일본어를 대체 언어로 쓰는 언어는 그 언어처럼 조판합니다. 한국어나 프랑스어처럼 단어를 공백으로 구분하는 언어는 en을 고르세요.

글꼴은 fonts/에만 넣으며, .ttf 또는 .otf, 파일당 최대 32MB입니다. 기본 글꼴에는 라틴 문자가 들어 있으므로 프랑스어나 스페인어에는 별도 글꼴이 필요 없습니다. 한국어, 태국어 등 기본 글꼴에 없는 문자는 글꼴 파일이 있어야 하며, 없으면 글자가 표시되지 않습니다. 글꼴의 라이선스는 패키지와 함께 재배포하는 것을 허용해야 합니다.

terms.json: UI 텍스트와 이름

{
  "schema": "srw64.language-terms.v1",
  "ui": { "title_start": "시작" },
  "entries": { "base:t00_00000": "평지<END>" }
}
  • ui: UI 텍스트. 게임에 들어 있는 언어와 같은 키를 씁니다(템플릿에 모두 들어 있습니다). {A}(버튼)나 {n}(숫자) 같은 표시는 그대로 두세요. 표시가 빠지거나 늘어난 문구는 사용되지 않습니다.
  • entries: 캐릭터, 기체, 무기의 이름, 지형, 특수능력, 시스템 메시지 등 레코드 0–5643. <BR>(줄바꿈), <STOP>(페이지 넘김), <END>(끝) 같은 제어 코드는 원작과 맞아야 합니다. 항목은 문자열이거나 {"text": "…", "ja": "…"}입니다. ja는 참고용 일본어 원문이며 게임은 읽지 않습니다(ROM의 텍스트 내보내기가 있으면 템플릿이 채워 줍니다).
  • 무기 메뉴 이름(格이나 射로 시작하는 entries)은 첫 글자를 그대로 두세요. 게임은 이를 격투 또는 사격 아이콘으로 표시합니다.
  • 빠진 항목은 대체 언어의 것이 표시됩니다.

대사

스토리와 전투 대사, 텍스트 페이지(오프닝, 엔딩)는 플레이어가 대사를 고칠 때 쓰는 파일과 같은 형식의 일반 텍스트입니다. 저장소의 대사 텍스트 형식을 참고하세요. 파일은 dialogue/ko/ 아래 어디에 두어도 되며, 블록 하나에 레코드 하나를 씁니다.

@17410 로렌스
“아가씨, 차가 준비되었습니다. 오늘은 러시안 티입니다.
---
어디로 가져다 드릴까요?”

페이지(---), 선택지 개수, {HeroName} 같은 이름 자리 표시자는 원작과 맞아야 합니다. 맞지 않는 레코드는 제외되고 대체 언어의 것이 표시됩니다. 플레이어 자신의 대사 폴더에도 ko/를 둘 수 있으며, 패키지보다 우선합니다.

언어별 그림

그 언어로 읽는 동안 다음 그림은 패키지에서 가져옵니다.

  • art/ko/scene-images/<file>: 장면 그림. 예를 들어 타이틀 화면의 로고는 art/ko/scene-images/title-logo.png입니다. 파일 이름은 HD 팩의 것과 같으며, HD 팩이 설치되어 있어야 합니다.
  • art/ko/plates/<number>.png: 세계 지도에 나오는 함선과 장소의 이름판. 번호는 기본 이름판 파일 이름에서 .plate.ja.png를 뺀 것(5590, 5599.6)이며, 크기는 기본 이름판과 같아야 합니다. 빠진 이름판은 HD 팩에 그 언어의 이름판이 있으면 그것을 쓰고(HD 팩은 다음 버전부터 한국어 이름판을 담습니다), 없으면 대체 언어의 것을 씁니다.

다른 패키지 속의 언어

언어 패키지를 설치하면 다른 MOD도 그 언어로 된 텍스트를 가질 수 있습니다. mod.json의 이름과 설명, 캠페인의 이름과 챕터 제목, 이름 MOD, 곡명 등입니다. 빠진 것은 대체 언어를 따라 표시됩니다.

참고 사항

  • 언어 패키지를 켜거나 끄거나 업데이트하면 게임을 다시 시작한 뒤에 적용됩니다. 사용 중인 언어를 끄거나 제거하면 다음 실행 때 시스템 언어로 돌아갑니다.
  • 한국어(ko)는 공백과 문장 부호에서만 줄을 바꾸며, 단어 중간에서는 바꾸지 않습니다.
  • 줄바꿈에 사전이 필요한 언어(태국어, 라오어, 크메르어, 버마어)는 공백에서만 줄을 바꿉니다. 오른쪽에서 왼쪽으로 쓰는 문자(아랍어, 히브리어)는 아직 지원하지 않습니다.
  • 문제가 있는 언어 패키지는 언어 메뉴에 나타나지 않으며, 이유는 게임 로그(SRW64_MOD_LANGUAGE_PROBLEM)에 남습니다. 배포하기 전에 tools/mods/validate.py로 패키지를 검사하세요.