동적 콘텐츠 자동 번역

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

표준 번역 워크플로는 플레이어가 얼마나 자주 보는지에 따라 경험의 문자열을 감지하고 번역을 위해 로컬라이제이션 테이블에 추가합니다.동적으로 생성된 텍스트 또는 플레이어가 생성한 텍스트와 같이 게임플레이 중에 드문 문자열을 놓칠 수 있습니다.번역 텍스트 API를 사용하여 실시간으로 이러한 문자열에 대한 번역을 생성하여 경험이 완전히 지역화되도록 할 수 있습니다.

텍스트를 플레이어 언어로 번역

텍스트를 플레이어의 언어로 번역하려면, 대상 언어 코드로 Player.LocaleId를 전달하십시오.아래는 클라이언트 스크립트에서 플레이어의 로캘 ID를 가져와서 번역 요청을 만들기 위해 에 전달하는 방법의 예입니다.

클라이언트 스크립트

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- 번역할 텍스트
local textToTranslate = "This is the example text to translate"
-- 플레이어의 로캘 가져오기
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- 로컬 플레이어의 로캘 ID를 가져오거나 지원되는 모든 로캘 문자열로 설정
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Translated text: ", 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>
-- 원격 함수 만들기
local remoteFunction = Instance.new("RemoteFunction")
remoteFunction.Name = "TranslateTextFunction"
remoteFunction.Parent = ReplicatedStorage
remoteFunction.OnServerInvoke = function(player, text, locale, uni)
print(player.Name .. " requested translation for text: " .. text .. " to locale: " .. 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] -- 번역[locale]에 번역된 텍스트가 포함되어 있다고 가정하기
else
return "Error: " .. result.Error.message
end
end

검사

실시간 번역 API는 현재 RCC 인증만 지원합니다.결과적으로, Studio에서 API를 테스트하려면 테스트 인스턴스에 코드를 배포해야 합니다.팀 테스트를 사용하여 스크립트를 테스트 인스턴스에 배포하고 변경 사항을 테스트하십시오.

번역 API 참고

API 요청 매개 변수

파라미터 이름유형설명서
경로문자열우주의 경로. 필수입니다.
문자열문자열번역할 텍스트. 필수.
소스_언어_코드문자열입력 텍스트의 언어를 나타내는 IETF BCP-47 언어 코드. 제공되지 않으면 시스템이 소스 언어를 자동으로 감지합니다.
대상_언어_코드Array<string>번역을 위한 IETF BCP-47 형식의 대상 언어 코드 목록.

API 응답 필드

필드명유형설명서
소스_언어_코드문자열검색된 또는 사용자가 지정한 원본 텍스트의 언어를 나타내는 IETF BCP-47 언어 코드.
번역Dictionary<string, string>요청한 번역이 포함된 맵.키는 IETF BCP-47 언어 코드이고 값은 해당 언어에 대한 번역된 텍스트입니다.맵에는 요청된 모든 번역이 포함됩니다.원본 텍스트가 필터링된 경우 이 맵은 비어 있습니다.

한정판

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

max requests per minute per experience = 600 + (1.5 * number_of_concurrent_users)

모든 오픈 클라우드 API에 대해 분당 150개의 요청 제한과 게임 서버당 요청 제한이 결합되어 있습니다.

지원 언어

실시간 번역 API는 현재 자동 번역에 지원되는 언어와 약간 다른 다음 언어를 지원합니다, 지원되는 언어에 약간 차이가 있음.

언어언어코드
중국어(간단화)한국어:zh-cn
중국(전통)zh-tw
영어영어-us
프랑스어프랑스어 fr-fr
독일어데-데
인도네시아어아이디-id
이탈리아어이-이
일본어자-일본어
한국어ko-kr
폴ish플-플
포르투갈어pt-브
러시아어루-루
스페인어에스-es
태국th-th
터키어트-트
베트남어비-vn