Automatyczne tłumaczenie dynamicznej treści

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Standardowy proces tłumaczenia wykrywa napisy w twojej grze na podstawie tego, jak często są wyświetlane przez graczy, i dodaje je do twojej tabeli lokalizacji do przetłumaczenia. Może przegapić rzadko używane napisy i/lub napisy generowane podczas rozgrywki, takie jak dynamicznie generowany tekst lub tekst tworzony przez graczy. Możesz użyć API tłumaczenia tekstu, aby generować tłumaczenia tych napisów w czasie rzeczywistym, zapewniając, że twoja gra jest w pełni zlokalizowana.

Tłumaczenie tekstu na język gracza

Aby przetłumaczyć tekst na język gracza, przekaż jego Player.LocaleId jako kod języka docelowego. Poniżej znajduje się przykład, jak możesz uzyskać identyfikator lokalizacji gracza w skrypcie klienckim, a następnie przekazać go do Script w ServerScriptService, aby złożyć zapytanie o tłumaczenie.

  • API tłumaczenia jest Open Cloud API, co oznacza, że potrzebujesz ścieżki, aby złożyć zapytanie. W tym przypadku potrzebujesz identyfikatora uniwersum, który można znaleźć w menu rozwijanym na płytce gry w Creator Hub.
  • Musisz także dołączyć klient pakietu Open Cloud do swojej gry; skrypt serwera go wymaga.
Skrypt kliencki

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- Tekst do przetłumaczenia
local textToTranslate = "To jest przykładowy tekst do przetłumaczenia"
-- Uzyskaj lokalizację gracza
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- uzyskaj identyfikator lokalizacji lokalnego gracza lub ustaw na dowolny wspierany ciąg lokalizacji
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Przetłumaczony tekst: ", translatedText)
Skrypt serwera w ServerScriptService

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Znajdź na https://create.roblox.com/dashboard/creations w menu rozwijanym płytki gry
local universeID = <your_universe_id>
-- Utwórz RemoteFunction
local remoteFunction = Instance.new("RemoteFunction")
remoteFunction.Name = "TranslateTextFunction"
remoteFunction.Parent = ReplicatedStorage
remoteFunction.OnServerInvoke = function(player, text, locale, uni)
print(player.Name .. " poprosił o tłumaczenie tekstu: " .. text .. " na lokalizację: " .. locale)
-- Przygotuj zapytanie o tłumaczenie
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- kody języków docelowych wspierają listę wielu lokalizacji do przetłumaczenia.
-- Tutaj przekazujemy tylko jeden język:
-- L lokalizacja gracza uzyskana w lokalnym skrypcie
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Zakładając, że translations[locale] zawiera przetłumaczony tekst
else
return "Błąd: " .. result.Error.message
end
end

Testowanie

API tłumaczenia w czasie rzeczywistym obecnie obsługuje tylko uwierzytelnianie RCC. W związku z tym musisz wdrożyć swój kod do instancji testowej, aby przetestować API z poziomu Studio. Użyj testowania współpracy, aby wdrożyć skrypt do instancji testowej i przetestować swoje zmiany.

Referencje API tłumaczenia

Parametry zapytania API

Nazwa parametruTypOpis
pathstringŚcieżka do uniwersum. Wymagane.
textstringTekst do przetłumaczenia. Wymagane.
source_language_codestringKod języka IETF BCP-47 reprezentujący język tekstu wejściowego. Jeśli nie podano, system automatycznie wykryje język źródłowy.
target_language_codesArray<string>Lista kodów języków docelowych w formacie IETF BCP-47 do tłumaczenia.

Pola odpowiedzi API

Nazwa polaTypOpis
source_language_codestringKod języka IETF BCP-47 reprezentujący wykryty lub określony przez użytkownika język tekstu źródłowego.
translationsDictionary<string, string>Mapa zawierająca zgłoszone tłumaczenia. Klucz to kod języka IETF BCP-47, a wartość to przetłumaczony tekst w tym języku. Mapa będzie zawierać wszystkie zgłoszone tłumaczenia. Jeśli tekst źródłowy został przefiltrowany, ta mapa będzie pusta.

Limity

Roblox używa następującego wzoru do ograniczania zapytań do tego API w zależności od liczby graczy w twojej grze:

maks. zapytań na minutę na grę = 600 + (1.5 * liczba_użytkowników_aktywne)

Istnieje również łączny limit 150 zapytań na minutę, na serwer gry dla wszystkich Open Cloud APIs.

Obsługiwane języki

API tłumaczenia w czasie rzeczywistym obecnie obsługuje następujące języki, które nieco różnią się od obsługiwanych języków dla automatycznego tłumaczenia.

JęzykKod języka
Chiński (uproszczony)zh-cn
Chiński (tradycyjny)zh-tw
Angielskien-us
Francuskifr-fr
Niemieckide-de
Indonezyjskiid-id
Włoskiit-it
Japońskija-jp
Koreańskiko-kr
Polskipl-pl
Portugalskipt-br
Rosyjskiru-ru
Hiszpańskies-es
Tajskith-th
Tureckitr-tr
Wietnamskivi-vn
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.