기술적인 부분인데요.
아랄트랜스에서 non-ShiftJIS 문자(한글 등)를 어떻게 게임내에 구현하는지 질문해도되나요?
VNR 내장번역(embedded translate)은 아랄트랜스처럼 게임 내에 번역을 구현하는 기능인데요.
VNR에서 ATcode도 쓸 수 있게 하는 것에 대해서 건의했는 데,
non-ShiftJIS 표기에서 막힌다고 하네요.
혹시 여기에 대해서 잘 아시는 분 계시나요?
====
Ehnd 플러그인, 꿀도르 사전 쓰세요. 번역률, 속도가 향상됩니다.
미래도
- 2015.03.22
- 02:25:32
답변감사합니다
일단 사진으로는 이렇습니다.
http://sakuradite.com/images/screenshots/remini_zht_font.jpg
실패
http://sakuradite.com/images/screenshots/remini_zhs.jpg
성공
아마도 추측하건데,
게임 그 자체를 실행한 체로 그냥 텍스트만 바꾸나봅니다.
UTF-16 게임에는 모든 언어가 지원되나,
SHIFT-JIS게임은 지원 못하는 거 보니..
음.. 일단 더 자세히 알아보고 다시 올리겠습니다. 감사합니다!
Wales
- 2015.03.22
- 00:52:56
정확하게 무슨 질문을 하시는지 감이 안오네요.
일단 atcode.dll은 번역기 특성상 shift-jis
<=>euckr만 가능해서 utf-8, unicode는 shift-jis로 변환후 변역과 필터 과정을 거친후
원래의 인코딩으로 변환합니다.
그리고 게임내에서 한글 출력은 shift-jis와는 다르게 한글코드 범위가 존재하기에 따로 한글 문자를 일본어코드 범위에
매핑하거나 하진 않습니다.
VNR 개발에 참여 하시는 분은 아니신거 같은데 귀찮더라도 atcode 변역 처리 부분과 문자매핑 소스를 분석하라고 권하시는게
좋을 듯 합니다.
whoami
- 2015.03.25
- 11:36:45
위의 도표를 보니 제대로 알고 계시는 것 같지만 정리를 다시 하자면,
번역 순서
1. 문자열을 게임에서 뽑아냅니다.
2. 유니코드계열인지 확인합니다.
2-1 유니코드계열이면 sjis 로 변환합니다.
3. 번역단에 넣어 번역합니다. (sjis->ksc5601)
4. 번역된 문자열을 변환할 필요가 있는지 확인합니다.
4-1. 원 문자열이 유니코드였으면 유니코드로 변환합니다.
4-2. sjis 이지만 encodekor이 켜져있으면 encodekor로 변환합니다.
5. 변환된 문자열을 다시 게임에 집어넣습니다.
출력 순서
1. 출력하려는 문자(열)을 가져옵니다.
2. 유니코드인지 확인합니다.
2-1. 유니코드이면 3.으로 넘어갑니다.
2-2. encodekor 이면 다시 ksc5601로 변환하고 2-3으로 갑니다.
2-3. ksc5601이면 유니코드로 변환합니다.
3. 유니코드 문자열을 출력합니다.
참고로 encodekor은 원 게임의 일본어 출력부분의 오작동을 막기 위하여 한글 코드를 일본어 코드에
맵핑시키는 것을 말합니다.
VNR에서 내장 번역기능이 도입되었나요?
출력 방식을 어떻게 처리 하였는지에 대한 정보부터 알고 싶습니다.
그래야 해결 방식을 알려드리니까요.
예를들면 중국어로 번역시 중국어가 게임내에 표기되는 출력 방식을 말이죠