바야흐로 글로벌 시대입니다.
사실 세계화는 한참 전에 이루어졌지만요.
인터넷이 발달하고 정보의 이동이 자유로워지며 전 세계가 전자 세상을 통해 교류할수 있는 세상이 되었습니다.
비단 게임 뿐만 아니라 여러 매체가 외국어를 지원해야 하는 상황이죠.
만약
'A 수치를 B에서 C까지 증가시킵니다.' 라는 텍스트를 영어로 옮긴다면
'Increase the value of A from B to C.' 정도가 되겠네요.
만약 위 문장의 ABC 수치를 스크립트에서 동적으로 할당해야 한다면 어떻게 할까요?
String.format을 모르는 사람이라면
string str = $"{A} 수치를 {B}에서 {C}까지 증가시킵니다";
라는 수식을 사용할지도 모릅니다.
그러나 이러한 경우 타 언어로 번역하는 과정이 결코 순탄할 수 없을 것입니다.
String.format을 사용하면 다음과 같은 수식으로 대체할 수 있습니다.
int A = 0, B = 0, C = 0;
string str = string.Format("{0}수치를 {1}에서 {2}까지 증가시킵니다.",A,B,C);
String.Format을 사용하면 더욱 안전하게 텍스트에 동적 값을 삽입할 수 있습니다.
int A = 0, B = 0, C = 0;
string str = string.Format("Increase the value of {0} from {1} to {2}.", A,B,C);
또한 위 코드처럼 타 언어에 대응한 호환성도 챙길수 있습니다.
int LanguageCode = 0;
string text_kr = "{0}수치를 {1}에서 {2}까지 증가시킵니다.";
string text_en = "Increase the value of {0} from {1} to {2}.";
int A = 0, B = 0, C = 0;
string str = string.Format(LanguageCode==0?text_kr:text_en, A,B,C);
미리 준비된 언어별 텍스트를 불러오기만 하면 원하는 위치에 원하는 값을 삽입할 수 있습니다.

본인의 경우 해당 게임의 영문 버전 텍스트를 제작하며 ID에 대응하는 값을 불러와 string.Format으로 각종 수치를 동적 할당하는데 매우 유용하게 사용했습니다.
'C#,Unity' 카테고리의 다른 글
| Unity UI - 화면을 벗어나지 않은 UI 만들기 (0) | 2024.05.08 |
|---|---|
| Unity - 오디오 싱글톤으로 사운드 관리한 기록 (0) | 2024.05.07 |
| Unity UI - 스크롤을 넣어주는 Scroll View 사용하기 (0) | 2024.05.06 |
| Unity UI - 깔끔한 사이즈 변경을 도와주는 Image Type (0) | 2024.05.06 |
| Unity UI - 이미지 영역을 제한해주는 Mask (0) | 2024.05.04 |