공략 가이드 / 비하인드 스토리

저희 모바일 게임을 14개 언어로 번역한 방법

저희 안드로이드 게임을 14개 언어로 내놓기까지 필요했던 것: 텍스트 파일을 구성하는 방식, 복수형 규칙과 폰트가 중요한 이유, 계속 되풀이된 번역 실수, 유럽의 휴대폰에서만 생기는 버그, 그리고 14개 언어가 16개의 스토어 등록정보가 되는 이유입니다.

저희 게임 여섯 편은 모두 14개 언어로 완전히 번역되어 있습니다. 영어, 독일어, 스페인어, 프랑스어, 크로아티아어, 인도네시아어, 이탈리아어, 일본어, 한국어, 포르투갈어, 러시아어, 슬로베니아어, 튀르키예어, 중국어 번체입니다. 처음 네 게임인 Idle Ronin, Idle Summoner, Idle AI Factory, Block Brain에는 합쳐서 약 2,100개의 영어 텍스트가 있으며, Block Brain의 254개부터 Idle Ronin의 1,253개까지 각각 13번 번역되었습니다. Idle Restaurant: Miami와 ONI Snakes도 같은 14개 언어로 출시했습니다. 그 과정에서 필요했던 것과 다음에도 다시 할 것을 정리했습니다.

언어마다 텍스트 파일 하나, 맥락 포함

각 게임은 언어마다 단순한 텍스트 파일을 하나씩 둡니다. 항목 하나는 @로 표시한 영어 원문 줄과, 그 뒤에 =로 표시한 번역으로 이루어지며, 대부분의 항목에는 번역가를 위한 주석이 달려 있습니다. 다음은 Idle Summoner 영어 파일의 첫 번째 몬스터입니다.

# monster name with its number in the summon chain (1-55); names appear on small labels

@ {0}. Slime

이런 주석은 저희가 추가한 것 중 가장 쓸모 있었습니다. Idle Summoner의 영어 파일에는 텍스트 258개에 주석이 156개 있습니다. 텍스트가 작은 라벨에 표시된다는 것이나 {0}이 숫자라는 것을 아는 번역가는 단어만 보고 추측하는 번역가보다 실수가 훨씬 적습니다.

영어 텍스트 자체를 키로 쓰면 파일을 읽기 쉽지만 함정이 있습니다. 두 열에서 똑같은 텍스트라고 해서 반드시 영어로 남겨야 하는 이름은 아닙니다. Idle Ronin에서는 처음 1,185개 항목 중 약 680개가 영어 텍스트와 똑같았습니다. 영어로 남는 것은 진짜 고유명사뿐으로, 가디언 19명의 이름, 유닛 이름, 코스튬 12개가 그렇습니다. 저희 빌드 스크립트는 정확히 그것들을 잠급니다.

복수형 규칙은 선택이 아니다

영어에는 1 unit, 2 units의 두 가지 형태가 있습니다. 더 많은 형태를 가진 언어도 많고, 규칙도 저마다 다릅니다. 저희 Loc 코드는 Unicode CLDR 표의 정수 복수형 규칙을 따릅니다.

언어코드에서 쓰는 형태
영어, 독일어, 스페인어, 이탈리아어one, other
프랑스어, 포르투갈어one(0과 1), other
크로아티아어one, few, other
러시아어one, few, many
슬로베니아어one, two, few, other
튀르키예어, 인도네시아어, 일본어, 한국어, 중국어한 가지 형태

가장 의외인 언어는 슬로베니아어입니다. 2를 위한 별도의 형태가 있어서 “2 enoti”와 “5 enot”처럼 단어 모양이 달라집니다. 코드가 단수와 복수만 안다면, 이 언어들은 모두 어딘가에서 틀린 문법을 보여 주게 됩니다.

폰트: 빠진 줄도 몰랐던 글자

Idle Summoner의 텍스트 폰트는 Noto Sans KR Black을 줄인 사본이었고, 여기에는 č, š, ž, ć, 서유럽 악센트, 튀르키예어 글자, 중국어 번체가 없었습니다. 빠진 글자는 기기 폰트로 대체되거나 아예 표시되지 않았습니다. 그래서 표에서 쓰는 모든 글자를 넣어 폰트를 다시 만들고, 일본어용 Noto Sans JP와 중국어 번체용 Noto Sans TC를 추가했습니다. 게임의 픽셀 폰트로 된 라벨은 텍스트가 그 폰트에 있는 글자만으로 쓰일 수 있을 때만 그 폰트를 유지합니다.

폰트는 오해를 부르기도 합니다. Idle Ronin의 한국어 폰트에서는 대문자 N의 모양 때문에 ON과 OFF가 “OΠ”처럼 읽혔습니다. 그래서 이 스위치들을 한국어 단어 켜기와 끄기로 바꿨는데, 원래 이쪽이 더 잘 읽힙니다.

모든 언어에서 되풀이된 실수

어떤 방식으로 번역하든 첫 초안이 바로 쓸 만한 경우는 드뭅니다. 저희 초안은 거의 모든 언어에서 같은 몇 가지 실수를 되풀이했는데, 처음 잡아낸 것은 저희가 직접 한 슬로베니아어 검토였습니다.

  • 그래픽 설정인 “Particle”이 ‘효과’가 아니라 물리학 용어로 번역되었습니다.
  • 유닛의 추가 사본을 뜻하는 “Stack”이 영어로 남거나, ‘사본’이 아니라 ‘더미’로 번역되었습니다.
  • Treasure Chest라는 몬스터를 물리치는 퀘스트가 보물 상자를 부수는 퀘스트로 번역되었습니다.
  • 한두 단어만 들어가는 줄과 배지에 전체 길이로 번역된 텍스트가 들어갔습니다.
  • “FIGHT FLOOR {0}”에 불필요한 동사가 들어가 버튼이 너무 길어졌습니다.

그래서 어떤 언어든 바로 그 텍스트들을 뽑아 주는 검사기를 만들고, 번역을 시작하기 전에 그 목록을 건넵니다. 목록을 받고 번역한 두 언어는 수정할 것이 없었고, 목록 없이 번역한 언어들은 각각 약 6군데를 고쳐야 했습니다.

파일만이 아니라 화면을 확인하기

파일이 완벽해도 화면에는 영어가 남아 있을 수 있습니다. 저희의 테스트 방법은 이렇습니다. 게임을 다른 언어로 바꾸고, 화면에 보이는 텍스트를 모두 모은 뒤 영어 파일과 비교합니다. 여전히 영어인 것은 코드가 한 번도 번역하지 않는 라벨입니다. Idle Ronin에서는 이 확인으로 항상 보이는 OPEN 버튼과, 메뉴를 처음 열었을 때의 언어에 고정된 설정 버튼들을 찾아냈습니다.

그다음에는 실제 휴대폰 해상도에서 모든 것이 들어가는지 확인합니다. 저희는 가장 긴 언어들과 일본어, 한국어, 중국어, 러시아어로 모든 화면을 1080 x 2400에서 확인하며, 아무도 읽을 수 없을 만큼 글자를 줄이기보다는 텍스트를 짧게 줄이는 쪽을 택합니다.

유럽에서 저장 데이터를 망가뜨리는 쉼표

단어와는 전혀 상관없는 버그도 있습니다. 저희가 개발 중인 한 게임에서는 저장 데이터가 숫자를 쉼표로 이어 붙입니다. 유럽 대부분처럼 소수점을 쉼표로 쓰는 언어로 설정된 휴대폰에서는 7392.58이 7392,58이 되고, 이 여분의 쉼표가 숫자를 둘로 쪼개서 그 뒤의 모든 값이 한 칸씩 밀립니다. 영어로 테스트하는 개발자는 결코 볼 수 없습니다. 해결책은 시작할 때 숫자 형식을 인베리언트 컬처로 고정하는 코드 한 줄과, 이미 망가진 저장 데이터도 불러올 수 있게 하는 보호 장치입니다.

14개 언어, 16개의 스토어 등록정보

Google Play에는 스페인어가 스페인과 중남미용으로, 포르투갈어가 포르투갈과 브라질용으로 등록정보가 나뉘어 있습니다. 게임 안의 번역은 언어마다 하나지만, 스토어 문구는 시장마다 그 시장의 검색어로 따로 씁니다. 그래서 게임마다 16개의 등록정보가 생기고, 각각 제목, 간단한 설명, 자세한 설명, 스크린샷을 따로 가집니다. 저희 웹사이트도 같은 방식을 따르며, 사이트를 어떻게 만드는지는 별도의 글에서 설명합니다.

다음에도 다시 할 것

  1. 모든 텍스트에 맥락 주석을 다세요.
  2. 고유명사는 번역가의 머릿속이 아니라 빌드에서 잠그세요.
  3. 첫 번역이 도착하기 전에 복수형 규칙을 구현하세요.
  4. 표에서 쓰는 모든 글자가 폰트에 들어 있는지 확인하세요.
  5. 알려진 문제 텍스트 목록을 만들어 두고 미리 건네세요.
  6. 다른 언어로 화면을 훑으며 남은 영어를 찾으세요.
  7. 저장 데이터는 인베리언트 컬처로 쓰세요.
  8. 14개가 아니라 16개의 스토어 등록정보를 계획하세요.

결과가 궁금하신가요? Idle Ronin, Idle Summoner, Idle AI Factory, Block Brain, Idle Restaurant: Miami, ONI Snakes에서 언어를 바꿔 보세요. 모두 14개 언어를 전부 지원합니다.

출처

  • Unicode CLDR, Language Plural Rules.
  • ONI Games 게임 코드, 2026년 9월: Idle Summoner(Loc.cs, LocFonts.cs, Localization/Summoner/en.txt), Idle Ronin(Localization/Ronin), Idle AI Factory(Localization/AIFactory), Block Brain(Localization/Brain).

다른 가이드

모든 가이드
보스전 뒤 강제 광고를 없앤 이유

비하인드 스토리

보스전 뒤 강제 광고를 없앤 이유

광고는 몇 개인지보다 어디에 나오는지가 더 중요합니다. Idle Ronin의 보스전에 나오던 전체 화면 광고가 저희가 끄기 전까지 두 번 자리를 옮긴 이야기와, 지금 모든 게임에서 지키는 광고 규칙을 그 뒤의 코드와 함께 소개합니다.

가이드 읽기 →

◆ ONI Games의 다른 게임

다른 게임

밀어서 더 보기

ONI Snakes: Armored Arena
서비스 중 · Google Play

ONI Snakes: Armored Arena

라이벌 스네이크의 장갑을 쏴서 벗기고, 거대하게 자라 네온 아레나를 지배하세요. 11가지 모드를 온라인으로, 친구와 함께 즐길 수 있어요.

게임 살펴보기 →
Idle Ronin: Cyber RPG
서비스 중 · Google Play

Idle Ronin: Cyber RPG

마지막 사이버 로닌이 되어 네온빛 미래로 들어가세요. 몰려오는 메크를 베어 넘기고, 사이보그 부대를 결성하고, 네온 타워를 오르세요. 오프라인일 때도 칼날은 멈추지 않습니다.

게임 살펴보기 →
Idle Summoner: Pixel RPG
서비스 중 · Google Play

Idle Summoner: Pixel RPG

야수 군단을 소환하고, 지하 세계의 성들을 급습하고, 성장이 더딜 때마다 환생해 더 강해지세요.

게임 살펴보기 →
Block Brain: Block Puzzle Game
서비스 중 · Google Play

Block Brain: Block Puzzle Game

알록달록한 블록을 맞추고 줄을 지우며 콤보를 이어 가세요. 그동안 단짝 '브레인'이 작은 새싹에서 왕관을 쓴 천재로 자라납니다.

게임 살펴보기 →
Idle AI Factory: Robot Tycoon
서비스 중 · Google Play

Idle AI Factory: Robot Tycoon

유쾌한 로봇들로 가득한 공장을 운영하고, 모든 생산 라인을 자동화해 작은 AI 연구소에서 달 기지까지 성장하세요.

게임 살펴보기 →
Idle Restaurant: Miami
서비스 중 · Google Play

Idle Restaurant: Miami

해변의 작은 피자 가게를 마이애미의 네온 레스토랑 제국으로 키워 보세요. 매니저를 고용하고, 진짜 레시피 20가지를 모으고, 오프라인에도 돈을 벌어요.

게임 살펴보기 →