diff --git a/lib/localization/locales/th.json b/lib/localization/locales/th.json
new file mode 100644
index 0000000..9b463f1
--- /dev/null
+++ b/lib/localization/locales/th.json
@@ -0,0 +1,64 @@
+{
+ "loading": "กำลังโหลด...",
+ "why_am_i_seeing": "ทำไมถึงเห็นสิ่งนี้?",
+ "protected_by": "ปกป้องโดย",
+ "protected_from": "จาก",
+ "made_with": "สร้างด้วย ❤️ ใน 🇨🇦",
+ "mascot_design": "ออกแบบมาสค็อตโดย",
+ "ai_companies_explanation": "คุณเห็นสิ่งนี้เพราะผู้ดูแลเว็บไซต์ได้ตั้งค่า Anubis เพื่อป้องกันเซิร์ฟเวอร์จากบริษัท AI ที่ทำการขูดข้อมูลเว็บไซต์อย่างก้าวร้าว ซึ่งสามารถทำให้เว็บไซต์ล่ม และทำให้ทรัพยากรของเว็บไซต์ไม่สามารถเข้าถึงได้สำหรับทุกคน",
+ "anubis_compromise": "Anubis คือการประนีประนอม โดยใช้ระบบ Proof-of-Work คล้ายกับ Hashcash ซึ่งเป็นแนวคิดสำหรับลดสแปมอีเมล แนวคิดคือ การโหลดเพิ่มเติมในระดับผู้ใช้รายบุคคลสามารถละเลยได้ แต่ในระดับการขูดข้อมูลจำนวนมาก มันจะสะสมและทำให้การขูดแพงขึ้น",
+ "hack_purpose": "ท้ายที่สุดแล้ว นี่คือการแฮ็กที่มีวัตถุประสงค์หลักเพื่อเป็นโซลูชันชั่วคราวที่ 'เพียงพอ' เพื่อให้มีเวลาในการสร้างการตรวจจับตัวตนของเบราว์เซอร์แบบไม่มีกล่องข้อความ (เช่น ผ่านการเรนเดอร์ฟอนต์) เพื่อไม่ต้องแสดงหน้า Proof-of-Work แก่ผู้ใช้ที่มีแนวโน้มว่าจะเป็นผู้ใช้จริง",
+ "jshelter_note": "โปรดทราบว่า Anubis ต้องการใช้คุณสมบัติ JavaScript สมัยใหม่ที่ปลั๊กอินอย่าง JShelter จะปิดใช้งาน กรุณาปิด JShelter หรือปลั๊กอินลักษณะคล้ายกันสำหรับโดเมนนี้",
+ "version_info": "เว็บไซต์นี้กำลังใช้ Anubis เวอร์ชัน",
+ "try_again": "ลองอีกครั้ง",
+ "go_home": "กลับหน้าหลัก",
+ "contact_webmaster": "หากคุณเชื่อว่าไม่ควรถูกบล็อก กรุณาติดต่อผู้ดูแลเว็บไซต์ที่",
+ "connection_security": "กรุณารอสักครู่ในขณะที่เราตรวจสอบความปลอดภัยของการเชื่อมต่อของคุณ",
+ "javascript_required": "น่าเสียดายที่คุณต้องเปิดใช้ JavaScript เพื่อผ่านการทดสอบนี้ เนื่องจากบริษัท AI ได้เปลี่ยนข้อตกลงทางสังคมเกี่ยวกับการโฮสต์เว็บไซต์ ทางเลือกแบบ 'ไม่มี JS' กำลังอยู่ระหว่างการพัฒนา",
+ "benchmark_requires_js": "เครื่องมือวัดประสิทธิภาพต้องใช้ JavaScript",
+ "difficulty": "ความยาก:",
+ "algorithm": "อัลกอริธึม:",
+ "compare": "เปรียบเทียบ:",
+ "time": "เวลา",
+ "iters": "จำนวนรอบ",
+ "time_a": "เวลา A",
+ "iters_a": "รอบ A",
+ "time_b": "เวลา B",
+ "iters_b": "รอบ B",
+ "static_check_endpoint": "นี่เป็นเพียง endpoint ตรวจสอบสำหรับ reverse proxy ของคุณ",
+ "authorization_required": "ต้องมีการยืนยันตัวตน",
+ "cookies_disabled": "เบราว์เซอร์ของคุณปิดการใช้งานคุกกี้ Anubis ต้องใช้คุกกี้เพื่อตรวจสอบว่าเป็นผู้ใช้ที่แท้จริง กรุณาเปิดใช้งานคุกกี้สำหรับโดเมนนี้",
+ "access_denied": "การเข้าถึงถูกปฏิเสธ: รหัสข้อผิดพลาด",
+ "dronebl_entry": "DroneBL รายงานรายการนี้",
+ "see_dronebl_lookup": "ดู",
+ "internal_server_error": "เกิดข้อผิดพลาดในเซิร์ฟเวอร์: ผู้ดูแลระบบได้กำหนดค่า Anubis อย่างไม่ถูกต้อง กรุณาติดต่อผู้ดูแลระบบและให้เขาตรวจสอบบันทึกใกล้กับ",
+ "invalid_redirect": "การเปลี่ยนเส้นทางไม่ถูกต้อง",
+ "redirect_not_parseable": "ไม่สามารถแยกวิเคราะห์ URL สำหรับเปลี่ยนเส้นทาง",
+ "redirect_domain_not_allowed": "ไม่อนุญาตให้เปลี่ยนเส้นทางไปยังโดเมนนี้",
+ "failed_to_sign_jwt": "ไม่สามารถเซ็น JWT ได้",
+ "invalid_invocation": "เรียกใช้ MakeChallenge อย่างไม่ถูกต้อง",
+ "client_error_browser": "ข้อผิดพลาดของไคลเอนต์: กรุณาตรวจสอบว่าเบราว์เซอร์ของคุณเป็นเวอร์ชันล่าสุด และลองใหม่ในภายหลัง",
+ "oh_noes": "โอ้ ไม่!",
+ "benchmarking_anubis": "กำลังวัดประสิทธิภาพ Anubis!",
+ "you_are_not_a_bot": "คุณไม่ใช่บอท!",
+ "making_sure_not_bot": "ตรวจสอบให้แน่ใจว่าคุณไม่ใช่บอท!",
+ "celphase": "CELPHASE",
+ "js_web_crypto_error": "เบราว์เซอร์ของคุณไม่มีฟีเจอร์ web.crypto ที่ใช้งานได้ คุณกำลังดูผ่านบริบทที่ปลอดภัยหรือไม่?",
+ "js_web_workers_error": "เบราว์เซอร์ของคุณไม่รองรับ web workers (Anubis ใช้เพื่อลดการค้างของเบราว์เซอร์) คุณใช้ปลั๊กอินเช่น JShelter หรือไม่?",
+ "js_cookies_error": "เบราว์เซอร์ของคุณไม่เก็บคุกกี้ Anubis ใช้คุกกี้เพื่อเก็บโทเค็นที่เซ็นแล้วสำหรับไคลเอนต์ที่ผ่านการท้าทาย กรุณาเปิดใช้งานการเก็บคุกกี้สำหรับโดเมนนี้ ชื่อคุกกี้อาจเปลี่ยนแปลงได้โดยไม่แจ้งล่วงหน้า",
+ "js_context_not_secure": "บริบทของคุณไม่ปลอดภัย!",
+ "js_context_not_secure_msg": "ลองเชื่อมต่อผ่าน HTTPS หรือแจ้งผู้ดูแลระบบให้ตั้งค่า HTTPS สำหรับข้อมูลเพิ่มเติมดูที่ MDN",
+ "js_calculating": "กำลังคำนวณ...",
+ "js_missing_feature": "ไม่มีคุณลักษณะนี้",
+ "js_challenge_error": "เกิดข้อผิดพลาดในการท้าทาย!",
+ "js_challenge_error_msg": "ไม่สามารถแก้ไขอัลกอริธึมการตรวจสอบ อาจต้องโหลดหน้าใหม่",
+ "js_calculating_difficulty": "กำลังคำนวณ...
ความยาก:",
+ "js_speed": "ความเร็ว:",
+ "js_verification_longer": "การตรวจสอบใช้เวลานานกว่าที่คาดไว้ กรุณาอย่ารีเฟรชหน้านี้",
+ "js_success": "สำเร็จ!",
+ "js_done_took": "เสร็จแล้ว! ใช้เวลา",
+ "js_iterations": "รอบ",
+ "js_finished_reading": "อ่านจบแล้ว ดำเนินการต่อ →",
+ "js_calculation_error": "เกิดข้อผิดพลาดในการคำนวณ!",
+ "js_calculation_error_msg": "ไม่สามารถคำนวณการท้าทายได้:"
+}