메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

data가 전부 json으로 모여져 있어서 생각보다 쉽게 처리했습니다.


수정해야 할 건 rpg_managers.js 뿐입니다.


일단 변수 선언 부분에 적절하게 이걸 추가합니다.


var language = window.navigator.userLanguage || window.navigator.language;


이러면 language 변수에 현재 사용언어 코드가 들어옵니다.

참고로 한글은 ko입니다.


다음은 데이터 베이스 로드 부분을 수정해 줍니다.


DataManager.loadDatabase = function() {
    var test = this.isBattleTest() || this.isEventTest();
    var prefix = test ? 'Test_' : '';
    for (var i = 0; i < this._databaseFiles.length; i++) {
        var name = this._databaseFiles[i].name;
        var src = this._databaseFiles[i].src;
        if(language == "ko")
        {
            this.loadDataFile(name, prefix + src);
        }
        else
        {
            this.loadDataFile(name, "en/" + prefix + src);
        }

    }
    if (this.isEventTest()) {
        this.loadDataFile('$testEvent', prefix + 'Event.json');
    }
};


현재는 한국어/영어만 있다고 치고

한국어가 아닌 경우 무조건 영어 소스를 가져오게 했습니다.

영어 파일을 제대로 돌릴려면 data 폴더에 en폴더를 하나 만들고

json을 모두 복사한 뒤 한글을 전부 번역하면 됩니다.


마지막으로 맵 로드 부분을 수정해 줍니다.


DataManager.loadMapData = function(mapId) {
    if (mapId > 0) {
        var filename;
        if(language == "ko")
        {
            filename = 'Map%1.json'.format(mapId.padZero(3));
        }
        else
        {
            filename = 'en/Map%1.json'.format(mapId.padZero(3));
        }
        this.loadDataFile('$dataMap', filename);
    } else {
        this.makeEmptyMap();
    }
};


마찬가지로 한글(ko)일 때는 기본 맵을 로드해오고

아닌 경우는 en/ 폴더의 맵을 불러 옵니다.


이렇게 하면 언어에 따른 json을 불러와서 출력합니다.


actor_ko.pngactor_en.png

scene_ko.pngscene_en.png




json 파일에 언어만 있는 게 아니고 데이터도 있는지라

게임 제작 도중에 로컬라이징은 힘들겠고,

완성 후 한번에 번역하는 게 맞을 듯 합니다.

언어만 따로 파일을 뽑는 것도 가능하긴 하겠지만

그 작업량도 만만치 않을 듯 하고...

하지만 완성 후 계속 데이터 패치하거나 업데이트가 많을 거라면

텍스트만 따로 json으로 뽑는 걸 생각해보는 것도 좋을 듯 합니다.


아니면 특수문자를 이용해서 한 파일에 여러 언어 모두 때려박고 구분하는 방법도 있겠지만

이 경우 언어 수가 많아지면 보기 불편해질 듯.

List of Articles
번호 제목 글쓴이 조회 수 추천 수sort 날짜 최근 수정일
185 질문요.C++ [7] 질문자01 2729   2007-05-10 2008-04-03 05:32
도대체 파라미터가 뭔지 모르겠어요.  
184 [re] 혼돈님께 질문 혼돈 2048   2007-12-25 2008-03-17 04:37
옛날에 뼈대를 그려놓고 일단 게임을 만들자는 주의였는데 나중에 완성하고 나면 고치기도 귀찮고, 그 그래픽에 맞춰 만든 거라서 그냥 그대로 쓰게 되는 경우가 많았음. 그래서 그 다음부터는 처음부터 그래픽 소스를 제대로 준비한 뒤 시작하는 식으로 했습...  
183 Bootstrap4 container class가 적용된 div의 양 옆에 설정하지 않은 margin이 생김 노루발 5   2024-02-07 2024-02-07 14:25
문제: <div class="container"> TEST </div> 위와 같은 페이지를 브라우저에서 렌더링 시 div의 양 옆에 설정하지 않은 빈 margin이 생김. 해결: <div class="container-fluid"> TEST </div> margin을 0으로 주고 width를 100%로 주고 등등 별걸 다 해봤는데 ...  
182 express.js 세션 적용 후 리다이렉트 시 세션 적용이 제대로 안 되는 문제점 노루발 4   2024-02-07 2024-02-07 14:23
문제: logout.js router.get('/', (req, res) => { req.session.destroy(); res.redirect('/login'); }); login.js if (result[0] !== undefined) { // 로그인에 성공하였으므로 세션을 할당 req.session.uid = result[0].uid; req.session.us...  
181 illegal character 방지 [3] 노루발 22   2023-07-17 2023-07-19 16:14
문제점: 클라이언트 <-> 서버 통신을 하면서 다음과 같이 메세지를 주고받기로 함 패킷종류|파라미터1|파라미터2 예) MOTDREQ -> 서버에 MOTD를 요청 (파라미터 없음) MOTD|공지사항입니다 -> MOTD는 "공지사항입니다" 임 (파라미터 1개) MSG|김덕배|안녕하세...  
180 Lua-love2d TCP 통신 [1] 노루발 21   2023-07-14 2023-07-22 16:19
서버: Lua 클라이언트: Love2d(Lua) 서버 구동에는 luasocket 라이브러리가 필요하며, luarocks로 설치할 수 있음. 별도 패키지 관리자가 있는 리눅스 시스템에서는 apt-get install lua-socket 등의 패키지 관리자 명령어로 설치 가능하며 Windows에서 구동시...  
179 PHP로 웹게임 만드는 영상 [1] 노루발 353   2021-06-25 2022-01-28 03:40
Simple PHP Strategy Game - YouTube  
178 certbot을 이용한 HTTPS 인증서 발급 및 적용 노루발 18   2021-01-12 2021-01-12 16:57
snap 설치 및 업데이트 sudo snap install core; sudo snap refresh core certbot 설치 sudo snap install --classic certbot 심볼릭 링크 생성 sudo ln -s /snap/bin/certbot /usr/bin/certbot nginx에 맞춰 자동 설정 sudo certbot --nginx 알아서 다 해주기...  
177 Love2d 게임 안드로이드로 패키징하기 노루발 48   2021-01-11 2021-02-21 01:45
http://hondoom.com/zbxe/index.php?mid=study&document_srl=797993 버전이 바뀌면서 빌드 방법이 바뀌었기에 다시 정리한다. 1. Android studio 설치 https://developer.android.com/studio/index.html SDK 플랫폼 - Android 11.0 [API 30] SDK 버전 - An...  
176 자동화된 Lua 스크립트의 문서화 - LDoc 노루발 43225   2021-01-11 2021-01-11 11:53
다운로드 https://github.com/lunarmodules/LDoc penlight 설치가 필요 luarocks install penlight 프로젝트가 있는 폴더에서 아래의 명령행을 실행 lua /path/to/ldoc/ldoc.lua $* https://stevedonovan.github.io/ldoc/manual/doc.md.html 문서 코멘트라는걸...  
175 리캡챠 적용 [1] 노루발 11   2021-01-08 2021-01-11 12:15
XE 회원가입 시 구글 리캡챠 인증 추가하기 : 네이버 블로그 (naver.com)  
» RPG Maker MV 로컬라이징 방법 file 똥똥배 906   2015-10-27 2015-10-27 05:51
data가 전부 json으로 모여져 있어서 생각보다 쉽게 처리했습니다. 수정해야 할 건 rpg_managers.js 뿐입니다. 일단 변수 선언 부분에 적절하게 이걸 추가합니다. var language = window.navigator.userLanguage || window.navigator.language; 이러면 languag...  
173 김프로 이미지 맵 만들기 노루발 390   2015-11-11 2015-11-11 08:05
https://docs.gimp.org/en/plug-in-imagemap.html  
172 [번역] gamedev레딧의 Getting Started 문서 번역 [5] priling 1890   2014-12-26 2018-07-24 10:33
처음인 분들을 위한 '게임만들기' 가이드이 글은 [레딧 게임개발 커뮤니티의 /u/LordNed님의 포스팅]을 베이스로 작성한 것입니다. 이 글의 목적은 게임을 만들고 싶어하는 분들이 어떻게 시작할 수 있을지에 대해 명확한 가이드라인을 보여드리는 것입니다.  ...  
171 Love2d 안드로이드 게임 패키징하기 [3] 노루발 546   2014-12-15 2021-01-11 12:11
이 문서는 개발 환경이 갖추어져 있는 상태이고, 빌드를 무사히 마친 뒤라고 가정합니다. 또한 이 문서는 https://bitbucket.org/MartinFelis/love-android-sdl2/wiki/Game%20Packaging#markdown-header-how-to-package-the-apk-with-your-own-love-090-game ...  
170 Love2d 안드로이드 빌드하기 노루발 572   2014-12-15 2014-12-15 00:59
Love2d의 안드로이드 포트는 알파 단계입니다. 차차 개선되어 나가긴 하겠지만 아직 불안정한 부분이 많으며, 일어날 수 있는 오작동과 그로 인한 결과는 일절 책임지지 않습니다.   이 문서는 Windows 사용자 기준입니다. Linux나 Mac을 사용할 정도의 내공...  
169 Love2d 여러 플랫폼으로 빌드 자동화 노루발 470   2014-11-12 2014-11-12 17:35
https://github.com/MisterDA/love-release/blob/master/README.md http://www.ambience.sk/lua-love2d-game-distribution/  
168 구글 인앱 구매 Soomla로 구현해본 후 팁 똥똥배 577   2014-09-20 2014-09-20 18:45
1. 일단 알파 테스트라도 앱을 출시시켜야 인앱이 작동한다. 그리고 APK 업로드 후에 바로 인앱이 적용되지 않는다. 구글에 게시되는 데, 시간이 걸리므로 인앱 등록 - APK 등록을 마친 후 다음날부터 구현하는 게 깔끔하다. 이걸로 모르고 하루종일 왜 안되나...  
167 Love2d 게임 중간에 광고 표시 [1] 노루발 377   2015-11-12 2015-11-17 00:16
http://love2d.org/forums/viewtopic.php?f=11&t=81224  
166 cocos2d-x 2.2.2 문자열 출력 버그 [2] 똥똥배 601   2014-06-10 2014-08-23 22:35
cocos2d-x 2.2.2, 맥에서만 나타는 문제다. 윈도우, 안드로이드에서는 아무 이상 없다. 줄 수가 꽤 긴 문자열을 출력할 경우, 문자가 전부 다 나오지 않고 잘린다. 잘리는 기준은 줄이다. 문자 수가 어떻든 간에 줄 수에 따라서 잘려버린다. 아마 문자열의 줄 ...