1. FTB Quets 모드란
모드팩에 퀘스트를 추가해 주는 모드이다. 내가 해본 모든 1.16.x 모드팩의 퀘스트는 이 FTB Quests 모드로 만들어졌다. 모드 제작자는 LatvianModder.
ㄴ모드팩을 했다면 흔하게 봤을 화면(Create: above and beyond)
위 내용을 사용자의 언어 설정에 따라 다른 언어로 표시하게 만드는 방법에 대해 알아보자.
2. 퀘스트 내용이 저장되는 방식
퀘스트의 데이터는 다음 폴더에 snbt의 확장자로 저장된다.
config\ftbquests\quests\
위 퀘스트(High Aspirations)는 overview.snbt 파일 내에 저장되어 있으며,
{
title: "High Aspirations"
icon: "create:andesite_alloy"
x: -11.5d
y: 0.0d
shape: "circle"
subtitle: "Chapter 1"
description: [
...(생략)
}
파일 내용은 위와 같다.
이제 퀘스트의 제목(High Aspiration)을 한글("원대한 포부")로 바꿔 보자. 물론 저 텍스트를 그대로 한글로 바꿔도 되지만, 그러면 라틴어로 언어설정을 한 경우에도 한글이 보이므로 한국어로 언어 설정을 한 경우에만 번역된 한국어가 보이게 해 보자.
3. 어떻게 바꾸는가?
먼저, snbt 파일의 텍스트 부분을 key로 치환해야 한다. 예를 들어, 위 사례의 맨 윗줄
title: "High Aspirations"
을
title: "{quest.overview.1.title}"
과 같이 바꾼다. quest.overview.1.title은 내가 임의로 만든 key이다.
그리고 다음과 같이 새로운 언어 파일(en_us.json, ko_kr.json)을 작성한다. 이 파일은
kubejs/assets/kubejs/lang/
폴더 안에 저장한다.
en_us.json은 퀘스트 텍스트의 기본값을 저장하기 위해 필요하다. 이 파일의 내용은 영어 사용자 뿐 아니라 key에 대한 대응값이 존재하지 않는 모든 언어 사용자에게 기본값으로 보여진다.
// en_us.json
{
"quest.overview.1.title" : "High Aspirations"
}
// ko_kr.json
{
"quest.overview.1.title" : "원대한 포부"
}
이제 한국어로 설정한 상태에서 퀘스트 페이지에 들어가면,
퀘스트의 제목이 "원대한 포부"로 번역되어 있는 것을 볼 수 있다.
동일한 방법으로 subtitle, description 등 모든 텍스트를 번역할 수 있다.
4. 문제점
모드 파일들의 경우 텍스트가 이미 "key:value" 형태로 만들어져 있고 value(텍스트)는 en_us.json 파일 안에 들어있어서 en_us.json을 토대로 ko_kr.json을 생성해서 수정하기만 하면 손쉽게 한글화를 할 수 있는것과 다르게,
대부분의 모드팩 제작자는 퀘스트 내용을 snbt 파일 내에 하드코드하고 있다. snbt 파일에 키를 집어넣고 텍스트 내용을 en_us.json으로 분리하는 방식을 사용하지 않고 있다.
때문에 한글화를 위해서는 snbt에 있는 영어 내용을 삭제하고 한글로 대체하거나,
(영어 하드코딩 -> 한글 하드코딩으로 교체하는 것)
그것이 싫다면 위에서 설명한 방법대로 snbt의 텍스트 부분을 key로 바꾸고 새로운 언어 파일(en_us.json, ko_kr.json)을 만들어야 한다.
두 방법 모두 모드팩 원본을 수정해야 하기 때문에, 모드팩이 업데이트 될 때 비슷한 과정을 또 거쳐야 되어 아주 불편하다는 단점이 있다.
5. 제 의견
퀘스트의 description에는 모드팩 제작자의 의도, 진행 팁, 뉴비를 위한 안내 등이 비교적 긴 텍스트로 들어가기 때문에 한글화의 이득이 크다고 생각한다.
오히려 모드의 아이템 이름같은 건 그냥 영어로 해도 큰 상관이 없다.
그러나 대부분 snbt 파일의 제작이 번역을 배제한 채로 만들어져서 아쉽다.
모드팩 제작자들이 snbt 파일을 하드코딩된 형태로 만드는 것이 아니라 key값만 집어넣고 텍스트는 en_us.json으로 빼주면 로컬라이제이션이 훨씬 쉬워질 것 같다.
'기타 모드' 카테고리의 다른 글
Observable (0) | 2023.10.18 |
---|---|
1.16.5 이하 버전의 구버전 포지 모드팩 실행시 에러가 발생하는 경우 (0) | 2023.05.31 |
1.16.4 모드팩에서 쉐이더 사용시 깨짐 방지(옵티파인, 아스트랄 소서리) (0) | 2021.01.20 |
BlockRenderer 모드 소개 (1) | 2020.10.18 |