Traducir automáticamente contenido dinámico

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El flujo de trabajo estándar de traducción detecta cadenas en tu juego en función de la frecuencia con que son vistas por los jugadores y las agrega a tu tabla de localización para traducción. Puede omitir cadenas poco comunes y/o cadenas generadas durante el juego, como texto generado dinámicamente o texto creado por los jugadores. Puedes usar la API de traducción de texto para generar traducciones para estas cadenas en tiempo real, asegurando que tu juego esté completamente localizado.

Traducir texto al idioma de un jugador

Para traducir texto al idioma de un jugador, pasa su Player.LocaleId como el código de idioma de destino. A continuación, se muestra un ejemplo de cómo puedes obtener el ID de localización del jugador en un script del cliente y luego pasarlo a un Script en ServerScriptService para hacer la solicitud de traducción.

  • La API de traducción es una Open Cloud API, lo que significa que necesitas una ruta para hacer una solicitud. En este caso, necesitas el ID del universo, que se puede encontrar en el menú desplegable del mosaico del juego en el Creator Hub.
  • También debes incluir el paquete cliente de Open Cloud en tu juego; el script del servidor lo requiere.
Script del cliente

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- Texto a traducir
local textToTranslate = "Este es el texto de ejemplo a traducir"
-- Obtener la localización del jugador
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- obtener el ID de localización para la localización del jugador local o establecer en cualquier cadena de localización admitida
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Texto traducido: ", translatedText)
Script del servidor en ServerScriptService

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Encontrar en https://create.roblox.com/dashboard/creations en el menú desplegable de un mosaico de juego
local universeID = <your_universe_id>
-- Crear RemoteFunction
local remoteFunction = Instance.new("RemoteFunction")
remoteFunction.Name = "TranslateTextFunction"
remoteFunction.Parent = ReplicatedStorage
remoteFunction.OnServerInvoke = function(player, text, locale, uni)
print(player.Name .. " solicitó traducción para el texto: " .. text .. " al locale: " .. locale)
-- Preparar la solicitud de traducción
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- los códigos de idioma de destino admiten una lista de múltiples localizaciones a las que traducir.
-- Aquí estamos pasando solo un idioma:
-- La localización del jugador recuperada en el script local
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Suponiendo que translations[locale] contiene el texto traducido
else
return "Error: " .. result.Error.message
end
end

Pruebas

La API de traducción en tiempo real actualmente solo admite autenticación RCC. Como resultado, debes desplegar tu código en una instancia de prueba para probar la API desde Studio. Utiliza pruebas colaborativas para desplegar el script en una instancia de prueba y probar tus cambios.

Referencia de la API de traducción

Parámetros de solicitud de la API

Nombre del parámetroTipoDescripción
pathstringLa ruta del universo. Requerido.
textstringEl texto a traducir. Requerido.
source_language_codestringEl código de idioma IETF BCP-47 que representa el idioma del texto de entrada. Si no se proporciona, el sistema detectará automáticamente el idioma de origen.
target_language_codesArray<string>Una lista de códigos de idioma de destino en formato IETF BCP-47 para la traducción.

Campos de respuesta de la API

Nombre del campoTipoDescripción
source_language_codestringEl código de idioma IETF BCP-47 que representa el idioma detectado o especificado por el usuario del texto de origen.
translationsDictionary<string, string>Un mapa que contiene las traducciones solicitadas. La clave es el código de idioma IETF BCP-47 y el valor es el texto traducido para ese idioma. El mapa contendrá todas las traducciones solicitadas. Si el texto de origen fue filtrado, este mapa estará vacío.

Límites

Roblox utiliza la siguiente fórmula para limitar las solicitudes de esta API según el número de jugadores en tu juego:

máx. solicitudes por minuto por juego = 600 + (1.5 * número_de_usuarios_concurrentes)

También hay un límite combinado de 150 solicitudes por minuto, por servidor de juego para todas las API de Open Cloud.

Idiomas admitidos

La API de traducción en tiempo real actualmente admite los siguientes idiomas, que difieren ligeramente de los idiomas admitidos para traducción automática.

IdiomaCódigo de idioma
Chino (Simplificado)zh-cn
Chino (Tradicional)zh-tw
Inglésen-us
Francésfr-fr
Alemánde-de
Indonesioid-id
Italianoit-it
Japonésja-jp
Coreanoko-kr
Polacopl-pl
Portuguéspt-br
Rusoru-ru
Españoles-es
Tailandésth-th
Turcotr-tr
Vietnamitavi-vn
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.