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 jeu en fonction de leur fréquence d'affichage par les joueurs et les ajoute à votre tableau de localisation pour la traduction. Il peut manquer des chaînes peu courantes et/ou des chaînes générées durant le jeu, comme 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, garantissant ainsi que votre jeu est complètement localisé.

Traduire du texte dans la langue d'un joueur

Pour traduire du texte dans la langue d'un joueur, passez son Player.LocaleId comme code de langue cible. Ci-dessous un exemple de la façon dont vous pouvez obtenir l'identifiant de locale du joueur dans un script client et ensuite le passer à un Script dans ServerScriptService pour faire la demande de traduction.

  • L'API de traduction est une Open Cloud API, 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 déroulant de la vignette du jeu sur le Creator Hub.
  • Vous devez également inclure le package client Open Cloud dans votre jeu ; le script serveur en a besoin.
Script client

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- Texte à traduire
local textToTranslate = "Ceci est le texte d'exemple à traduire"
-- Obtenir la locale du joueur
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- obtient l'identifiant de la locale pour la locale du joueur local ou défini sur n'importe quelle chaîne de locale supportée
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Texte traduit : ", translatedText)
Script serveur dans ServerScriptService

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Trouvé sur https://create.roblox.com/dashboard/creations dans le menu déroulant d'une vignette de jeu
local universeID = <your_universe_id>
-- Créer RemoteFunction
local remoteFunction = Instance.new("RemoteFunction")
remoteFunction.Name = "TranslateTextFunction"
remoteFunction.Parent = ReplicatedStorage
remoteFunction.OnServerInvoke = function(player, text, locale, uni)
print(player.Name .. " a demandé la traduction pour le texte : " .. text .. " vers la locale : " .. locale)
-- Préparer la demande de traduction
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- les codes de langue cible prennent en charge une liste de multiples locales à traduire.
-- Ici nous ne passons qu'une seule langue :
-- La locale du joueur récupérée dans le script local
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Supposant que translations[locale] contient le texte traduit
else
return "Erreur : " .. result.Error.message
end
end

Test

L'API de traduction en temps réel ne prend actuellement en charge que l'authentification RCC. En conséquence, vous devez déployer votre code dans une instance de test pour pouvoir tester l'API depuis Studio. Utilisez le test collaboratif pour déployer le script dans une instance de test et tester vos modifications.

Référence de l'API de traduction

Paramètres de demande API

Nom du paramètreTypeDescription
pathstringLe chemin de l'univers. Requis.
textstringLe texte à traduire. Requis.
source_language_codestringLe code de langue IETF BCP-47 représentant la langue du texte d'entrée. Si non fourni, le système détectera automatiquement la langue source.
target_language_codesArray<string>Une liste de codes de langue cible au format IETF BCP-47 pour la traduction.

Champs de réponse API

Nom du champTypeDescription
source_language_codestringLe code de langue IETF BCP-47 représentant la langue détectée ou spécifiée par l'utilisateur du texte source.
translationsDictionary<string, string>Une carte contenant les traductions demandées. La clé est le code de langue IETF BCP-47, 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 pour cette API en fonction du nombre de joueurs dans votre jeu :

demandes max par minute par jeu = 600 + (1.5 * nombre_de_joueurs_concurrents)

Il existe également une limite combinée de 150 demandes par minute, par serveur de jeu pour toutes les APIs 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 prises en charge pour la traduction automatique.

LangueCode de langue
Chinois (simplifié)zh-cn
Chinois (traditionnel)zh-tw
Anglaisen-us
Françaisfr-fr
Allemandde-de
Indonésienid-id
Italienit-it
Japonaisja-jp
Coréenko-kr
Polonaispl-pl
Portugaispt-br
Russeru-ru
Espagnoles-es
Thaïlandaisth-th
Turctr-tr
Vietnamienvi-vn
©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.