fix(i18n): separate Thai and English cleanly without parentheses mixing

This commit is contained in:
CAtlas0784 committed 2026-10-16 23:16:48 +07:00
1 parent 9b5b4087c9
commit 9dc33afb89
4 files changed
+179 -179

No files matched your search

+54 -54
View File
@@ -24,14 +24,14 @@
<div class="server-mode-badge" title="โหมดการเชื่อมต่อเซิร์ฟเวอร์">
<span>🌐</span>
<select id="server-mode-select" class="server-mode-select">
<option value="gac" selected>⚡ GaC-hkrpg-go (เซิร์ฟเวอร์หลัก / Full Control)</option>
<option value="firefly">🔥 FireflyGo (FreeSR Compatible)</option>
<option value="robin">🕊️ RobinSR (FreeSR Compatible)</option>
<option value="gac" selected>⚡ GaC-hkrpg-go (เซิร์ฟเวอร์หลัก)</option>
<option value="firefly">🔥 FireflyGo (FreeSR)</option>
<option value="robin">🕊️ RobinSR (FreeSR)</option>
</select>
</div>
<!-- Language Selector (13 Languages) -->
<select id="lang-select" class="form-select btn-sm" style="width: auto; padding: 0.4rem 0.75rem; background: var(--bg-secondary); cursor: pointer;" title="Language / 语言 / 言語 / ภาษา">
<select id="lang-select" class="form-select btn-sm" style="width: auto; padding: 0.4rem 0.75rem; background: var(--bg-secondary); cursor: pointer;" title="Language / ภาษา">
</select>
<!-- Connection Pill -->
@@ -48,11 +48,11 @@
<!-- Navigation Bar -->
<nav class="nav-tabs">
<button class="tab-btn active" data-tab="tab-dashboard">📊 แดชบอร์ด & ทีม (Lineup)</button>
<button class="tab-btn" data-tab="tab-avatars">👥 ตัวละคร (Avatars & Build)</button>
<button class="tab-btn" data-tab="tab-equipment">🗡️ กรวยแสง & รีลิกส์ (Equipment)</button>
<button class="tab-btn" data-tab="tab-persistent" id="tab-btn-persistent">💾 จัดการเซฟ GaC (Persistent)</button>
<button class="tab-btn" data-tab="tab-exrank">⚡ Ex-Rank (สกิลพิเศษ)</button>
<button class="tab-btn active" data-tab="tab-dashboard">📊 แดชบอร์ด & จัดทีม</button>
<button class="tab-btn" data-tab="tab-avatars">👥 ตัวละคร</button>
<button class="tab-btn" data-tab="tab-equipment">🗡️ กรวยแสง & รีลิกส์</button>
<button class="tab-btn" data-tab="tab-persistent" id="tab-btn-persistent">💾 จัดการเซฟ GaC</button>
<button class="tab-btn" data-tab="tab-exrank">⚡ สกิลพิเศษ Ex-Rank</button>
<button class="tab-btn" data-tab="tab-json">📝 จัดการไฟล์ JSON</button>
<button class="tab-btn" data-tab="tab-settings">⚙️ ตั้งค่า & ข้อมูลโหมด</button>
</nav>
@@ -65,22 +65,22 @@
<div class="grid-3" style="margin-bottom: 1.5rem;">
<div class="card stat-box">
<div class="stat-number" id="stat-avatars">0</div>
<div class="stat-label">ตัวละครที่ครอบครอง (Avatars)</div>
<div class="stat-label">ตัวละครที่ครอบครอง</div>
</div>
<div class="card stat-box">
<div class="stat-number" id="stat-lightcones">0</div>
<div class="stat-label">กรวยแสง (Lightcones)</div>
<div class="stat-label">กรวยแสง</div>
</div>
<div class="card stat-box">
<div class="stat-number" id="stat-relics">0</div>
<div class="stat-label">รีลิกส์ (Relics)</div>
<div class="stat-label">รีลิกส์</div>
</div>
</div>
<!-- Party Lineup Visualizer -->
<div class="card" style="margin-bottom: 1.5rem;">
<div class="card-title">
<span>🎮 สมาชิกในทีมปัจจุบัน (Active Party Lineup)</span>
<span>🎮 สมาชิกในทีมปัจจุบัน</span>
<span style="font-size: 0.8rem; color: var(--accent-cyan); font-weight: normal;">* คลิกที่ช่องเพื่อเปลี่ยนตัวละครในทีม</span>
</div>
<div class="lineup-grid" id="lineup-container">
@@ -123,14 +123,14 @@
<!-- Quick Actions Card -->
<div class="card">
<div class="card-title">⚡ ดำเนินการด่วน (Quick Actions)</div>
<div class="card-title">⚡ ดำเนินการด่วน</div>
<p class="card-subtitle">ส่งคำสั่งไปยังเซิร์ฟเวอร์ทันที</p>
<div style="display: flex; flex-direction: column; gap: 0.75rem;">
<button class="btn btn-gold" id="btn-quick-max-all">
⭐ ปรับเลเวล 80 & ปลด E6 ตัวละครทั้งหมด (Max All)
⭐ ปรับเลเวล 80 & ปลด E6 ตัวละครทั้งหมด
</button>
<button class="btn btn-secondary" id="btn-quick-sync-persistent">
💾 ซิงค์ข้อมูล Persistent / เซฟล่าสุด
💾 ซิงค์ข้อมูล Persistent ล่าสุด
</button>
</div>
</div>
@@ -144,18 +144,18 @@
<input type="text" id="avatar-search" class="form-input" placeholder="🔍 ค้นหาชื่อหรือ ID ตัวละคร...">
<select id="avatar-filter-rarity" class="form-select" style="max-width: 140px;">
<option value="all">ทุกระดับดาว</option>
<option value="5">5 ดาว (SSR)</option>
<option value="4">4 ดาว (SR)</option>
<option value="5">5 ดาว</option>
<option value="4">4 ดาว</option>
</select>
<select id="avatar-filter-element" class="form-select" style="max-width: 140px;">
<option value="all">ทุกธาตุ</option>
<option value="Fire">ไฟ (Fire)</option>
<option value="Ice">น้ำแข็ง (Ice)</option>
<option value="Lightning">สายฟ้า (Lightning)</option>
<option value="Wind">ลม (Wind)</option>
<option value="Physical">กายภาพ (Physical)</option>
<option value="Quantum">ควอนตัม (Quantum)</option>
<option value="Imaginary">จินตภาพ (Imaginary)</option>
<option value="Fire">ไฟ</option>
<option value="Ice">น้ำแข็ง</option>
<option value="Lightning">สายฟ้า</option>
<option value="Wind">ลม</option>
<option value="Physical">กายภาพ</option>
<option value="Quantum">ควอนตัม</option>
<option value="Imaginary">จินตภาพ</option>
</select>
</div>
<div style="display: flex; gap: 0.5rem;">
@@ -177,7 +177,7 @@
<!-- Lightcones Card -->
<div class="card">
<div class="card-title">
<span>🗡️ กรวยแสงในคลัง (Lightcones)</span>
<span>🗡️ กรวยแสงในคลัง</span>
<span class="btn-sm btn-secondary" id="badge-total-lc">0 ชิ้น</span>
</div>
<p class="card-subtitle">รายการกรวยแสงทั้งหมดจาก freesr-data.json</p>
@@ -189,7 +189,7 @@
<!-- Relics Card -->
<div class="card">
<div class="card-title">
<span>🛡️ รีลิกส์ในคลัง (Relics)</span>
<span>🛡️ รีลิกส์ในคลัง</span>
<span class="btn-sm btn-secondary" id="badge-total-relics">0 ชิ้น</span>
</div>
<p class="card-subtitle">รายการรีลิกส์ทั้งหมดจาก freesr-data.json</p>
@@ -204,7 +204,7 @@
<section id="tab-persistent" class="tab-content">
<div class="card" style="margin-bottom: 1.5rem;">
<div class="card-title">
<span>💾 จัดการไฟล์เซฟ Persistent (GaC-hkrpg-go Dedicated)</span>
<span>💾 จัดการไฟล์เซฟ GaC</span>
<span class="btn-sm btn-success">เซิร์ฟเวอร์ของเราเอง</span>
</div>
<p class="card-subtitle">
@@ -218,24 +218,24 @@
<div class="card-title">👤 ผู้บุกเบิก & March 7th</div>
<form id="form-persistent-chars">
<div class="form-group">
<label class="form-label">เพศ & ธาตุของตัวเอก (Main Character)</label>
<label class="form-label">เพศ & ธาตุของตัวเอก</label>
<select id="persistent-mc-select" class="form-select">
<option value="MalePhysical">ผู้บุกเบิกชาย - กายภาพ (Male Physical)</option>
<option value="FemalePhysical">ผู้บุกเบิกหญิง - กายภาพ (Female Physical)</option>
<option value="MalePreservation">ผู้บุกเบิกชาย - ไฟ (Male Preservation)</option>
<option value="FemalePreservation">ผู้บุกเบิกหญิง - ไฟ (Female Preservation)</option>
<option value="MaleHarmony">ผู้บุกเบิกชาย - ประสาน (Male Harmony)</option>
<option value="FemaleHarmony">ผู้บุกเบิกหญิง - ประสาน (Female Harmony)</option>
<option value="MaleRemembrance">ผู้บุกเบิกชาย - ความทรงจำ (Male Remembrance)</option>
<option value="FemaleRemembrance">ผู้บุกเบิกหญิง - ความทรงจำ (Female Remembrance)</option>
<option value="MalePhysical">ผู้บุกเบิกชาย - กายภาพ</option>
<option value="FemalePhysical">ผู้บุกเบิกหญิง - กายภาพ</option>
<option value="MalePreservation">ผู้บุกเบิกชาย - ไฟ</option>
<option value="FemalePreservation">ผู้บุกเบิกหญิง - ไฟ</option>
<option value="MaleHarmony">ผู้บุกเบิกชาย - ประสาน</option>
<option value="FemaleHarmony">ผู้บุกเบิกหญิง - ประสาน</option>
<option value="MaleRemembrance">ผู้บุกเบิกชาย - ความทรงจำ</option>
<option value="FemaleRemembrance">ผู้บุกเบิกหญิง - ความทรงจำ</option>
</select>
</div>
<div class="form-group">
<label class="form-label">สายของ March 7th</label>
<select id="persistent-march-select" class="form-select">
<option value="MarchHunt">March 7th - ล่าสังหาร (The Hunt / จินตภาพ)</option>
<option value="MarchPreservation">March 7th - อนุรักษ์ (Preservation / น้ำแข็ง)</option>
<option value="MarchHunt">March 7th - ล่าสังหาร</option>
<option value="MarchPreservation">March 7th - อนุรักษ์</option>
</select>
</div>
@@ -305,7 +305,7 @@
<div class="card-title" style="flex-wrap: wrap; gap: 0.75rem;">
<div style="display: flex; gap: 0.5rem;">
<button class="btn btn-sm btn-primary active" id="btn-select-freesr">📄 freesr-data.json</button>
<button class="btn btn-sm btn-secondary" id="btn-select-persistent">💾 persistent (Save)</button>
<button class="btn btn-sm btn-secondary" id="btn-select-persistent">💾 ไฟล์เซฟ persistent</button>
</div>
<div style="display: flex; gap: 0.5rem;">
<button class="btn btn-sm btn-secondary" id="btn-json-beautify">✨ จัดรูปแบบ JSON</button>
@@ -337,18 +337,18 @@
<form id="form-settings">
<div class="form-group">
<label class="form-label">โหมดเซิร์ฟเวอร์ (Target Server)</label>
<label class="form-label">โหมดเซิร์ฟเวอร์</label>
<select id="setting-server-mode" class="form-select">
<option value="gac">⚡ GaC-hkrpg-go (เซิร์ฟเวอร์หลัก - แก้ได้ทั้ง FreeSR + Persistent)</option>
<option value="firefly">🔥 FireflyGo (FreeSR Standard)</option>
<option value="robin">🕊️ RobinSR (FreeSR Standard)</option>
<option value="gac">⚡ GaC-hkrpg-go (เซิร์ฟเวอร์หลัก)</option>
<option value="firefly">🔥 FireflyGo (FreeSR)</option>
<option value="robin">🕊️ RobinSR (FreeSR)</option>
</select>
</div>
<div class="form-group">
<label class="form-label">REST API Gateway URL</label>
<input type="text" id="setting-api-url" class="form-input" placeholder="http://localhost:21000">
<small style="color: var(--text-muted); display: block; margin-top: 0.35rem;">
* ค่าเริ่มต้นพอร์ต 21000 (SDK server)
* พอร์ตเริ่มต้น 21000 สำหรับ SDK server
</small>
</div>
<div class="form-group">
@@ -367,7 +367,7 @@
<div class="card-title">💡 ข้อมูลโหมดเซิร์ฟเวอร์ & สำหรับผู้อื่น</div>
<div style="display: flex; flex-direction: column; gap: 0.85rem; font-size: 0.875rem; color: var(--text-muted);">
<div>
<strong style="color: var(--accent-cyan);">⚡ GaC-hkrpg-go (Full Access):</strong><br>
<strong style="color: var(--accent-cyan);">⚡ GaC-hkrpg-go:</strong><br>
โหมดเฉพาะของเซิร์ฟเวอร์เรา สามารถอ่านและเขียนทั้ง <code>freesr-data.json</code> และ <code>persistent</code> ได้แบบ 100% เรียลไทม์ผ่าน REST API Gateway พร้อมระบบ Ex-Rank
</div>
<div>
@@ -404,14 +404,14 @@
<div id="modal-char-meta" style="font-size: 0.85rem; color: var(--text-muted); margin-top: 0.25rem; display: flex; gap: 0.35rem; align-items: center; flex-wrap: wrap;"></div>
</div>
<button type="button" class="btn btn-gold btn-sm" id="btn-modal-max-all-char">
⭐ MAX ALL (Lv.80 / E6 / 10)
⭐ ปรับเต็มทั้งหมด (Lv.80 / E6 / สกิล 10)
</button>
</div>
<div class="grid-2" style="gap: 1rem; margin-bottom: 1rem;">
<div class="form-group">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.35rem;">
<label class="form-label" style="margin: 0;">ระดับเลเวล (Level 1-80)</label>
<label class="form-label" style="margin: 0;">ระดับเลเวล (1-80)</label>
<div style="display: flex; gap: 0.25rem;">
<button type="button" class="btn btn-sm btn-secondary btn-lvl-preset" data-lvl="1" style="padding: 0.15rem 0.45rem; font-size: 0.75rem;">1</button>
<button type="button" class="btn btn-sm btn-secondary btn-lvl-preset" data-lvl="20" style="padding: 0.15rem 0.45rem; font-size: 0.75rem;">20</button>
@@ -424,7 +424,7 @@
</div>
<div class="form-group">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.35rem;">
<label class="form-label" style="margin: 0;">การเลื่อนขั้น (Ascension 0-6)</label>
<label class="form-label" style="margin: 0;">การเลื่อนขั้น (0-6)</label>
<div style="display: flex; gap: 0.25rem;">
<button type="button" class="btn btn-sm btn-secondary btn-prom-preset" data-prom="0" style="padding: 0.15rem 0.45rem; font-size: 0.75rem;">0</button>
<button type="button" class="btn btn-sm btn-secondary btn-prom-preset" data-prom="3" style="padding: 0.15rem 0.45rem; font-size: 0.75rem;">3</button>
@@ -437,13 +437,13 @@
<div class="form-group">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.35rem;">
<label class="form-label" style="margin: 0;">Eidolon (E0 - E6)</label>
<label class="form-label" style="margin: 0;">ระดับ Eidolon (E0 - E6)</label>
<div style="display: flex; gap: 0.4rem;">
<button type="button" class="btn btn-sm btn-secondary" id="btn-modal-quick-e0" style="padding: 0.2rem 0.6rem; font-size: 0.75rem;">
E0 (รีเซ็ต)
รีเซ็ต E0
</button>
<button type="button" class="btn btn-sm btn-gold" id="btn-modal-quick-e6" style="padding: 0.2rem 0.6rem; font-size: 0.75rem;">
⭐ ปลด E6 เต็ม
⭐ ปลดเต็ม E6
</button>
</div>
</div>
@@ -453,10 +453,10 @@
</div>
<div class="form-group" style="margin-top: 1rem;">
<label class="form-label">สกิลและร่องรอย (Skills & Traces)</label>
<label class="form-label">สกิลและร่องรอย</label>
<div style="background: rgba(0,0,0,0.3); border: 1px solid var(--border-color); border-radius: var(--radius-sm); padding: 0.75rem; display: flex; justify-content: space-between; align-items: center;">
<div style="font-size: 0.85rem; color: var(--text-muted);">
Basic ATK (Lv.6), Skill (Lv.10), Ultimate (Lv.10), Talent (Lv.10) & ทุกโหนดเสริม
โจมตีปกติ (Lv.6), สกิลต่อสู้ (Lv.10), ท่าไม้ตาย (Lv.10), พรสวรรค์ (Lv.10) และโหนดเสริมทั้งหมด
</div>
<button type="button" class="btn btn-sm btn-gold" id="btn-modal-max-skills">
⭐ อัพสกิล 10/10
+3 -3
View File
@@ -255,13 +255,13 @@ function setupServerModes() {
if (el.settingServerMode) el.settingServerMode.value = mode;
if (mode === 'gac') {
el.lblActiveMode.textContent = 'GaC-hkrpg-go (เซิร์ฟเวอร์หลัก / Full Control)';
el.lblActiveMode.textContent = 'GaC-hkrpg-go (เซิร์ฟเวอร์หลัก)';
if (el.tabBtnPersistent) el.tabBtnPersistent.style.display = 'inline-flex';
} else if (mode === 'firefly') {
el.lblActiveMode.textContent = 'FireflyGo (FreeSR Compatible)';
el.lblActiveMode.textContent = 'FireflyGo (FreeSR)';
if (el.tabBtnPersistent) el.tabBtnPersistent.style.display = 'none';
} else if (mode === 'robin') {
el.lblActiveMode.textContent = 'RobinSR (FreeSR Compatible)';
el.lblActiveMode.textContent = 'RobinSR (FreeSR)';
if (el.tabBtnPersistent) el.tabBtnPersistent.style.display = 'none';
}
};
+89 -89
View File
@@ -4,7 +4,7 @@ export const AVATAR_METADATA = {
"1001": {
"names": {
"en": "March 7th",
"th": "March 7th (มาร์ช 7th)",
"th": "มาร์ช 7th",
"zh-CN": "三月七",
"zh-TW": "三月七",
"ja": "三月なのか",
@@ -19,7 +19,7 @@ export const AVATAR_METADATA = {
"1002": {
"names": {
"en": "Dan Heng",
"th": "Dan Heng (ดันเฮง)",
"th": "ดันเฮง",
"zh-CN": "丹恒",
"zh-TW": "丹恆",
"ja": "丹恒",
@@ -34,7 +34,7 @@ export const AVATAR_METADATA = {
"1003": {
"names": {
"en": "Himeko",
"th": "Himeko (ฮิเมโกะ)",
"th": "ฮิเมโกะ",
"zh-CN": "姬子",
"zh-TW": "姬子",
"ja": "姫子",
@@ -49,7 +49,7 @@ export const AVATAR_METADATA = {
"1004": {
"names": {
"en": "Welt",
"th": "Welt (เวิลต์)",
"th": "เวิลต์",
"zh-CN": "瓦尔特",
"zh-TW": "瓦爾特",
"ja": "ヴェルト",
@@ -64,7 +64,7 @@ export const AVATAR_METADATA = {
"1005": {
"names": {
"en": "Kafka",
"th": "Kafka (คาฟกา)",
"th": "คาฟกา",
"zh-CN": "卡芙卡",
"zh-TW": "卡芙卡",
"ja": "カフカ",
@@ -79,7 +79,7 @@ export const AVATAR_METADATA = {
"1006": {
"names": {
"en": "Silver Wolf",
"th": "Silver Wolf (ซิลเวอร์วูล์ฟ)",
"th": "ซิลเวอร์วูล์ฟ",
"zh-CN": "银狼",
"zh-TW": "銀狼",
"ja": "銀狼",
@@ -94,7 +94,7 @@ export const AVATAR_METADATA = {
"1008": {
"names": {
"en": "Arlan",
"th": "Arlan (อาร์ลัน)",
"th": "อาร์ลัน",
"zh-CN": "阿兰",
"zh-TW": "阿蘭",
"ja": "アーラン",
@@ -109,7 +109,7 @@ export const AVATAR_METADATA = {
"1009": {
"names": {
"en": "Asta",
"th": "Asta (แอสต้า)",
"th": "แอสต้า",
"zh-CN": "艾丝妲",
"zh-TW": "艾絲妲",
"ja": "アスター",
@@ -124,7 +124,7 @@ export const AVATAR_METADATA = {
"1013": {
"names": {
"en": "Herta",
"th": "Herta (เฮอร์ต้า)",
"th": "เฮอร์ต้า",
"zh-CN": "黑塔",
"zh-TW": "黑塔",
"ja": "ヘルタ",
@@ -139,7 +139,7 @@ export const AVATAR_METADATA = {
"1014": {
"names": {
"en": "Saber",
"th": "Saber (เซเบอร์)",
"th": "เซเบอร์",
"zh-CN": "阿尔托莉雅·潘德拉贡 (塞巴)",
"zh-TW": "阿爾托莉雅·潘德拉貢",
"ja": "セイバー",
@@ -154,7 +154,7 @@ export const AVATAR_METADATA = {
"1015": {
"names": {
"en": "Archer",
"th": "Archer (อาร์เชอร์)",
"th": "อาร์เชอร์",
"zh-CN": "卫宫士郎 (红A/阿茶)",
"zh-TW": "衛宮士郎 (紅A)",
"ja": "アーチャー",
@@ -169,7 +169,7 @@ export const AVATAR_METADATA = {
"1101": {
"names": {
"en": "Bronya",
"th": "Bronya (โบรเนีย)",
"th": "โบรเนีย",
"zh-CN": "布洛妮娅",
"zh-TW": "布洛妮婭",
"ja": "ブローニャ",
@@ -184,7 +184,7 @@ export const AVATAR_METADATA = {
"1102": {
"names": {
"en": "Seele",
"th": "Seele (เซเล่)",
"th": "เซเล่",
"zh-CN": "希儿",
"zh-TW": "希兒",
"ja": "ゼーレ",
@@ -199,7 +199,7 @@ export const AVATAR_METADATA = {
"1103": {
"names": {
"en": "Serval",
"th": "Serval (เซอวัล)",
"th": "เซอวัล",
"zh-CN": "希露瓦",
"zh-TW": "希露瓦",
"ja": "セーバル",
@@ -214,7 +214,7 @@ export const AVATAR_METADATA = {
"1104": {
"names": {
"en": "Gepard",
"th": "Gepard (เกพาร์ด)",
"th": "เกพาร์ด",
"zh-CN": "杰帕德",
"zh-TW": "傑帕德",
"ja": "ジェパード",
@@ -229,7 +229,7 @@ export const AVATAR_METADATA = {
"1105": {
"names": {
"en": "Natasha",
"th": "Natasha (นาตาชา)",
"th": "นาตาชา",
"zh-CN": "娜塔莎",
"zh-TW": "娜塔莎",
"ja": "ナターシャ",
@@ -244,7 +244,7 @@ export const AVATAR_METADATA = {
"1106": {
"names": {
"en": "Pela",
"th": "Pela (เพล่า)",
"th": "เพล่า",
"zh-CN": "佩拉",
"zh-TW": "佩拉",
"ja": "ペラ",
@@ -259,7 +259,7 @@ export const AVATAR_METADATA = {
"1107": {
"names": {
"en": "Clara",
"th": "Clara (คลารา)",
"th": "คลารา",
"zh-CN": "克拉拉",
"zh-TW": "克拉拉",
"ja": "クラーラ",
@@ -274,7 +274,7 @@ export const AVATAR_METADATA = {
"1108": {
"names": {
"en": "Sampo",
"th": "Sampo (ซัมโป)",
"th": "ซัมโป",
"zh-CN": "桑博",
"zh-TW": "桑博",
"ja": "サンポ",
@@ -289,7 +289,7 @@ export const AVATAR_METADATA = {
"1109": {
"names": {
"en": "Hook",
"th": "Hook (ฮุค)",
"th": "ฮุค",
"zh-CN": "虎克",
"zh-TW": "虎克",
"ja": "フック",
@@ -304,7 +304,7 @@ export const AVATAR_METADATA = {
"1110": {
"names": {
"en": "Lynx",
"th": "Lynx (ลิงซ์)",
"th": "ลิงซ์",
"zh-CN": "玲可",
"zh-TW": "玲可",
"ja": "リンクス",
@@ -319,7 +319,7 @@ export const AVATAR_METADATA = {
"1111": {
"names": {
"en": "Luka",
"th": "Luka (ลูกา)",
"th": "ลูกา",
"zh-CN": "卢卡",
"zh-TW": "盧卡",
"ja": "ルカ",
@@ -334,7 +334,7 @@ export const AVATAR_METADATA = {
"1112": {
"names": {
"en": "Topaz & Numby",
"th": "Topaz & Numby (โทพาซ & นัมบี้)",
"th": "โทพาซ & นัมบี้",
"zh-CN": "托帕&账账",
"zh-TW": "托帕&賬賬",
"ja": "トパーズ&カブ",
@@ -349,7 +349,7 @@ export const AVATAR_METADATA = {
"1201": {
"names": {
"en": "Qingque",
"th": "Qingque (ชิงเชวี่ย)",
"th": "ชิงเชวี่ย",
"zh-CN": "青雀",
"zh-TW": "青雀",
"ja": "青雀",
@@ -364,7 +364,7 @@ export const AVATAR_METADATA = {
"1202": {
"names": {
"en": "Tingyun",
"th": "Tingyun (ถิงหยุน)",
"th": "ถิงหยุน",
"zh-CN": "停云",
"zh-TW": "停雲",
"ja": "停雲",
@@ -379,7 +379,7 @@ export const AVATAR_METADATA = {
"1203": {
"names": {
"en": "Luocha",
"th": "Luocha (หลัวชา)",
"th": "หลัวชา",
"zh-CN": "罗刹",
"zh-TW": "羅剎",
"ja": "羅刹",
@@ -394,7 +394,7 @@ export const AVATAR_METADATA = {
"1204": {
"names": {
"en": "Jing Yuan",
"th": "Jing Yuan (จิ่งหยวน)",
"th": "จิ่งหยวน",
"zh-CN": "景元",
"zh-TW": "景元",
"ja": "景元",
@@ -409,7 +409,7 @@ export const AVATAR_METADATA = {
"1205": {
"names": {
"en": "Blade",
"th": "Blade (เบลด)",
"th": "เบลด",
"zh-CN": "刃",
"zh-TW": "刃",
"ja": "刃",
@@ -424,7 +424,7 @@ export const AVATAR_METADATA = {
"1206": {
"names": {
"en": "Sushang",
"th": "Sushang (ซูซาง)",
"th": "ซูซาง",
"zh-CN": "素裳",
"zh-TW": "素裳",
"ja": "素裳",
@@ -439,7 +439,7 @@ export const AVATAR_METADATA = {
"1207": {
"names": {
"en": "Yukong",
"th": "Yukong (อวี้คง)",
"th": "อวี้คง",
"zh-CN": "驭空",
"zh-TW": "馭空",
"ja": "御空",
@@ -454,7 +454,7 @@ export const AVATAR_METADATA = {
"1208": {
"names": {
"en": "Fu Xuan",
"th": "Fu Xuan (ฟู่เสวียน)",
"th": "ฟู่เสวียน",
"zh-CN": "符玄",
"zh-TW": "符玄",
"ja": "符玄",
@@ -469,7 +469,7 @@ export const AVATAR_METADATA = {
"1209": {
"names": {
"en": "Yanqing",
"th": "Yanqing (เหยียนชิง)",
"th": "เหยียนชิง",
"zh-CN": "彦卿",
"zh-TW": "彥卿",
"ja": "彦卿",
@@ -484,7 +484,7 @@ export const AVATAR_METADATA = {
"1210": {
"names": {
"en": "Guinaifen",
"th": "Guinaifen (กุ้ยหน่ายเฟิน)",
"th": "กุ้ยหน่ายเฟิน",
"zh-CN": "桂乃芬",
"zh-TW": "桂乃芬",
"ja": "桂乃芬",
@@ -499,7 +499,7 @@ export const AVATAR_METADATA = {
"1211": {
"names": {
"en": "Bailu",
"th": "Bailu (ไป๋ลู่)",
"th": "ไป๋ลู่",
"zh-CN": "白露",
"zh-TW": "白露",
"ja": "白露",
@@ -514,7 +514,7 @@ export const AVATAR_METADATA = {
"1212": {
"names": {
"en": "Jingliu",
"th": "Jingliu (จิ้งหลิว)",
"th": "จิ้งหลิว",
"zh-CN": "镜流",
"zh-TW": "鏡流",
"ja": "鏡流",
@@ -529,7 +529,7 @@ export const AVATAR_METADATA = {
"1213": {
"names": {
"en": "Dan Heng • Imbibitor Lunae",
"th": "Dan Heng • IL (ดันเฮง จ้าวยลจันทรา)",
"th": "ดันเฮง จ้าวยลจันทรา",
"zh-CN": "丹恒·饮月",
"zh-TW": "丹恆·飲月",
"ja": "丹恒・飲月",
@@ -544,7 +544,7 @@ export const AVATAR_METADATA = {
"1214": {
"names": {
"en": "Xueyi",
"th": "Xueyi (เสวียอี้)",
"th": "เสวียอี้",
"zh-CN": "雪衣",
"zh-TW": "雪衣",
"ja": "雪衣",
@@ -559,7 +559,7 @@ export const AVATAR_METADATA = {
"1215": {
"names": {
"en": "Hanya",
"th": "Hanya (ฮันย่า)",
"th": "ฮันย่า",
"zh-CN": "寒鸦",
"zh-TW": "寒鴉",
"ja": "寒鴉",
@@ -574,7 +574,7 @@ export const AVATAR_METADATA = {
"1217": {
"names": {
"en": "Huohuo",
"th": "Huohuo (ฮัวฮัว)",
"th": "ฮัวฮัว",
"zh-CN": "藿藿",
"zh-TW": "藿藿",
"ja": "フォフォ",
@@ -589,7 +589,7 @@ export const AVATAR_METADATA = {
"1218": {
"names": {
"en": "Jiaoqiu",
"th": "Jiaoqiu (เจียวชิว)",
"th": "เจียวชิว",
"zh-CN": "椒丘",
"zh-TW": "椒丘",
"ja": "椒丘",
@@ -604,7 +604,7 @@ export const AVATAR_METADATA = {
"1220": {
"names": {
"en": "Feixiao",
"th": "Feixiao (เฟยเซียว)",
"th": "เฟยเซียว",
"zh-CN": "飞霄",
"zh-TW": "飛霄",
"ja": "飛霄",
@@ -619,7 +619,7 @@ export const AVATAR_METADATA = {
"1221": {
"names": {
"en": "Yunli",
"th": "Yunli (หยุนหลี่)",
"th": "หยุนหลี่",
"zh-CN": "云璃",
"zh-TW": "雲璃",
"ja": "雲璃",
@@ -634,7 +634,7 @@ export const AVATAR_METADATA = {
"1222": {
"names": {
"en": "Lingsha",
"th": "Lingsha (หลิงซา)",
"th": "หลิงซา",
"zh-CN": "灵砂",
"zh-TW": "靈砂",
"ja": "霊砂",
@@ -649,7 +649,7 @@ export const AVATAR_METADATA = {
"1223": {
"names": {
"en": "Moze",
"th": "Moze (โม่เจ๋อ)",
"th": "โม่เจ๋อ",
"zh-CN": "貊泽",
"zh-TW": "貊澤",
"ja": "モゼ",
@@ -664,7 +664,7 @@ export const AVATAR_METADATA = {
"1224": {
"names": {
"en": "March 7th • The Hunt",
"th": "March 7th (ล่าสังหาร)",
"th": "ล่าสังหาร",
"zh-CN": "三月七·巡猎",
"zh-TW": "三月七·巡獵",
"ja": "三月なのか・巡狩",
@@ -679,7 +679,7 @@ export const AVATAR_METADATA = {
"1225": {
"names": {
"en": "Fugue",
"th": "Fugue (ฟิวก์)",
"th": "ฟิวก์",
"zh-CN": "忘归人",
"zh-TW": "忘歸人",
"ja": "忘帰人",
@@ -694,7 +694,7 @@ export const AVATAR_METADATA = {
"1301": {
"names": {
"en": "Gallagher",
"th": "Gallagher (กัลลาเกอร์)",
"th": "กัลลาเกอร์",
"zh-CN": "加拉赫",
"zh-TW": "加拉赫",
"ja": "ギャラガー",
@@ -709,7 +709,7 @@ export const AVATAR_METADATA = {
"1302": {
"names": {
"en": "Argenti",
"th": "Argenti (อาร์เจนติ)",
"th": "อาร์เจนติ",
"zh-CN": "银枝",
"zh-TW": "銀枝",
"ja": "アルジェンティ",
@@ -724,7 +724,7 @@ export const AVATAR_METADATA = {
"1303": {
"names": {
"en": "Ruan Mei",
"th": "Ruan Mei (รวน เหมย)",
"th": "รวน เหมย",
"zh-CN": "阮·梅",
"zh-TW": "阮·梅",
"ja": "ルアン・メェイ",
@@ -739,7 +739,7 @@ export const AVATAR_METADATA = {
"1304": {
"names": {
"en": "Aventurine",
"th": "Aventurine (อเวนทูรีน)",
"th": "อเวนทูรีน",
"zh-CN": "砂金",
"zh-TW": "砂金",
"ja": "アベンチュリン",
@@ -754,7 +754,7 @@ export const AVATAR_METADATA = {
"1305": {
"names": {
"en": "Dr. Ratio",
"th": "Dr. Ratio (ดร. เรโช)",
"th": "ดร. เรโช",
"zh-CN": "真理医生",
"zh-TW": "真理醫生",
"ja": "Dr.レイシオ",
@@ -769,7 +769,7 @@ export const AVATAR_METADATA = {
"1306": {
"names": {
"en": "Sparkle",
"th": "Sparkle (สปาร์กเคิล)",
"th": "สปาร์กเคิล",
"zh-CN": "花火",
"zh-TW": "花火",
"ja": "花火",
@@ -784,7 +784,7 @@ export const AVATAR_METADATA = {
"1307": {
"names": {
"en": "Black Swan",
"th": "Black Swan (แบล็กสวอน)",
"th": "แบล็กสวอน",
"zh-CN": "黑天鹅",
"zh-TW": "黑天鵝",
"ja": "ブラックスワン",
@@ -799,7 +799,7 @@ export const AVATAR_METADATA = {
"1308": {
"names": {
"en": "Acheron",
"th": "Acheron (อาเคอรอน)",
"th": "อาเคอรอน",
"zh-CN": "黄泉",
"zh-TW": "黃泉",
"ja": "黄泉",
@@ -814,7 +814,7 @@ export const AVATAR_METADATA = {
"1309": {
"names": {
"en": "Robin",
"th": "Robin (โรบิน)",
"th": "โรบิน",
"zh-CN": "知更鸟",
"zh-TW": "知更鳥",
"ja": "ロビン",
@@ -829,7 +829,7 @@ export const AVATAR_METADATA = {
"1310": {
"names": {
"en": "Firefly",
"th": "Firefly (ไฟร์ฟลาย)",
"th": "ไฟร์ฟลาย",
"zh-CN": "流萤",
"zh-TW": "流螢",
"ja": "ホタル",
@@ -844,7 +844,7 @@ export const AVATAR_METADATA = {
"1312": {
"names": {
"en": "Misha",
"th": "Misha (มิชา)",
"th": "มิชา",
"zh-CN": "米沙",
"zh-TW": "米沙",
"ja": "ミーシャ",
@@ -859,7 +859,7 @@ export const AVATAR_METADATA = {
"1313": {
"names": {
"en": "Sunday",
"th": "Sunday (ซันเดย์)",
"th": "ซันเดย์",
"zh-CN": "星期日",
"zh-TW": "星期日",
"ja": "サンデー",
@@ -874,7 +874,7 @@ export const AVATAR_METADATA = {
"1314": {
"names": {
"en": "Jade",
"th": "Jade (เจด)",
"th": "เจด",
"zh-CN": "翡翠",
"zh-TW": "翡翠",
"ja": "ジェイド",
@@ -889,7 +889,7 @@ export const AVATAR_METADATA = {
"1315": {
"names": {
"en": "Boothill",
"th": "Boothill (บูทฮิลล์)",
"th": "บูทฮิลล์",
"zh-CN": "波提欧",
"zh-TW": "波提歐",
"ja": "ブートヒル",
@@ -904,7 +904,7 @@ export const AVATAR_METADATA = {
"1317": {
"names": {
"en": "Rappa",
"th": "Rappa (แรปปา)",
"th": "แรปปา",
"zh-CN": "乱破",
"zh-TW": "亂破",
"ja": "乱破",
@@ -919,7 +919,7 @@ export const AVATAR_METADATA = {
"1321": {
"names": {
"en": "Dahlia",
"th": "Dahlia (ดาเลีย)",
"th": "ดาเลีย",
"zh-CN": "达莉亚",
"zh-TW": "達莉亞",
"ja": "ダリア",
@@ -934,7 +934,7 @@ export const AVATAR_METADATA = {
"1401": {
"names": {
"en": "The Herta",
"th": "The Herta (เดอะ เฮอร์ต้า)",
"th": "เดอะ เฮอร์ต้า",
"zh-CN": "大黑塔",
"zh-TW": "大黑塔",
"ja": "ザ・ヘルタ",
@@ -949,7 +949,7 @@ export const AVATAR_METADATA = {
"1402": {
"names": {
"en": "Aglaea",
"th": "Aglaea (อักเลีย)",
"th": "อักเลีย",
"zh-CN": "阿格莱雅",
"zh-TW": "阿格萊雅",
"ja": "アグラエア",
@@ -964,7 +964,7 @@ export const AVATAR_METADATA = {
"1403": {
"names": {
"en": "Tribbie",
"th": "Tribbie (ทริบบี้)",
"th": "ทริบบี้",
"zh-CN": "提比",
"zh-TW": "提比",
"ja": "トリビー",
@@ -979,7 +979,7 @@ export const AVATAR_METADATA = {
"1404": {
"names": {
"en": "Mydei",
"th": "Mydei (ไมเดย์)",
"th": "ไมเดย์",
"zh-CN": "麦狄",
"zh-TW": "麥狄",
"ja": "マイディ",
@@ -994,7 +994,7 @@ export const AVATAR_METADATA = {
"1405": {
"names": {
"en": "Anaxa",
"th": "Anaxa (อนากซา)",
"th": "อนากซา",
"zh-CN": "阿那克萨",
"zh-TW": "阿那克薩",
"ja": "アナクサ",
@@ -1009,7 +1009,7 @@ export const AVATAR_METADATA = {
"1406": {
"names": {
"en": "Cipher",
"th": "Cipher (ไซเฟอร์)",
"th": "ไซเฟอร์",
"zh-CN": "赛弗",
"zh-TW": "賽弗",
"ja": "サイファー",
@@ -1024,7 +1024,7 @@ export const AVATAR_METADATA = {
"1407": {
"names": {
"en": "Castorice",
"th": "Castorice (คาสโตริเซ่)",
"th": "แคสโตริซ",
"zh-CN": "遐蝶",
"zh-TW": "遐蝶",
"ja": "カストリセ",
@@ -1039,7 +1039,7 @@ export const AVATAR_METADATA = {
"1408": {
"names": {
"en": "Phainon",
"th": "Phainon (ฟานอน)",
"th": "ไฟนอน",
"zh-CN": "法埃农",
"zh-TW": "法埃農",
"ja": "ファイノン",
@@ -1054,7 +1054,7 @@ export const AVATAR_METADATA = {
"1409": {
"names": {
"en": "Hyacine",
"th": "Hyacine (ไฮยาซีน)",
"th": "ไฮยาซีน",
"zh-CN": "风信子",
"zh-TW": "風信子",
"ja": "ヒヤシンス",
@@ -1069,7 +1069,7 @@ export const AVATAR_METADATA = {
"1410": {
"names": {
"en": "Hysilens",
"th": "Hysilens (ไฮซิเลนส์)",
"th": "ไฮซิเลนส์",
"zh-CN": "海西伦斯",
"zh-TW": "海西倫斯",
"ja": "ヒシレンス",
@@ -1084,7 +1084,7 @@ export const AVATAR_METADATA = {
"1412": {
"names": {
"en": "Cerydra",
"th": "Cerydra (เซอรีดรา)",
"th": "เซอรีดรา",
"zh-CN": "塞利德拉",
"zh-TW": "塞利德拉",
"ja": "セリドラ",
@@ -1099,7 +1099,7 @@ export const AVATAR_METADATA = {
"1413": {
"names": {
"en": "Evernight",
"th": "Evernight (เอเวอร์ไนท์)",
"th": "เอเวอร์ไนท์",
"zh-CN": "永夜",
"zh-TW": "永夜",
"ja": "エバーナイト",
@@ -1114,7 +1114,7 @@ export const AVATAR_METADATA = {
"1414": {
"names": {
"en": "Dan Heng • Permeating Thunder",
"th": "Dan Heng PT (ดันเฮงร่างใหม่)",
"th": "ดันเฮงร่างใหม่",
"zh-CN": "丹恒·行者",
"zh-TW": "丹恆·行者",
"ja": "丹恒・行者",
@@ -1129,7 +1129,7 @@ export const AVATAR_METADATA = {
"1415": {
"names": {
"en": "Cyrene",
"th": "Cyrene (ซีรีน)",
"th": "ไซรีน",
"zh-CN": "赛琳",
"zh-TW": "賽琳",
"ja": "サイリーン",
@@ -1144,7 +1144,7 @@ export const AVATAR_METADATA = {
"1501": {
"names": {
"en": "Sparxie",
"th": "Sparxie (สปาร์กซี่)",
"th": "สปาร์กซี่",
"zh-CN": "斯帕克茜",
"zh-TW": "斯帕克茜",
"ja": "スパーキー",
@@ -1159,7 +1159,7 @@ export const AVATAR_METADATA = {
"1502": {
"names": {
"en": "Yaoguang",
"th": "Yaoguang (เย่ากวง)",
"th": "เย่ากวง",
"zh-CN": "瑶光",
"zh-TW": "瑤光",
"ja": "瑤光",
@@ -1174,7 +1174,7 @@ export const AVATAR_METADATA = {
"1503": {
"names": {
"en": "Pearl",
"th": "Pearl (เพิร์ล)",
"th": "เพิร์ล",
"zh-CN": "佩尔 (Pearl)",
"zh-TW": "佩爾",
"ja": "パール",
@@ -1189,7 +1189,7 @@ export const AVATAR_METADATA = {
"1504": {
"names": {
"en": "Ashveil",
"th": "Ashveil (แอชเวล)",
"th": "แอชเวล",
"zh-CN": "灰纱",
"zh-TW": "灰紗",
"ja": "アッシュヴェイル",
@@ -1204,7 +1204,7 @@ export const AVATAR_METADATA = {
"1505": {
"names": {
"en": "Evanescia",
"th": "Evanescia (เอวาเนสเซีย)",
"th": "เอวาเนสเซีย",
"zh-CN": "埃瓦内西亚",
"zh-TW": "埃瓦內西亞",
"ja": "エヴァネシア",
@@ -1219,7 +1219,7 @@ export const AVATAR_METADATA = {
"1506": {
"names": {
"en": "Silver Wolf Lv.999",
"th": "Silver Wolf Lv.999 (ซิลเวอร์วูล์ฟ Lv.999)",
"th": "ซิลเวอร์วูล์ฟ Lv.999",
"zh-CN": "银狼 Lv.999",
"zh-TW": "銀狼 Lv.999",
"ja": "銀狼 Lv.999",
@@ -1234,7 +1234,7 @@ export const AVATAR_METADATA = {
"1507": {
"names": {
"en": "Mortenax Blade",
"th": "Mortenax Blade (มอร์เทแนกซ์ เบลด)",
"th": "มอร์เทแนกซ์ เบลด",
"zh-CN": "摩天之刃",
"zh-TW": "摩天之刃",
"ja": "摩天の刃",
@@ -1249,7 +1249,7 @@ export const AVATAR_METADATA = {
"1508": {
"names": {
"en": "Tohsaka Rin",
"th": "Tohsaka Rin (โทซากะ ริน)",
"th": "โทซากะ ริน",
"zh-CN": "远坂凛",
"zh-TW": "遠坂凜",
"ja": "遠坂凛",
@@ -1264,7 +1264,7 @@ export const AVATAR_METADATA = {
"1509": {
"names": {
"en": "Gilgamesh",
"th": "Gilgamesh (กิลกาเมช)",
"th": "กิลกาเมช",
"zh-CN": "吉尔伽美什 (金闪闪)",
"zh-TW": "吉爾伽美什",
"ja": "ギルガメッシュ",
@@ -1279,7 +1279,7 @@ export const AVATAR_METADATA = {
"1510": {
"names": {
"en": "Himeko Nova",
"th": "Himeko Nova (ฮิเมโกะ โนวา)",
"th": "ฮิเมโกะ โนวา",
"zh-CN": "姬子·新星",
"zh-TW": "姬子·新星",
"ja": "姫子・ノヴァ",
@@ -1294,7 +1294,7 @@ export const AVATAR_METADATA = {
"1511": {
"names": {
"en": "Nihilux",
"th": "Nihilux (นิฮิลักซ์)",
"th": "นิฮิลักซ์",
"zh-CN": "虚无之神·尼希卢克斯",
"zh-TW": "虛無之神·尼希盧克斯",
"ja": "ニヒラックス",
@@ -1309,7 +1309,7 @@ export const AVATAR_METADATA = {
"1512": {
"names": {
"en": "Robin • Summeretto",
"th": "Robin • Summeretto (โรบิน ซัมเมอร์)",
"th": "โรบิน ซัมเมอร์",
"zh-CN": "知更鸟·夏日",
"zh-TW": "知更鳥·夏日",
"ja": "ロビン・サマー",
@@ -1324,7 +1324,7 @@ export const AVATAR_METADATA = {
"1513": {
"names": {
"en": "Aventurine • Waveflair",
"th": "Aventurine • Waveflair (อเวนทูรีน คลื่นทะเล)",
"th": "อเวนทูรีน คลื่นทะเล",
"zh-CN": "砂金·夏日浪潮",
"zh-TW": "砂金·夏日浪潮",
"ja": "アベンチュリン・サマー",
+33 -33
View File
@@ -2,19 +2,19 @@
// Covers all 13 official languages supported by Honkai: Star Rail
export const SUPPORTED_LANGUAGES = [
{ code: 'th', name: 'ภาษาไทย (Thai)', flag: '🇹🇭' },
{ code: 'th', name: 'ภาษาไทย', flag: '🇹🇭' },
{ code: 'en', name: 'English', flag: '🇺🇸' },
{ code: 'zh-CN', name: '简体中文 (Simplified Chinese)', flag: '🇨🇳' },
{ code: 'zh-TW', name: '繁體中文 (Traditional Chinese)', flag: '🇹🇼' },
{ code: 'ja', name: '日本語 (Japanese)', flag: '🇯🇵' },
{ code: 'ko', name: '한국어 (Korean)', flag: '🇰🇷' },
{ code: 'vi', name: 'Tiếng Việt (Vietnamese)', flag: '🇻🇳' },
{ code: 'id', name: 'Bahasa Indonesia (Indonesian)', flag: '🇮🇩' },
{ code: 'es', name: 'Español (Spanish)', flag: '🇪🇸' },
{ code: 'fr', name: 'Français (French)', flag: '🇫🇷' },
{ code: 'de', name: 'Deutsch (German)', flag: '🇩🇪' },
{ code: 'ru', name: 'Русский (Russian)', flag: '🇷🇺' },
{ code: 'pt', name: 'Português (Portuguese)', flag: '🇧🇷' }
{ code: 'zh-CN', name: '简体中文', flag: '🇨🇳' },
{ code: 'zh-TW', name: '繁體中文', flag: '🇹🇼' },
{ code: 'ja', name: '日本語', flag: '🇯🇵' },
{ code: 'ko', name: '한국어', flag: '🇰🇷' },
{ code: 'vi', name: 'Tiếng Việt', flag: '🇻🇳' },
{ code: 'id', name: 'Bahasa Indonesia', flag: '🇮🇩' },
{ code: 'es', name: 'Español', flag: '🇪🇸' },
{ code: 'fr', name: 'Français', flag: '🇫🇷' },
{ code: 'de', name: 'Deutsch', flag: '🇩🇪' },
{ code: 'ru', name: 'Русский', flag: '🇷🇺' },
{ code: 'pt', name: 'Português', flag: '🇧🇷' }
];
export const TRANSLATIONS = {
@@ -22,39 +22,39 @@ export const TRANSLATIONS = {
// Header
appName: "GaC-Srtool",
appSubtitle: "Star Rail FreeSR & Server Controller",
online: "เชื่อมต่อแล้ว (Online)",
offline: "ออฟไลน์ (Offline)",
online: "เชื่อมต่อแล้ว",
offline: "ออฟไลน์",
checking: "กำลังตรวจสอบ...",
refresh: "🔄 รีเฟรช",
connectFailed: "เชื่อมต่อไม่สำเร็จ",
// Tabs
tabDashboard: "📊 แดชบอร์ด (Overview)",
tabAvatars: "👥 ตัวละคร (Avatars)",
tabExrank: "⚡ Ex-Rank (สกิลพิเศษ)",
tabTeleport: "🚀 วาร์ปฉาก (Teleport)",
tabDashboard: "📊 แดชบอร์ด & จัดทีม",
tabAvatars: "👥 ตัวละคร",
tabExrank: "⚡ สกิลพิเศษ Ex-Rank",
tabTeleport: "🚀 วาร์ปฉาก",
tabJson: "📝 จัดการไฟล์ JSON",
tabSettings: "⚙️ ตั้งค่า & คู่มือ Host",
tabSettings: "⚙️ ตั้งค่า & ข้อมูลโหมด",
// Dashboard
statAvatars: "ตัวละครที่ครอบครอง",
statLightcones: "กรวยแสง (Lightcones)",
statRelics: "รีลิกส์ (Relics)",
serverStatusTitle: "📍 สถานะเซิร์ฟเวอร์ & ตำแหน่งปัจจุบัน",
quickActionsTitle: "⚡ ดำเนินการด่วน (Quick Actions)",
quickActionsSubtitle: "สั่งการส่งไปยัง REST API Gateway ทันที",
statLightcones: "กรวยแสง",
statRelics: "รีลิกส์",
serverStatusTitle: "📍 สถานะเซิร์ฟเวอร์ & พิกัดปัจจุบัน",
quickActionsTitle: "⚡ ดำเนินการด่วน",
quickActionsSubtitle: "ส่งคำสั่งไปยังเซิร์ฟเวอร์ทันที",
btnMaxAll: "⭐ ปรับเลเวล 80 & ปลด E6 ตัวละครทั้งหมด",
btnWarpExpress: "🚂 วาร์ปกลับรถไฟ Astral Express ทันที",
btnSyncPersistent: "💾 ซิงค์ข้อมูล Persistent ล่าสุด",
currentLineupTitle: "🎮 ทีมปัจจุบัน (Current Lineup)",
currentLineupTitle: "🎮 ทีมปัจจุบัน",
slot: "ตำแหน่งที่",
slotEmpty: "(ว่าง)",
coords: "พิกัดตัวละคร (X, Y, Z)",
// Avatars
searchPlaceholder: "🔍 ค้นหาชื่อหรือ ID ตัวละคร...",
filterAllRarity: "ทุกระดับดาว",
filter5Star: "5 ดาว (SSR)",
filter4Star: "4 ดาว (SR)",
filter5Star: "5 ดาว",
filter4Star: "4 ดาว",
btnReload: "🔄 รีโหลด",
eidolonLabel: "EIDOLON (E):",
eidolonLabel: "Eidolon:",
confirmMaxAll: "ยืนยันปรับตัวละครทั้งหมดให้เป็นเลเวล 80 และปลด E6 หรือไม่?",
maxAllSuccess: "ปรับ Max ทุกตัวละครสำเร็จแล้ว!",
avatarRankSuccess: "ปรับตัวละคร {id} เป็น E{rank} สำเร็จ",
@@ -68,17 +68,17 @@ export const TRANSLATIONS = {
enabled: "เปิดใช้งาน",
disabled: "ปิดใช้งาน",
// Teleport
presetsTitle: "📍 จุดวาร์ปปลอดภัยยอดนิยม (Safe Presets)",
presetsTitle: "📍 จุดวาร์ปปลอดภัยยอดนิยม",
presetsSubtitle: "คลิกจุดวาร์ปเพื่อย้ายฉากของผู้เล่นในไฟล์เซฟได้ทันที",
customTeleportTitle: "🎯 กำหนดพิกัดวาร์ปเอง (Custom Teleport)",
customTeleportTitle: "🎯 กำหนดพิกัดวาร์ปเอง",
customTeleportSubtitle: "ใส่ PlaneID, FloorID และ EntryID ตามต้องการ",
btnExecuteWarp: "🚀 ยืนยันการวาร์ป (Execute Teleport)",
btnExecuteWarp: "🚀 ยืนยันการวาร์ป",
warpBtn: "🚀 วาร์ป",
warpSuccess: "วาร์ปไปยัง {label} สำเร็จ (บันทึกลง Persistent)",
warpFailed: "วาร์ปไม่สำเร็จ: {err}",
// JSON
btnFreesr: "📄 freesr-data.json",
btnPersistent: "💾 persistent (Save)",
btnPersistent: "💾 ไฟล์เซฟ persistent",
btnBeautify: "✨ จัดรูปแบบ JSON",
btnDownload: "📥 ดาวน์โหลด Backup",
btnUpload: "📤 อัปโหลดไฟล์",
@@ -120,7 +120,7 @@ export const TRANSLATIONS = {
Abundance: "เฟื่องฟู",
Remembrance: "ความทรงจำ",
Unknown: "ไม่ระบุ",
Elation: "ปีติ (Elation)"
Elation: "ปีติ"
}
},