Automatisch dynamische Inhalte übersetzen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Der Standard-Übersetzungsworkflow erkennt Zeichen in deiner Erfahrung basierend darauf, wie oft sie von Spielern angesehen werden und fügt sie deiner Lokalisierungstabelle für die Übersetzung hinzu.Es könnte ungewöhnliche Zeichen und/oder Zeichen vermissen, die während des Spiels generiert wurden, wie dynamisch generierter Text oder von Spielern erstellter Text.Sie können die Übersetzungs-Text-API verwenden, um Übersetzungen für diese Zeichen in Echtzeit zu generieren, um sicherzustellen, dass Ihre Erfahrung vollständig lokalisiert ist.

Übersetze Text in die Sprache eines Spielers

Um Text in die Sprache eines Spielers zu übersetzen, gib seine Player.LocaleId als Zielsprachencode ein.Im Folgenden ist ein Beispiel, wie du die lokale ID des Spielers in einem Client-Skript erhalten und dann an einen Script in ServerScriptService übergeben kannst, um die Übersetzungsanfrage zu machen.

  • Die Übersetzungs-API ist eine Open Cloud API, was bedeutet, dass du einen Weg benötigst, um eine Anfrage zu stellen.In diesem Fall benötigen Sie die Universitäts-ID, die im Überlaufmenü der Erlebniskachel auf dem Creator-Hub gefunden werden kann.
  • Du musst auch das Open Cloud-Client-Paket in deine Erfahrung einbeziehen; das Serverskript erfordert es.
Client-Skript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- Text zum Übersetzen
local textToTranslate = "This is the example text to translate"
-- Holen Sie sich den lokalen Bereich des Players
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- erhalten Sie die Lokalisierungs-ID für die Lokalisierung des lokalen Spielers oder legen Sie sie auf eine unterstützte Lokalisierungsstring fest
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Translated text: ", translatedText)
Server-Skript im ServerScriptService

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Finde es unter https://create.roblox.com/ashboard/creations im Überlaufmenü einer Erlebnistaste
local universeID = <your_universe_id>
-- Remotefunktion erstellen
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)
-- Bereiten Sie die Übersetzungsanfrage vor
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- zielsprachcodes unterstützen eine liste mehrerer lokale, die übersetzt werden müssen.
-- Hier geben wir nur eine Sprache weiter:
--Der lokale Player, der im lokalen Skript abgerufen wurde
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Angenommen, Übersetzungen[locale] enthalten den übersetzten Text
else
return "Error: " .. result.Error.message
end
end

Testen

Die Echtzeit-Übersetzungs-API unterstützt derzeit nur die Authentifizierung von RCC.Als Ergebnis müssen Sie Ihren Code in eine Testinstanz implementieren, um die API aus Studio zu testen.Verwenden Sie Teamtest, um das Skript auf eine Testinstanz zu deployen und Ihre Änderungen zu testen.

Translations-API-Referenz

API-Anforderungsparameter

Name des ParametersTypBeschreibung
pfadschnurDer Pfad des Universums. Erforderlich.
textschnurDer Text, der übersetzt werden muss. Erforderlich
source_language_codeschnurDer IETF-BCP-47-Sprachcode, der die Sprache des Eingangstexts darstellt. Wenn er nicht bereitgestellt wird, erkennt das System automatisch die Quellensprache.
zielsprachcodesArray<string>Eine Liste der Zielsprachcodes im IETF-BCP-47-Format für die Übersetzung.

API-Antwortfelder

Name des FeldesTypBeschreibung
source_language_codeschnurDer IETF-BCP-47-Sprachcode, der die erkannte oder vom Benutzer angegebene Sprache des Quelltextes repräsentiert.
übersetzungenDictionary<string, string>Eine Karte mit den angeforderten Übersetzungen.Der Schlüssel ist der IETF-BCP-47-Sprachcode, und der Wert ist der übersetzte Text für diese Sprache.Die Karte enthält alle angeforderten Übersetzungen.Wenn der Quelltext gefiltert wurde, wird diese Karte leer sein.

Grenzen

Roblox verwendet die folgende Formel, um Anfragen für diese API auf Basis der Anzahl der Spieler in deiner Erfahrung zu drosseln:

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

Es gibt auch eine kombinierte Begrenzung von 150 Anfragen pro Minute, pro Spielserver für alle Open Cloud-APIs.

Unterstütze Sprachen

Die Echtzeit-Übersetzungs-API unterstützt derzeit die folgenden Sprachen, die sich leicht von den unterstützten Sprachen für automatische Übersetzung unterscheiden.

SpracheSprachencode
Chinesisch (vereinfacht)zh-cn
Chinesisch (Traditionell)dh-tw
Englischen-us
französischfr-fr
Deutschde-de
Indonesischid-id
Italienisch它-它
Japanischja-jp
Koreanischko-kr
polnischpl-pl
Portugiesischpt-br
Russischru-ru
Spanisches-es
Thailischth-th
Türkischtr-tr
Vietnamesischvi-vn