Terjemahkan konten dinamis secara otomatis

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Alur kerja terjemahan standar mendeteksi string dalam pengalaman Anda berdasarkan seberapa sering mereka dilihat oleh pemain dan menambahkannya ke tabel lokalisasi untuk terjemahan.Ini mungkin melewatkan string yang tidak biasa dan/atau string yang dihasilkan selama permainan, seperti teks yang dihasilkan secara dinamis atau teks yang dibuat oleh pemainAnda dapat menggunakan API terjemahan teks untuk menghasilkan terjemahan untuk string ini secara real time, memastikan bahwa pengalaman Anda sepenuhnya dilokalkan.

Terjemahkan teks ke bahasa pemain

Untuk menerjemahkan teks ke bahasa pemain, berikan Player.LocaleId sebagai kode bahasa target.Di bawah ini adalah contoh bagaimana Anda bisa mendapatkan ID lokal pemain di skrip klien dan kemudian mengirimkannya ke Script di ServerScriptService untuk membuat permintaan terjemahan

  • API terjemahan adalah API Cloud Terbuka, artinya Anda membutuhkan jalur untuk membuat permintaan.Dalam hal ini, Anda membutuhkan ID alam semesta, yang dapat ditemukan di menu overflow dari ubin pengalaman di Creator Hub.
  • Anda juga harus menyertakan paket klien Open Cloud dalam pengalaman Anda; skrip server membutuhkannya.
Script klien

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- Teks untuk diterjemahkan
local textToTranslate = "This is the example text to translate"
-- Dapatkan lokasi pemutar
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- dapatkan ID lokal untuk lokal pemain lokal atau atur ke string lokal apa pun yang didukung
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("Translated text: ", translatedText)
Script server di ServerScriptService

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Temukan di https://create.roblox.com/dashboard/creations di menu overflow pada ubin pengalaman
local universeID = <your_universe_id>
-- Buat RemoteFunction
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)
-- Persiapkan permintaan terjemahan
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- kode bahasa target mendukung daftar banyak lokasi untuk diterjemahkan ke.
-- Di sini kita hanya melewati satu bahasa:
--Lokasi pemain yang diambil dalam skrip lokal
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Mengasumsikan bahwa terjemahan[locale] berisi teks yang diterjemah
else
return "Error: " .. result.Error.message
end
end

Pengujian

API terjemahan real-time saat ini hanya mendukung autentikasi RCC.Sebagai hasilnya, Anda harus menyebarkan kode Anda ke instans pengujian untuk menguji API dari Studio.Gunakan Tes Tim untuk menyebarkan skrip ke instansi uji dan menguji perubahan Anda.

Referensi API Terjemahan

Parameter permintaan API

Nama ParameterJenisDeskripsi
jalurstringJalur alam semesta. Diperlukan.
текстstringTeks yang akan diterjemahkan. Diperlukan.
kode_bahasa_sumberstringKode bahasa BCP-47 IETF yang mewakili bahasa teks masuk. Jika tidak disediakan, sistem akan secara otomatis mendeteksi bahasa sumber.
kode_bahasa_targetArray<string>Daftar kode bahasa target dalam format IETF BCP-47 untuk penerjemahan.

Bidang respons API

Nama BidangJenisDeskripsi
kode_bahasa_sumberstringKode bahasa BCP-47 IETF yang mewakili bahasa yang terdeteksi atau ditentukan oleh pengguna dari teks sumber.
terjemahanDictionary<string, string>Peta yang berisi terjemahan yang diminta.Kunci adalah kode bahasa IETF BCP-47, dan nilainya adalah teks terjemahan untuk bahasa itu.Peta akan berisi semua terjemahan yang diminta.Jika teks sumber disaring, peta ini akan kosong.

Batasan

Roblox menggunakan formula berikut untuk membatasi permintaan API ini berdasarkan jumlah pemain dalam pengalaman Anda:

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

Ada juga batas gabungan 150 permintaan per menit, per server permainan untuk semua API Cloud Terbuka.

Bahasa yang didukung

API terjemahan waktu nyata saat ini mendukung bahasa berikut, yang sedikit berbeda dari bahasa yang didukung untuk terjemahan otomatis.

BahasaKode bahasa
Cina (Sederhana)zh-cn
Bahasa Cina (Traditional)zh-tw
Inggrisen-us
Prancisfr-fr
Jermande-de
Bahasa Indonesiaiden-iden
Italianitu-itu
Jepangja-jp
Koreanko-kr
Polishpl-pl
Portuguesept-br
Russiaru-ru
Spanyoles - es
Bahasa Thailandth-th
Turkitr-tr
Bahasa Vietnamvi-vn