กระบวนการแปลมาตรฐานตรวจพบสตริงในประสบการณ์ของคุณตามความถี่ที่ผู้เล่นดูและเพิ่มลงในตารางการแปลท้องถิ่นของคุณอาจพลาดสตริงที่ไม่ธรรมดาและ/หรือสตริงที่สร้างขึ้นระหว่างการเล่นเกม เช่น ข้อความที่สร้างขึ้นได้โดยอัตโนมัติหรือข้อความที่สร้างขึ้นโดยผู้เล่นคุณสามารถใช้ API แปลข้อความเพื่อสร้างการแปลสำหรับสตริงเหล่านี้ในเวลาจริงเพื่อให้แน่ใจว่าประสบการณ์ของคุณจะได้รับการแปลอย่างเต็มที่
แปลข้อความเป็นภาษาของผู้เล่น
เพื่อแปลข้อความเป็นภาษาของผู้เล่น ส่ง Player.LocaleId เป็นรหัสภาษาเป้าหมายต่อไปนี้เป็นตัวอย่างของวิธีที่คุณสามารถรับ ID ท้องถิ่นของผู้เล่นในสคริปต์ไคลเอนต์แล้วส่งไปยัง Script ใน ServerScriptService เพื่อสร้างคำขอแปล
- API แปลเป็น API เปิดใช้งานบนคลาวด์ ซึ่งหมายความว่าคุณต้องมีเส้นทาง เพื่อสร้างคำขอในกรณีนี้คุณต้องการรหัสจักรวาลซึ่งสามารถพบได้ในเมนูเหลือของปุ่มประสบการณ์ในแท็บ Creator Hub
- คุณต้องรวมแพคเกจเคลนต์เปิดคลาวด์ ด้วย ในประสบการณ์ของคุณ; สคริปเซิร์ฟเวอร์ต้องการมัน
สคริปต์ไคลเอ็นต์
local ReplicatedStorage = game:GetService("ReplicatedStorage")local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")-- ข้อความสำหรับการแปลlocal textToTranslate = "This is the example text to translate"-- รับที่ตั้งท้องถิ่นของผู้เล่นlocal Players = game:GetService("Players")local player = Players.LocalPlayer-- รับ ID ท้องถิ่นสำหรับท้องถิ่นของผู้เล่นท้องถิ่นหรือตั้งค่าเป็นสตริงท้องถิ่นใดๆ ที่สนับสนุนได้local locale = player.LocaleIdlocal translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)print("Translated text: ", translatedText)
สคริปต์เซิร์ฟเวอร์ใน ServerScriptService
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- ค้นหาที่ https://create.roblox.com/dashboard/creations ในเมนูเหลื่อมของปุ่มประสบการณ์
local universeID = <your_universe_id>
-- สร้างฟังก์ชันระยะไกล
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)
-- เตรียมคำขอแปล
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- รหัสภาษาเป้าหมายสนับสนุนรายการหลายภูมิภาคที่จะแปล
-- ที่นี่เรากำลังส่งเพียงภาษาเดียว:
--ผู้เล่นท้องถิ่นที่ดึงมาในสคริปท้องถิ่น
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- คาดว่าแปล[locale] จะมีข้อความแปล
else
return "Error: " .. result.Error.message
end
end
ทดสอบ
ขณะนี้ API แปลแบบเรียลไทม์สนับสนุนการตรวจสอบ RCC เท่านั้นผลที่ตามมาคือคุณต้องส่งรหัสของคุณไปยังตัวอย่างทดสอบเพื่อทดสอบ API จาก Studioใช้ การทดสอบทีม เพื่อปล่อยสคริปต์ไปยังตัวอย่างการทดสอบและทดสอบการเปลี่ยนแปลงของคุณ
คำอธิบาย API การแปล
พารามิเตอร์คำขอ API
ชื่อพารามิเตอร์ | ชนิด | คําอธิบาย |
---|---|---|
เส้นทาง | ข้อความ | เส้นทางของจักรวาล จำเป็น |
ข้อความ | ข้อความ | ข้อความที่จะแปล จำเป็น |
รหัสภาษาที่มา | ข้อความ | รหัสภาษา BCP-47 ของ IETF ที่แทนที่ภาษาของข้อความที่ใส่ หากไม่ได้ระบุ ระบบจะตรวจพบภาษาที่เป็นที่มาโดยอัตโนมัติ |
รหัสภาษาเป้าหมาย | Array<string> | รายการรหัสภาษาเป้าหมายในรูปแบบ BCP-47 ของ IETF สำหรับการแปล |
ฟิลด์คำตอบ API
ชื่อฟิลด์ | ชนิด | คําอธิบาย |
---|---|---|
รหัสภาษาที่มา | ข้อความ | รหัสภาษา BCP-47 ของ IETF ที่แทนที่ภาษาที่ตรวจพบหรือกำหนดโดยผู้ใช้ของข้อความที่มาจากที่อื่น |
แปลภาษา | Dictionary<string, string> | แผนที่ที่มีการแปลที่ต้องการกุญแจคือรหัสภาษา BCP-47 ของ IETF และค่าคือข้อความแปลสำหรับภาษานั้นแผนที่จะมีการแปลทั้งหมดที่ร้องขอหากข้อความที่มาจากแหล่งถูกกรองแผนที่นี้จะว่างเปล่า |
ข้อจํากัด
Roblox ใช้สูตรต่อไปนี้เพื่อลดความถี่ของคำขอสำหรับ API นี้ตามจํานวนผู้เล่นในประสบการณ์ของคุณ:
max requests per minute per experience = 600 + (1.5 * number_of_concurrent_users)
นอกจากนี้ยังมีขีดจํากัดรวมของ 150 คําขอต่อนาทีต่อเซิร์ฟเวอร์เกมสําหรับ API เปิดทั้งหมด
ภาษาที่รองรับ
API แปลแบบเรียลไทม์ปัจจุบันสนับสนุนภาษาต่อไปนี้ซึ่งแตกต่างเล็กน้อยจาก ภาษาที่สนับสนุนสำหรับการแปลอัตโนมัติ
ภาษา | รหัสภาษา |
---|---|
จีน (แสนง่าย) | ภาษาจีน-cn |
จีน (แบบดั้งเดิม) | ภาษาไทย |
ภาษาอังกฤษ | en-us สิ่งที่ค้นหา |
ฝรั่งเศส | ฟร-ฟร |
เยอรมัน | เด-เด |
ภาษาอินโดนีเซีย | รหัส-id |
ภาษาอิตาลี | มัน-มัน |
ญี่ปุ่น | ญี่ปุ่น-ญาปา |
ภาษาเกาหลี | ko-kr |
โปแลนด์ | pl-pl |
ภาษาโปรตุเกส | pt-br |
รัสเซีย | รุ-รุ |
สเปน | เอส-อี |
ไทย | ไทย-ไทย |
ตุรกี | ทร-ทร |
เวียดนาม | vi-vn |