NDC 홈페이지 링크
https://ndc.nexon.com/session/sessionView?sessNo=100007303
1. 클라이언트 수준에서의 대응
1) 개행 없는 언어 대응
- 생각보다 많은 언어가 띄어쓰기가 없다.
-> 런타임에 글자폭을 계산해서 개행하거나, 형태소 분석으로 공백의 폭이 0인 반각 공백을 미리 삽입하는 방법들을 생각해 볼 수 있다.
- 태국어는 띄어쓰기는 물론 물음표와 마침표도 없다!
2) 언어별 폰트
- 같은 한자라도 한/중/일 에서 쓰는 방식이 다른데, 유니코드상 코드 포인트가 동일하다!
- 때문에 언어별로 폰트를 다르게 써야한다.
(한국은 한자를 많이 사용하는 편이 아니라 발표자는 한글과 번체를 NotoSansCJK_tc로 같이 사용했다고 함)
- 한문이 들어간 폰트는 무겁기 때문에 필요할 때 로딩할 수 있게 하자.
- 러시아어 같은 언어는 번역시 텍스트양이 1.5배 정도 늘어난다.
3) 텍스트가 포함된 이미지 처리
- 말 그대로 최대한 넣지마라. 텍스트 영역으로 빼라.
4) 금칙어 적용 범위
- 모든 언어를 같은 금칙어를 사용하는 경우
-> 엉뚱하게 아랍어 금칙어에 한글 채팅이 금칙어로 걸린다.
- 언어별로 금칙어 분리
-> 다른 언어권이 같이 채팅할경우 한쪽만 금칙어가 걸린다.
5) 닉네임 관련 처리
- 보통 특수문자를 제외하는 경우가 많다. 하지만 특수문자의 범위가 어디까지인가?
- 입력중일때와 입력이 끝났을 때의 규칙이 다름에 주의하자. (천지인 대응)
2. 파일 포맷 선정
1) 파일 포맷 선정
- 작업용 포맷은 Json 추천
-> git이 line-by-line으로 인식하기 때문에 충돌 최소화
- 최종 포맷은 TSV, CSV, BSON 추천
-> Json은 구분자 때문에 용량낭비가 심하다.
2) 인코딩 이슈
- UTF-16 LE (유니코드)를 추천
-> 한중일 언어를 2Byte로 표현가능. (UTF-8은 3Byte)
- Git과 텍스트 편집기의 기본인코딩은 UTF-8 사용
- 편집기는 Visual Studio Code를 추천 (파일 인코딩 자동감지)
3) 부가정보 기록
- 화자 (화자와 대상에 따라 어투)
- 텍스트 순서 (정렬용 인덱스)
- UI 너비 (UI상 몇자까지 허용)
- 타겟 버전 (이번 패치에 포함?)
3. 개발환경 구축
1) 긴급 패치용 텍스트 분리
- 텍스트는 패치 직전까지 빈번하게 수정된다.
- 긴급패치를 할 수 있도록 미리 별도로 텍스트 분리
-> 전체텍스트는 에셋번들로 관리되지만, 버전관리 & 암호화 하지 않는 텍스트 패치를 하나 더 제공
2) 텍스트 포맷팅
- 한글 조사처리에는 KoreanFormatter를 사용
- https://github.com/tcaesvk/KoreanFormatInfo/blob/master/ConsoleApplication/Program.cs
- 단, 조사처리 부분도 번역하지 않도록 번역 요청전에 미리 협의해야한다.
4. 기타 글로벌 서비스 문제
1) 중국관련
- 액체류 표현 금지, 해골 금지
2) 일본관련
- 자금 결제법 관련
-> 동일 아이템을 구성시 보너스는 50%까지 가능
-> 다른 아이템 섞을 시, 보너스는 30%까지 가능
-> 보너스는 UI상 반드시 구분
-> 유료 주얼과 무료 주얼은 DB상 반드시 구분
'✈️ 일반 개발' 카테고리의 다른 글
소스트리 저장소 클론시 꺼짐 버그 (0) | 2022.12.31 |
---|---|
애드몹 : 광고 게재가 제한되었습니다 표시할 수 있는 광고의 수가 제한되었습니다. 자세히 알아보려면 정책 센터로 이동하세요. (3) | 2021.01.19 |
구글 설문지 + 이메일 알람 (0) | 2020.10.25 |
소스트리 git 대소문자 변경 인식시키기 (0) | 2020.08.24 |
GPGS unable to locate achievement 오류 (0) | 2020.01.27 |