Automatycznie tłumacz dynamiczne 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 przepływ pracy tłumaczenia wykrywa struny w Twoim doświadczeniu w oparciu o to, jak często są oglądane przez graczy i dodaje je do tabeli lokalizacji do tłumaczenia.Może pominąć niezwykłe ciągi i/lub ciągi generowane podczas gry, takie jak dynamicznie generowany tekst lub tekst stworzony przez graczy.Możesz użyć API tłumaczenia tekstu, aby generować tłumaczenia dla tych ciągów w czasie rzeczywistym, zapewniając, że twoje doświadczenie jest w pełni zlokalizowane.

Przetłumacz tekst na język gracza

Aby przetłumaczyć tekst na język gracza, przekaż jego Player.LocaleId jako kod języka docelowego.Poniżej jest przykład tego, jak możesz uzyskać lokalną identyfikację gracza w skrypcie klienta, a następnie przekazać ją do Script w ServerScriptService , aby złożyć prośbę o tłumaczenie.

  • API tłumaczenia jest Otwartym API chmury, co oznacza, że potrzebujesz ścieżki dla złożenia żądania.W tym przypadku potrzebujesz ID wszechświata, które można znaleźć w menu przepięcia kafelki doświadczenia na Creator Hub.
  • Musisz również uwzględnić pakiet klienta Otwórz chmurę w swoim doświadczeniu; skrypt serwera tego wymaga.
Skrypt klienta

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- Tekst do przetłumaczenia
local textToTranslate = "This is the example text to translate"
-- Zdobądź lokalizację gracza
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- zdobądź lokalną identyfikację dla lokalnego obszaru gracza lub ustaw na dowolną wspieraną stronę lokalną
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Translated text: ", translatedText)
Skrypt serwerowy 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 przepięcia przekładki doświadczenia
local universeID = <your_universe_id>
-- Stwórz funkcję zdalną
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)
-- Przygotuj wniosek o przetł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:
--Lokalny odtwarzacz odzyskany w lokalnym skrypcie
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Załóżmy, że tłumaczenia [locale] zawierają przetłumaczony tekst
else
return "Error: " .. result.Error.message
end
end

Testowanie

Obecnie interfejs API tłumaczenia w czasie rzeczywistym wspiera tylko autoryzację RCC.W rezultacie musisz wdrożyć swój kod do instancji testowej, aby przetestować API z Studio.Użyj Testu zespołu, aby wdrożyć skrypt do instancji testowej i przetestować swoje zmiany.

Referencja API do tłumaczenia

Parametry żądania API

Nazwa parametrycznaTypOpis
ścieżkastringŚcieżka wszechświata. Wymagana.
tekststringTekst, który ma być przetłumaczony. Wymagany.
źródłowy kod językastringKod językowy IETF BCP-47 reprezentujący język tekstu wejściowego. Jeśli nie zostanie podany, system wykryje automatycznie język źródła.
target_language_codesArray<string>Lista kodów językowych docelowych w formacie IETF BCP-47 do tłumaczenia.

Pola odpowiedzi API

Nazwa polaTypOpis
źródłowy kod językastringKod językowy IETF BCP-47 reprezentujący wykryty lub określony przez użytkownika język tekstu źródłowego.
przetłumaczeniaDictionary<string, string>Mapa zawierająca wymagane tłumaczenia.Kluczem jest kod językowy IETF BCP-47, a wartością jest przetłumaczony tekst na ten język.Mapa będzie zawierać wszystkie wymagane tłumaczenia.Jeśli tekst źródłowy został przefiltrowany, mapa będzie pusta.

Greny

Roblox używa następującej formuły do ograniczania żądań dla tego API w oparciu o liczbę graczy w Twoim doświadczeniu:

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

Istnieje również łączny limit 150 żądań na minutę, na serwerze gry dla wszystkich otwartych chmurowych API.

Obsługiwane języki

Obecnie interfejs API tłumienia w czasie rzeczywistym wspiera następujące języki, które różnią się nieco od wspieranych języków do automatycznego tłumienia .

JęzykKod językowy
Chiński (uproszczony)zh-cn
Chiński (tradycyjny)zh-tw
Angielskipl-us
Francuskipl-pl
Niemieckipl-pl
Indonezjaidentyfikator-id
Włochyit-it
Japonkija-jp
Koreańskiko-kr
Polskipl-pl
Portugalskipt-br
Rosyjskiru-ru
hiszpańskies-es
Tajlandiath-th
Turkijskitr-tr
Wietnamskivi-vn