Translator
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
บทบาทของนักแปลคือการผลิต/ส่งกลับสตริงที่แปลเป็นภาษาท้องถิ่นสำหรับผู้เล่นดูสามารถใช้เพื่อดึงข้อความที่พร้อมแสดงจาก LocalizationTable ได้ที่มาของคุณสมบัติ Translator.LocaleId อินสแตนซ์
อินพุตสําหรับนักแปลคือสตริงภาษาการพัฒนาเดิมและบริบทซึ่งทั้งหมดหรือส่วนหนึ่งของบริบทสามารถใช้เพื่อค้นหาการแปลที่แม่นยํา/สถานการณ์มากขึ้นสําหรับสตริงที่เป็นที่มา
นักแปลยังสามารถใช้เพื่อผลิตสตริงแปลที่มีการแทรก (การเปลี่ยนข้อมูล) ซึ่งอาจเปลี่ยนลำดับตามภาษาเป้าหมาย
สรุป
คุณสมบัติ
ท้องถิ่นของสตริงแปลแล้ว
วิธีการ
คืนสตริงข้อความที่แปลเป็นภาษาท้องถิ่นใน LocalizationTable ขึ้นอยู่กับภูมิภาคท้องถิ่นของมัน Translator คีย์
คืนสตริงข้อความท้องถิ่นใน ขึ้นอยู่กับภูมิภาคท้องถิ่นของมันโดยการค้นหาแหล่งที่มา
คุณสมบัติ
LocaleId
ท้องถิ่น Roblox ของสตริงที่แปลแล้วจากตารางนี้สำหรับตัวอย่างเช่น "en-us" หรือ "es-es" ค่าเริ่มต้นคือ "en-us"
วิธีการ
FormatByKey
คืนสตริงข้อความที่แปลเป็นภาษาท้องถิ่นใน LocalizationTable ขึ้นอยู่กับภูมิภาคท้องถิ่นของมัน Translator โดยใช้กุญแจตาราง args ที่ไม่บังคับใช้จะถูกใช้เพื่อกรอกพารามิเตอร์รูปแบบในข้อความที่ตรงกัน
โปรดทราบว่าวิธีนี้จะโยนข้อผิดพลาดในกรณีต่อไปนี้:
- หากไม่มีใดๆ ของ LocalizationTables ที่มีอยู่สำหรับกุญแจที่กำหนด Translator รวมถึงค่าสําหรับกุญแจที่กำหนด
- หากสตริงรูปแบบ สําหรับกุญแจใช้พารามิเตอร์จํานวนและ args ไม่ใช่ค่าตัวเลข
- หากสตริงรูปแบบ ใช้พารามิเตอร์ที่ชื่อว่าและ args ไม่ใช่ตารางของคู่คีย์-ค่า
ดู การแปลเป็นภาษาท้องถิ่นด้วยการเขียนสคริปต์ สำหรับรายละเอียดเพิ่มเติมและตัวอย่างการใช้งานของฟังก์ชันนี้
พารามิเตอร์
ค่า กุญแจ ที่จะค้นหาและแปล
จะต้องให้หากข้อความและการแปลของ ทรัพยากร มีเนื้อหาเป็นสตริงรูปแบบจะเป็นตาราง Luau ของค่า หรือ คู่คีย์-ค่า ขึ้นอยู่กับว่าสตริงรูปแบบมีหมายเลขหรือชื่อหรือไม่
ส่งค่ากลับ
Translate
ส่งคืนสตริงข้อความที่แปลเป็นภาษาท้องถิ่นใน LocalizationTable ขึ้นอยู่กับภูมิภาคท้องถิ่นของมัน Translatorสตริงนี้จะอยู่ในบริบทของวัตถุที่ให้ไว้โดยใช้ข้อความ ที่มา ที่ให้ไว้
ดู การแปลเป็นภาษาท้องถิ่นด้วยการเขียนสคริปต์ สำหรับรายละเอียดเพิ่มเติมและตัวอย่างการใช้งานของฟังก์ชันนี้
การแทนที่บริบท
ในบางกรณี สตริงซ้ำ ที่มา อาจมีการแปลที่แตกต่างอย่างสิ้นเชิงในภาษาอื่นตัวอย่างเช่น คํานามภาษาอังกฤษ "หน้าจอ" สามารถระบุทั้งหน้าจอคอมพิวเตอร์และหน้าจอหน้าต่าง แต่การแปลภาษาสเปนจะแตกต่างอย่างสิ้นเชิง:
<td width="16%">B</td><td width="18%">C</td><td width="12%">D</td><td width="18%">E</td></tr><tr><td>กุญแจ</td><td>บริบท</td><td><b>ที่มา</b></td><td>ตัวอย่าง</td><td><b>es</b></td></tr><tr><td /><td /><td>หน้าจอ</td><td /><td>หน้าจอ</td></tr><tr><td /><td /><td>หน้าจอ</td><td /><td>โมสคิเตโร</td></tr><tr><td /><td /><td /><td /><td /></tr></tbody>
A |
ในกรณีเหล่านี้ อาร์กิวเมนต์แรกของฟังก์ชันนี้ — Instance ในเกมที่ถูกต้อง — สามารถใช้เป็น "ที่ทำลายความสัมพันธ์" เมื่อมี GUI หลายตัวใช้สตริงที่เดียวกันเพื่อที่จะดำเนินการนี้ ให้ระบุ "เส้นทาง" ไปที่ Instance ที่คุณต้องการที่จะแทนที่เป็นค่า บริบท ของข้อมูลแปล:
<td width="36%">B</td><td width="18%">C</td><td width="12%">D</td><td width="18%">E</td></tr><tr><td>กุญแจ</td><td><b>บริบท</b></td><td>ที่มา</td><td>ตัวอย่าง</td><td>es</td></tr><tr><td /><td>พื้นที่ทำงาน.ComputerScreen.SurfaceGui.TextLabel</td><td>หน้าจอ</td><td /><td>หน้าจอ</td></tr><tr><td /><td /><td>หน้าจอ</td><td /><td>โมสคิเตโร</td></tr><tr><td /><td /><td /><td /><td /></tr></tbody>
A |
จากนั้นเมื่อเรียกฟังก์ชันนี้ในสคริปต์ให้ส่งค่าเดียวกัน Instance เป็นอาร์กิวเมนต์แรกตามด้วยข้อความค้นหา ทรัพยากร เป็นอาร์กิวเมนต์ที่สอง:
local Players = game:GetService("Players")
local LocalizationService = game:GetService("LocalizationService")
local success, translator = pcall(function()
return LocalizationService:GetTranslatorForPlayerAsync(Players.LocalPlayer)
end)
if success then
local trans = translator:Translate(workspace.ComputerScreen.SurfaceGui.TextLabel, "Screen")
print(trans)
else
warn("Cannot load translator for player!")
end
พารามิเตอร์
ในเกมที่ถูกต้อง Instance ที่จะใช้สําหรับการยกเลิกบริบทตามที่ระบุไว้ข้างต้นโปรดทราบว่าอาร์กิวเมนต์นี้สามารถกำหนดเองได้ ตัวอย่างเช่น game หากคุณไม่ต้องการยกเลิกบริบท
ข้อความ ที่มา เพื่อค้นหาและแปล
ส่งค่ากลับ
ข้อความที่แปล