Dinamik içeriği otomatik olarak çevirin

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Standart çeviri iş akışı, oyuncular tarafından ne sıklıkla görüldüklerine dayanarak deneyiminizdeki dizeleri tespit eder ve çeviri için yerelleştirme tablosuna ekler.Oyun sırasında oluşturulan sıradışı dize ve/veya oyuncular tarafından oluşturulan dinamik olarak oluşturulan metin gibi oyun sırasında oluşturulan dize veya metinleri kaçırabilir.Gerçek zamanlı olarak bu dize için çeviri oluşturmak için çeviri API'sini kullanabilirsiniz, böylece deneyiminiz tamamen yerelleştirilmiş olur.

Metni oyuncunun diline çevirin

Metni oyuncunun diliine çevirmek için, hedeflenmiş dil kodu olarak Player.LocaleId geçin.Aşağıda, bir oyuncunun yerel kimliğini bir istemci kriptinde nasıl alabileceğinizin bir örneği ve ardından çeviri isteği yapmak için bir Script 'e geçirdiğiniz örnek bir ServerScriptService var.

  • Çeviri API'si bir Açık Bulut API'dır, yani bir istek göndermek için bir yol gerekir.Bu durumda, deneyim arayüzündeki aşırı yük menüsünde bulunabilen evren ID'sine ihtiyacınız var, ki bunu Yaratıcı Merkez 'de bulabilirsiniz.
  • Deneyiminize Açık Bulut müşteri paketi de dahil etmelisiniz; sunucu kodu bunu gerektiriyor.
İstemci kodu

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- Tercüme edilecek metin
local textToTranslate = "This is the example text to translate"
-- Oyuncunun yerelini alın
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- yerel oyuncunun yerel kimliğini alın veya herhangi bir desteklenen yerel dizeyi ayarla
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Translated text: ", translatedText)
ServerScriptService'te sunucu kodu

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Deneyim arayüzünün aşırı yük menüsünde https://create.roblox.com/dashboard/creations adresinde bulunan yaratımları bul
local universeID = <your_universe_id>
-- Uzaktan Fonksiyon Oluşturma
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)
-- Çeviri isteğini hazırlayın
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- hedef dil kodları, çevirilecek birden fazla yerel dil listesini destekler.
-- Burada yalnızca bir dil geçiyor:
--Yerel senaryoda alınan oyun yerelindeki oyuncu
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Tercümelerin [yerel dil] tercüme edilmiş metin içerdiğini varsayalım
else
return "Error: " .. result.Error.message
end
end

Test Yapıyor

Gerçek zamanlı çeviri API'si şu anda sadece RCC doğrulamasını destekliyor.Sonuç olarak, API'yi Studio'dan test etmek için bir test örneğine kodunuzu yüklemeniz gerekir.Senaryoyu bir test örneğine dağıtmak ve değişikliklerinizi test etmek için Takım Testi kullanın.

Çeviri API referansı

API isteği parametleri

Parametre AdıTürüAçıklama
yolsiparişEvrenin yolu. Gerekli.

text yazıcı text yazar

siparişTercüme edilecek metin. Zorunlu.
kaynak_dil_kodusiparişGiriş metninin dili temsil eden IETF BCP-47 dil kodu. Eğer sağlanmazsa, sistem otomatik olarak kaynağın dili tespit edecektir.
target_language_codesArray<string>Tercüme için IETF BCP-47 formatında hedef dili kodlarının bir listesi.

API yanıt alanları

Alan adıTürüAçıklama
kaynak_dil_kodusiparişKaynak metnin tespit edilen veya kullanıcı tarafından belirtilen dili temsil eden IETF BCP-47 dil kodu.
tercümelerDictionary<string, string>Talep edilen çevirileri içeren bir harita.Anahtar, IETF BCP-47 dil kodudur ve değer, o dilde çevrilmiş metindir.Harita talep edilen tüm çevirileri içerecektir.Kaynak metin filtrelenmişse, bu harita boş olacaktır.

Sınırlar

Roblox, deneyiminizdeki oyuncu sayısına göre bu API için istekleri sınırlandırmak için aşağıdaki formülü kullanır:

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

Ayrıca tüm Açık Bulut API'leri için her oyun sunucusu başına dakika başına 150 istek sınırı da vardır.

Desteğe sahip diller

Gerçek zamanlı çeviri API'si şu anda otomatik çeviri için desteklenen dillerden biraz farklı olan aşağıdaki dilleri destekliyor, otomatik çeviri için desteklenen dillerden biraz farklı.

Language İngilizce

Dil kodu
Çince (Basitleştirilmiş)zh-cn
Çince (Geleneksel)zh-tw
İngilizceen-us
Fransızcafr-fr
Almançade-de
Endonezyakimlik-kimlik
İtalyancaonu-bu
Japonyaja-jp
Koreceko-kr
Lehçepl-pl
Portekizcept-br
Rusçaru-ru
İspanya'ya aites-es
Taylandçath-th
Türkçetr-tr
Vietnamese'yevi-vn