동적 콘텐츠를 자동으로 번역하기

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

표준 번역 워크플로우는 플레이어가 게임에서 문자열을 보는 빈도를 기반으로 문자열을 감지하고 이를 번역을 위한 로컬라이제이션 테이블에 추가합니다. 이는 파일 문자열 및 플레이어에 의해 생성된 텍스트 등 덜 일반적인 문자열을 놓칠 수 있습니다. 텍스트 API를 사용하여 이러한 문자열을 실시간으로 번역하여 게임이 완전히 로컬라이즈되도록 할 수 있습니다.

플레이어의 언어로 텍스트 번역하기

텍스트를 플레이어의 언어로 번역하려면 Player.LocaleId를 대상 언어 코드로 전달하십시오. 아래는 클라이언트 스크립트에서 플레이어의 로케일 ID를 가져온 다음 이를 Script에 전달하여 번역 요청을 만드는 방법 예시입니다.

  • 번역 API는 Open Cloud API입니다. 따라서 요청을 하려면 경로가 필요합니다. 이 경우, 게임 타일의 오버플로우 메뉴에서 찾을 수 있는 유니버스 ID가 필요합니다. Creator Hub.
  • 또한, Open Cloud 클라이언트 패키지를 게임에 포함해야 합니다. 서버 스크립트에서 필요합니다.
클라이언트 스크립트

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- 번역할 텍스트
local textToTranslate = "이것은 번역할 예시 텍스트입니다."
-- 플레이어의 로케일 가져오기
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- 로컬 플레이어의 로케일을 위한 로케일 ID 가져오기 또는 지원되는 로케일 문자열로 설정
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("번역된 텍스트: ", translatedText)
ServerScriptService의 서버 스크립트

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- https://create.roblox.com/dashboard/creations에서 게임 타일의 오버플로우 메뉴에서 찾을 수 있습니다.
local universeID = <your_universe_id>
-- RemoteFunction 생성
local remoteFunction = Instance.new("RemoteFunction")
remoteFunction.Name = "TranslateTextFunction"
remoteFunction.Parent = ReplicatedStorage
remoteFunction.OnServerInvoke = function(player, text, locale, uni)
print(player.Name .. "이(가) 다음 텍스트의 번역을 요청했습니다: " .. text .. "에 대한 로케일: " .. locale)
-- 번역 요청 준비
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- 대상 언어 코드에 대해 다수의 로케일 목록을 지원합니다.
-- 여기서는 하나의 언어만 전달하고 있습니다:
-- 로컬 스크립트에서 가져온 플레이어 로케일
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- assuming translations[locale]가 번역된 텍스트를 포함하고 있다고 가정합니다.
else
return "오류: " .. result.Error.message
end
end

테스트

실시간 번역 API는 현재 RCC 인증만 지원합니다. 따라서 Studio에서 API를 테스트하기 위해 코드를 테스트 인스턴스로 배포해야 합니다. 협업 테스트를 사용하여 스크립트를 테스트 인스턴스로 배포하고 변경 사항을 테스트하십시오.

번역 API 참조

API 요청 매개변수

매개변수 이름유형설명
pathstring유니버스의 경로. 필수입니다.
textstring번역할 텍스트. 필수입니다.
source_language_codestring입력 텍스트의 언어를 나타내는 IETF BCP-47 언어 코드입니다. 제공하지 않으면 시스템이 자동으로 소스 언어를 감지합니다.
target_language_codesArray<string>번역을 위한 IETF BCP-47 형식의 대상 언어 코드 목록입니다.

API 응답 필드

필드 이름유형설명
source_language_codestring감지된 또는 사용자 지정 언어의 소스 텍스트에 대한 IETF BCP-47 언어 코드입니다.
translationsDictionary<string, string>요청된 번역을 포함하는 맵입니다. 키는 IETF BCP-47 언어 코드이며, 값은 해당 언어에 대한 번역된 텍스트입니다. 이 맵은 요청된 모든 번역을 포함합니다. 소스 텍스트가 필터링된 경우 이 맵은 비어 있습니다.

한계

Roblox는 게임의 플레이어 수에 따라 이 API에 대한 요청을 제한하기 위해 다음 공식을 사용합니다:

게임당 분당 최대 요청 = 600 + (1.5 * 동시 사용자 수)

모든 Open Cloud API에 대해 게임 서버당 합산 150개의 요청 제한도 있습니다.

지원 언어

실시간 번역 API는 현재 다음 언어를 지원하며, 이는 자동 번역 지원 언어와 약간 다릅니다.

언어언어 코드
중국어 (간체)zh-cn
중국어 (번체)zh-tw
영어en-us
프랑스어fr-fr
독일어de-de
인도네시아어id-id
이탈리아어it-it
일본어ja-jp
한국어ko-kr
폴란드어pl-pl
포르투갈어pt-br
러시아어ru-ru
스페인어es-es
태국어th-th
터키어tr-tr
베트남어vi-vn
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.