diff --git a/Assets/StreamingAssets/Locales/th-th.yml b/Assets/StreamingAssets/Locales/th-th.yml new file mode 100644 index 00000000..737495aa --- /dev/null +++ b/Assets/StreamingAssets/Locales/th-th.yml @@ -0,0 +1,1189 @@ +# Translation Terms Note: +# Tap แตะ +# Hold ค้าง +# Sky อากาศ +# Arc ลาก +# Trace ราง +# Chart โน้ตเพลง +# scenecontrol (keep) +# Timingpointdensityfactor (keep) Render (สร้างวิดีโอ) +# Lane (use แถว) +# Macros (มาโคร) +# Easing การโค้ง +# Project (keep for debug) +# Mirror (สะท้อน) +# Metadata (keep for debug) +# Remote (as in remote testing)(ทดสอบ as placeholder) +# Charter (ผู้ออกแบบโน้ตเพลง) +# Judgement (wip) +# Asset (wip) + +Parsing: + # Exception messages for parsing strings + Exception: + CharacterNotFound: หาตัวอักขระ "{0}" ไม่ได้ + InvalidConversionToInt: ไม่สามารถเปลี่ยน "{0}" เป็นค่าเลขจริง + InvalidConversionToBool: ไม่สามารถเปลี่ยน "{0}" เป็นค่าจริงเท็จ + InvalidConversionToFloat: ไม่สามารถเปลี่ยน "{0}" เป็นค่าทศนิยม + +Format: + # Exception messages while parsing chart files + Exception: + File: |- + มี exception เกิดขึ้นระหว่างอ่านไฟล์โน้ตเพลง {File}: + {Error} + SingleErrorFormat: |- + at: แถว {LineNumber} + ระหว่างดําเนินเหตุการณ์ประเภท: {EventType} + เนื่องจาก: "{Content}" + {Reason} + SingleErrorShortFormat: |- + ระหว่างดําเนินเหตุการณ์ประเภท: {EventType} + {Reason} + UnknownException: |- + เกิด exception ที่ไม่ทราบเหตุว่า : {Exception} + Stack trace: + {StackTrace} + InvalidHeader: |- + เขียนหัวข้อที่ใช้งานไม่ได้ + ArcColorNegative: |- + รหัสสีของโน้ตลากไม่สามารถเป็นค่าลบได้ + AudioOffsetInvalid: |- + ค่าความคลาดเคลื่อนของเสียงเป็นค่าที่ไม่สามารถใช้ได้ + TimingPointDensityFactorInvalid: |- + ค่า density ของจุดเวลาที่เลีอกไม่ถูกต้อง. + BaseTimingInvalid: |- + ตั้งจังหวะเริ่มต้นไม่ถูกต้อง ต้องตั้งจังหวะเริ่มต้นที่ 0ms (0.000วินาที) + IncludeReferencedMultipleTimes: |- + ไฟล์โน้ตเพลงที่ถูกเรียก มีอยู่แล้ว + IncludeAReferencedFragment: |- + ไฟล์โน้ตที่ถูกเรียก โหลดไว้อยู่แล้วในรูปแบบ fragment +# A chart file was already referenced as a fragment but is being included again. + TimingGroupPairInvalid: |- + กลุ่มเวลาไม่สามารถอ่านได้ ตรวจสอบว่าลืมใส่ปีกกาปิดท้าย "};" ในไฟล์ข้อความของกลุ่มเวลาหรือไม่ + DivisorNegative: |- + ตัวแบ่งย่อยของจังหวะไม่สามารถเป็นค่าติดลบได้ + DurationNegative: |- + ระยะเวลาของเหตุการณ์ประเภทนี้ไม่สามารถเป็นค่าลบได้ + DurationZero: |- + ระยะเวลาของเหตุการณ์ประเภทนี้ไม่สามารถเป็นศูนย์ได้ + ArcTapOutOfRange: |- + โน้ตอากาศอยู่นอกเวลาโน้ตรางที่ได้เชื่อมไว้. + TimingGroupPropertiesInvalid: |- + คุณสมบัติของกลุ่มจังหวะที่ตั้งไว้ไม่สามารถใช้ได้ + ReferencedFileError: |- + ไม่สามารถโหลดไฟล์โน้ตเพลง: + {0} + FileDoesNotExist: |- + ไม่มีไฟล์โน้ตเพลง + Warning: + HoldTooShort: + โน้ตยาวสั้นกว่า 17ms(0.017วินาที) + TapJudgementOverlap: + บริเวณโน้ตแตะ ทับกับโน้ตอื่น + +Compose: + # Exception messages within the editor + Exception: + FileDoesNotExist: |- + ไฟล์ที่ {Path} ไม่สามารถถูกอ่านได้เนื่องจากไฟล์ไม่มีอยู่จริง ไฟล์อาจจะถูกลบไปแล้วก็ได้ LoadImage: |- + เกิดปัญหาขั้นระหว่างที่กําลังโหลดรูปภาพที่ {Path}. + {Error} + LoadProject: |- + เกิดปัญหาขึ้นระหว่างพยายากโหลดไฟล์ Project ที่ {Path}. + ไฟล์อาจถูกบันทึกผิดวิธี คุณสามารถปรับเปลี่ยนไฟล์ด้วยตัวเอง หรือคุณสามารถลบไฟล์และสร้าง Project ใหม่ {Error} + ChartFileAlreadyExists: |- + โน้ตเพลงมีอยู่ใน Project อยู่แล้ว + InvalidChartFile: |- + ชื่อของไฟล์โน้ตเพลงที่ให้ไว้ไม่สามารถใช้ได้ NoChartIncluded: |- + ไฟล์ Project ที่ไม่สามารถใช้ได้ : ไม่มีโน้ตเพลงอยู่ใน Project นี้ + InvalidGroupProperties: |- + คุณสมบัติของกลุ่มจังหวะนี้ไม่สามารถใช้ได้ {Message} + InstructionLimit: |- + การสั่งทํางานของ Lua script ได้ถูกยกเลิก : คุณถึงค่าจํากัดของ The instruction count ที่ {0} + InvalidBaseBPM: |- + ค่า BPM นี้ไม่สามารถใช้ได้: {0} + CreateSkyNoteNoValidArc: |- + ไม่สามารถสร้างโน้ตอากาศที่นี่ได้เนื่องจากโน้ตต้องอยู่บนรางเท่านั้น + Navigation: + ParseKeybind: |- + มี exception เกิดขึ้นระหว่างดําเนินปุ่มลัด: "{0}". + ParseWhitespace: |- + ปุ่มลัดใช้งานไม่ได้: ไม่สามารถเว้นว่างในช่องปุ่มได้ + InvalidKeystroke: |- + ปุ่มลัดใช้งานไม่ได้: ปุ่มลัด "{0}" ใช้รูปแบบที่ไม่ถูกต้อง + InvalidKey: |- + ปุ่มใช้งานไม่ได้: ค่าปุ่ม "{0}" ไม่ตรงกับปุ่มไหนเลย + InvalidModifier: |- + แป้นดัดแปรใช้งานไม่ได้: เส้นโค้ด "{0}" ไม่ตรงกับแป้นดัดแปรใดเลย + InvalidActionPath: |- + คําสั่งการกระทําช้งานไม่ได้: เส้นโค้ด "{0}" ไม่ตรงกับการกระทําใดเลย + Scenecontrol: |- + มีปัญหาเกิดขึ้นเมื่อกำลังทำคำสั่ง Scenecontrol ประเภท {Type}: {Message} + {StackTrace} + LuaScript: |- + มีปัญหาเกิดขึ้นเมื่อกำลังทำคำสั่งสคริปต์ lua {Path}: {Message} + {StackTrace} + Render: + FFmpeg: + NotFound: |- + ไม่สามารถหาไฟล์ ตัววิ่ง FFmpeg ได้. + Please confirm that the configured path {0} is correct. + Start: |- + มีปัญหาเกิดขึ้นระหว่างเริ่มใช้ FFmpeg ที่ {Path}: {Message} + {StackTrace} + Write: |- + เกิดปัญหาขึ้นระหว่างแปลงไฟล์เป็น FFmpeg ที่: {Message} + {StackTrace} + Audio: + IncompatibleSfx: |- + คลิปเสียง {Sfx} ไม่สามารถสร้างวิดีโอได้ + จำนวนช่องเสียงที่รับคือ {ExpectedChannels} ช่อง และความถี่ {ExpectedFrequency}, แต่มีจำนวนช่อง {Channels} ช่อง และความถี่ {Frequency}. + + # Notification messages + Notify: + FreeCameraEditHelp: |- + เริ่มต้นการใช้กล้องอิสระ (เลื่อนเมาส์สําหรับข้อมูลเพิ่มเติม) + + WASD: เดินหน้า/ซ้าย/ถอยหลัง/ขวา + Space: ขยับขึ้น + Shift: ขยับลง + IJKL: หมุนกล้อง ขึ้น/ซ้าย/ลง/ขวา + U: ตะแคงซ้าย + O: ตะแคงขวา + Esc: ยกเลิก + Enter: ยืนยัน + EmmyLuaGenerated: + Scenecontrol: |- + แม่แบบ EmmyLua สําหรับ scenecontrol ได้ถูกสร้างไว้ไว้ในโฟลเดอร์ของ Project + ใช้ VsCode พร้อมกับส่วนเสริม tangzx.emmylua เพื่อเติมข้อความอัตโนมัติ + Macros: |- + แม่แบบ EmmyLua สําหรับมาโครได้ถูกสร้างไว้ในโฟลเดอร์ของมาโคร + ใช้ VsCode พร้อมกับส่วนเสริม tangzx.emmylua เพิ่อเติมข้อความอัตโนมัติ + Actions: + CannotMirror: ไม่สามารถสะท้อนโน้ตที่เลือกไว้ได้ + NoDragRange: ไม่สามารถลากกลุ่มโน้ตที่เลือกไว้ได้ แนะนําให้ลองลากลากโน้ตทีละตัวแยกกัน + History: + Execute: |- + ทําคําสั่ง: {Name} + Undo: |- + เลิกทําคําสั่ง: {Name} + Redo: |- + ทําซํ้าคําสั่ง: {Name} + # {Name} above will be replaced with these entries + AddTiming: เพิ่มเหตุการณ์จังหวะ + EditTiming: แก้ไขเหตุการณ์จังหวะ + RemoveTiming: ลบเหตุการณ์จังหวะ + AddCamera: เพิ่มเหตุการณ์กล้อง + EditCamera: แก้ไขเหตุการณ์กล้อง + RemoveCamera: ลบเหตุการณ์กล้อง + AddScenecontrol: เพิ่มเหตุการณ์ scenecontrol + EditScenecontrol: แก้ไขเหตุการณ์ scenecontrol + RemoveScenecontrol: ลบเหตุการณ์ scenecontrol + EditValue: แก้ค่าข้อมูลของโน้ตที่ถูกเลือก + EditArc: แก้ค่าข้อมูลของโน้ตลาก + CreateNote: + Tap: สร้างโน้ตแตะ + Hold: สร้างโน้ตค้าง + Arc: สร้างโน้ตลาก + ArcTap: สร้างโน้ตอากาศ + Trace: สร้างราง + DeleteNotes: ลบโน้ต + Cut: ตัดโน้ต + Paste: วางโน้ต + Mirror: + Vertical: Mirror โน้ตในแนวดิ่ง + Horizontal: Mirror โน้ตในแนวยาว + Drag: + Timing: ย้ายจังหวะของโน้ต + Position: ย้ายตำแหน่งของโน้ต + Clipboard: + Copy: คัดลอกโน้ต {0} ตัว + Cut: ตัดโน้ต {0} ตัว + NamedCopy: คัดลอก {0} ตัวไปที่คลิปบอร์ดที่ "{1}" + NamedCut: ตัดโน้ต {0} ตัวไปที่คลิปบอร์ดที่ "{1}" + GroupTable: + AddGroup: เพิ่มกลุ่มจังหวะที่ {Number} + EditGroup: แก้ไขกลุ่มจังหวะที่ {Number} + RemoveGroup: ลบกลุ่มจังหวะที {Number} + Project: + NewProject: |- + สร้าง Project ใหม่ + at: {Path} + OpenProject: |- + เปิด Project + at: {Path} + SaveProject: |- + บันทึก Project + at: {Path} + OpenChart: เปิดไฟล์โน้ตเพลง {Path} + CreateChart: สร้างไฟล์โน้ตเพลง {Path} + RemoveChart: ลบไฟล์โน้ตเพลง {Path} ออกจาก Project + Inspector: + InvalidParamameter: ค่าข้อมูลที่ไม่สามารถใช้ได้ + Measurer: + CopyTiming: คัดลอกจังหวะบทเคอร์เซอร์ + CopyPosition: คัดลองตําแหน่งของโน้ตลาก + CopyX: คัดลอกพิกัด x ของโน้ตลาก + CopyY: คัดลอกพิกัด y ของโน้ตลาก + Export: + Render: + Cancelled: การสร้างวิดีโอถูกยกเลิก + Complete: การสร้างวิดีโอเสร็จสิ้น + Package: + Complete: ส่งออก package ไปที่ {0} + Macros: + Cancelled: ยกเลิกมาโคร + Select: + Timing: เลือกจังหวะ + Position: เลือกตำแหน่ง + Lane: เลือกแถว + NotFound: ไม่มีมาโคร "{macroId}" อยู่จริง + # Dialog boxes + Dialog: + RemoveGroup: + Title: ลบกลุ่มจังหวะ + Content: |- + คุณมั่นใจว่าจะละกลุ่มจังหวะนี้และข้อมูลทั้งหมดในกลุ่มหรือเปล่า(ไม่สามารถเลิกทําได้) + Yes: ลบ + No: ยกเลิก + RemoveChart: + Title: ลบไฟล์โน้ตเพลง + Content: |- + คุณมั่นใจว่าจะลบไฟล์โน้ตเพลงนี้ออกจาก Project นี้หรือเปล่า + ตัวโฟล์เองจะไม่ถูกลบและจะสามารถถูกเพิ่มเข้ามาใหม่ได้ แต่ว่า metadata ของไฟล์จะหายไป + Yes: ลบ + No: ยกเลิก + UnsavedChanges: + Title: ข้อมูลยังไม่ถูกบันทึก + Content: |- + คุณมีข้อมูลที่ยังไม่ถูกบันทึก คุณอยากบันทึกข้อมูลหรือไม่ + Yes: บันทึกการเปลี่ยนแปลง + No: ละทิ้งการเปลี่ยนแปลง + Cancel: ยกเลิก + LoadChartError: + Title: เกิดปัญหา + Content: |- + มีปัญหาเกิดขึ้นระหว่างโหลดไฟล์โน้ตเพลง {ChartPath}. + โปรดแก้ไขปัญหาในโปรแกรมแก้ไขข้อมูลอื่น หรือปิดหน้าต่างนี้แล้วใช้หน้าต่าง "<> {TabName}" + + Details: + {Content} + Confirm: ยืนยัน + Macros: + Title: มาโคร + GroupPicker: + SelectEditingGroup: "เปลี่ยนกลุ่มปัจจุบันเป็น:" + AssignNotesToGroup: "กําหนดโน้ตที่เลือกไปที่:" + PanelLayout: + Name: การจัดแสดง + Default: ปกติ + Compact: รวบรัด + SaveLayout: บันทึกการจัดแสดง + LayoutName: ชื่อการจัดแสดง + DuplicateError: มีการจัดแสดงที่มีชื่อเดียวกัยอยู่แล้ว + Navigation: + KeybindOverride: แทนที่ปุ่นที่ใช้กระทํา {0} + # Texts that appear on the context menu (right-click menu) + Actions: + Camera: + Name: กล้อง + FreeCamera: + Name: เริ่มต้นกล้องอิสระ + Confirm: ยืนยัน + Cancel: ยกเลิก + Faster: ขยับเร็วขึ้น + Slower: ขยับช้าลง + MoveForward: เดินหน้า + MoveLeft: ซ้าย + MoveRight: ขวา + MoveBackward: ถอยหลัง + MoveUp: ขึ้น + MoveDown: ลง + LookUp: มองขึ้น + LookDown: มองลง + LookLeft: มองซ้าย + LookRight: มองขวา + RollLeft: Roll left + RollRight: Roll right + Grid: + Name: ตาราง + Toggle: เปิดช่องตาราง + ToggleSlot: + Name: ตาราง + Slot1: ช่องที่ 1 + Slot2: ช่องที่ 2 + Slot3: ช่องที่ 3 + Slot4: ช่องที่ 4 + Slot5: ช่องที่ 5 + Slot6: ช่องที่ 6 + Slot7: ช่องที่ 7 + Slot8: ช่องที่ 8 + Slot9: ช่องที่ 9 + Slot0: ช่องที่ 0 + IncreaseDensity: เพิ่ม density + DecreaseDensity: ลด density + Macro: + Name: มาโคร + SelectEvents: + Confirm: ยืนยัน + Cancel: ยกเลิก + SelectLane: + Confirm: ยืนยัน + Cancel: ยกเลิก + SelectPosition: + Confirm: ยืนยัน + Cancel: ยกเลิก + SelectTiming: + Confirm: ยืนยัน + Cancel: ยกเลิก + Display: + Name: การแสดงผล + FullScreen: เปิดภาพเติมหน้าจอ + Selection: + Name: การเลือก + Clear: ยกเลืกการเลือก + Single: เลือกโน้ต + Add: ลากเลือก + Remove: ยกเลิกการลากเลือก + Toggle: เลือกโน้ต + RangeSelect: + Name: เลือกโน้ตระหว่างระย + Confirm: ยืนยัน + Cancel: ยกเลิก + Measure: + Name: วัด + Start: + Name: เปิดตัววัด + Confirm: ยืนยัน + Cancel: ยกเลิก + CopyTiming: คัดลอกจังหวะ + CopyPosition: คัดลอกตําแหล่ง + CopyX: คัดลอกพิกัด x + CopyY: คัดลอกพิกัด y + Clipboard: + Name: คลิปบอร์ด + Copy: คัดลอก + Cut: ตัด + Paste: + Name: วาง + Confirm: ยืนยันการวาง + Cancel: ยกเลิกการวาง + Mirror: สะท้อน + NamedPaste: + Name: วาง + Confirm: ยืนยันการวาง + Cancel: ยกเลิกการวาง + Mirror: สะท้อน + Clear: ล้างคลิปบอร์ด + NoteCreation: + Name: สร้างโน้ต + Start: + Name: เพิ่มโน้ต + Confirm: ยืนยัน + Cancel: ยกเลิก + NotePallete: + Name: โน้ต + Arc: + Name: โน้ตลาก + Blue: โน้ตลากสีฟ้า + Red: โน้ตลากสีแดง + Green: โน้ตลากสีเขียว + ArcAlt: + Name: โน้ตลาก (ราง) + Blue: โน้ตลากสีฟ้า + Red: โน้ตลากสีแดง + Green: โน้ตลากสีเขียว + Sky: โน้ตอากาศ + Tap: โน้ตแตะ + Hold: โน้ตค้าง + Idle: ว่าง + Delete: + Name: ลบ + Execute: ลบ + Mirror: + Name: สะท้อน + Horizontal: สะท้อนแนวนอน + HorizontalNoColorSwitch: สะท้อนแนวนอน (ไม่สนสี) + Vertical: สะท้อนแนวตั้ง + Dragging: + Name: ลาก + Timing: + Name: ลากจังหวะ + Confirm: ยืนยัน + Cancel: ยกเลิก + Position: + Name: ลากตําแหน่ง + Confirm: ยืนยัน + Cancel: ยกเลิก + Render: + Name: การสร้างวิดีโอ + Start: + Cancel: ยกเลิกการสร้างวิดีโอ + Playback: + Name: เส้นเวลาเพลง + TogglePlay: เล่น/หยุด + PlayReturn: + Name: เล่น + Return: หยุดและย้อนกลับ + Pause: หยุด + IncreaseSpeed: เร่งความเร็ว + DecreaseSpeed: ชะลอความเร็ว + + Grid: + # Please modify the comment lines only (lines beginning with '--') + DefaultScript: |- + -- THIS IS A LUA SCRIPT. See full documentation at: https://github.com/Arcthesia/ArcCreate/wiki/Grid-settings + -- CONFIGURATION + -- Choose one of the following template: 4k, 6k, oob4k, oob6k + local useTemplate = "4k" + local spacing = { + x = 0.125, + y = 0.25, + } + + -- Change grid color here + local color = { + ftr = { + area = rgba(0, 200, 0, 48), + boundary = rgba(65, 180, 66, 100), + }, + byd = { + area = rgba(150, 130, 22, 64), + boundary = rgba(150, 180, 108, 200), + }, + unsafe = { + area = rgba(230, 30, 22, 48), + boundary = rgba(200, 60, 50, 200), + }, + lines = rgba(150, 150, 150, 50), + panel = rgba(255, 255, 255, 16), + } + + -- INTERNAL + local templates = {} + templates["4k"] = { + left = -0.5, + right = 1.5, + top = 1, + bottom = -0.2, + + mainLeft = -0.5, + mainRight = 1.5, + mainTop = 1, + mainBottom = 0, + + lane = -0.2, + ftrLeft = 0, + ftrRight = 1, + bydLeft = -0.25, + bydRight = 1.25 + } + templates["6k"] = { + left = -1, + right = 2, + top = 1, + bottom = -0.2 / 1.61, + + mainLeft = -1, + mainRight = 2, + mainTop = 1, + mainBottom = 0, + + lane = -0.2 / 1.61, + ftrLeft = -0.25, + ftrRight = 1.25, + bydLeft = -0.625, + bydRight = 1.625 + } + templates["oob4k"] = { + left = -4, + right = 5, + top = 5, + bottom = -0.2, + + mainLeft = -0.5, + mainRight = 1.5, + mainTop = 1, + mainBottom = 0, + + lane = -0.2, + ftrLeft = 0, + ftrRight = 1, + bydLeft = -0.25, + bydRight = 1.25 + } + templates["oob6k"] = { + left = -4, + right = 5, + top = 5, + bottom = -0.2 / 1.61, + + mainLeft = -1, + mainRight = 2, + mainTop = 1, + mainBottom = 0, + + lane = -0.2 / 1.61, + ftrLeft = -0.25, + ftrRight = 1.25, + bydLeft = -0.625, + bydRight = 1.625 + } + + local config = templates[useTemplate] + + local function drawLines(color, points, isLoop) + for i = 1, #points - 1 do + grid.drawLineDecorative(points[i], points[i+1], color) + end + if isLoop then + grid.drawLineDecorative(points[#points], points[1], color) + end + end + + local ftrTL = xy(config.ftrLeft, config.mainTop) + local ftrTR = xy(config.ftrRight, config.mainTop) + local bydTL = xy(config.bydLeft, config.mainTop) + local bydTR = xy(config.bydRight, config.mainTop) + local gridBR = xy(config.mainRight, config.mainBottom) + local gridBL = xy(config.mainLeft, config.mainBottom) + local gridTL = xy(config.mainLeft, config.mainTop) + local gridTR = xy(config.mainRight, config.mainTop) + local trackL = xy(config.mainLeft, config.lane) + local trackR = xy(config.mainRight, config.lane) + + grid.setCollider(config.left, config.right, config.bottom, config.top) + grid.setPanelColor(color.panel) + + grid.drawArea(color.ftr.area, ftrTL, ftrTR, gridBR, gridBL) + drawLines(color.ftr.boundary, {ftrTL, ftrTR, gridBR, gridBL}, true) + + grid.drawArea(color.byd.area, bydTL, ftrTL, gridBL) + grid.drawArea(color.byd.area, ftrTR, bydTR, gridBR) + drawLines(color.byd.boundary, {ftrTL, bydTL, gridBL}, false) + drawLines(color.byd.boundary, {ftrTR, bydTR, gridBR}, false) + + grid.drawArea(color.unsafe.area, bydTL, gridTL, gridBL) + grid.drawArea(color.unsafe.area, gridTR, bydTR, gridBR) + grid.drawArea(color.unsafe.area, gridBL, gridBR, trackR, trackL) + drawLines(color.unsafe.boundary, {bydTL, gridTL, gridBL}, false) + drawLines(color.unsafe.boundary, {bydTR, gridTR, gridBR}, false) + drawLines(color.unsafe.boundary, {gridBR, trackR, trackL, gridBL}, false) + + spacing.x = math.max(spacing.x, 0.01) + spacing.y = math.max(spacing.y, 0.01) + grid.drawLine(config.left, config.left, config.bottom, config.top, color.lines) + for x = config.mainLeft - spacing.x, config.left + spacing.x, -spacing.x do + grid.drawLine(x, x, config.bottom, config.top, color.lines) + end + + for x = config.mainLeft, config.mainRight, spacing.x do + grid.drawLine(x, x, config.bottom, config.top, color.lines) + end + + for x = config.mainRight + spacing.x, config.right - spacing.x, spacing.x do + grid.drawLine(x, x, config.bottom, config.top, color.lines) + end + grid.drawLine(config.right, config.right, config.bottom, config.top, color.lines) + + grid.drawLine(config.left, config.right, config.bottom, config.bottom, color.lines) + for y = config.mainBottom - spacing.y, config.bottom + spacing.y, -spacing.y do + grid.drawLine(config.left, config.right, y, y, color.lines) + end + + for y = config.mainBottom, config.mainTop, spacing.y do + grid.drawLine(config.left, config.right, y, y, color.lines) + end + + for y = config.mainTop + spacing.y, config.top - spacing.y, spacing.y do + grid.drawLine(config.left, config.right, y, y, color.lines) + end + grid.drawLine(config.left, config.right, config.top, config.top, color.lines) + # Texts that appear on the editor UI + UI: + Common: + Confirm: ยืนยัน + Cancel: ยกเลิก + Close: ปิด + NotRequired: (ไม่จําเป็นต้องระบุ) + Extension: ส่วนเสริม + Placeholder: + Text: (ว่าง) + File: (ไม่มีไฟล์ที่ถูกเลือก) + Image: (ไม่มีรูปที่ถูกเลือก) + Property: (ไม่มีคุณสมบัติ) + ImagePrompt: คลิกเพื่อเลีอกรูป + PanelNames: + Toolbox: กล่องอุปกรณ์ + RawEditor: ข้อความ + Gameplay: การแสดงผลของเกม + Timeline: เส้นเวลาเพลง + Project: โปรเจค + Events: เหตุการณ์ + Remote: ทดสอบ + Export: ส่งออก + Settings: การตั้งค่า + # Top bar of the UI + Top: + Label: + New: ใหม่ + Open: เปิด + Save: บันทึก + InputMode: การป้อนข้อมูล + InputModeOptions: + auto: อัตโนมัติ + autocontroller: อัตโนมัติ (เครื่องควบคุม) + touch: จอสัมผัส + controller: เครื่องควบคุม + mouse: เมาส์ + idle: ว่าง + FullScreen: แสดงเต็มจอ + ToggleFullScreenHint: กดปุ่ม F11 เพื่อเปิดโหมดเต็มหน้าจอ + Chart: โน้ตเพลง + # Project panel + Project: + Label: + NewChart: โน้ตเพลงใหม่ + NewProject: Project ใหม่ + ProjectFile: ไฟล์ Project + ChartFile: ไฟล์โน้ตเพลง + Information: ข้อมูล + Gameplay: การแสดงผลของเกม + Title: หัวข้อ + Composer: ผู้จัดทําเพลงา + Illustrator: นักวาดภาพประกอบ + Charter: ผู้จัดวางโน้ต + Alias: นามแฝง + BPM: BPM + BaseBPM: ฐาน BPM + BPMText: ข้อความ BPM + SyncBaseBPM: Sync + ChartOffset: เวลาความคลาดเคลื่อนของโน้ตเพลง + TimingPointDensityFactor: Judge Density + ChartConstant: ความยากของโน้ตเพลง + SearchTags: แท็คการค้นหา + DifficultyName: ชื่อความยาก + DifficultyColor: สีความยาก + Files: ไฟล์ + Audio: เสียง + JacketArt: รูปประกอบเพลง + Background: พื้นหลัง + Video: วิดิโอ + Skin: รูปร่างโน้ต + Side: ด้าน + Note: ด้านโน้ต + Particle: เอฟเฟ็กต์ + Accent: เส้นตกแต่ง + Track: เพลง + SingleLine: Single Line + Colors: สี + TraceBody: Trace Body + Shadow: เงา + ArcColors: สีโน้ตลาก + Blue: ฟ้า (0) + Red: แดง (1) + Green: เขียว (2) + Custom: Custom ({0}) + AddArcColor: เพิ่มสีโน้ตลาก + NoProjectLoaded: |- + ไม่มี Project ที่โหลดไว้ + สร้าง Project ใหม่หรือเปิด Project + RawEditorFileTooLarge: |- + การแก้ไขไฟล์ข้อความในโปรแกรมถูกปิดเมื่อมีขนาดใหญ่กว่า 1000kilobytes + Shutter: หน้า Loading + ShowShutter: เปิดหน้า Loading + HideShutter: ปิดหน้า Loading + PreviewSegment: เวลาที่เล่นในหน้าเลีอกเพลง + CustomChartPath: ทำเอง (ขั้นสูง) + Options: + Inherit: ตามฝั่ง + Light: สว่าง + Conflict: ขัดแย้ง + Colorless: ไร้สี + MiraiLight: Mirai สว่าง + MiraiConflict: Mirai ขัดแย้ง + Dynamix: Dynamix + Black: Black + Nijuusei: Nijuusei + Rei: Rei + DarkVs: DarkVs + Tempest: Tempest + Finale: Finale + Pentiment: Pentiment + Arcana: Arcana + None: None + Neo: Neo + Past: Past + Present: Present + Future: Future + Eternal: Eternal + Beyond: Beyond + Timeline: + Label: + Offset: ค่าคาคเคลื่อน + TimingGroup: กลุ่ม + Density: Density + PlaybackSpeed: ความเร็ว + Timestamp: + Name: จุดเวลา + DefaultMessage: จุดเวลา {0} + # Events editor panel + EventsEditor: + Label: + Group: กลุ่ม + Events: เหตุการณ์ + Actions: + AddGroup: เพี่มกลุ่ม + DeleteGroup: ลบกลุ่ม + AddEvent: เพี่มเหตุการณ์ + DeleteEvent: ลบเหตุการณ์ + AutoReload: อัฟเดตอัตโนมัติ + GenerateEmmyLua: ทำ EmmyLua + Reload: โหลดใหม่ + FreeCamera: กล้องอิสระ + CameraView: + Default: มุมปกติ + Stationary: มุมคงที่ + ZoomedOut: มุมซูมออกไป + BirdsEye1: มุมสูง 1 + BirdsEye2: มุมสูง 2 + Mode: + Timing: จังหวะเวลา + Camera: กล้อง + Scenecontrol: ฉาก + # Export panel + Export: + Render: + Name: สร้างวิดีโอ + Description: |- + สร้างวีดีโอการเล่นโน้ตไฟล์อัตโนมัติ + ต้องติดตั้ง FFmpeg ไว้ก่อนใช้ + ConfigureFFmpeg: ระบุตำแหน่งไฟล์ของ FFmepg + Settings: + Name: การตั้งค่า + From: จาก + To: ถึง + Quality: ความชัด + FPS: FPS + Width: ความกว้าง + Height: ความสูง + Size: ขนาด + ShowShutter: Show shutter + Start: เริ่มการสร้างวิดีโอ + Cancel: ยกเลิกการสร้างวิดีโอ + Status: |- + กําลังสร้างวิดีโอ อาจใช้เวลาสักครู่ + อาจใช้เวลา: {0} + เหลือ: {1} + Package: + Name: ส่งออกไฟล์ + Description: |- + ส่งออกไฟล์ .arcpkg สำหรับแชร์ให้ผู้อื่นเล่น + Publisher: ผู้ส่งออกไฟล์ + Package: package + Version: Version + BlankField: โปรดใส่ชื่อผู้ส่งออกไฟล์และชื่อ package + Identifier: "รหัสไฟล์ของคุณคือ: {0}" + Export: ส่งออก + # Editor settings panel + Settings: + Label: + Locale: + Name: ภาษา + Language: ภาษา + Reload: โหลดชุดภาษาใหม่ + CheckMissing: เช็คข้อมูลที่หาย + Gameplay: + Name: การเล่น + Speed: ความเร็ว + AspectRatio: สัดส่วนการแสดงผล + Indicator: การแสดงผล + MaxIndicator: แสดงคะแนนเต็ม + Colorblind: โน้ตลากตาบอดสี แปลี่ยนสีแดงเป็นสีเหลือง + ScoreDisplay: แสดงคะแนน + Judgement: + Name: ผลการเล่น + NotUsedInAutoOrIdle: “การตั้งค่านี้ไม่มีผลต่อโหมดอัตโนมัติและโหมดปล่อยเฉย:" + EarlyLatePosition: ตำแหน่ง Early/Late (เร็ว/ช้า) + ShowMsDifference: แสดง ms ที่แตกต่าง + ShowJudgement: ”แสดงผลการเล่น:" + ShowMax: Perfect (เต็ม) + ShowPerfect: Perfect (Early/Late) + ShowGood: Good + ShowMiss: Miss + Grid: + Name: ตาราง + Slot: ช่อง + UseDefault: ใช้ค่าเริ่มต้น + FromLane: จากแถว + ToLane: ถึงแถว + ScaleGrid: ปรับตัวตามบริเวณที่แตะกลางอากาศ + Gridline: ตั้งค่าตารางวางโน้ต + Script: สคริปต์ Lua + AudioVolume: + Name: เสียง + Music: เพลง + Effect: เสียงเอฟเฟค + GlobalOffset: ค่าคาคเคลื่อนรวม + SyncToDSPTime: ใช้เวลา DSP + Display: + Name: หน้าจอ + Vsync: Vsync + Framerate: Framerate + ShowCounter: แสดง framerate + Input: + Name: Input + ReloadKeybinds: โหลดการตั้งค่าคีย์ใหม่ + AllowCreatingNotesBackward: สามารถสร้างโน้ตยาวกลับหลัง + EnableEditingArctapWidth: สามารถเปลี่ยนขนาดโน้ตอากาศ + ShowKeybindHint: บอกวิธีใช้คีย์ที่ตั้งไว้ + Files: + Name: ไฟล์ + Backup: สร้างสำเนาหรือบันทึก + BackupCount: นับจำนวนสำเนา + Autosave: บันทึกอัตโนมัติ + AutosaveInterval: ความเร็วการบันทึกอัตโนมัติ (วินาที) + ScrollSensitivity: + Name: ความเร็วการเลื่อน + Vertical: แนวตั้ง + Horizontal: แนวนอน + Timeline: ตำแหน่งเวลา + TrackScrolling: + Name: การเลื่อนพื้นโน้ต + Threshold: เกณฑ์ + MaxMovement: จำกัดการเลื่อน + # Toolbox panel + Toolbox: + Pallete: + Name: โน้ต + Arc: ลาก + Trace: ราง + Tap: แตะ + Hold: ค้าง + Arctap: อากาศ + Easing: การโค้ง + Macros: + Name: มาโคร + GenerateEmmy: สร้าง EmmyLua + Reload: โหลดสคริปต์มาโครใหม่ + OpenExplorer: เปิดแฟ้มมาโคร + # Inspector window + Inspector: + Name: การตั้งค่าโน้ต + Timing: เวลา + StartTiming: เริ่ม + EndTiming: จบ + Lane: แถว + StartPos: จาก + EndPos: ถึง + Sfx: Sfx + Width: ความกว้าง + Group: กลุ่ม + Mixed: คละ + Arc: โน้ตลาก + Trace: โน้ตราง + Actions: + SelectArc: เลือกโน้ตรางที่เชื่อม + SelectArctap: เลือกโน้ตอากาศที่เชื่อม + Startup: + Discord: กลุ่ม Discord Arccreate + Kofi: สนับสนุนบน Ko-fi + Version: "Version: {0}" + Recent: ไฟล์ที่เปิดล่าสุด + +Remote: + Exception: + InvalidIP: IP address ไม่ถูกต้อง + State: + Listening: |- + กำลังหา boardcast... + + ใน Arccreate Editor บนคอม เปิดแท็บด์ “ทดสอบทางไกล" และกด “เริ่มการ Boardcast" เพื่อเริ่ม + ManualIP: |- + รอการเชื่อมต่อจาก Arccreate Editor + + ใน Arccreate Editor บนคอม เปิดแท็บด์ “ทดสอบทางไกล" และใส่ IP address: {0}. + Found: |- + Boardcast ที่มองเห็น: + โปรดเลือกเครื่องที่จะเชื่อมต่อ + TargetDisconnected: + Compose: ไม่สามารถเชื่อมต่อเครื่องที่เลือกได้ หยุดการเชื่อมต่อ + Gameplay: ไม่สามารถเชื่อมต่อเครื่องที่เลือกได้ เริ่ม Boardcast ใหม่ไช่ใหม? + Receiving: + กำลังรับข้อมูล ({0}) + Description: + Idle: |- + ไม่มีเครื่องที่เชื่อมต่อ + เริ่ม broadcast เพื่อหาเครื่องที่จะเชื่อมต่อ ทั้งเครื่องนี้และเครื่องที่ใช้เล่นต้องเชื่อมต่อ Network เดียวกัน และเครื่องเล่นต้องเปิดการมองหาเครื่อง Editor + Broadcasting: |- + รหัส Boardcast: {0}. + บนเครื่องเล่น เลีอกรหัสที่แสดงตรงนี้เพื่อเริ่มทดสอบ + Connected: |- + เชื่อมเครื่องเล่นที่: {0}:{1} + Actions: + Broadcast: เริ่มการ Broadcast + AbortBroadcast: หยุดการ Broadcast + BroadcastAgain: Broadcast ใหม่ + StopSession: หยุดใช้ + StartNewSession: เริ่มใช้ใหม่ + ManualIP: ตั้งการเชื่อมต่อเอง + ReturnToSelect: กลับไปเลีอกเพลง + Control: + Name: การควบคุม + Sync: + Name: อัปเดต + AllFiles: ทุกไฟล์ + Chart: โน้ตเพลง + Audio: เสียง + Jacket: รุปปกเพลง + Background: พื้นหลัง + Metadata: Metadata + Settings: + Name: การตั้งค่า + Offset: ค่าคาคเคลื่อนของเครื่อง + Speed: ความเร็วของเครื่อง + MusicVolume: ระดับเสียงเพลง + EffectVolume: ระดับเสียงเอฟเฟค + StartTiming: เล่นจากเวลา + EndTiming: หยุดที่เวลา + Loop: วนซ้ำ + ShowLog: แสดง log + ShowDebug: แสดงข้อมูล Debug + ManualIP: ใส่ IP ด้วยตนเอง + Window: + Name: ทดสอบทางไกล + SyncChart: อัปเดตโน้ตเพลง + SyncTiming: อัปเดตเวลา + +Gameplay: + Exception: + LoadAudio: |- + เกิดปัญหาระหว่างพยายามโหลดไฟล์เสียงที่ {Path}. + {Error} + Chart: |- + เกิดปัญหาระหว่างพยายามโหลดโน้ตเพลงที่ {Path}. + {Error} + Skin: |- + เกิดปัญหาระหว่างพยายามโหลดรูปภาพที่ {Path}. + {Error} + Scenecontrol: |- + เกิดปัญหาระหว่างพยายามโหลด scenecontrol hson ใน {Path}. + {Error} + ScenecontrolSprite: |- + เกิดปัญหาระหว่างพยายามโหลด scenecontrol sprite ใน {Path}. + {Error} + Load: |- + เกิดปัญหาที่ไม่ทราบสาเหตุระหว่างพยายามโหลดโน้ตเพลง {Identifier}, {ChartPath} + Error: {Message} + Stack trace: + {StackTrace} + HUD: + Play: เล่นต่อ + Retry: เริ่มใหม่ + Return: เลิกเล่น + AudioDeviceChange: พบการเปลี่ยนแปลงของเครื่องเล่นเสียง Arccreate จะปิดตัวเองและกลับไปหน้าเลือกเพลง + Confirm: ยืนยัน + Practice: + PlaybackSpeed: ความเร็ว + Repeat: + On: เปิดการเล่นซํ้า + Off: ปิดการเลินซํ้า + From: ตั้งจุดเริ่ม + To: ตั้งจุดจบ + Selection: + SelectStatus: + Singular: |- + {0} เลือก asset ไว้แล้ว + Plural: |- + {0} เลือก asset กลุ่มนี้ไว้แล้ว + DeleteConfirmation: |- + คุณมั่นใจว่าจะลบ asset ต่อไปนี้หรือไม่ + คะแนนของคุณจะยังคงถูกบันทึกไว้ PackDeleteConfirmation: |- + คุณกําลังลบ pack: + {0} + ลบเพลงและโน้ตเพลงด้วยหรือไม่ หรือเก็บเพลงและโน้ดเพลงไว้? + CannotDeleteDefault: |- + เพลงเริ่มต้นไม่สามารถลบได้. + EnablePractice: |- + เปิดโหมดฝึกในการเล่นครั้งถัดไป. + SelectRating: เลีอกระดับดาว + Action: + Copy: คัดลอก + Delete: ลบ + Cancel: ยกเลิก + Keep: คงไว้ + Done: เสร็จสิ้น + List: + RemoteTestplay: ทดสอบเล่น + Import: นำเข้า package + Community: ชุมชน + AllSongs: ทุกเพลง + OtherDifficulties: ความยากระดับอื่น + Info: + Undefined: + Title: ไม่ระบุ + Composer: N/A + Charter: ไม่ประกฏ + Charter: 'โน้ตเพลงจาก: {0}' + Sort: + addeddate: วันที่นำเข้า + charter: ผู้ออกแบบโน้ตเพลง + composer: ผู้ทำเพลง + difficulty: ระดับความยาก + grade: เกรด + playcount: จำนวนครั้งที่เล่น + rating: ระดับดาว + score: คะแนน + title: ชื่อเพลง + Group: + none: ไม่มี + difficulty: ระดับความยาก + grade: เกรด + rank: ระดับ + rating: ระดับดาว + charter: ผู้ออกแบบโน้ตเพลง + History: + Best: คะแนนสูงสุด + Recent: คะแนนล่าสุด + Modifiers: + GameMode: + Name: Game mode + Auto: เล่นอัดโนมัติ + Practice: ฝึกฝน + Modifier: + Name: เพี่มเติม + Mirror: สะท้อน + Settings: + Name: การตั้งค่า + Language: ภาษา + Gameplay: + Name: การเล่น + Speed: ความเร็ว + SpeedDetail: |- + ปรับความเร็วที่โน้ตจะไหลมาที่บริเวณ Judgement + EarlyLatePerfectDisplay: แสดง Early/Late perfect + EarlyLatePerfectDisplayDetail: |- + แสดง early/late perfect judgements หรือไม่ + EnablePractice: เปิดโหมดฝึกฝน + ShowMsDifference: แสดงความต่างใน miliseconds + ShowMsDifferenceDetail: แสดงความต่างใน miliseconds แทน EARLY / LATE. + HidePause: ซ่อนปุ่ม Pause + PauseMode: การใช้ปุม Pause + Audio: + Name: เสียง + Offset: ความคาคเคลื่อน + OffsetDetail: |- + ปรับจังหวะเพลงกับโน้ตที่คาคเคลื่อน. + ถ้ากดได้ LATE(ช้า) เพี่มค่า ถ้ากดได้ EARLY เร็ว ลดค่า + Calibrate: Calibrate + MusicAudio: ระดับเสียงเพลง + MusicAudioDetail: |- + เปลี่ยนระดับเลียงเพลงที่จะได้ยินระหว่างเล่น. + EffectAudio: ระดับเลียงเอฟเฟค + EffectAudioDetail: |- + เปลี่ยนระดับเลียงที่เล่นจากการเล่นโน้ต + Visual: + Name: การแสดงผล + Colorblind: โหมดตาบอดสี + ColorblindDetail: เปลี่ยนโน้ตลากสีแดงเป็นสีเหลีอง + FrPmDisplay: แสดง FC/AP + FrPmDisplayDetail: ปรังตำแหน่งที่แสดง FC/AP + MaxDisplay: แสดงคะแนนเต็ม + MaxDisplayDetail: แสดงจุดที่บอกว่ามีคะแนนเต็มอยู่ + EarlyLateDisplay: แสดง Early/Late + EarlyLateDisplayDetail: ปรังตำแหน่งที่แสดง Early/Late + ScoreDisplay: แสดงคะแนน + LimitFramerate: จำกัด framerate + LimitFramerateDetail: จำกัด framerate ที่ 60 FPS เพื่อลดการใช้แบตเตอรี่ อาจทำให้มีความหน่วงหลังจากแตะหน้าจอมากขึ้น + DisableAdvancedGraphics: ปิด graphics ขั้นสูง + DisableAdvancedGraphicsDetails: ปิด post processing และ วีดีโอพื้นหลังเพื่อทำให้แอปทำงานดีขึ้น + Judgement: + Name: Judgement + ShowMax: แสดง Judgement Perfect (Max) + ShowPerfect: แสดง Judgement Perfect (Early / Late) + ShowGood: แสดง Judgement Good + ShowMiss: แสดง Judgement Miss + Interface: + Name: หน้าต่าง + ForceTheme: บังคับเปลี่ยนหน้าการแสดงผล + ForceThemeDetail: เปิดหน้าการแสดงผลเป็นประเภทหนึ่งโดยไม่สนใจด้านของโน้ตเพลง + SwitchResumeAndRetry: สลับตำแหน่งปุ่มเล่นต่อและปุ่มเริ่มต้นใหม่ + SwitchResumeAndRetryDetail: สลับตำแหน่งปุ่มเล่นต่อและปุ่มเริ่มต้นใหม่ในหน้าหยุดการเล่น + ShowFPS: แสดง FPS + ShowFPSDetail: เปิดการแสดงผล FPS + ShowDebug: บอกข้อมูลปัญหา + ShowDebugDetail: บอกข้อมูลปัญหาระหว่างการเล่น (ขั้นสูง). + FrPmPosition: + middle: กลาง + infopanel: หน้าต่างข้อมูล + off: ปิด + PauseMode: + clickonce: กดหนึ่งครั้ง + doubleclick: กดสองครั้ง + hold: กดค้าง + disable: ปิด + EarlyLateTextPosition: + middle: กลาง + bottom: ล่าง + top: บน + ScoreDisplay: + default: ดั้วเดิม + predictive: คาดคะเน + difference: แตกต่าง + decrease: ลดลง + ScoreDisplayDetails: + default: การแสดงผลคะแนนดั้งเดิม คะแนนจะเพิ่มเมื่อคุณกดที่โน้ต + predictive: แสดงผมคะแนนโดยให้ใกล้เคียงกับเกรดคะแนนที่ใกล้ที่สุด + difference: บอกความแตกต่างต่อคะแนนสูงสุดที่เป็นไปได้ + decrease: คะแนนเริ่มที่ค่าสูงสุดแล้วลดลง + ForceTheme: + default: ดั่งเดิม + light: สว่าง + dark: มืด + +Shutter: + Composer: เพลง + Illustrator: รูปประกอบเพลง + Charter: ออกแบบโน้ต + Alias: ด้วยชื่อ + +Storage: + Confirm: ตกลง + ImportErrors: |- + ไม่สามารถนำเข้าไฟล์นี้ได้: + ImportSummary: |- + นำเข้าไฟล์สำเร็จ: + NoAssetImported: |- + ไม่ได้นำเข้าไฟล์ + ImportConflict: + Message: |- + คุณกำลังนำเข้าไฟล์ที่เป็น version เก่า + เก็บไฟล์ version ใหนไว้? + ReplaceAsset: + เปลี่ยนเป็นไฟล์ที่นำเข้า + KeepOriginal: + เก็บไฟล์เดิมไว้ + Identifier: "รหัสไฟล์: {0}" + Version: "Version: {0}" + Loading: + Message: 'กำลังโหลด: {0}...' + Archive: กำลังปลดไฟล์ออกมาจาก archive + ValidatePackage: กำลังตรวจสอบ package + CheckConflict: เช็คว่ามีปัญหาหรือไม่ + DeleteAsset: กำลังลบไฟล์ {0} + StoreAsset: กำลังเก็บไฟล์ {0} + Finalizing: กำลังดำเนินการให้เสร็จ + +Credits: + Name: ผู้จัดทํา + View: แสดงชื่อผู้จัดทํา + Role: + LeadProgramming: ผู้นําเขียนโปรแกรม + Programming: ผู้เขียนโปรแกรม + VisualDesign: ผู้ออกแบบการแสดงผลภาพ + SoundDesign: ผู้ออกแบบเสียง + Localization: ผู้แปล + QualityAssurance: ผู้ดูแลคุณภาพ + Community: และทุกคนในกลุ่ม Arcthesia และ Arccreate! + Sponsor: ขอบคุณมากสําหรับผู้สนับสนุน diff --git a/Assets/StreamingAssets/Locales/th-th.yml.meta b/Assets/StreamingAssets/Locales/th-th.yml.meta new file mode 100644 index 00000000..512f8d10 --- /dev/null +++ b/Assets/StreamingAssets/Locales/th-th.yml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a0540004810776f43ba096f469797a6e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/locale_list.yml b/Assets/StreamingAssets/locale_list.yml index 4cbe3ab6..07133835 100644 --- a/Assets/StreamingAssets/locale_list.yml +++ b/Assets/StreamingAssets/locale_list.yml @@ -25,6 +25,9 @@ - Id: zh-tw CodeName: ChineseTraditional LocalName: 繁體中文 +- Id: th-th + CodeName: Thai + LocalName: ไทย # Add additional entry according to this format # - Id: [LCID code. Must match with the YAML file's name]: