Il flusso di lavoro di traduzione standard individua le stringhe nella tua esperienza in base alla frequenza con cui vengono visualizzate dai giocatori e le aggiunge alla tabella di localizzazione per la traduzione.Potrebbe mancare delle stringhe non comuni e/o delle stringhe generate durante il gioco, come testo generato dinamicamente o testo creato da giocatori.Puoi usare l'API di traduzione del testo per generare traduzioni per queste stringhe in tempo reale, assicurando che la tua esperienza sia completamente localizzata.
Tradurre il testo in lingua del giocatore
Per tradurre il testo in lingua di un giocatore, passa il loro Player.LocaleId come codice linguistico di destinazione.Di seguito è un esempio di come puoi ottenere l'ID locale del giocatore in uno script del client e poi passarlo a un Script in ServerScriptService per fare la richiesta di traduzione.
- L'API di traduzione è un'Open Cloud API, quindi è necessario un percorso per fare una richiesta.In questo caso, è necessario l'ID dell'universo, che può essere trovato nel menu di sovrascrizione della tile dell'esperienza sul Creator Hub.
- Devi anche includere il pacchetto client Open Cloud nella tua esperienza; lo script del server lo richiede.
Script del client
local ReplicatedStorage = game:GetService("ReplicatedStorage")local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")-- Testo da tradurrelocal textToTranslate = "This is the example text to translate"-- Ottieni il locale del giocatorelocal Players = game:GetService("Players")local player = Players.LocalPlayer-- ottenere l'ID locale per il locale del giocatore locale o impostarlo a qualsiasi stringa locale supportatalocal locale = player.LocaleIdlocal translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)print("Translated text: ", translatedText)
Script del server nel ServerScriptService
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Trova a https://create.roblox.com/ashboard/creations nel menu di sovrapposizione di una tile di esperienze
local universeID = <your_universe_id>
-- Crea funzione remota
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)
-- Preparare la richiesta di traduzione
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- i codici linguistici di destinazione supportano una lista di più locali da tradurre
-- Qui passiamo solo una lingua:
--Il player locale recuperato nello script locale
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Presumendo che le traduzioni[locale] contengano il testo tradotto
else
return "Error: " .. result.Error.message
end
end
Testando
L'API di traduzione in tempo reale supporta attualmente solo l'autenticazione RCC.Di conseguenza, devi distribuire il tuo codice in un'istanza di prova per testare l'API da Studio.Usa Test di squadra per distribuire lo script a un'istanza di prova e testare le tue modifiche.
Riferimento dell'API di traduzione
Parametri della richiesta API
Nome del parametro | TIPO | Descrizione |
---|---|---|
percorso | struttura | Il percorso dell'universo. Richiesto. |
testo | struttura | Il testo da tradurre. Obbligatorio. |
source_language_code | struttura | Il codice linguistico BCP-47 dell'IETF che rappresenta la lingua del testo di input. Se non fornito, il sistema rileva automaticamente la lingua di origine. |
target_language_codes | Array<string> | Un elenco di codici di lingua target nel formato BCP-47 dell'IETF per la traduzione |
Campi di risposta dell'API
Nome del campo | TIPO | Descrizione |
---|---|---|
source_language_code | struttura | Il codice linguistico BCP-47 dell'IETF che rappresenta la lingua rilevata o specificata dall'utente del testo sorgente. |
traduzioni | Dictionary<string, string> | Mappa contenente le traduzioni richieste.La chiave è il codice linguistico BCP-47 dell'IETF e il valore è il testo tradotto per quella linguaLa mappa conterrà tutte le traduzioni richieste.Se il testo sorgente è stato filtrato, questa mappa sarà vuota. |
Limitazioni
Roblox usa la seguente formula per limitare le richieste per questa API in base al numero di giocatori nella tua esperienza:
max requests per minute per experience = 600 + (1.5 * number_of_concurrent_users)
Esiste anche un limite combinato di 150 richieste al minuto, per il server di gioco per tutte le API Open Cloud.
Lingue supportate
L'API di traduzione in tempo reale attualmente supporta le seguenti lingue, che differiscono leggermente da lingue supportate per la traduzione automatica.
Linguaggio | Codice di lingua |
---|---|
Cinese (semplificato) | zh-cn |
Cinese (tradizionale) | zh-tw |
Inglese | en-us |
Francese | fr-fr |
Tedesco | de-de |
Indonesian | id-id |
Italiano | 它-它 |
Giapponese | ja-jp |
Coreano | ko-kr |
polacco | pl-pl |
Portoghese | pt-br |
Russa | ru-ru |
spagnolo | es-es |
Tailandese | th-th |
Turchia | tr-tr |
Vietnamese | vvi-vn |