게임의 언어 맞춤화하기
게임은 작성자가 번역해 넣은 언어로 출시됩니다. 게임 편집기의 로케일 탭에서 당신은 그 문자열을 재정의하고, 번역을 고치고, 당신의 제품에 맞게 문구를 조정하고, 게임이 내지 않은 언어를 더할 수 있으며, 그 변경이 렌더링된 게임에 적용됩니다.
언어 맞춤화는 Alpha 요금제 이상(Alpha, Troop, Apex)에서 쓸 수 있습니다.
언어 문자열 설정하기
사이트 키(또는 팀)의 게임 페이지에서 게임을 열고, 그다음 로케일 탭을 여세요. 게임이 제공하는 각 언어는 프리셋이고, 각 프리셋은 이름 붙은 문자열 묶음(게임 내 라벨과 메시지)입니다. 바꾸고 싶은 문자열을 편집하세요; 나머지는 두면 게임의 번들 문구를 유지합니다.
로케일 필드는 늘 평이한 텍스트입니다. 단어 말고는 고를 것이 없습니다.
런타임에 언어가 고르는 방식
각 로케일 프리셋은 언어 태그(en, es, fr 등)를 지니고, 프리셋은 그 태그로 묶입니다. 하나를 고르는 일은 두 단계로 일어납니다.
먼저 위젯이 어떤 언어를 요청할지 정합니다:
- 페이지가 설정했다면, 위젯의
locale속성(명시적 작성자 의도). - 아니면, 방문자의 브라우저 언어(그들의 선호 언어 중 첫째).
- 아니면 아무것도 아니며, 서버가 게임의 기본값으로 물러납니다.
그다음 서버가 당신의 재정의를 병합한 뒤(사이트 키가 팀 위, 팀이 게임의 번들 묶음 위) 그 언어를 프리셋에 맞추며, 이 순서로:
- 정확한 태그 일치(
pt-BR이pt-BR프리셋을 찾음). - 기본 언어(
pt-BR이pt프리셋으로 물러남). - 당신이 기본값으로 표시한 프리셋.
- 게임의 첫 프리셋.
그래서 프리셋이 하나라도 있는 게임은 늘 진짜 텍스트를 렌더링하지, 결코 날 키를 렌더링하지 않습니다. 편집기에서 언어당 프리셋 하나를 기본값으로 표시합니다.
<caputchin-game> 요소에서는 인라인 locale 객체도 넘길 수 있습니다: 속성 값으로 쓰인 JSON 객체, 예를 들어 locale='{"start":"Go!"}'. 위젯은 그것을 그 마운트의 언어 신호로 서버에 보내고, 서버는 그것을 파싱해 해소된 프리셋 위에 층으로 얹으니, 당신의 인라인 문자열이 위 모든 것(당신의 팀과 사이트 키 재정의 포함)을 이깁니다. 그것은 당신 자신의 마크업의 속성이라, 어떤 요금제에서든 동작합니다. 체크박스 <caputchin-widget>은 인라인 로케일을 받지 않습니다; 그 locale 속성은 언어 태그나 프리셋 이름만 받습니다. 이 임베드별 작성이 왜 무료인지는 우리의 철학을 보세요.
텍스트 방향(왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽)은 언어 태그에서 자동으로 도출되니, 오른쪽에서 왼쪽 언어가 추가 설정 없이 올바르게 렌더링됩니다.
언어 더하거나 확장하기
게임이 내는 어떤 언어든 확장할 수 있습니다: 새 프리셋은 당신이 확장하는 것에서 모든 문자열을 물려받고, 당신은 바꾸는 것만 재정의합니다. 게임이 내지 않은 언어를 더하려면, 그 언어의 태그를 둔 프리셋을 만들고 문자열을 채우세요.
무엇이 적용되고, 어디서
언어 재정의는 서버에서 가장 구체적인 것이 이깁니다로 해소됩니다: 사이트 키 프리셋이 팀 프리셋을 이기고, 팀 프리셋이 게임의 번들 언어를 이깁니다. 방문자의 브라우저 언어가 그들이 보는 해소된 프리셋을 고릅니다.