Traduire automatiquement le contenu dynamique

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Le flux de travail de traduction standard détecte les chaînes dans votre expérience en fonction de la fréquence à laquelle elles sont vues par les joueurs et les ajoute à la table de localisation pour la traduction.Il pourrait manquer des chaînes inhabituelles et/ou des chaînes générées pendant le jeu, telles que du texte généré dynamiquement ou du texte créé par les joueurs.Vous pouvez utiliser l'API de traduction de texte pour générer des traductions pour ces chaînes en temps réel, afin d'assurer que votre expérience soit entièrement localisée.

Translier le texte en langue d'un joueur

Pour traduire le texte en langue d'un joueur, passez leur Player.LocaleId comme code de langue cible.Ci-dessous est un exemple de la façon dont vous pouvez obtenir l'ID du local du joueur dans un script client, puis le transmettre à un Script dans ServerScriptService pour faire la demande de traduction.

  • L'API de traduction est une API ouverte du cloud, ce qui signifie que vous avez besoin d'un chemin pour faire une demande.Dans ce cas, vous avez besoin de l'ID de l'univers, qui peut être trouvé dans le menu de surcharge de la tuile d'expérience sur le Creator Hub.
  • Vous devez également inclure le paquet client du cloud ouvert dans votre expérience ; le script du serveur le requiert.
Script de client

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- TEXTE À TRADUIRE
local textToTranslate = "This is the example text to translate"
-- Obtenir la localisation du joueur
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- obtenir l'ID local pour la localité du joueur local ou définir à n'importe quelle chaîne locale supportée
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Translated text: ", translatedText)
Script serveur dans ServerScriptService

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Trouvez à https://create.roblox.com/dashboard/creations dans le menu de surcharge d'une tuile d'expérience
local universeID = <your_universe_id>
-- Créer une fonction à distance
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)
-- Préparer la requête de traduction
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- les codes de langue cible supportent une liste de plusieurs localisations à traduire.
-- Ici, nous ne passons qu'une seule langue :
--Le lecteur local récupéré dans le script local
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- En supposant que les traductions[locale] contiennent le texte traduit
else
return "Error: " .. result.Error.message
end
end

Teste

L'API de traduction en temps réel ne prend en charge actuellement que l'authentification RCC.Par conséquent, vous devez déployer votre code sur une instance de test pour tester l'API à partir de Studio.Utilisez test d'équipe pour déployer le script dans une instance de test et tester vos modifications.

Référence à l'API de traduction

Paramètres de demande d'API

Nom du paramètreTypeAvertissement
cheminficelleLe chemin de l'univers. Obligatoire.
texteficelleLe texte à traduire. Obligatoire.
source_language_codeficelleLe code de langue IETF BCP-47 représentant la langue du texte d'entrée. S'il n'est pas fourni, le système détectera automatiquement la langue source.
codes de langue cibleArray<string>Une liste de codes de langage cible dans le format IETF BCP-47 pour la traduction.

Champs de réponse de l'API

Nom du champTypeAvertissement
source_language_codeficelleLe code de langage BCP-47 de l'IETF représentant la langue détectée ou spécifiée par l'utilisateur du texte source.
traductionsDictionary<string, string>Une carte contenant les traductions requises.La clé est le code de langue BCP-47 de l'IETF, et la valeur est le texte traduit pour cette langue.La carte contiendra toutes les traductions demandées.Si le texte source a été filtré, cette carte sera vide.

Limites

Roblox utilise la formule suivante pour limiter les demandes de cette API en fonction du nombre de joueurs dans votre expérience :

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

Il y a également une limite combinée de 150 demandes par minute, par serveur de jeu pour toutes les API Open Cloud.

Langues prises en charge

L'API de traduction en temps réel prend actuellement en charge les langues suivantes, qui diffèrent légèrement des langues soutenues pour la traduction automatique.

LangageCode linguistique
Chinois (simplifié)fr-fr
Chinois (traditionnel)fr-fr
Anglaisfr-fr
françaisfr-fr
Allemandde-de
Indonésienidentifiant-id
Italienit-it
Japonaisja-jp
Coréenko-cr
Polonaisfr-fr
portugaispt-fr
Russefr-fr
espagnolfr-fr
Thaïlandefr-fr
Turquetr-tr
Viêt Namvi-vn