LocalizationTable
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
โต๊ะการแปลท้องถิ่นคือฐานข้อมูลของการแปลมันมีสตริงที่มาและการแปลสำหรับภาษาต่างๆใช้ร่วมกับระบบแปลภาษาอัตโนมัติ Translator และ LocalizationService เพื่อควบคุมการแปลข้อความในเกมตารางการแปลท้องถิ่นออกแบบมาเพื่อให้ถูกปฏิบัติเป็นทรัพยากร เช่นเทกเจอร์หรือสคริปต์พวกเขาไม่ได้รับการปรับให้เหมาะสมเพื่อแก้ไขในระหว่างการทำงานการเปลี่ยนเนื้อหาของตารางจะทำให้เนื้อหาทั้งหมดของตารางถูกสําเนาไปยังผู้เล่นทั้งหมด
รายการในตารางการแปลท้องถิ่น
แต่ละโต๊ะการแปลท้องถิ่นมีชุดของรายการ แต่ละรายการมีการแปลของข้อความพร้อมกับฟิลด์พิเศษบางอย่าง:
- กุญแจ เป็นกุญแจที่ไม่ซ้ำกันสำหรับการค้นหาแฮชอย่างรวดเร็วในรหัส หากไม่ว่างเปล่าจะต้องเป็นกุญแจที่ไม่ซ้ำกันในตาราง
- ที่มา คือข้อความเดิมในภาษาที่จะใช้โดยระบบแทนที่ข้อความอัตโนมัติ LocalizationService เพื่อจับคู่ข้อความ GUI และแสดงการแปลแทนฟิลด์ที่มาจากแหล่งสามารถกรอกโดยเครื่องมือจับข้อความได้ หรือสามารถตั้งค่าได้ด้วยตนเองสำหรับการค้นหาตามรหัส ค่าที่มาจากแหล่งสามารถใช้เป็นการแปลสำหรับ LocalizationTable.SourceLocaleId หากรายการไม่มีการแปลสำหรับภูมิภาคนั้นหากที่มาว่างเปล่าแล้วรายการจะไม่ถูกใช้โดยระบบแทนที่อัตโนมัติ
- บริบท คือชื่อตัวเต็มของวัตถุที่ข้อความปรากฏบนบริบทใช้สำหรับการแยกความแตกต่างโดยระบบแทนที่ข้อความอัตโนมัติเมื่อพบการจับคู่หลายครั้งสำหรับที่มาแล้ว ระบบจะเลือกการจับคู่ที่ดีที่สุดโดยจับคู่ย้อนกลับจากจุดสิ้นสุดของสตริงบริบทมีวิธีการจัดการการไม่ชัดเจนอื่นที่แข็งแกร่งมากขึ้นที่สามารถใช้ได้เช่นกัน เช่น การใช้หลายตารางด้วย GuiBase2d.RootLocalizationTable
- ตัวอย่าง คืออะไรก็ได้ที่คุณต้องการหากเครื่องมือจับข้อความเดาพารามิเตอร์บางอย่างสําหรับสตริงฟิลด์ตัวอย่างจะมีตัวอย่างของพวกเขาที่ใช้ในบริบท
ฟิลด์เหล่านี้ทั้งหมดเป็นตัวเลือก แต่อย่างน้อยที่สุดคีย์หรือทรัพยากรต้องไม่ว่างเปล่า ไม่มีสองรายการที่มีคีย์เดียวกัน ทรัพยากร และบริบทเดียวกัน
ดู การแปลเนื้อหาไดนามิก สำหรับข้อมูลเพิ่มเติม
ตัวอย่างโค้ด
local LocalizationService = game:GetService("LocalizationService")
local function createLocalizationTable(entries)
local localTable = Instance.new("LocalizationTable")
localTable.DevelopmentLanguage = LocalizationService.SystemLocaleId
localTable:SetEntries(entries)
return localTable
end
local entries = {
{
Key = "Hello_World", -- The 'expressionKey' to be used with GetString
Values = { -- A dictionary of keys corresponding to IETF language tags, and their translations.
["ru"] = " !", -- Russian
["fr"] = "Bonjour le monde!", -- French
["de"] = "Hallo Welt!", -- German
["en-US"] = "Hello world!", -- English
["it"] = "Ciao mondo!", -- Italian
["pt-BR"] = "Ol Mundo!", -- Portuguese
["ja"] = "", -- Japanese
["es"] = "Hola Mundo!", -- Spanish
},
},
}
local helloWorldTable = createLocalizationTable(entries)
print(helloWorldTable:GetString("en-US", "Hello_World"))
สรุป
คุณสมบัติ
ที่ตั้งของสตริงที่มา ของท้องถิ่น
วิธีการ
คืนค่าเป็นคอลเลกชันของสารานุกรมซึ่งแต่ละสารานุกรมแทนที่เป็นรายการของข้อมูลการแปลท้องถิ่น
ส่งคืน Translator สำหรับรายการในโต๊ะการแปลท้องถิ่นนี้ในภาษาที่กำหนด
ลบรายการออกจากตารางการแปลโดยใช้ key , source และ context เพื่อลดรายการเฉพาะที่จะถูกลบ
ลบการแปลภาษาเดียวจาก LocalizationTable โดยใช้ key , source , context และ localeId เพื่อลดรายการเฉพาะที่จะถูกลบ
ลบคำแปลทั้งหมดจากโต๊ะการแปลท้องถิ่นด้วยโค้ดภูมิภาคที่ระบุ
ตั้งเนื้อหาของตารางการแปลท้องถิ่น
ตั้งฟิลด์ บริบท ของการเข้าสู่ LocalizationTable เป็น newContext โดยใช้ key , source และ context เพื่อจำกัดการเข้าสู่รายการที่จะมีการเปลี่ยนแปลงนี้ใช้
ตั้งฟิลด์ ตัวอย่าง ของการเข้าสู่ LocalizationTable เป็น example โดยใช้ key , source และ context เพื่อจำกัดการเข้าสู่รายการที่จะมีการเปลี่ยนแปลงนี้ใช้
ตั้งฟิลด์ คีย์ ของการเข้าสู่ LocalizationTable เป็น newKey โดยใช้ key , source และ context เพื่อจำกัดการเข้าสู่รายการที่จะมีการเปลี่ยนแปลงนี้ใช้
ตั้งฟิลด์ ที่มา ของรายการในตารางการแปลเป็นภาษาท้องถิ่นเป็น newSource โดยใช้ key , source และ context เพื่อลดรายการที่จะมีการเปลี่ยนแปลงนี้ใช้
ตั้งข้อความของโลเคชั่นที่ระบุ ID ในส่วนของตารางการแปลภาษาโดยใช้ key , source และ context เพื่อลดรายการที่จะมีการเปลี่ยนแปลงนี้ใช้
คุณสมบัติ
SourceLocaleId
ท้องถิ่น Roblox ของสตริงคีย์อินพุตสำหรับตารางนี้ เช่น "en-us" หรือ "es-es" โดยปกติจะเป็น "ภาษาการพัฒนา" ของเกมสำหรับนักแปลที่รวมหลายวัตถุ LocalizationTable มันเป็น LocaleId ของ LocalizationTable เริ่มต้นค่าเริ่มต้นเป็น "en-us"
วิธีการ
GetEntries
ฟังก์ชัน GetEntries ส่งคืนคอลเลกชันของสารานุกรมที่อยู่ใน LocalizationTable ที่กำหนด ซึ่งแต่ละสารานุกรมแทนที่การเข้าสู่ระบบของข้อมูลการแปลท้องถิ่น
เพื่อตั้งค่ารายการของ LocalizationTable คุณสามารถใช้ LocalizationTable:SetEntries()
แต่ละสารานุกรมใน array มีฟิลด์ต่อไปนี้:
<th>ประเภท</th><th>คําอธิบาย</th></tr></thead><tbody><tr><td><b>กุญแจ</b></td><td><code>Library.string</code></td><td>คีย์การค้นหาสำหรับรายการเฉพาะนี้ใน LocalizationTable</td></tr><tr><td><b>ที่มา</b></td><td><code>Library.string</code></td><td>สตริงที่ใช้ในการรูปแบบสตริงที่แปลเป็นภาษาท้องถิ่น ใช้เป็นการค้นหาหากไม่มีกุญแจที่ให้ไว้</td></tr><tr><td><b>บริบท</b></td><td><code>Library.string</code></td><td>เส้นทาง <code>Class.Instance:GetFullName()</code> ไปยังวัตถุที่ใช้ในการสร้างโต๊ะการแปลงภาษาท้องถิ่นใช้เป็นการค้นหาหากไม่มีกุญแจให้</td></tr><tr><td><b>ตัวอย่าง</b></td><td><code>Library.string</code></td><td>การแปลภาษาไม่บังคับ</td></tr><tr><td><b>ค่า</b></td><td><code>สารานุกรม</code></td><td>สารานุกรมของการแปลภาษาสำหรับบันทึกการแปลท้องถิ่นนี้คีย์ของสารานุกรมนี้คือรหัสท้องถิ่นและมูลค่าคือสตริงที่ใช้ในการใช้การแปลเป็นภาษาตามรหัสท้องถิ่น</td></tr></tbody>
ดัชนี |
---|
ส่งค่ากลับ
ชุดของสารานุกรมที่แต่ละสารานุกรมแทนที่การเข้าสู่ระบบของข้อมูลการแปลท้องถิ่น
ตัวอย่างโค้ด
The following code sample creates a LocalizationTable, sets its entries, then gets and displays its entries. In order for this example to work, a LocalizationTable instance must be located inside the LocalizationService service.
The entries variable is a table of dictionaries, each with the format required to create a LocalizationTable with LocalizationTable:SetEntries().
The get_results variable is a table of dictionaries - the same table that we created with the entries variable. We then loop through each of the tables in this dictionary to display its Values/strings.
local LocalizationService = game:GetService("LocalizationService")
local localizationTable = LocalizationService:FindFirstChild("LocalizationTable")
local entries = {
{
["Key"] = "0001",
["Source"] = "en-us",
["Values"] = {
["0001"] = "Hello Muddah, hello Fadduh.",
["0002"] = "Here I am at Camp Granada.",
["0003"] = "Camp is very entertaining.",
["0004"] = "And they say we'll have some fun if it stops raining.",
},
},
}
localizationTable:SetEntries(entries)
local get_results = localizationTable:GetEntries()
for _index, dict in pairs(get_results) do
for _key, value in pairs(dict["Values"]) do -- Loop through every key, value pair in the dictionary to print our strings
print(value)
end
end
GetTranslator
ส่งคืน Translator สำหรับรายการในโต๊ะการแปลท้องถิ่นนี้ในภาษาที่กำหนดนักแปลจะค้นหาในตารางนี้ก่อนแล้วจึงมองหาในตารางบรรพบุรุษ
พารามิเตอร์
ส่งค่ากลับ
RemoveEntry
ลบรายการออกจากตารางการแปลโดยใช้ key , source และ context เพื่อลดรายการเฉพาะที่จะถูกลบ
พารามิเตอร์
ส่งค่ากลับ
RemoveEntryValue
ลบการแปลภาษาเดียวจาก LocalizationTable โดยใช้ key , source , context และ localeId เพื่อลดรายการเฉพาะที่จะถูกลบ
พารามิเตอร์
ส่งค่ากลับ
RemoveTargetLocale
ลบคำแปลทั้งหมดจากโต๊ะการแปลท้องถิ่นด้วยโค้ดภูมิภาคที่ระบุ
พารามิเตอร์
ส่งค่ากลับ
SetEntries
ตั้งเนื้อหาของตารางการแปลท้องถิ่น
พารามิเตอร์ของรายการควรเป็นคอลเลกชันของสารานุกรมในรูปแบบเดียวกับที่ส่งกลับจากฟังก์ชัน LocalizationTable:GetEntries()
พารามิเตอร์
ส่งค่ากลับ
SetEntryContext
ตั้งฟิลด์ บริบท ของการเข้าสู่ LocalizationTable เป็น newContext โดยใช้ key , source และ context เพื่อจำกัดการเข้าสู่รายการที่จะมีการเปลี่ยนแปลงนี้ใช้
พารามิเตอร์
ส่งค่ากลับ
SetEntryExample
ตั้งฟิลด์ ตัวอย่าง ของการเข้าสู่ LocalizationTable เป็น example โดยใช้ key , source และ context เพื่อจำกัดการเข้าสู่รายการที่จะมีการเปลี่ยนแปลงนี้ใช้
พารามิเตอร์
ส่งค่ากลับ
SetEntryKey
ตั้งฟิลด์ คีย์ ของการเข้าสู่ LocalizationTable เป็น newKey โดยใช้ key , source และ context เพื่อจำกัดการเข้าสู่รายการที่จะมีการเปลี่ยนแปลงนี้ใช้
พารามิเตอร์
ส่งค่ากลับ
SetEntrySource
ตั้งฟิลด์ ที่มา ของรายการในตารางการแปลเป็นภาษาท้องถิ่นเป็น newSource โดยใช้ key , source และ context เพื่อลดรายการที่จะมีการเปลี่ยนแปลงนี้ใช้
พารามิเตอร์
ส่งค่ากลับ
SetEntryValue
ตั้งข้อความของโลเคชั่นที่ระบุ ID ในส่วนของตารางการแปลภาษาโดยใช้ key , source และ context เพื่อลดรายการที่จะมีการเปลี่ยนแปลงนี้ใช้