Translator

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
ไม่ซ้ำ

บทบาทของนักแปลคือการผลิต/ส่งกลับสตริงที่แปลเป็นภาษาท้องถิ่นสำหรับผู้เล่นดูสามารถใช้เพื่อดึงข้อความที่พร้อมแสดงจาก LocalizationTable ได้ที่มาของคุณสมบัติ Translator.LocaleId อินสแตนซ์

อินพุตสําหรับนักแปลคือสตริงภาษาการพัฒนาเดิมและบริบทซึ่งทั้งหมดหรือส่วนหนึ่งของบริบทสามารถใช้เพื่อค้นหาการแปลที่แม่นยํา/สถานการณ์มากขึ้นสําหรับสตริงที่เป็นที่มา

นักแปลยังสามารถใช้เพื่อผลิตสตริงแปลที่มีการแทรก (การเปลี่ยนข้อมูล) ซึ่งอาจเปลี่ยนลำดับตามภาษาเป้าหมาย

สรุป

คุณสมบัติ

  • อ่านอย่างเดียว
    ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    ท้องถิ่นของสตริงแปลแล้ว

วิธีการ

  • FormatByKey(key : string,args : Variant):string

    คืนสตริงข้อความที่แปลเป็นภาษาท้องถิ่นใน LocalizationTable ขึ้นอยู่กับภูมิภาคท้องถิ่นของมัน Translator คีย์

  • Translate(context : Instance,text : string):string

    คืนสตริงข้อความท้องถิ่นใน ขึ้นอยู่กับภูมิภาคท้องถิ่นของมันโดยการค้นหาแหล่งที่มา

คุณสมบัติ

LocaleId

อ่านอย่างเดียว
ไม่ซ้ำ
อ่านพร้อมๆ กัน

ท้องถิ่น Roblox ของสตริงที่แปลแล้วจากตารางนี้สำหรับตัวอย่างเช่น "en-us" หรือ "es-es" ค่าเริ่มต้นคือ "en-us"

วิธีการ

FormatByKey

คืนสตริงข้อความที่แปลเป็นภาษาท้องถิ่นใน LocalizationTable ขึ้นอยู่กับภูมิภาคท้องถิ่นของมัน Translator โดยใช้กุญแจตาราง args ที่ไม่บังคับใช้จะถูกใช้เพื่อกรอกพารามิเตอร์รูปแบบในข้อความที่ตรงกัน

โปรดทราบว่าวิธีนี้จะโยนข้อผิดพลาดในกรณีต่อไปนี้:

  • หากไม่มีใดๆ ของ LocalizationTables ที่มีอยู่สำหรับกุญแจที่กำหนด Translator รวมถึงค่าสําหรับกุญแจที่กำหนด
  • หากสตริงรูปแบบ สําหรับกุญแจใช้พารามิเตอร์จํานวนและ args ไม่ใช่ค่าตัวเลข
  • หากสตริงรูปแบบ ใช้พารามิเตอร์ที่ชื่อว่าและ args ไม่ใช่ตารางของคู่คีย์-ค่า
  • หาก args ขาดค่าสำหรับพารามิเตอร์ที่ใช้ในสตริงรูปแบบที่ตรงกัน

ดู การแปลเป็นภาษาท้องถิ่นด้วยการเขียนสคริปต์ สำหรับรายละเอียดเพิ่มเติมและตัวอย่างการใช้งานของฟังก์ชันนี้

พารามิเตอร์

key: string

ค่า กุญแจ ที่จะค้นหาและแปล

ค่าเริ่มต้น: ""
args: Variant

จะต้องให้หากข้อความและการแปลของ ทรัพยากร มีเนื้อหาเป็นสตริงรูปแบบจะเป็นตาราง 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

พารามิเตอร์

context: Instance

ในเกมที่ถูกต้อง Instance ที่จะใช้สําหรับการยกเลิกบริบทตามที่ระบุไว้ข้างต้นโปรดทราบว่าอาร์กิวเมนต์นี้สามารถกำหนดเองได้ ตัวอย่างเช่น game หากคุณไม่ต้องการยกเลิกบริบท

ค่าเริ่มต้น: ""
text: string

ข้อความ ที่มา เพื่อค้นหาและแปล

ค่าเริ่มต้น: ""

ส่งค่ากลับ

ข้อความที่แปล

อีเวนต์