Quy trình dịch tiêu chuẩn phát hiện các chuỗi trong trải nghiệm dựa trên tần suất chúng được xem bởi người chơi và thêm chúng vào bảng bản địa hóa của bạn để dịch.Nó có thể bỏ lỡ các chuỗi không phổ biến và/hoặc chuỗi được tạo ra trong lúc chơi trò chơi, chẳng hạn như văn bản được tạo tự động hoặc văn bản được tạo bởi người chơi.Bạn có thể sử dụng API dịch văn bản để tạo bản dịch cho các chuỗi này trong thời gian thực, đảm bảo trải nghiệm của bạn được dịch hoàn toàn.
Dịch văn bản sang ngôn ngữ của người chơi
Để dịch văn bản thành ngôn ngữ của người chơi, hãy truyền Player.LocaleId của họ như mã ngôn ngữ mục tiêuDưới đây là một ví dụ về cách bạn có thể nhận được ID máy chủ của người chơi trong một kịch bản khách và sau đó chuyển nó cho một Script trong ServerScriptService để thực hiện yêu cầu dịch.
- API dịch là một API Mở Cloud, có nghĩa là bạn cần một đường dẫn để gửi yêu cầu.Trong trường hợp này, bạn cần ID vũ trụ, có thể được tìm thấy trong menu tràn ngập của điểm trải nghiệm trên Creator Hub.
- Bạn cũng phải bao gồm gói khách hàng Mở đám mây trong trải nghiệm của bạn; kịch bản máy chủ yêu cầu nó.
Tập lệnh khách hàng
local ReplicatedStorage = game:GetService("ReplicatedStorage")local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")-- Văn bản cần dịchlocal textToTranslate = "This is the example text to translate"-- Lấy vị trí của người chơilocal Players = game:GetService("Players")local player = Players.LocalPlayer-- lấy ID khu vực cho khu vực của người chơi địa phương hoặc đặt thành bất kỳ chuỗi khu vực hỗ trợ nàolocal locale = player.LocaleIdlocal translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)print("Translated text: ", translatedText)
Tập lệnh máy chủ trong ServerScriptService
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- Tìm tại https://create.roblox.com/dashboards/creations trong menu tràn của một ô trải nghiệm
local universeID = <your_universe_id>
-- Tạo chức năng remote function
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)
-- Chuẩn bị yêu cầu phiên dịch
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- mã ngôn ngữ mục tiêu hỗ trợ một danh sách nhiều địa phương để dịch.
-- Ở đây, chúng tôi chỉ đang truyền một ngôn ngữ:
--Người chơi địa phương được lấy từ kịch bản địa phương
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- Giả sử bản dịch[locale] có chứa văn bản đã dịch
else
return "Error: " .. result.Error.message
end
end
Thử nghiệm
API phiên dịch thời gian thực hiện nay chỉ hỗ trợ xác minh RCC.Kết quả là, bạn phải triển khai mã của mình vào một ví dụ thử nghiệm để kiểm tra API từ Studio.Sử dụng Thử nghiệm nhóm để triển khai kịch bản vào một ví dụ thử nghiệm và kiểm tra các thay đổi của bạn.
Tham chiếu API phiên dịch
Tham số yêu cầu API
Tên tham số | Loại | Mô tả |
---|---|---|
con đường | chuỗi | Con đường của vũ trụ. Cần thiết. |
tin nhắn | chuỗi | Văn bản cần được dịch. Bắt buộc. |
mã ngôn ngữ nguồn | chuỗi | Mã ngôn ngữ BCP-47 của IETF đại diện cho ngôn ngữ của văn bản nhập. Nếu không được cung cấp, hệ thống sẽ tự động phát hiện ngôn ngữ nguồn. |
mã ngôn ngữ mục tiêu | Array<string> | Một danh sách các mã ngôn ngữ mục tiêu trong định dạng BCP-47 của IETF cho việc dịch. |
Các trường phản hồi API
Tên trường | Loại | Mô tả |
---|---|---|
mã ngôn ngữ nguồn | chuỗi | Mã ngôn ngữ BCP-47 của IETF đại diện cho ngôn ngữ được phát hiện hoặc được chỉ định của văn bản nguồn. |
phiên dịch | Dictionary<string, string> | Bản đồ chứa các bản dịch được yêu cầu.Chìa khóa là mã ngôn ngữ BCP-47 của IETF, và giá trị là văn bản đã dịch cho ngôn ngữ đó.Bản đồ sẽ chứa tất cả các bản dịch được yêu cầu.Nếu văn bản nguồn đã bị lọc, bản đồ này sẽ trống. |
Giới hạn
Roblox sử dụng công thức sau đây để giới hạn lượng yêu cầu cho API này dựa trên số lượng người chơi trong trải nghiệm của bạn:
max requests per minute per experience = 600 + (1.5 * number_of_concurrent_users)
Ngoài ra, còn có giới hạn kết hợp là 150 yêu cầu mỗi phút, cho mỗi máy chủ trò chơi cho tất cả các API Đám mây Mở.
Ngôn ngữ được hỗ trợ
API dịch thời gian thực hiện nay hỗ trợ các ngôn ngữ sau, khác nhau một chút so với ngôn ngữ được hỗ trợ cho dịch tự động .
Ngôn ngữ | Mã ngôn ngữ |
---|---|
Tiếng Trung (Giản thể) | tiếng trung zh-cn |
Trung Quốc (Truyền thống) | tiếng việt |
Tiếng Anh | tiếng anh |
Tiếng Pháp | fr-fr |
Tiếng Đức | thoát ra |
Tiếng Indonesia | id-id |
Italian | nó-it |
Nhật | tiếng việt |
Tiếng Hàn | ko-kr |
Tiếng Ba Lan | pl-pl |
Bồ Đào Nha | pt-br |
Tiếng Nga | ru-ru |
Tiếng Tây Ban Nha | es-es |
Thái Lan | tiếng th-th |
Thổ Nhĩ Kỳ | từ tr tr |
Tiếng Anh | vi-vnh |