우리 게임이 일주일 만에 열네 가지 언어를 배운 이야기 🌍
2026년 8월 10일
시작할 때 Blocks Beyond the Stars는 딱 두 가지 언어를 썼어요. 우리가 사는 곳의 언어라서 독일어, 그리고 인터넷이 영어를 쓰니까 영어였죠. 오늘은 열네 가지를 써요. 어떻게 그렇게 됐는지, 그 과정에서 무엇이 망가졌는지 모두 들려 드릴게요. 🌍
시작은 Francesco였어요. 몇 주 전 이탈리아에서 풀 리퀘스트가 하나 왔어요. Francesco Quirino가 게임을 이탈리아어로 번역하기 시작한 거예요. 손으로, 그룹별로, 블록 이름 290개와 설명부터요. 그때 우리는 언어를 진지하게 다뤄야 한다는 걸 깨달았어요. 그때까지는 게임 텍스트의 절반이 번역조차 할 수 없었거든요. 서버 메시지 300개 넘게가 영어로 박혀 있었어요. 그래서 먼저 Francesco의 작업이 자리 잡을 곳부터 정리했어요.
그다음 불편한 질문이 왔어요. 언어 하나를 손으로 번역하려면 몇 주가 걸려요. 우리는 가족이지 현지화 스튜디오가 아니에요. 그래서 기계로 하되 제대로 하기로 했어요. 언어 파일을 조각으로 나눠 언어 모델이 번역하게 하고, 그다음 검사하는 작은 도구를 만들었어요. 빠진 문자열은 없는지, {0} 같은 자리표시자가 사라지지는 않았는지, 존재하지 않는 키를 지어내지는 않았는지요. 그러면 버려요. 도구가 믿을 만하게 돌아간 뒤에야 언어를 추가했어요. 네덜란드어, 브라질 포르투갈어, 폴란드어, 터키어, 그리고 러시아어, 우크라이나어, 중국어, 일본어, 한국어까지요.
단어보다 말투가 더 어려웠어요. 언어 모델은 기본적으로 공손하고 격식 있게 번역해요. 그런데 아이들 게임이 은행 편지처럼 말을 걸면 그냥 오싹해요. 그래서 언어마다 규칙을 정했어요. 네덜란드어 “je/jij”, 폴란드어 “ty”, 터키어 “sen”, 브라질어 “você”, 러시아어 “ты”, 일본어 です/ます, 한국어 해요체예요. 네덜란드어는 한 번 더 손봐야 했어요. 단어 첫머리의 IJ는 두 글자 모두 대문자라서 “Ijzererts”가 아니라 “IJzererts”거든요. 기계는 이걸 스스로 못 찾아요. 결과를 읽어야 찾아요.
그리고 빈 네모가 나왔어요. 러시아어 번역을 다 끝내고 게임을 켰더니 메뉴에 사각형만 가득했어요. 우리 글꼴 Rajdhani에는 키릴 문자가 아예 없었어요. 중국어, 일본어, 한국어는 정말 난감했어요. 완전한 CJK 글꼴은 약 16메가바이트예요. 세 배면 거의 50MB인데, 브라우저에서도 돌아가야 하는 게임에는 말도 안 돼요. 해결책은 언어마다 우리 텍스트에 나오는 글자만 담은 맞춤 서브셋 글꼴을 만드는 거였어요. 16MB가 800KB가 돼요. 50MB 대신 게임은 2MB만 커져요. 🔤
그래서 배운 것. 번역은 20%가 번역이고 80%는 나머지 전부예요. 문자열을 코드에서 꺼내는 일부터, 글꼴 찾기, 문장이 버튼에 들어가는지 확인하기(독일어도 길지만 러시아어는 더 길어요), 그리고 언어 파일이 불러와지기 전에 뜨는 오류 창까지 번역하는 일이에요. 그 마지막 메시지는 열네 번 직접 코드에 박아 넣어야 했어요. 이상하게 느껴지지만, 반드시 읽을 수 있어야 하는 단 하나의 메시지예요.
솔직하게 말하면, 첫 번역은 기계 번역이에요. 품질이 좋고, 빠짐없이 완성됐고, 검증도 했지만, 원어민이 읽어 보지는 않았어요. 번역가가 열네 명 있는 척하지 않고 일부러 이렇게 말씀드려요. 그래서 Francesco의 이탈리아어 작업도 한 글자도 바뀌지 않고 그대로 남아 있어요. 우리 도구는 빈틈만 채우고 사람이 한 번역은 절대 덮어쓰지 않아요. 사람이 다녀간 곳에서는 사람이 이겨요.
이 언어들 중 하나를 쓰신다면 수정해 주세요, 하나만이라도 정말 고마워요. 저장소에는 기여 방법을 차근차근 안내하는 번역 가이드가 있고, GitHub가 낯설다면 어떤 문장이 어색한지만 알려 주세요. 원어민은 5분이면 우리가 5시간 걸려 찾을 것보다 더 많이 찾아내요. 🌍✨
댓글