1312 lines
57 KiB
JavaScript
1312 lines
57 KiB
JavaScript
// Multi-language (i18n) definitions for GaC-srtool
|
||
// Covers all 13 official languages supported by Honkai: Star Rail
|
||
|
||
export const SUPPORTED_LANGUAGES = [
|
||
{ code: 'th', name: 'ภาษาไทย (Thai)', 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: '🇧🇷' }
|
||
];
|
||
|
||
export const TRANSLATIONS = {
|
||
th: {
|
||
// Header
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Star Rail FreeSR & Server Controller",
|
||
online: "เชื่อมต่อแล้ว (Online)",
|
||
offline: "ออฟไลน์ (Offline)",
|
||
checking: "กำลังตรวจสอบ...",
|
||
refresh: "🔄 รีเฟรช",
|
||
connectFailed: "เชื่อมต่อไม่สำเร็จ",
|
||
// Tabs
|
||
tabDashboard: "📊 แดชบอร์ด (Overview)",
|
||
tabAvatars: "👥 ตัวละคร (Avatars)",
|
||
tabExrank: "⚡ Ex-Rank (สกิลพิเศษ)",
|
||
tabTeleport: "🚀 วาร์ปฉาก (Teleport)",
|
||
tabJson: "📝 จัดการไฟล์ JSON",
|
||
tabSettings: "⚙️ ตั้งค่า & คู่มือ Host",
|
||
// Dashboard
|
||
statAvatars: "ตัวละครที่ครอบครอง",
|
||
statLightcones: "กรวยแสง (Lightcones)",
|
||
statRelics: "รีลิกส์ (Relics)",
|
||
serverStatusTitle: "📍 สถานะเซิร์ฟเวอร์ & ตำแหน่งปัจจุบัน",
|
||
quickActionsTitle: "⚡ ดำเนินการด่วน (Quick Actions)",
|
||
quickActionsSubtitle: "สั่งการส่งไปยัง REST API Gateway ทันที",
|
||
btnMaxAll: "⭐ ปรับเลเวล 80 & ปลด E6 ตัวละครทั้งหมด",
|
||
btnWarpExpress: "🚂 วาร์ปกลับรถไฟ Astral Express ทันที",
|
||
btnSyncPersistent: "💾 ซิงค์ข้อมูล Persistent ล่าสุด",
|
||
currentLineupTitle: "🎮 ทีมปัจจุบัน (Current Lineup)",
|
||
slot: "ตำแหน่งที่",
|
||
slotEmpty: "(ว่าง)",
|
||
coords: "พิกัดตัวละคร (X, Y, Z)",
|
||
// Avatars
|
||
searchPlaceholder: "🔍 ค้นหาชื่อหรือ ID ตัวละคร...",
|
||
filterAllRarity: "ทุกระดับดาว",
|
||
filter5Star: "5 ดาว (SSR)",
|
||
filter4Star: "4 ดาว (SR)",
|
||
btnReload: "🔄 รีโหลด",
|
||
eidolonLabel: "EIDOLON (E):",
|
||
confirmMaxAll: "ยืนยันปรับตัวละครทั้งหมดให้เป็นเลเวล 80 และปลด E6 หรือไม่?",
|
||
maxAllSuccess: "ปรับ Max ทุกตัวละครสำเร็จแล้ว!",
|
||
avatarRankSuccess: "ปรับตัวละคร {id} เป็น E{rank} สำเร็จ",
|
||
// Ex-Rank
|
||
exrankTitle: "⚡ ระบบปลดล็อค Ex-Rank Skill",
|
||
exrankSubtitle: "เปิดใช้งานพรสวรรค์และกลไกพิเศษ Ex-Rank สำหรับตัวละครเฉพาะใน FreeSR (เช่น Jing Yuan โดน CC ไม่หยุดชะงัก, Dan Heng IL, Acheron)",
|
||
btnEnableAll: "เปิด Ex-Rank ทั้งหมด",
|
||
btnDisableAll: "ปิด Ex-Rank ทั้งหมด",
|
||
exrankToggleSuccess: "{name}: {status} Ex-Rank สำเร็จ",
|
||
exrankAllSuccess: "{status} Ex-Rank ทุกตัวละครสำเร็จ",
|
||
enabled: "เปิดใช้งาน",
|
||
disabled: "ปิดใช้งาน",
|
||
// Teleport
|
||
presetsTitle: "📍 จุดวาร์ปปลอดภัยยอดนิยม (Safe Presets)",
|
||
presetsSubtitle: "คลิกจุดวาร์ปเพื่อย้ายฉากของผู้เล่นในไฟล์เซฟได้ทันที",
|
||
customTeleportTitle: "🎯 กำหนดพิกัดวาร์ปเอง (Custom Teleport)",
|
||
customTeleportSubtitle: "ใส่ PlaneID, FloorID และ EntryID ตามต้องการ",
|
||
btnExecuteWarp: "🚀 ยืนยันการวาร์ป (Execute Teleport)",
|
||
warpBtn: "🚀 วาร์ป",
|
||
warpSuccess: "วาร์ปไปยัง {label} สำเร็จ (บันทึกลง Persistent)",
|
||
warpFailed: "วาร์ปไม่สำเร็จ: {err}",
|
||
// JSON
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent (Save)",
|
||
btnBeautify: "✨ จัดรูปแบบ JSON",
|
||
btnDownload: "📥 ดาวน์โหลด Backup",
|
||
btnUpload: "📤 อัปโหลดไฟล์",
|
||
btnSaveServer: "💾 บันทึกไปยังเซิร์ฟเวอร์",
|
||
jsonTip: "Tip: สามารถแก้ไขค่าดิบแล้วกด 'บันทึกไปยังเซิร์ฟเวอร์' ได้ทันที",
|
||
jsonStatusReady: "พร้อมใช้งาน",
|
||
jsonStatusOpening: "กำลังเปิด: {name}",
|
||
jsonSaveSuccess: "บันทึกไฟล์ {name} เรียบร้อยแล้ว",
|
||
jsonInvalid: "JSON ไม่ถูกต้อง",
|
||
// Settings
|
||
apiSettingsTitle: "⚙️ ตั้งค่าการเชื่อมต่อ API Gateway",
|
||
apiSettingsSubtitle: "ปรับเปลี่ยนพอร์ตหรือ IP ได้ตามไฟล์ server.json ของคุณ",
|
||
lblApiGatewayUrl: "REST API Gateway URL",
|
||
lblPingInterval: "ความถี่ในการตรวจสอบสถานะ (วินาที)",
|
||
btnSaveSettings: "💾 บันทึกการตั้งค่า",
|
||
btnResetDefault: "คืนค่าเริ่มต้น",
|
||
hostGuideTitle: "🌐 วิธีนำขึ้นโฮสต์ GitHub Pages (ฟรี 100%)",
|
||
hostGuideSubtitle: "สามารถเปิดใช้งานเว็บนี้บนอินเทอร์เน็ตได้โดยไม่ต้องเสียค่าโฮสต์ใดๆ",
|
||
settingsSaved: "บันทึกการตั้งค่าสำเร็จ!",
|
||
settingsReset: "คืนค่าเริ่มต้นเรียบร้อย",
|
||
// Elements & Paths
|
||
elements: {
|
||
Physical: "กายภาพ",
|
||
Fire: "ไฟ",
|
||
Ice: "น้ำแข็ง",
|
||
Lightning: "สายฟ้า",
|
||
Wind: "ลม",
|
||
Quantum: "ควอนตัม",
|
||
Imaginary: "จินตภาพ",
|
||
Unknown: "ไม่ระบุ"
|
||
},
|
||
paths: {
|
||
Destruction: "ทำลายล้าง",
|
||
Hunt: "ล่าสังหาร",
|
||
Erudition: "ปัญญา",
|
||
Harmony: "ประสาน",
|
||
Nihility: "ลบล้าง",
|
||
Preservation: "อนุรักษ์",
|
||
Abundance: "เฟื่องฟู",
|
||
Remembrance: "ความทรงจำ",
|
||
Unknown: "ไม่ระบุ"
|
||
}
|
||
},
|
||
|
||
en: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Star Rail FreeSR & Server Controller",
|
||
online: "Online",
|
||
offline: "Offline",
|
||
checking: "Checking...",
|
||
refresh: "🔄 Refresh",
|
||
connectFailed: "Connection Failed",
|
||
tabDashboard: "📊 Dashboard",
|
||
tabAvatars: "👥 Avatars",
|
||
tabExrank: "⚡ Ex-Rank Skills",
|
||
tabTeleport: "🚀 Teleport",
|
||
tabJson: "📝 JSON Management",
|
||
tabSettings: "⚙️ Settings & Guide",
|
||
statAvatars: "Owned Avatars",
|
||
statLightcones: "Lightcones",
|
||
statRelics: "Relics",
|
||
serverStatusTitle: "📍 Server Status & Current Position",
|
||
quickActionsTitle: "⚡ Quick Actions",
|
||
quickActionsSubtitle: "Send command directly to REST API Gateway",
|
||
btnMaxAll: "⭐ Max All Avatars (Lv. 80 & E6)",
|
||
btnWarpExpress: "🚂 Warp to Astral Express Parlor Car",
|
||
btnSyncPersistent: "💾 Sync Persistent Data",
|
||
currentLineupTitle: "🎮 Current Lineup",
|
||
slot: "Slot",
|
||
slotEmpty: "(Empty)",
|
||
coords: "Coordinates (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Search name or ID...",
|
||
filterAllRarity: "All Rarities",
|
||
filter5Star: "5-Star (SSR)",
|
||
filter4Star: "4-Star (SR)",
|
||
btnReload: "🔄 Reload",
|
||
eidolonLabel: "EIDOLON (E):",
|
||
confirmMaxAll: "Upgrade all avatars to Level 80 and unlock E6?",
|
||
maxAllSuccess: "All avatars maximized successfully!",
|
||
avatarRankSuccess: "Updated avatar {id} to E{rank}",
|
||
exrankTitle: "⚡ Ex-Rank Skills System",
|
||
exrankSubtitle: "Toggle special Ex-Rank talents and perks in FreeSR (e.g. Jing Yuan CC immunity, Dan Heng IL, Acheron)",
|
||
btnEnableAll: "Enable All Ex-Ranks",
|
||
btnDisableAll: "Disable All Ex-Ranks",
|
||
exrankToggleSuccess: "{name}: Ex-Rank {status}",
|
||
exrankAllSuccess: "All avatars Ex-Rank {status}",
|
||
enabled: "enabled",
|
||
disabled: "disabled",
|
||
presetsTitle: "📍 Safe Presets",
|
||
presetsSubtitle: "Click to warp player scene and entry point instantly",
|
||
customTeleportTitle: "🎯 Custom Coordinates",
|
||
customTeleportSubtitle: "Specify PlaneID, FloorID, EntryID and coordinates",
|
||
btnExecuteWarp: "🚀 Execute Teleport",
|
||
warpBtn: "🚀 Warp",
|
||
warpSuccess: "Warped to {label} successfully (saved to Persistent)",
|
||
warpFailed: "Teleport failed: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent (Save)",
|
||
btnBeautify: "✨ Beautify JSON",
|
||
btnDownload: "📥 Download Backup",
|
||
btnUpload: "📤 Upload File",
|
||
btnSaveServer: "💾 Save to Server",
|
||
jsonTip: "Tip: Edit raw JSON and click 'Save to Server' to apply instantly",
|
||
jsonStatusReady: "Ready",
|
||
jsonStatusOpening: "Opening: {name}",
|
||
jsonSaveSuccess: "File {name} saved successfully",
|
||
jsonInvalid: "Invalid JSON format",
|
||
apiSettingsTitle: "⚙️ API Gateway Connection Settings",
|
||
apiSettingsSubtitle: "Adjust port or IP according to your server.json",
|
||
lblApiGatewayUrl: "REST API Gateway URL",
|
||
lblPingInterval: "Health Check Interval (seconds)",
|
||
btnSaveSettings: "💾 Save Settings",
|
||
btnResetDefault: "Reset Defaults",
|
||
hostGuideTitle: "🌐 How to Host on GitHub Pages (100% Free)",
|
||
hostGuideSubtitle: "Host and run this dashboard globally on GitHub with zero hosting cost",
|
||
settingsSaved: "Settings saved successfully!",
|
||
settingsReset: "Reset to default settings",
|
||
elements: {
|
||
Physical: "Physical",
|
||
Fire: "Fire",
|
||
Ice: "Ice",
|
||
Lightning: "Lightning",
|
||
Wind: "Wind",
|
||
Quantum: "Quantum",
|
||
Imaginary: "Imaginary",
|
||
Unknown: "Unknown"
|
||
},
|
||
paths: {
|
||
Destruction: "Destruction",
|
||
Hunt: "Hunt",
|
||
Erudition: "Erudition",
|
||
Harmony: "Harmony",
|
||
Nihility: "Nihility",
|
||
Preservation: "Preservation",
|
||
Abundance: "Abundance",
|
||
Remembrance: "Remembrance",
|
||
Unknown: "Unknown"
|
||
}
|
||
},
|
||
|
||
"zh-CN": {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "星穹铁道 FreeSR 伴侣管理后台",
|
||
online: "在线 (Online)",
|
||
offline: "离线 (Offline)",
|
||
checking: "检查中...",
|
||
refresh: "🔄 刷新",
|
||
connectFailed: "连接失败",
|
||
tabDashboard: "📊 仪表盘",
|
||
tabAvatars: "👥 角色管理",
|
||
tabExrank: "⚡ 特殊命途 (Ex-Rank)",
|
||
tabTeleport: "🚀 场景传送",
|
||
tabJson: "📝 JSON 数据",
|
||
tabSettings: "⚙️ 设置与指南",
|
||
statAvatars: "已拥有角色",
|
||
statLightcones: "光锥数量",
|
||
statRelics: "遗器数量",
|
||
serverStatusTitle: "📍 服务器状态与当前位置",
|
||
quickActionsTitle: "⚡ 快捷操作",
|
||
quickActionsSubtitle: "即时下发指令至 REST API 网关",
|
||
btnMaxAll: "⭐ 全角色满级 (Lv.80) & 满命 (E6)",
|
||
btnWarpExpress: "🚂 立即传送回星穹列车观景车厢",
|
||
btnSyncPersistent: "💾 同步最新 Persistent 存档",
|
||
currentLineupTitle: "🎮 当前编队 (Lineup)",
|
||
slot: "位置",
|
||
slotEmpty: "(空位)",
|
||
coords: "角色坐标 (X, Y, Z)",
|
||
searchPlaceholder: "🔍 搜索角色名称或 ID...",
|
||
filterAllRarity: "所有星级",
|
||
filter5Star: "5星 (SSR)",
|
||
filter4Star: "4星 (SR)",
|
||
btnReload: "🔄 重新载入",
|
||
eidolonLabel: "星魂等级 (E):",
|
||
confirmMaxAll: "确定要将所有角色设为 80 级并解锁 6 命吗?",
|
||
maxAllSuccess: "全角色强化完成!",
|
||
avatarRankSuccess: "角色 {id} 已设置为 E{rank}",
|
||
exrankTitle: "⚡ Ex-Rank 特殊技能机制",
|
||
exrankSubtitle: "在 FreeSR 中启用专属 Ex-Rank 特权天赋(如景元免受控制打断、丹恒·饮月、黄泉)",
|
||
btnEnableAll: "全部启用 Ex-Rank",
|
||
btnDisableAll: "全部关闭 Ex-Rank",
|
||
exrankToggleSuccess: "{name}: Ex-Rank 已{status}",
|
||
exrankAllSuccess: "全角色 Ex-Rank 已{status}",
|
||
enabled: "启用",
|
||
disabled: "关闭",
|
||
presetsTitle: "📍 常用安全传送点",
|
||
presetsSubtitle: "一键传送玩家角色并写入存档",
|
||
customTeleportTitle: "🎯 自定义坐标传送",
|
||
customTeleportSubtitle: "自由输入 PlaneID、FloorID、EntryID 及坐标",
|
||
btnExecuteWarp: "🚀 执行传送",
|
||
warpBtn: "🚀 传送",
|
||
warpSuccess: "成功传送至 {label}(已保存至 Persistent)",
|
||
warpFailed: "传送失败: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent (存档)",
|
||
btnBeautify: "✨ 格式化 JSON",
|
||
btnDownload: "📥 下载备份",
|
||
btnUpload: "📤 上传文件",
|
||
btnSaveServer: "💾 保存至服务器",
|
||
jsonTip: "提示: 修改原始 JSON 后点击「保存至服务器」即时生效",
|
||
jsonStatusReady: "就绪",
|
||
jsonStatusOpening: "正在打开: {name}",
|
||
jsonSaveSuccess: "文件 {name} 已成功保存",
|
||
jsonInvalid: "无效的 JSON 格式",
|
||
apiSettingsTitle: "⚙️ API 网关连接设置",
|
||
apiSettingsSubtitle: "可根据你的 server.json 自由修改端口或局域网 IP",
|
||
lblApiGatewayUrl: "REST API 网关 URL",
|
||
lblPingInterval: "健康检查间隔 (秒)",
|
||
btnSaveSettings: "💾 保存设置",
|
||
btnResetDefault: "恢复默认值",
|
||
hostGuideTitle: "🌐 如何免费部署至 GitHub Pages (100% 免费)",
|
||
hostGuideSubtitle: "无服务器成本,一键托管至全球 CDN",
|
||
settingsSaved: "设置保存成功!",
|
||
settingsReset: "已恢复默认设置",
|
||
elements: {
|
||
Physical: "物理",
|
||
Fire: "火",
|
||
Ice: "冰",
|
||
Lightning: "雷",
|
||
Wind: "风",
|
||
Quantum: "量子",
|
||
Imaginary: "虚数",
|
||
Unknown: "未知"
|
||
},
|
||
paths: {
|
||
Destruction: "毁灭",
|
||
Hunt: "巡猎",
|
||
Erudition: "智识",
|
||
Harmony: "同谐",
|
||
Nihility: "虚无",
|
||
Preservation: "存护",
|
||
Abundance: "丰饶",
|
||
Remembrance: "记忆",
|
||
Unknown: "未知"
|
||
}
|
||
},
|
||
|
||
"zh-TW": {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "星穹鐵道 FreeSR 伴侶管理後台",
|
||
online: "線上 (Online)",
|
||
offline: "離線 (Offline)",
|
||
checking: "檢查中...",
|
||
refresh: "🔄 重新整理",
|
||
connectFailed: "連線失敗",
|
||
tabDashboard: "📊 儀表板",
|
||
tabAvatars: "👥 角色管理",
|
||
tabExrank: "⚡ 特殊命途 (Ex-Rank)",
|
||
tabTeleport: "🚀 場景傳送",
|
||
tabJson: "📝 JSON 數據",
|
||
tabSettings: "⚙️ 設定與指南",
|
||
statAvatars: "已擁有角色",
|
||
statLightcones: "光錐數量",
|
||
statRelics: "遺物數量",
|
||
serverStatusTitle: "📍 伺服器狀態與當前位置",
|
||
quickActionsTitle: "⚡ 快捷操作",
|
||
quickActionsSubtitle: "即時下發指令至 REST API 網關",
|
||
btnMaxAll: "⭐ 全角色滿級 (Lv.80) & 滿魂 (E6)",
|
||
btnWarpExpress: "🚂 立即傳送回星穹列車觀景車廂",
|
||
btnSyncPersistent: "💾 同步最新 Persistent 存檔",
|
||
currentLineupTitle: "🎮 當前編隊 (Lineup)",
|
||
slot: "位置",
|
||
slotEmpty: "(空位)",
|
||
coords: "角色座標 (X, Y, Z)",
|
||
searchPlaceholder: "🔍 搜尋角色名稱或 ID...",
|
||
filterAllRarity: "所有星級",
|
||
filter5Star: "5星 (SSR)",
|
||
filter4Star: "4星 (SR)",
|
||
btnReload: "🔄 重新載入",
|
||
eidolonLabel: "星魂等級 (E):",
|
||
confirmMaxAll: "確定要將所有角色設為 80 級並解鎖 6 魂嗎?",
|
||
maxAllSuccess: "全角色強化完成!",
|
||
avatarRankSuccess: "角色 {id} 已設置為 E{rank}",
|
||
exrankTitle: "⚡ Ex-Rank 特殊技能機制",
|
||
exrankSubtitle: "在 FreeSR 中啟用專屬 Ex-Rank 特權天賦(如景元免受控制中斷、丹恆·飲月、黃泉)",
|
||
btnEnableAll: "全部啟用 Ex-Rank",
|
||
btnDisableAll: "全部關閉 Ex-Rank",
|
||
exrankToggleSuccess: "{name}: Ex-Rank 已{status}",
|
||
exrankAllSuccess: "全角色 Ex-Rank 已{status}",
|
||
enabled: "啟用",
|
||
disabled: "關閉",
|
||
presetsTitle: "📍 常用安全傳送點",
|
||
presetsSubtitle: "一鍵傳送玩家角色並寫入存檔",
|
||
customTeleportTitle: "🎯 自訂座標傳送",
|
||
customTeleportSubtitle: "自由輸入 PlaneID、FloorID、EntryID 及座標",
|
||
btnExecuteWarp: "🚀 執行傳送",
|
||
warpBtn: "🚀 傳送",
|
||
warpSuccess: "成功傳送至 {label}(已儲存至 Persistent)",
|
||
warpFailed: "傳送失敗: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent (存檔)",
|
||
btnBeautify: "✨ 格式化 JSON",
|
||
btnDownload: "📥 下載備份",
|
||
btnUpload: "📤 上傳檔案",
|
||
btnSaveServer: "💾 儲存至伺服器",
|
||
jsonTip: "提示: 修改原始 JSON 後點擊「儲存至伺服器」即時生效",
|
||
jsonStatusReady: "就緒",
|
||
jsonStatusOpening: "正在打開: {name}",
|
||
jsonSaveSuccess: "檔案 {name} 已成功儲存",
|
||
jsonInvalid: "無效的 JSON 格式",
|
||
apiSettingsTitle: "⚙️ API 網關連線設定",
|
||
apiSettingsSubtitle: "可根據你的 server.json 自由修改通訊埠或區域網路 IP",
|
||
lblApiGatewayUrl: "REST API 網關 URL",
|
||
lblPingInterval: "健康檢查間隔 (秒)",
|
||
btnSaveSettings: "💾 儲存設定",
|
||
btnResetDefault: "恢復預設值",
|
||
hostGuideTitle: "🌐 如何免費部署至 GitHub Pages (100% 免費)",
|
||
hostGuideSubtitle: "無伺服器成本,一鍵託管至全球 CDN",
|
||
settingsSaved: "設定儲存成功!",
|
||
settingsReset: "已恢復預設設定",
|
||
elements: {
|
||
Physical: "物理",
|
||
Fire: "火",
|
||
Ice: "冰",
|
||
Lightning: "雷",
|
||
Wind: "風",
|
||
Quantum: "量子",
|
||
Imaginary: "虛數",
|
||
Unknown: "未知"
|
||
},
|
||
paths: {
|
||
Destruction: "毀滅",
|
||
Hunt: "巡獵",
|
||
Erudition: "智識",
|
||
Harmony: "同諧",
|
||
Nihility: "虛無",
|
||
Preservation: "存護",
|
||
Abundance: "豐饒",
|
||
Remembrance: "記憶",
|
||
Unknown: "未知"
|
||
}
|
||
},
|
||
|
||
ja: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "スターレイル FreeSR サーバーコントローラー",
|
||
online: "オンライン (Online)",
|
||
offline: "オフライン (Offline)",
|
||
checking: "確認中...",
|
||
refresh: "🔄 更新",
|
||
connectFailed: "接続に失敗しました",
|
||
tabDashboard: "📊 ダッシュボード",
|
||
tabAvatars: "👥 キャラクター",
|
||
tabExrank: "⚡ Ex-Rank (特殊能力)",
|
||
tabTeleport: "🚀 ワープ",
|
||
tabJson: "📝 JSON 管理",
|
||
tabSettings: "⚙️ 設定とガイド",
|
||
statAvatars: "所持キャラクター",
|
||
statLightcones: "光円錐",
|
||
statRelics: "遺物",
|
||
serverStatusTitle: "📍 サーバー状態・現在地",
|
||
quickActionsTitle: "⚡ クイックアクション",
|
||
quickActionsSubtitle: "REST APIゲートウェイへ直接コマンド送信",
|
||
btnMaxAll: "⭐ 全キャラLv.80・完凸 (E6)",
|
||
btnWarpExpress: "🚂 星穹列車・客室へ即時ワープ",
|
||
btnSyncPersistent: "💾 Persistent データを同期",
|
||
currentLineupTitle: "🎮 現在の編成",
|
||
slot: "枠",
|
||
slotEmpty: "(空き)",
|
||
coords: "座標 (X, Y, Z)",
|
||
searchPlaceholder: "🔍 キャラ名またはIDで検索...",
|
||
filterAllRarity: "全レアリティ",
|
||
filter5Star: "★5 (SSR)",
|
||
filter4Star: "★4 (SR)",
|
||
btnReload: "🔄 再読込",
|
||
eidolonLabel: "星魂 (凸数):",
|
||
confirmMaxAll: "全キャラクターをLv.80・完凸にしますか?",
|
||
maxAllSuccess: "全キャラクターを最大化しました!",
|
||
avatarRankSuccess: "キャラ {id} を E{rank} に設定しました",
|
||
exrankTitle: "⚡ Ex-Rank 特殊スキル設定",
|
||
exrankSubtitle: "FreeSR独自のEx-Rank効果を有効化(景元の行動制限無効、丹恒・飲月、黄泉など)",
|
||
btnEnableAll: "全Ex-Rank有効",
|
||
btnDisableAll: "全Ex-Rank無効",
|
||
exrankToggleSuccess: "{name}: Ex-Rank を{status}にしました",
|
||
exrankAllSuccess: "全キャラ Ex-Rank を{status}にしました",
|
||
enabled: "有効",
|
||
disabled: "無効",
|
||
presetsTitle: "📍 安全な定番ワープ地点",
|
||
presetsSubtitle: "クリックでプレイヤーのシーンを即時移動",
|
||
customTeleportTitle: "🎯 座標指定ワープ",
|
||
customTeleportSubtitle: "PlaneID、FloorID、EntryIDおよび座標を指定",
|
||
btnExecuteWarp: "🚀 ワープ実行",
|
||
warpBtn: "🚀 移動",
|
||
warpSuccess: "{label} へワープしました",
|
||
warpFailed: "ワープ失敗: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent (セーブ)",
|
||
btnBeautify: "✨ JSON 整形",
|
||
btnDownload: "📥 バックアップ保存",
|
||
btnUpload: "📤 ファイル読込",
|
||
btnSaveServer: "💾 サーバーへ保存",
|
||
jsonTip: "ヒント: JSONを編集して「サーバーへ保存」を押すと即時反映されます",
|
||
jsonStatusReady: "準備完了",
|
||
jsonStatusOpening: "展開中: {name}",
|
||
jsonSaveSuccess: "{name} を正常に保存しました",
|
||
jsonInvalid: "無効なJSONフォーマットです",
|
||
apiSettingsTitle: "⚙️ API ゲートウェイ接続設定",
|
||
apiSettingsSubtitle: "server.jsonのポートまたはIPに合わせて変更可能",
|
||
lblApiGatewayUrl: "REST API ゲートウェイ URL",
|
||
lblPingInterval: "更新間隔 (秒)",
|
||
btnSaveSettings: "💾 設定を保存",
|
||
btnResetDefault: "初期値に戻す",
|
||
hostGuideTitle: "🌐 GitHub Pages 無料ホスティング手順",
|
||
hostGuideSubtitle: "サーバー費用ゼロでWeb上に公開可能",
|
||
settingsSaved: "設定を保存しました!",
|
||
settingsReset: "デフォルト設定に戻しました",
|
||
elements: {
|
||
Physical: "物理",
|
||
Fire: "炎",
|
||
Ice: "氷",
|
||
Lightning: "雷",
|
||
Wind: "風",
|
||
Quantum: "量子",
|
||
Imaginary: "虚数",
|
||
Unknown: "不明"
|
||
},
|
||
paths: {
|
||
Destruction: "壊滅",
|
||
Hunt: "巡狩",
|
||
Erudition: "知恵",
|
||
Harmony: "調和",
|
||
Nihility: "虚無",
|
||
Preservation: "存護",
|
||
Abundance: "豊穣",
|
||
Remembrance: "記憶",
|
||
Unknown: "不明"
|
||
}
|
||
},
|
||
|
||
ko: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "스타레일 FreeSR 서버 컨트롤러",
|
||
online: "온라인 (Online)",
|
||
offline: "오프라인 (Offline)",
|
||
checking: "확인 중...",
|
||
refresh: "🔄 새로고침",
|
||
connectFailed: "연결 실패",
|
||
tabDashboard: "📊 대시보드",
|
||
tabAvatars: "👥 캐릭터",
|
||
tabExrank: "⚡ Ex-Rank (특수 스킬)",
|
||
tabTeleport: "🚀 워프 (이동)",
|
||
tabJson: "📝 JSON 관리",
|
||
tabSettings: "⚙️ 설정 및 안내",
|
||
statAvatars: "보유 캐릭터",
|
||
statLightcones: "광추",
|
||
statRelics: "유물",
|
||
serverStatusTitle: "📍 서버 상태 및 현재 위치",
|
||
quickActionsTitle: "⚡ 빠른 작업",
|
||
quickActionsSubtitle: "REST API 게이트웨이로 즉시 명령 전송",
|
||
btnMaxAll: "⭐ 전체 캐릭터 80레벨 & 6돌 (풀돌)",
|
||
btnWarpExpress: "🚂 은하열차 객실로 즉시 워프",
|
||
btnSyncPersistent: "💾 Persistent 세이브 동기화",
|
||
currentLineupTitle: "🎮 현재 파티",
|
||
slot: "슬롯",
|
||
slotEmpty: "(비어있음)",
|
||
coords: "좌표 (X, Y, Z)",
|
||
searchPlaceholder: "🔍 캐릭터 이름 또는 ID 검색...",
|
||
filterAllRarity: "모든 등급",
|
||
filter5Star: "5성 (SSR)",
|
||
filter4Star: "4성 (SR)",
|
||
btnReload: "🔄 다시 로드",
|
||
eidolonLabel: "성혼 (돌파):",
|
||
confirmMaxAll: "모든 캐릭터를 80레벨 및 6돌파로 설정하시겠습니까?",
|
||
maxAllSuccess: "모든 캐릭터 강화 완료!",
|
||
avatarRankSuccess: "캐릭터 {id} 성혼을 E{rank}로 설정했습니다",
|
||
exrankTitle: "⚡ Ex-Rank 특수 스킬 시스템",
|
||
exrankSubtitle: "FreeSR 전용 Ex-Rank 특권 활성화 (경원 제어 무시, 단항·음월, 아케론 등)",
|
||
btnEnableAll: "모든 Ex-Rank 활성화",
|
||
btnDisableAll: "모든 Ex-Rank 비활성화",
|
||
exrankToggleSuccess: "{name}: Ex-Rank {status}",
|
||
exrankAllSuccess: "모든 캐릭터 Ex-Rank {status}",
|
||
enabled: "활성화됨",
|
||
disabled: "비활성화됨",
|
||
presetsTitle: "📍 안전한 주요 워프 지점",
|
||
presetsSubtitle: "클릭 시 즉시 플레이어 위치 이동 및 저장",
|
||
customTeleportTitle: "🎯 커스텀 좌표 워프",
|
||
customTeleportSubtitle: "PlaneID, FloorID, EntryID 및 좌표 지정",
|
||
btnExecuteWarp: "🚀 워프 실행",
|
||
warpBtn: "🚀 이동",
|
||
warpSuccess: "{label} (으)로 이동 완료",
|
||
warpFailed: "워프 실패: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent (세이브)",
|
||
btnBeautify: "✨ JSON 정리",
|
||
btnDownload: "📥 백업 다운로드",
|
||
btnUpload: "📤 파일 불러오기",
|
||
btnSaveServer: "💾 서버에 저장",
|
||
jsonTip: "팁: JSON 편집 후 '서버에 저장'을 누르면 즉시 적용됩니다",
|
||
jsonStatusReady: "준비됨",
|
||
jsonStatusOpening: "열기: {name}",
|
||
jsonSaveSuccess: "{name} 저장 완료",
|
||
jsonInvalid: "올바르지 않은 JSON 형식입니다",
|
||
apiSettingsTitle: "⚙️ API 게이트웨이 연결 설정",
|
||
apiSettingsSubtitle: "server.json 설정에 맞추어 포트 및 IP 수정 가능",
|
||
lblApiGatewayUrl: "REST API 게이트웨이 URL",
|
||
lblPingInterval: "상태 확인 주기 (초)",
|
||
btnSaveSettings: "💾 설정 저장",
|
||
btnResetDefault: "기본값 초기화",
|
||
hostGuideTitle: "🌐 GitHub Pages 무료 배포 안내 (100% 무료)",
|
||
hostGuideSubtitle: "서버 비용 없이 GitHub에서 글로벌 호스팅 가능",
|
||
settingsSaved: "설정이 저장되었습니다!",
|
||
settingsReset: "기본값으로 복원되었습니다",
|
||
elements: {
|
||
Physical: "물리",
|
||
Fire: "화염",
|
||
Ice: "얼음",
|
||
Lightning: "번개",
|
||
Wind: "바람",
|
||
Quantum: "양자",
|
||
Imaginary: "허수",
|
||
Unknown: "알 수 없음"
|
||
},
|
||
paths: {
|
||
Destruction: "파멸",
|
||
Hunt: "수렵",
|
||
Erudition: "지식",
|
||
Harmony: "화합",
|
||
Nihility: "공허",
|
||
Preservation: "보존",
|
||
Abundance: "풍요",
|
||
Remembrance: "기억",
|
||
Unknown: "알 수 없음"
|
||
}
|
||
},
|
||
|
||
vi: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Bảng điều khiển Star Rail FreeSR",
|
||
online: "Trực tuyến (Online)",
|
||
offline: "Ngoại tuyến (Offline)",
|
||
checking: "Đang kiểm tra...",
|
||
refresh: "🔄 Làm mới",
|
||
connectFailed: "Kết nối thất bại",
|
||
tabDashboard: "📊 Tổng quan",
|
||
tabAvatars: "👥 Nhân vật",
|
||
tabExrank: "⚡ Kỹ năng Ex-Rank",
|
||
tabTeleport: "🚀 Dịch chuyển",
|
||
tabJson: "📝 Quản lý JSON",
|
||
tabSettings: "⚙️ Cài đặt & Hướng dẫn",
|
||
statAvatars: "Nhân vật sở hữu",
|
||
statLightcones: "Nón Ánh Sáng",
|
||
statRelics: "Di Vật",
|
||
serverStatusTitle: "📍 Trạng thái máy chủ & Vị trí",
|
||
quickActionsTitle: "⚡ Thao tác nhanh",
|
||
quickActionsSubtitle: "Gửi lệnh trực tiếp đến API Gateway",
|
||
btnMaxAll: "⭐ Tối đa cấp 80 & Tinh Hồn 6 (E6)",
|
||
btnWarpExpress: "🚂 Về Đội Tàu Astral",
|
||
btnSyncPersistent: "💾 Đồng bộ dữ liệu lưu trữ",
|
||
currentLineupTitle: "🎮 Đội hình hiện tại",
|
||
slot: "Vị trí",
|
||
slotEmpty: "(Trống)",
|
||
coords: "Tọa độ (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Tìm tên hoặc ID nhân vật...",
|
||
filterAllRarity: "Tất cả độ hiếm",
|
||
filter5Star: "5 Sao (SSR)",
|
||
filter4Star: "4 Sao (SR)",
|
||
btnReload: "🔄 Tải lại",
|
||
eidolonLabel: "TINH HỒN (E):",
|
||
confirmMaxAll: "Nâng cấp tất cả nhân vật lên cấp 80 và E6?",
|
||
maxAllSuccess: "Tối đa hóa tất cả nhân vật thành công!",
|
||
avatarRankSuccess: "Đã cập nhật nhân vật {id} thành E{rank}",
|
||
exrankTitle: "⚡ Hệ thống Ex-Rank",
|
||
exrankSubtitle: "Bật đặc quyền Ex-Rank trong FreeSR (Cảnh Nguyên kháng khống chế, Đan Hằng Ẩm Nguyệt, Acheron)",
|
||
btnEnableAll: "Bật tất cả Ex-Rank",
|
||
btnDisableAll: "Tắt tất cả Ex-Rank",
|
||
exrankToggleSuccess: "{name}: Đã {status} Ex-Rank",
|
||
exrankAllSuccess: "Tất cả nhân vật đã {status} Ex-Rank",
|
||
enabled: "bật",
|
||
disabled: "tắt",
|
||
presetsTitle: "📍 Điểm dịch chuyển an toàn",
|
||
presetsSubtitle: "Nhấp để dịch chuyển vị trí người chơi ngay lập tức",
|
||
customTeleportTitle: "🎯 Tự nhập tọa độ dịch chuyển",
|
||
customTeleportSubtitle: "Nhập PlaneID, FloorID, EntryID và tọa độ",
|
||
btnExecuteWarp: "🚀 Bắt đầu dịch chuyển",
|
||
warpBtn: "🚀 Đi",
|
||
warpSuccess: "Dịch chuyển đến {label} thành công",
|
||
warpFailed: "Dịch chuyển thất bại: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent",
|
||
btnBeautify: "✨ Làm đẹp JSON",
|
||
btnDownload: "📥 Tải bản sao lưu",
|
||
btnUpload: "📤 Tải lên tệp",
|
||
btnSaveServer: "💾 Lưu vào máy chủ",
|
||
jsonTip: "Mẹo: Chỉnh sửa JSON và nhấn 'Lưu vào máy chủ' để áp dụng ngay",
|
||
jsonStatusReady: "Sẵn sàng",
|
||
jsonStatusOpening: "Đang mở: {name}",
|
||
jsonSaveSuccess: "Lưu tệp {name} thành công",
|
||
jsonInvalid: "Định dạng JSON không hợp lệ",
|
||
apiSettingsTitle: "⚙️ Cấu hình kết nối API Gateway",
|
||
apiSettingsSubtitle: "Điều chỉnh cổng hoặc IP theo tệp server.json",
|
||
lblApiGatewayUrl: "URL REST API Gateway",
|
||
lblPingInterval: "Tần suất kiểm tra (giây)",
|
||
btnSaveSettings: "💾 Lưu cài đặt",
|
||
btnResetDefault: "Khôi phục mặc định",
|
||
hostGuideTitle: "🌐 Cách lưu trữ trên GitHub Pages (Miễn phí 100%)",
|
||
hostGuideSubtitle: "Lưu trữ bảng điều khiển miễn phí trọn đời trên GitHub",
|
||
settingsSaved: "Đã lưu cài đặt!",
|
||
settingsReset: "Đã khôi phục cài đặt mặc định",
|
||
elements: {
|
||
Physical: "Vật Lý",
|
||
Fire: "Hỏa",
|
||
Ice: "Băng",
|
||
Lightning: "Lôi",
|
||
Wind: "Phong",
|
||
Quantum: "Lượng Tử",
|
||
Imaginary: "Số Ảo",
|
||
Unknown: "Không xác định"
|
||
},
|
||
paths: {
|
||
Destruction: "Hủy Diệt",
|
||
Hunt: "Săn Bắn",
|
||
Erudition: "Tri Thức",
|
||
Harmony: "Hòa Hợp",
|
||
Nihility: "Hư Vô",
|
||
Preservation: "Bảo Hộ",
|
||
Abundance: "Trù Phú",
|
||
Remembrance: "Ký Ức",
|
||
Unknown: "Không xác định"
|
||
}
|
||
},
|
||
|
||
id: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Pengontrol Server Star Rail FreeSR",
|
||
online: "Online",
|
||
offline: "Offline",
|
||
checking: "Memeriksa...",
|
||
refresh: "🔄 Segarkan",
|
||
connectFailed: "Koneksi Gagal",
|
||
tabDashboard: "📊 Dasbor",
|
||
tabAvatars: "👥 Karakter",
|
||
tabExrank: "⚡ Ex-Rank Skill",
|
||
tabTeleport: "🚀 Teleportasi",
|
||
tabJson: "📝 Alat JSON",
|
||
tabSettings: "⚙️ Pengaturan & Panduan",
|
||
statAvatars: "Karakter Dimiliki",
|
||
statLightcones: "Lightcone",
|
||
statRelics: "Relik",
|
||
serverStatusTitle: "📍 Status Server & Posisi Saat Ini",
|
||
quickActionsTitle: "⚡ Tindakan Cepat",
|
||
quickActionsSubtitle: "Kirim perintah langsung ke REST API Gateway",
|
||
btnMaxAll: "⭐ Maksimalkan Semua (Lv. 80 & E6)",
|
||
btnWarpExpress: "🚂 Teleport ke Astral Express",
|
||
btnSyncPersistent: "💾 Sinkronkan Data Persistent",
|
||
currentLineupTitle: "🎮 Tim Saat Ini",
|
||
slot: "Slot",
|
||
slotEmpty: "(Kosong)",
|
||
coords: "Koordinat (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Cari nama atau ID...",
|
||
filterAllRarity: "Semua Kelangkaan",
|
||
filter5Star: "Bintang 5 (SSR)",
|
||
filter4Star: "Bintang 4 (SR)",
|
||
btnReload: "🔄 Muat Ulang",
|
||
eidolonLabel: "EIDOLON (E):",
|
||
confirmMaxAll: "Tingkatkan semua karakter ke Lv. 80 dan E6?",
|
||
maxAllSuccess: "Semua karakter berhasil dimaksimalkan!",
|
||
avatarRankSuccess: "Karakter {id} diperbarui ke E{rank}",
|
||
exrankTitle: "⚡ Sistem Ex-Rank",
|
||
exrankSubtitle: "Aktifkan bakat Ex-Rank di FreeSR (Jing Yuan kebal kontrol, Dan Heng IL, Acheron)",
|
||
btnEnableAll: "Aktifkan Semua Ex-Rank",
|
||
btnDisableAll: "Nonaktifkan Semua Ex-Rank",
|
||
exrankToggleSuccess: "{name}: Ex-Rank berhasil di{status}",
|
||
exrankAllSuccess: "Ex-Rank semua karakter berhasil di{status}",
|
||
enabled: "aktifkan",
|
||
disabled: "nonaktifkan",
|
||
presetsTitle: "📍 Titik Teleportasi Aman",
|
||
presetsSubtitle: "Klik untuk berpindah tempat secara instan",
|
||
customTeleportTitle: "🎯 Teleportasi Koordinat Kustom",
|
||
customTeleportSubtitle: "Tentukan PlaneID, FloorID, EntryID dan koordinat",
|
||
btnExecuteWarp: "🚀 Jalankan Teleport",
|
||
warpBtn: "🚀 Teleport",
|
||
warpSuccess: "Berhasil teleportasi ke {label}",
|
||
warpFailed: "Teleportasi gagal: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent",
|
||
btnBeautify: "✨ Rapikan JSON",
|
||
btnDownload: "📥 Unduh Cadangan",
|
||
btnUpload: "📤 Unggah File",
|
||
btnSaveServer: "💾 Simpan ke Server",
|
||
jsonTip: "Tips: Edit JSON dan klik 'Simpan ke Server' untuk menerapkan",
|
||
jsonStatusReady: "Siap",
|
||
jsonStatusOpening: "Membuka: {name}",
|
||
jsonSaveSuccess: "File {name} berhasil disimpan",
|
||
jsonInvalid: "Format JSON tidak valid",
|
||
apiSettingsTitle: "⚙️ Pengaturan Koneksi API Gateway",
|
||
apiSettingsSubtitle: "Sesuaikan port atau IP dengan server.json Anda",
|
||
lblApiGatewayUrl: "URL REST API Gateway",
|
||
lblPingInterval: "Interval Ping (detik)",
|
||
btnSaveSettings: "💾 Simpan Pengaturan",
|
||
btnResetDefault: "Kembalikan Default",
|
||
hostGuideTitle: "🌐 Cara Host di GitHub Pages (100% Gratis)",
|
||
hostGuideSubtitle: "Host web ini secara gratis di GitHub",
|
||
settingsSaved: "Pengaturan berhasil disimpan!",
|
||
settingsReset: "Pengaturan telah direset",
|
||
elements: {
|
||
Physical: "Fisik",
|
||
Fire: "Api",
|
||
Ice: "Es",
|
||
Lightning: "Petir",
|
||
Wind: "Angin",
|
||
Quantum: "Kuantum",
|
||
Imaginary: "Imajinasi",
|
||
Unknown: "Tidak Diketahui"
|
||
},
|
||
paths: {
|
||
Destruction: "Kehancuran",
|
||
Hunt: "Perburuan",
|
||
Erudition: "Kebijaksanaan",
|
||
Harmony: "Harmoni",
|
||
Nihility: "Ketiadaan",
|
||
Preservation: "Pelestarian",
|
||
Abundance: "Kelimpahan",
|
||
Remembrance: "Ingatan",
|
||
Unknown: "Tidak Diketahui"
|
||
}
|
||
},
|
||
|
||
es: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Panel de control Star Rail FreeSR",
|
||
online: "En línea (Online)",
|
||
offline: "Desconectado (Offline)",
|
||
checking: "Comprobando...",
|
||
refresh: "🔄 Actualizar",
|
||
connectFailed: "Error de conexión",
|
||
tabDashboard: "📊 Panel",
|
||
tabAvatars: "👥 Personajes",
|
||
tabExrank: "⚡ Ex-Rank",
|
||
tabTeleport: "🚀 Teletransporte",
|
||
tabJson: "📝 Herramientas JSON",
|
||
tabSettings: "⚙️ Ajustes y guía",
|
||
statAvatars: "Personajes obtenidos",
|
||
statLightcones: "Conos de luz",
|
||
statRelics: "Reliquias",
|
||
serverStatusTitle: "📍 Estado del servidor y posición",
|
||
quickActionsTitle: "⚡ Acciones rápidas",
|
||
quickActionsSubtitle: "Enviar comandos a la API Gateway",
|
||
btnMaxAll: "⭐ Maximizar todos (Niv. 80 y E6)",
|
||
btnWarpExpress: "🚂 Teletransportar al Expreso Astral",
|
||
btnSyncPersistent: "💾 Sincronizar datos persistentes",
|
||
currentLineupTitle: "🎮 Equipo actual",
|
||
slot: "Puesto",
|
||
slotEmpty: "(Vacío)",
|
||
coords: "Coordenadas (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Buscar nombre o ID...",
|
||
filterAllRarity: "Todas las rarezas",
|
||
filter5Star: "5 Estrellas (SSR)",
|
||
filter4Star: "4 Estrellas (SR)",
|
||
btnReload: "🔄 Recargar",
|
||
eidolonLabel: "EIDOLON (E):",
|
||
confirmMaxAll: "¿Subir todos los personajes a nivel 80 y E6?",
|
||
maxAllSuccess: "¡Todos los personajes maximizados con éxito!",
|
||
avatarRankSuccess: "Personaje {id} actualizado a E{rank}",
|
||
exrankTitle: "⚡ Sistema Ex-Rank",
|
||
exrankSubtitle: "Activar talentos especiales Ex-Rank en FreeSR (inmunidad CC de Jing Yuan, Dan Heng IL, Acheron)",
|
||
btnEnableAll: "Activar todos los Ex-Rank",
|
||
btnDisableAll: "Desactivar todos los Ex-Rank",
|
||
exrankToggleSuccess: "{name}: Ex-Rank {status}",
|
||
exrankAllSuccess: "Todos los Ex-Rank {status}",
|
||
enabled: "activado",
|
||
disabled: "desactivado",
|
||
presetsTitle: "📍 Puntos seguros predefinidos",
|
||
presetsSubtitle: "Haga clic para teletransportar al jugador al instante",
|
||
customTeleportTitle: "🎯 Coordenadas personalizadas",
|
||
customTeleportSubtitle: "Especifique PlaneID, FloorID, EntryID y coordenadas",
|
||
btnExecuteWarp: "🚀 Ejecutar teletransporte",
|
||
warpBtn: "🚀 Ir",
|
||
warpSuccess: "Teletransportado a {label} con éxito",
|
||
warpFailed: "Fallo al teletransportar: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent",
|
||
btnBeautify: "✨ Dar formato a JSON",
|
||
btnDownload: "📥 Descargar copia",
|
||
btnUpload: "📤 Cargar archivo",
|
||
btnSaveServer: "💾 Guardar en el servidor",
|
||
jsonTip: "Consejo: Edite el JSON y haga clic en 'Guardar en el servidor'",
|
||
jsonStatusReady: "Listo",
|
||
jsonStatusOpening: "Abriendo: {name}",
|
||
jsonSaveSuccess: "Archivo {name} guardado con éxito",
|
||
jsonInvalid: "Formato JSON no válido",
|
||
apiSettingsTitle: "⚙️ Conexión con la API Gateway",
|
||
apiSettingsSubtitle: "Ajuste el puerto o la IP según su server.json",
|
||
lblApiGatewayUrl: "URL de la API Gateway",
|
||
lblPingInterval: "Intervalo de comprobación (segundos)",
|
||
btnSaveSettings: "💾 Guardar ajustes",
|
||
btnResetDefault: "Restaurar por defecto",
|
||
hostGuideTitle: "🌐 Cómo hospedar en GitHub Pages (100% Gratis)",
|
||
hostGuideSubtitle: "Hospede este panel de control gratis en GitHub",
|
||
settingsSaved: "¡Ajustes guardados!",
|
||
settingsReset: "Ajustes restaurados",
|
||
elements: {
|
||
Physical: "Físico",
|
||
Fire: "Fuego",
|
||
Ice: "Hielo",
|
||
Lightning: "Rayo",
|
||
Wind: "Viento",
|
||
Quantum: "Cuántico",
|
||
Imaginary: "Imaginario",
|
||
Unknown: "Desconocido"
|
||
},
|
||
paths: {
|
||
Destruction: "Destrucción",
|
||
Hunt: "Cacería",
|
||
Erudition: "Erudición",
|
||
Harmony: "Armonía",
|
||
Nihility: "Nihilidad",
|
||
Preservation: "Conservación",
|
||
Abundance: "Abundancia",
|
||
Remembrance: "Reminiscencia",
|
||
Unknown: "Desconocido"
|
||
}
|
||
},
|
||
|
||
fr: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Contrôleur de serveur Star Rail FreeSR",
|
||
online: "En ligne (Online)",
|
||
offline: "Hors ligne (Offline)",
|
||
checking: "Vérification...",
|
||
refresh: "🔄 Actualiser",
|
||
connectFailed: "Échec de connexion",
|
||
tabDashboard: "📊 Tableau de bord",
|
||
tabAvatars: "👥 Personnages",
|
||
tabExrank: "⚡ Compétences Ex-Rank",
|
||
tabTeleport: "🚀 Téléportation",
|
||
tabJson: "📝 Outils JSON",
|
||
tabSettings: "⚙️ Paramètres & Guide",
|
||
statAvatars: "Personnages possédés",
|
||
statLightcones: "Cônes de lumière",
|
||
statReliques: "Reliques",
|
||
serverStatusTitle: "📍 Statut du serveur & Position",
|
||
quickActionsTitle: "⚡ Actions rapides",
|
||
quickActionsSubtitle: "Envoyer directement à l'API Gateway",
|
||
btnMaxAll: "⭐ Maximiser tous (Niv. 80 & E6)",
|
||
btnWarpExpress: "🚂 Téléporter vers l'Astral Express",
|
||
btnSyncPersistent: "💾 Synchroniser les données",
|
||
currentLineupTitle: "🎮 Équipe actuelle",
|
||
slot: "Emplacement",
|
||
slotEmpty: "(Vide)",
|
||
coords: "Coordonnées (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Rechercher par nom ou ID...",
|
||
filterAllRarity: "Toutes les raretés",
|
||
filter5Star: "5 Étoiles (SSR)",
|
||
filter4Star: "4 Étoiles (SR)",
|
||
btnReload: "🔄 Recharger",
|
||
eidolonLabel: "EIDOLON (E):",
|
||
confirmMaxAll: "Passer tous les personnages au niveau 80 et E6 ?",
|
||
maxAllSuccess: "Tous les personnages sont maximisés !",
|
||
avatarRankSuccess: "Personnage {id} mis à jour en E{rank}",
|
||
exrankTitle: "⚡ Système Ex-Rank",
|
||
exrankSubtitle: "Activer les atouts Ex-Rank dans FreeSR (immunité CC Jing Yuan, Dan Heng IL, Acheron)",
|
||
btnEnableAll: "Activer tous les Ex-Ranks",
|
||
btnDisableAll: "Désactiver tous les Ex-Ranks",
|
||
exrankToggleSuccess: "{name}: Ex-Rank {status}",
|
||
exrankAllSuccess: "Tous les Ex-Ranks {status}",
|
||
enabled: "activé",
|
||
disabled: "désactivé",
|
||
presetsTitle: "📍 Points de téléportation sûrs",
|
||
presetsSubtitle: "Cliquez pour déplacer le joueur instantanément",
|
||
customTeleportTitle: "🎯 Coordonnées personnalisées",
|
||
customTeleportSubtitle: "Définissez PlaneID, FloorID, EntryID et coordonnées",
|
||
btnExecuteWarp: "🚀 Lancer la téléportation",
|
||
warpBtn: "🚀 Téléporter",
|
||
warpSuccess: "Téléporté vers {label} avec succès",
|
||
warpFailed: "Échec de téléportation: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent",
|
||
btnBeautify: "✨ Mettre en forme JSON",
|
||
btnDownload: "📥 Télécharger sauvegarde",
|
||
btnUpload: "📤 Charger un fichier",
|
||
btnSaveServer: "💾 Enregistrer sur le serveur",
|
||
jsonTip: "Astuce : Modifiez le JSON et cliquez sur 'Enregistrer sur le serveur'",
|
||
jsonStatusReady: "Prêt",
|
||
jsonStatusOpening: "Ouverture : {name}",
|
||
jsonSaveSuccess: "Fichier {name} enregistré",
|
||
jsonInvalid: "Format JSON non valide",
|
||
apiSettingsTitle: "⚙️ Paramètres de connexion API Gateway",
|
||
apiSettingsSubtitle: "Ajustez le port ou l'IP selon votre server.json",
|
||
lblApiGatewayUrl: "URL de l'API Gateway",
|
||
lblPingInterval: "Intervalle de test (secondes)",
|
||
btnSaveSettings: "💾 Enregistrer les paramètres",
|
||
btnResetDefault: "Réinitialiser",
|
||
hostGuideTitle: "🌐 Héberger sur GitHub Pages (100% Gratuit)",
|
||
hostGuideSubtitle: "Hébergez ce panneau gratuitement sur GitHub",
|
||
settingsSaved: "Paramètres enregistrés !",
|
||
settingsReset: "Paramètres réinitialisés",
|
||
elements: {
|
||
Physical: "Physique",
|
||
Fire: "Feu",
|
||
Ice: "Glace",
|
||
Lightning: "Foudre",
|
||
Wind: "Vent",
|
||
Quantum: "Quantique",
|
||
Imaginary: "Imaginaire",
|
||
Unknown: "Inconnu"
|
||
},
|
||
paths: {
|
||
Destruction: "Destruction",
|
||
Hunt: "Chasse",
|
||
Erudition: "Érudition",
|
||
Harmony: "Harmonie",
|
||
Nihility: "Nihilité",
|
||
Preservation: "Préservation",
|
||
Abundance: "Abondance",
|
||
Remembrance: "Souvenir",
|
||
Unknown: "Inconnu"
|
||
}
|
||
},
|
||
|
||
de: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Star Rail FreeSR Server Controller",
|
||
online: "Online",
|
||
offline: "Offline",
|
||
checking: "Prüfe...",
|
||
refresh: "🔄 Aktualisieren",
|
||
connectFailed: "Verbindung fehlgeschlagen",
|
||
tabDashboard: "📊 Übersicht",
|
||
tabAvatars: "👥 Figuren",
|
||
tabExrank: "⚡ Ex-Rang Talente",
|
||
tabTeleport: "🚀 Teleportation",
|
||
tabJson: "📝 JSON-Tools",
|
||
tabSettings: "⚙️ Einstellungen",
|
||
statAvatars: "Figuren im Besitz",
|
||
statLightcones: "Lichtkegel",
|
||
statRelics: "Relikte",
|
||
serverStatusTitle: "📍 Serverstatus & Position",
|
||
quickActionsTitle: "⚡ Schnellaktionen",
|
||
quickActionsSubtitle: "Befehle direkt an das API-Gateway senden",
|
||
btnMaxAll: "⭐ Alle Figuren maximieren (Stufe 80 & E6)",
|
||
btnWarpExpress: "🚂 Zum Astralexpress teleportieren",
|
||
btnSyncPersistent: "💾 Speicherdaten synchronisieren",
|
||
currentLineupTitle: "🎮 Aktuelle Aufstellung",
|
||
slot: "Platz",
|
||
slotEmpty: "(Leer)",
|
||
coords: "Koordinaten (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Nach Name oder ID suchen...",
|
||
filterAllRarity: "Alle Seltenheiten",
|
||
filter5Star: "5 Sterne (SSR)",
|
||
filter4Star: "4 Sterne (SR)",
|
||
btnReload: "🔄 Neu laden",
|
||
eidolonLabel: "EIDOLON (E):",
|
||
confirmMaxAll: "Alle Figuren auf Stufe 80 und E6 aufwerten?",
|
||
maxAllSuccess: "Alle Figuren wurden maximiert!",
|
||
avatarRankSuccess: "Figur {id} auf E{rank} gesetzt",
|
||
exrankTitle: "⚡ Ex-Rang Talentsystem",
|
||
exrankSubtitle: "Aktivieren Sie Ex-Rang Talente in FreeSR (Jing Yuan CC-Immunität, Dan Heng IL, Acheron)",
|
||
btnEnableAll: "Alle Ex-Ränge aktivieren",
|
||
btnDisableAll: "Alle Ex-Ränge deaktivieren",
|
||
exrankToggleSuccess: "{name}: Ex-Rang {status}",
|
||
exrankAllSuccess: "Alle Ex-Ränge {status}",
|
||
enabled: "aktiviert",
|
||
disabled: "deaktiviert",
|
||
presetsTitle: "📍 Sichere Teleport-Ziele",
|
||
presetsSubtitle: "Klicken, um den Spieler sofort zu teleportieren",
|
||
customTeleportTitle: "🎯 Benutzerdefinierte Koordinaten",
|
||
customTeleportSubtitle: "Geben Sie PlaneID, FloorID, EntryID und Koordinaten ein",
|
||
btnExecuteWarp: "🚀 Teleport ausführen",
|
||
warpBtn: "🚀 Teleport",
|
||
warpSuccess: "Erfolgreich zu {label} teleportiert",
|
||
warpFailed: "Teleport fehlgeschlagen: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent",
|
||
btnBeautify: "✨ JSON formatieren",
|
||
btnDownload: "📥 Backup herunterladen",
|
||
btnUpload: "📤 Datei hochladen",
|
||
btnSaveServer: "💾 Auf Server speichern",
|
||
jsonTip: "Tipp: JSON bearbeiten und 'Auf Server speichern' klicken",
|
||
jsonStatusReady: "Bereit",
|
||
jsonStatusOpening: "Öffne: {name}",
|
||
jsonSaveSuccess: "Datei {name} erfolgreich gespeichert",
|
||
jsonInvalid: "Ungültiges JSON-Format",
|
||
apiSettingsTitle: "⚙️ API-Gateway Verbindungseinstellungen",
|
||
apiSettingsSubtitle: "Passen Sie Port oder IP gemäß Ihrer server.json an",
|
||
lblApiGatewayUrl: "REST API Gateway URL",
|
||
lblPingInterval: "Prüfintervall (Sekunden)",
|
||
btnSaveSettings: "💾 Einstellungen speichern",
|
||
btnResetDefault: "Auf Standard zurücksetzen",
|
||
hostGuideTitle: "🌐 Auf GitHub Pages kostenlos hosten (100% Kostenlos)",
|
||
hostGuideSubtitle: "Hosten Sie dieses Tool ohne Kosten direkt auf GitHub",
|
||
settingsSaved: "Einstellungen gespeichert!",
|
||
settingsReset: "Auf Standardeinstellungen zurückgesetzt",
|
||
elements: {
|
||
Physical: "Physisch",
|
||
Fire: "Feuer",
|
||
Ice: "Eis",
|
||
Lightning: "Blitz",
|
||
Wind: "Wind",
|
||
Quantum: "Quanten",
|
||
Imaginary: "Imaginär",
|
||
Unknown: "Unbekannt"
|
||
},
|
||
paths: {
|
||
Destruction: "Zerstörung",
|
||
Hunt: "Jagd",
|
||
Erudition: "Gelehrsamkeit",
|
||
Harmony: "Harmonie",
|
||
Nihility: "Nichtigkeit",
|
||
Preservation: "Bewahrung",
|
||
Abundance: "Überfluss",
|
||
Remembrance: "Erinnerung",
|
||
Unknown: "Unbekannt"
|
||
}
|
||
},
|
||
|
||
ru: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Панель управления Star Rail FreeSR",
|
||
online: "В сети (Online)",
|
||
offline: "Не в сети (Offline)",
|
||
checking: "Проверка...",
|
||
refresh: "🔄 Обновить",
|
||
connectFailed: "Ошибка подключения",
|
||
tabDashboard: "📊 Панель управления",
|
||
tabAvatars: "👥 Персонажи",
|
||
tabExrank: "⚡ Навыки Ex-Rank",
|
||
tabTeleport: "🚀 Телепортация",
|
||
tabJson: "📝 Управление JSON",
|
||
tabSettings: "⚙️ Настройки и гайд",
|
||
statAvatars: "Персонажи во владении",
|
||
statLightcones: "Световые конусы",
|
||
statRelics: "Реликвии",
|
||
serverStatusTitle: "📍 Статус сервера и координаты",
|
||
quickActionsTitle: "⚡ Быстрые действия",
|
||
quickActionsSubtitle: "Отправка команд напрямую в REST API Gateway",
|
||
btnMaxAll: "⭐ Максимизировать всех (Ур. 80 и E6)",
|
||
btnWarpExpress: "🚂 Телепорт в Звёздный экспресс",
|
||
btnSyncPersistent: "💾 Синхронизировать сохранение",
|
||
currentLineupTitle: "🎮 Текущий отряд",
|
||
slot: "Слот",
|
||
slotEmpty: "(Пусто)",
|
||
coords: "Координаты (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Поиск по имени или ID...",
|
||
filterAllRarity: "Все редкости",
|
||
filter5Star: "5 Звёзд (SSR)",
|
||
filter4Star: "4 Звезды (SR)",
|
||
btnReload: "🔄 Перезагрузить",
|
||
eidolonLabel: "ЭЙДОЛОН (E):",
|
||
confirmMaxAll: "Повысить всех персонажей до 80 ур. и E6?",
|
||
maxAllSuccess: "Все персонажи успешно улучшены!",
|
||
avatarRankSuccess: "Персонаж {id} обновлен до E{rank}",
|
||
exrankTitle: "⚡ Система навыков Ex-Rank",
|
||
exrankSubtitle: "Включение уникальных механик Ex-Rank в FreeSR (Цзин Юань без прерывания контроля, Дань Хэн Пожиратель Луны, Ахерон)",
|
||
btnEnableAll: "Включить все Ex-Rank",
|
||
btnDisableAll: "Отключить все Ex-Rank",
|
||
exrankToggleSuccess: "{name}: Ex-Rank {status}",
|
||
exrankAllSuccess: "Ex-Rank всех персонажей {status}",
|
||
enabled: "включен",
|
||
disabled: "отключен",
|
||
presetsTitle: "📍 Безопасные точки телепортации",
|
||
presetsSubtitle: "Нажмите для мгновенного перемещения персонажа",
|
||
customTeleportTitle: "🎯 Пользовательские координаты",
|
||
customTeleportSubtitle: "Укажите PlaneID, FloorID, EntryID и координаты",
|
||
btnExecuteWarp: "🚀 Выполнить телепортацию",
|
||
warpBtn: "🚀 Телепорт",
|
||
warpSuccess: "Телепортация в {label} успешна",
|
||
warpFailed: "Ошибка телепортации: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent",
|
||
btnBeautify: "✨ Форматировать JSON",
|
||
btnDownload: "📥 Скачать бэкап",
|
||
btnUpload: "📤 Загрузить файл",
|
||
btnSaveServer: "💾 Сохранить на сервер",
|
||
jsonTip: "Совет: Отредактируйте JSON и нажмите 'Сохранить на сервер'",
|
||
jsonStatusReady: "Готово",
|
||
jsonStatusOpening: "Открытие: {name}",
|
||
jsonSaveSuccess: "Файл {name} сохранен",
|
||
jsonInvalid: "Неверный формат JSON",
|
||
apiSettingsTitle: "⚙️ Настройка подключения API Gateway",
|
||
apiSettingsSubtitle: "Настройте порт или IP согласно вашему server.json",
|
||
lblApiGatewayUrl: "URL REST API Gateway",
|
||
lblPingInterval: "Интервал проверки (сек)",
|
||
btnSaveSettings: "💾 Сохранить настройки",
|
||
btnResetDefault: "Сбросить по умолчанию",
|
||
hostGuideTitle: "🌐 Бесплатный хостинг на GitHub Pages (100% Бесплатно)",
|
||
hostGuideSubtitle: "Разместите панель бесплатно на GitHub без затрат",
|
||
settingsSaved: "Настройки сохранены!",
|
||
settingsReset: "Настройки сброшены",
|
||
elements: {
|
||
Physical: "Физический",
|
||
Fire: "Огненный",
|
||
Ice: "Ледяной",
|
||
Lightning: "Электрический",
|
||
Wind: "Ветряной",
|
||
Quantum: "Квантовый",
|
||
Imaginary: "Мнимый",
|
||
Unknown: "Неизвестно"
|
||
},
|
||
paths: {
|
||
Destruction: "Разрушение",
|
||
Hunt: "Охота",
|
||
Erudition: "Эрудиция",
|
||
Harmony: "Гармония",
|
||
Nihility: "Небытие",
|
||
Preservation: "Сохранение",
|
||
Abundance: "Изобилие",
|
||
Remembrance: "Память",
|
||
Unknown: "Неизвестно"
|
||
}
|
||
},
|
||
|
||
pt: {
|
||
appName: "GaC-Srtool",
|
||
appSubtitle: "Controlador de Servidor Star Rail FreeSR",
|
||
online: "Online",
|
||
offline: "Offline",
|
||
checking: "Verificando...",
|
||
refresh: "🔄 Atualizar",
|
||
connectFailed: "Falha na conexão",
|
||
tabDashboard: "📊 Painel",
|
||
tabAvatars: "👥 Personagens",
|
||
tabExrank: "⚡ Habilidades Ex-Rank",
|
||
tabTeleport: "🚀 Teleporte",
|
||
tabJson: "📝 Ferramentas JSON",
|
||
tabSettings: "⚙️ Configurações & Guia",
|
||
statAvatars: "Personagens obtidos",
|
||
statLightcones: "Cones de Luz",
|
||
statRelics: "Relíquias",
|
||
serverStatusTitle: "📍 Status do servidor e posição atual",
|
||
quickActionsTitle: "⚡ Ações rápidas",
|
||
quickActionsSubtitle: "Enviar comandos diretamente ao API Gateway",
|
||
btnMaxAll: "⭐ Maximizar todos (Nív. 80 e E6)",
|
||
btnWarpExpress: "🚂 Teleportar para o Expresso Astral",
|
||
btnSyncPersistent: "💾 Sincronizar dados salvos",
|
||
currentLineupTitle: "🎮 Equipe atual",
|
||
slot: "Posição",
|
||
slotEmpty: "(Vazio)",
|
||
coords: "Coordenadas (X, Y, Z)",
|
||
searchPlaceholder: "🔍 Buscar nome ou ID...",
|
||
filterAllRarity: "Todas as raridades",
|
||
filter5Star: "5 Estrelas (SSR)",
|
||
filter4Star: "4 Estrelas (SR)",
|
||
btnReload: "🔄 Recarregar",
|
||
eidolonLabel: "EIDOLON (E):",
|
||
confirmMaxAll: "Evoluir todos os personagens para nível 80 e E6?",
|
||
maxAllSuccess: "Todos os personagens maximizados com sucesso!",
|
||
avatarRankSuccess: "Personagem {id} atualizado para E{rank}",
|
||
exrankTitle: "⚡ Sistema de Ex-Rank",
|
||
exrankSubtitle: "Ativar vantagens exclusivas Ex-Rank no FreeSR (imunidade a CC para Jing Yuan, Dan Heng IL, Acheron)",
|
||
btnEnableAll: "Ativar todos os Ex-Ranks",
|
||
btnDisableAll: "Desativar todos os Ex-Ranks",
|
||
exrankToggleSuccess: "{name}: Ex-Rank {status}",
|
||
exrankAllSuccess: "Todos os Ex-Ranks {status}",
|
||
enabled: "ativado",
|
||
disabled: "desativado",
|
||
presetsTitle: "📍 Pontos seguros pré-definidos",
|
||
presetsSubtitle: "Clique para teleportar o personagem instantaneamente",
|
||
customTeleportTitle: "🎯 Coordenadas personalizadas",
|
||
customTeleportSubtitle: "Especifique PlaneID, FloorID, EntryID e coordenadas",
|
||
btnExecuteWarp: "🚀 Executar teleporte",
|
||
warpBtn: "🚀 Teleportar",
|
||
warpSuccess: "Teleportado para {label} com sucesso",
|
||
warpFailed: "Falha no teleporte: {err}",
|
||
btnFreesr: "📄 freesr-data.json",
|
||
btnPersistent: "💾 persistent",
|
||
btnBeautify: "✨ Formatar JSON",
|
||
btnDownload: "📥 Baixar backup",
|
||
btnUpload: "📤 Carregar arquivo",
|
||
btnSaveServer: "💾 Salvar no servidor",
|
||
jsonTip: "Dica: Edite o JSON e clique em 'Salvar no servidor'",
|
||
jsonStatusReady: "Pronto",
|
||
jsonStatusOpening: "Abrindo: {name}",
|
||
jsonSaveSuccess: "Arquivo {name} salvo com sucesso",
|
||
jsonInvalid: "Formato JSON inválido",
|
||
apiSettingsTitle: "⚙️ Configurações de Conexão com API Gateway",
|
||
apiSettingsSubtitle: "Ajuste a porta ou o IP de acordo com seu server.json",
|
||
lblApiGatewayUrl: "URL do REST API Gateway",
|
||
lblPingInterval: "Intervalo de verificação (segundos)",
|
||
btnSaveSettings: "💾 Salvar configurações",
|
||
btnResetDefault: "Restaurar padrão",
|
||
hostGuideTitle: "🌐 Como hospedar no GitHub Pages (100% Grátis)",
|
||
hostGuideSubtitle: "Hospede esta ferramenta gratuitamente no GitHub",
|
||
settingsSaved: "Configurações salvas!",
|
||
settingsReset: "Configurações restauradas",
|
||
elements: {
|
||
Physical: "Físico",
|
||
Fire: "Fogo",
|
||
Ice: "Gelo",
|
||
Lightning: "Raio",
|
||
Wind: "Vento",
|
||
Quantum: "Quântico",
|
||
Imaginary: "Imaginário",
|
||
Unknown: "Desconhecido"
|
||
},
|
||
paths: {
|
||
Destruction: "Destruição",
|
||
Hunt: "Caça",
|
||
Erudition: "Erudição",
|
||
Harmony: "Harmonia",
|
||
Nihility: "Inexistência",
|
||
Preservation: "Preservação",
|
||
Abundance: "Abundância",
|
||
Remembrance: "Recordação",
|
||
Unknown: "Desconhecido"
|
||
}
|
||
}
|
||
};
|
||
|
||
let currentLang = localStorage.getItem('gac_srtool_lang') || 'th';
|
||
|
||
export function getCurrentLanguage() {
|
||
return currentLang;
|
||
}
|
||
|
||
export function setLanguage(langCode) {
|
||
if (TRANSLATIONS[langCode]) {
|
||
currentLang = langCode;
|
||
localStorage.setItem('gac_srtool_lang', langCode);
|
||
}
|
||
}
|
||
|
||
export function t(key, vars = {}) {
|
||
const dict = TRANSLATIONS[currentLang] || TRANSLATIONS.en || TRANSLATIONS.th;
|
||
let text = dict[key] || TRANSLATIONS.en[key] || TRANSLATIONS.th[key] || key;
|
||
|
||
// Substitute variables e.g. {id}, {rank}, {name}
|
||
for (const [vKey, vVal] of Object.entries(vars)) {
|
||
text = text.replace(new RegExp(`\\{${vKey}\\}`, 'g'), vVal);
|
||
}
|
||
return text;
|
||
}
|
||
|
||
export function translateElement(elem) {
|
||
const dict = TRANSLATIONS[currentLang] || TRANSLATIONS.en;
|
||
return dict.elements?.[elem] || TRANSLATIONS.en.elements?.[elem] || elem;
|
||
}
|
||
|
||
export function translatePath(path) {
|
||
const dict = TRANSLATIONS[currentLang] || TRANSLATIONS.en;
|
||
return dict.paths?.[path] || TRANSLATIONS.en.paths?.[path] || path;
|
||
}
|