Files
Gacy-Srtool/js/i18n.js
T

7091 lines
540 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Multi-language (i18n) definitions for GaC-srtool
// Covers all 13 official languages supported by Honkai: Star Rail
export const SUPPORTED_LANGUAGES = [
{
"code": "th",
"name": "ภาษาไทย",
"flag": "🇹🇭"
},
{
"code": "en",
"name": "English",
"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 = {
"th": {
"ahaGlobalDesc": "เปิดใช้งานฟังก์ชันพิเศษ Aeon ★ Aha ทั่วทั้งเซิร์ฟเวอร์",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ การ์ดแสดงผล",
"modalTabBuildGuide": "📖 แนวทางบิลด์",
"buildGuideTitle": "แนวทาง Build จากข้อมูลการใช้งานจริง",
"buildGuideSnapshot": "ชุดข้อมูล {version} · เก็บข้อมูล {date}",
"buildGuideDescription": "รายการและเปอร์เซ็นต์แสดงสัดส่วนการใช้ในตัวอย่าง Endgame ของ Prydwen ใช้ดูแนวทางประกอบ ไม่ใช่คะแนนจัดอันดับหรือคำแนะนำทางการ",
"buildGuideSampleCount": "ตัวอย่างผู้เล่นสูงสุด ({mode}): {count} คน",
"buildGuideSampleUnavailable": "ไม่มีจำนวนตัวอย่าง endgame สำหรับตัวละครนี้",
"buildGuideLowSample": "จำนวนตัวอย่างน้อย ผลอาจยังไม่สะท้อนแนวทางส่วนใหญ่",
"buildGuideOpenPrydwen": "เปิดคู่มือฉบับเต็ม",
"buildGuideLightCones": "กรวยแสงที่ใช้บ่อย",
"buildGuideRelicSets": "เซ็ตรีลิกส์ที่ใช้บ่อย",
"buildGuidePlanarSets": "เซ็ตมิติที่ใช้บ่อย",
"buildGuideMainStats": "ออฟหลักที่ใช้บ่อย",
"buildGuideBody": "ลำตัว",
"buildGuideFeet": "รองเท้า",
"buildGuideSphere": "ลูกแก้ว",
"buildGuideRope": "เชือก",
"buildGuideNoSample": "ไม่มีข้อมูลตัวอย่าง",
"buildGuideNoData": "ยังไม่มีข้อมูลสถิติ Build ของตัวละครนี้ใน snapshot ที่รวมไว้ เปิดคู่มือ Prydwen เพื่อดูแนวทางล่าสุด",
"buildGuideCredit": "ข้อมูลจาก Prydwen · รวบรวมและประมวลผลโดย {credit} ·",
"buildGuideOpenEquipment": "ไปหน้าจัดการรีลิกส์และอุปกรณ์",
"showcaseAutoRelics": "⚡ ติดตั้งรีลิกส์แนะนำ",
"showcaseCopy": "📋 คัดลอกข้อความ",
"showcaseExport": "🖼️ ส่งออกรูปภาพ",
"btnChangeLc": "เปลี่ยน Light Cone",
"lcPassiveTitle": "เอฟเฟกต์สกิลพิเศษ",
"toastE6S5Applied": "⭐ ปรับตัวละครเป็น E6S5 (Lv.80, สกิลเต็ม, S5) เรียบร้อย",
"toastE0S1Applied": "⚡ ปรับตัวละครเป็น E0S1 (Lv.80, สกิลเต็ม, S1) เรียบร้อย",
"toastShowcaseCopied": "📋 คัดลอกข้อมูล Build ไปยังคลิปบอร์ดแล้ว",
"toastRelicsEquipped": "⚡ ติดตั้งเซ็ตรีลิกส์แนะนำ (+15) ให้ {name} เรียบร้อยแล้ว",
"btnAddLc": "+ เพิ่ม LC",
"btnAddRelic": "+ เพิ่มรีลิกส์",
"btnAddSlot": "+ เพิ่ม Slot",
"lblCreativeMode": "โหมดสร้างสรรค์",
"badgeCreative": "โหมดสร้างสรรค์",
"toastSlotRemoved": "ลบ Slot {slot} เรียบร้อยแล้ว",
"quickActionsBadge": "คำสั่งด่วน",
"qaEnergy50Title": "พลังงานทีม 50%",
"qaEnergy50Desc": "ค่าเริ่มต้นมาตรฐานเมื่อเข้าสู้",
"qaEnergy100Title": "พลังงานทีม 100%",
"qaEnergy100Desc": "พร้อมกดท่าไม้ตายทันที",
"qaUnlockAllTitle": "ปลดล็อกตัวละครครบทุกตัว",
"qaUnlockAllDesc": "เพิ่มครบ 70+ ตัว E6 เต็มคลัง",
"qaAddLcsTitle": "เพิ่มกรวยแสง 5★ ทั้งหมด",
"qaAddLcsDesc": "กรวยแสงประจำตัว S5 เข้าคลัง",
"qaTeleportTitle": "วาร์ปกลับรถไฟ Astral Express",
"qaTeleportDesc": "กลับสู่ Parlor Car จุดปลอดภัย",
"qaClearLineupTitle": "ล้างตัวละครในทีม",
"qaClearLineupDesc": "เคลียร์ทุกช่องเพื่อจัดทีมใหม่",
"toastEnergy50": "ตั้งค่าพลังงานทีม 50% (มาตรฐานเกม) เรียบร้อยแล้ว",
"toastEnergy100": "ตั้งค่าพลังงานทีม 100% (อัลติพร้อมใช้) เรียบร้อยแล้ว",
"toastUnlockedAll": "ปลดล็อกตัวละครครบทุกตัว (70+ ตัว E6) เรียบร้อยแล้ว",
"toastAddedAllLcs": "เพิ่มกรวยแสง 5 ดาวประจำตัวละครทั้งหมดเข้าคลังแล้ว",
"toastTeleportedTrain": "วาร์ปตัวละครกลับสู่ Astral Express Parlor Car เรียบร้อยแล้ว",
"toastLineupCleared": "ล้างตัวละครในทีมเรียบร้อยแล้ว",
"modalAddLcTitle": "🗡️ เพิ่มกรวยแสงลง FreeSR",
"modalAddRelicTitle": "🛡️ เพิ่มรีลิกส์ลง FreeSR",
"lblSelectLc": "เลือกกรวยแสง",
"lblSelectRelicSet": "เลือกเซ็ตรีลิกส์",
"lblRelicSlot": "ชิ้นส่วน (Slot)",
"lblMainAffix": "สเตตัสหลัก (Main Affix)",
"lblEquipAvatar": "สวมใส่ให้ตัวละคร",
"unassigned": "-- ยังไม่สวมใส่ (เก็บในคลัง) --",
"btnAddLcSubmit": "💾 เพิ่มลง FreeSR",
"btnAddRelicSubmit": "💾 เพิ่มลง FreeSR",
"toastLcAdded": "เพิ่มกรวยแสงลงใน FreeSR สำเร็จแล้ว",
"toastRelicAdded": "เพิ่มรีลิกส์ลงใน FreeSR สำเร็จแล้ว",
"deleteItem": "ลบ",
"toastItemDeleted": "ลบไอเทมสำเร็จแล้ว",
"appName": "GaC-Srtool",
"appSubtitle": "Star Rail FreeSR & Server Controller",
"online": "เชื่อมต่อแล้ว",
"offline": "ออฟไลน์",
"checking": "กำลังตรวจสอบ...",
"refresh": "🔄 รีเฟรช",
"connectFailed": "เชื่อมต่อไม่สำเร็จ",
"tabDashboard": "📊 แดชบอร์ด & จัดทีม",
"tabAvatars": "👥 ตัวละคร",
"tabEquipment": "🗡️ กรวยแสง & รีลิกส์",
"tabInventory": "🎒 ไอเทมในกระเป๋า",
"inventoryTitle": "🎒 จัดการจำนวนไอเทม",
"inventoryDescription": "ค้นหาด้วย Item ID แล้วแก้จำนวนหลายรายการก่อนบันทึกครั้งเดียว รายการมาจาก catalog ของ Client ที่เซิร์ฟเวอร์ใช้ ช่องว่างหมายถึงใช้ค่าเริ่มต้นของเซิร์ฟเวอร์",
"inventorySearchPlaceholder": "ค้นหา Item ID...",
"inventoryDiscard": "ทิ้งการแก้ไข",
"inventorySave": "บันทึกการเปลี่ยนแปลง",
"inventoryLoadHint": "กำลังโหลดรายการจากเซิร์ฟเวอร์...",
"inventoryItemTotal": "{count} รายการ",
"inventoryPending": "รอบันทึก {count}",
"inventoryPage": "หน้า {page}/{pages} • {count} รายการ",
"inventoryNoMatch": "ไม่พบ Item ID ที่ค้นหา",
"inventoryCountFor": "จำนวนไอเทม {id}",
"inventoryDefaultPlaceholder": "ค่าเริ่มต้นเซิร์ฟเวอร์",
"inventoryGaCOnly": "ตัวจัดการนี้ใช้ได้กับ GaC-hkrpg-go เท่านั้น",
"inventoryLoadSuccess": "โหลด catalog แล้ว {count} รายการ • ค่าเริ่มต้นจะใช้จำนวนของเซิร์ฟเวอร์",
"inventoryLoadFailed": "โหลด catalog ไม่สำเร็จ",
"inventorySaving": "กำลังบันทึก {count} รายการ...",
"inventorySaveSuccess": "บันทึก {count} รายการแล้ว • เข้าเกมใหม่เพื่อโหลดค่าเข้ากระเป๋า",
"inventorySaveFailed": "บันทึกไม่สำเร็จ",
"inventoryItemId": "Item ID",
"inventoryDefaultCount": "จำนวนในกระเป๋า",
"inventoryPrevious": "ก่อนหน้า",
"inventoryNext": "ถัดไป",
"tabPersistent": "💾 จัดการเซฟ GaC",
"tabExrank": "⚡ สกิลพิเศษ Ex-Rank",
"tabJson": "📝 จัดการไฟล์ JSON",
"tabSettings": "⚙️ ตั้งค่า",
"statAvatars": "ตัวละครที่ครอบครอง",
"statLightcones": "กรวยแสง",
"statRelics": "รีลิกส์",
"serverStatusTitle": "📍 สถานะเซิร์ฟเวอร์ & พิกัดปัจจุบัน",
"lblServerModeActive": "โหมดเซิร์ฟเวอร์ที่ใช้งาน",
"lblApiEndpoint": "API Gateway Endpoint",
"lblPlaneId": "Plane ID",
"lblFloorId": "Floor ID",
"coords": "พิกัดตัวละคร XYZ",
"quickActionsTitle": "⚡ ดำเนินการด่วน",
"quickActionsSubtitle": "ส่งคำสั่งไปยังเซิร์ฟเวอร์ทันที",
"btnMaxAll": "⭐ ปรับเลเวล 80 & ปลด E6 ตัวละครทั้งหมด",
"btnSyncPersistent": "💾 ซิงค์ข้อมูล Persistent ล่าสุด",
"currentLineupTitle": "🎮 ทีมปัจจุบัน",
"slot": "ตำแหน่งที่",
"slotEmpty": "ว่าง (คลิกเพื่อเพิ่ม)",
"slotTooltip": "คลิกเพื่อเลือกตัวละครลงตำแหน่งนี้",
"removeFromTeam": "นำออกจากทีม",
"searchPlaceholder": "🔍 ค้นหาชื่อหรือ ID ตัวละคร...",
"filterAllRarity": "ทุกระดับดาว",
"filter5Star": "5 ดาว",
"filter4Star": "4 ดาว",
"filterAllElements": "ทุกธาตุ",
"filterAllPaths": "ทุกประเภท",
"btnReload": "🔄 รีโหลด",
"avatarsLoading": "กำลังดึงข้อมูลตัวละคร...",
"noAvatarsFound": "ไม่พบตัวละครที่ตรงกับเงื่อนไข",
"eidolonLabel": "Eidolon:",
"confirmMaxAll": "ยืนยันปรับตัวละครทั้งหมดให้เป็นเลเวล 80 และปลด E6 หรือไม่?",
"maxAllSuccess": "ปรับเต็มทุกตัวละครสำเร็จแล้ว!",
"avatarRankSuccess": "ปรับตัวละคร {id} เป็น E{rank} สำเร็จ",
"eqLcTitle": "🗡️ กรวยแสงในคลัง",
"eqLcSubtitle": "รายการกรวยแสงทั้งหมดจาก freesr-data.json",
"eqLcLoading": "กำลังโหลดข้อมูลกรวยแสง...",
"eqRelicTitle": "🛡️ รีลิกส์ในคลัง",
"eqRelicSubtitle": "รายการรีลิกส์ทั้งหมดจาก freesr-data.json",
"eqRelicLoading": "กำลังโหลดข้อมูลรีลิกส์...",
"itemCount": "{n} ชิ้น",
"notEquipped": "ไม่ได้สวมใส่",
"equippedBy": "สวมใส่โดย",
"noLcData": "ยังไม่มีข้อมูลกรวยแสง",
"noRelicData": "ยังไม่มีข้อมูลรีลิกส์",
"persistentTitle": "💾 จัดการไฟล์เซฟ GaC",
"persistentBadge": "เซิร์ฟเวอร์ของเราเอง",
"persistentSubtitle": "ไฟล์ persistent เก็บการตั้งค่าสถานะผู้เล่นเฉพาะของเซิร์ฟเวอร์ GaC เช่น เพศ/ธาตุตัวเอก, สเตตัส March 7th, สวิตช์ฟังก์ชัน Global ต่างๆ",
"persistentTbM7Title": "👤 ผู้บุกเบิก & March 7th",
"lblTbGenderElement": "เพศ & ธาตุของตัวเอก",
"lblM7Path": "สายของ March 7th",
"btnSaveCharSettings": "💾 บันทึกการตั้งค่าตัวละคร",
"persistentGlobalTitle": "⚙️ สวิตช์ระบบพิเศษของ GaC",
"swGlobalDesc": "เปิดใช้งานฟังก์ชันพิเศษ SW ทั่วทั้งเซิร์ฟเวอร์",
"castoriceGlobalDesc": "เปิดใช้งานฟังก์ชันพิเศษ Castorice ทั่วทั้งเซิร์ฟเวอร์",
"btnSaveGlobalSwitch": "💾 บันทึกสวิตช์ Global",
"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": "ปิดใช้งาน",
"btnFreesr": "📄 freesr-data.json",
"btnPersistent": "💾 ไฟล์เซฟ persistent",
"btnDataGame": "🎮 data-in-game.json",
"btnBeautify": "✨ จัดรูปแบบ JSON",
"btnDownload": "📥 ดาวน์โหลดสำรอง",
"btnUpload": "📤 อัปโหลดไฟล์",
"btnSaveServer": "💾 บันทึกไปยังเซิร์ฟเวอร์",
"jsonTip": "คำแนะนำ: สามารถแก้ไขค่าดิบแล้วกด 'บันทึกไปยังเซิร์ฟเวอร์' ได้ทันที",
"jsonStatusReady": "พร้อมใช้งาน",
"jsonStatusOpening": "กำลังเปิด: {name}",
"jsonSaveSuccess": "บันทึกไฟล์ {name} เรียบร้อยแล้ว",
"jsonInvalid": "รูปแบบ JSON ไม่ถูกต้อง",
"settingsConnTitle": "⚙️ ตั้งค่าการเชื่อมต่อ API Gateway",
"settingsConnSubtitle": "กำหนด Endpoint และโหมดของเซิร์ฟเวอร์ที่ต้องการสั่งการ",
"lblServerMode": "โหมดเซิร์ฟเวอร์",
"lblApiGatewayUrl": "REST API Gateway URL",
"btnTestPing": "⚡ ทดสอบการเชื่อมต่อ",
"btnSaveSettings": "💾 บันทึกการตั้งค่า",
"btnResetDefault": "คืนค่าเริ่มต้น",
"settingsBattleTitle": "🎮 ค่าเริ่มต้นการต่อสู้ & FreeSR",
"settingsBattleSubtitle": "ปรับแต่งพฤติกรรมเริ่มต้นของระบบในเกมและการจัดทีม",
"lblDefaultEnergy": "พลังงานเริ่มต้นของทีม (Battle Starting Energy)",
"lblAutoSync": "ซิงค์ไปยังเซิร์ฟเวอร์อัตโนมัติ (Auto-Sync)",
"descAutoSync": "ส่งการเปลี่ยนแปลงไปยังเซิร์ฟเวอร์ทันทีเมื่อแก้ไขตัวละครหรือไอเทม",
"lblDefaultCreative": "เปิดโหมดสร้างสรรค์เมื่อเริ่มต้น (Creative Mode)",
"descDefaultCreative": "อนุญาตให้ใส่ตัวละครซ้ำหรือจัดทีมได้มากกว่า 4 ช่องตลอดเวลา",
"settingsShowcaseTitle": "🖼️ การแสดงผลการ์ด Showcase",
"settingsShowcaseSubtitle": "ปรับแต่งความสวยงามและรายละเอียดในหน้าการ์ดแสดงผล Build",
"lblShowRolls": "แสดงจำนวน Roll ของซับสเตตัสรีลิกส์",
"descShowRolls": "แสดงแท็กจำนวนครั้งที่สุ่มลงสเตตัสย่อย (Sub-stat Roll Counts)",
"lblElementAura": "เอฟเฟกต์แสงเรืองตามธาตุ (Element Aura Glow)",
"descElementAura": "เปลี่ยนสีพื้นหลังและการเรืองแสงของการ์ดตามธาตุของตัวละครนั้นๆ",
"settingsCacheTitle": "🧹 จัดการข้อมูลแคช & รีเซ็ตระบบ",
"settingsCacheSubtitle": "ล้างข้อมูลชั่วคราวในเบราว์เซอร์หรือคืนค่าเครื่องมือเป็นค่าเริ่มต้น",
"lblCacheSize": "สถานะหน่วยความจำ LocalStorage:",
"btnClearCache": "🧹 ล้างแคชเบราว์เซอร์",
"btnFactoryReset": "🔄 คืนค่าเริ่มต้นทั้งหมด",
"toastPingSuccess": "⚡ เชื่อมต่อสำเร็จ! Latency: {ms} ms",
"toastPingFailed": "❌ ไม่สามารถเชื่อมต่อกับ Gateway ได้ กรุณาตรวจสอบเซิร์ฟเวอร์",
"toastCacheCleared": "🧹 ล้างข้อมูลแคชเบราว์เซอร์เรียบร้อยแล้ว",
"apiSettingsTitle": "⚙️ ตั้งค่าการเชื่อมต่อ API Gateway",
"apiSettingsSubtitle": "ปรับเปลี่ยนพอร์ตหรือ IP ได้ตามไฟล์ server.json ของคุณ",
"modalTitleCharEdit": "ปรับแต่งตัวละคร",
"modalBtnMaxAllChar": "⭐ ปรับเต็มทั้งหมด",
"modalTabSkills": "⚡ สกิลและร่องรอย",
"modalTabStatus": "⚙️ เลเวล & Eidolon",
"modalTabLightcone": "🗡️ กรวยแสง",
"modalSkillCombatTitle": "ระดับสกิลต่อสู้",
"modalBtnMaxSkills": "⭐ ปรับสกิลเต็ม 10/10",
"modalSkillBasic": "โจมตีปกติ",
"modalSkillSkill": "สกิลต่อสู้",
"modalSkillUltra": "ท่าไม้ตาย",
"modalSkillTalent": "พรสวรรค์",
"modalTracesTitle": "ร่องรอยและเทคนิค",
"modalTraceTechnique": "⚡ เทคนิค — เปิดใช้งานก่อนเริ่มการต่อสู้",
"traceA2": "🌟 ร่องรอยพิเศษ A2",
"traceA4": "🌟 ร่องรอยพิเศษ A4",
"traceA6": "🌟 ร่องรอยพิเศษ A6",
"traceStatNodes": "💎 โหนดสเตตัสเสริมทั้งหมด (10 โหนด)",
"lblLevelRange": "ระดับเลเวล (1-80)",
"lblPromotionRange": "การเลื่อนขั้น (0-6)",
"lblEidolonLevel": "ระดับ Eidolon",
"btnResetE0": "รีเซ็ต E0",
"btnMaxE6": "⭐ ปลดเต็ม E6",
"modalEnergyTitle": "พลังงานท่าไม้ตาย",
"modalEnergy50": "ตั้งค่า 50%",
"modalEnergy100": "เต็ม 100%",
"modalLcTitle": "กรวยแสงที่สวมใส่",
"modalBtnMaxLc": "⭐ ปรับกรวยแสงเต็มขั้น",
"lblLcId": "ID กรวยแสง",
"modalLcIdPlaceholder": "เช่น 21002 หรือ 24001",
"lblLcLevel": "เลเวลกรวยแสง (1-80)",
"lblLcRank": "ระดับการขัดเกลา",
"modalBtnClose": "✕ ปิด",
"modalBtnSave": "💾 บันทึกตัวละคร",
"pickerTitle": "เลือกตัวละครเข้าทีม",
"pickerSearchPlaceholder": "🔍 ค้นหาตัวละครเพื่อลงทีม...",
"apiModalTitle": "⚙️ ตั้งค่าการเชื่อมต่อ API Server",
"btnCancel": "ยกเลิก",
"btnSaveTest": "บันทึก & ทดสอบ",
"toastSlotUpdated": "อัปเดตทีม Slot {slot} เป็น: {name}",
"toastCharMaxed": "⭐ ปรับ {name} เป็น Lv. 80 E6 เรียบร้อย",
"toastCharSaved": "บันทึกตัวละคร {name} เรียบร้อย",
"toastAllSkillsMaxed": "⭐ ปรับสกิลและร่องรอยเต็มทั้งหมดแล้ว",
"toastServerSwitched": "สลับโหมดเซิร์ฟเวอร์เป็น: {mode}",
"tbOptions": {
"MalePhysical": "ผู้บุกเบิกชาย - กายภาพ",
"FemalePhysical": "ผู้บุกเบิกหญิง - กายภาพ",
"MalePreservation": "ผู้บุกเบิกชาย - ไฟ",
"FemalePreservation": "ผู้บุกเบิกหญิง - ไฟ",
"MaleHarmony": "ผู้บุกเบิกชาย - ประสาน",
"FemaleHarmony": "ผู้บุกเบิกหญิง - ประสาน",
"MaleRemembrance": "ผู้บุกเบิกชาย - ความทรงจำ",
"FemaleRemembrance": "ผู้บุกเบิกหญิง - ความทรงจำ"
},
"marchOptions": {
"MarchHunt": "March 7th - ล่าสังหาร",
"MarchPreservation": "March 7th - อนุรักษ์"
},
"elements": {
"Physical": "กายภาพ",
"Fire": "ไฟ",
"Ice": "น้ำแข็ง",
"Lightning": "สายฟ้า",
"Wind": "ลม",
"Quantum": "ควอนตัม",
"Imaginary": "จินตภาพ",
"Unknown": "ไม่ระบุ"
},
"paths": {
"Destruction": "ทำลายล้าง",
"Hunt": "ล่าสังหาร",
"Erudition": "ปัญญา",
"Harmony": "ประสาน",
"Nihility": "ลบล้าง",
"Preservation": "อนุรักษ์",
"Abundance": "เฟื่องฟู",
"Remembrance": "ความทรงจำ",
"Unknown": "ไม่ระบุ",
"Elation": "ปีติ"
},
"settingsSaved": "บันทึกการตั้งค่าสำเร็จ!",
"settingsReset": "คืนค่าเริ่มต้นเรียบร้อย",
"qaLineupE0S1Title": "ปรับทีมเป็น E0S1",
"qaLineupE0S1Desc": "ตัวละครในทีมเป็น E0 พร้อม LC S1",
"qaLineupRelicsTitle": "ใส่อุปกรณ์ทีมครบชุด",
"qaLineupRelicsDesc": "ใส่รีลิกส์ +15 ครบ 4 คนในทีม",
"lblPersistenceInfo": "ระบบจัดการไฟล์เซฟและข้อมูลฝั่งเซิร์ฟเวอร์",
"modalTabOverview": "ภาพรวม",
"modalTabRelics": "รีลิกส์ & อุปกรณ์",
"attrBasic": "◆ คุณสมบัติพื้นฐาน",
"attrAdvanced": "◆ คุณสมบัติขั้นสูง",
"attrElemental": "◆ คุณสมบัติประเภท",
"statMaxHp": "HP สูงสุด",
"statAtk": "พลังโจมตี",
"statDef": "พลังป้องกัน",
"statSpd": "ความเร็ว",
"statCritRate": "อัตราคริ",
"statCritDmg": "ดาเมจคริ",
"statBreakEffect": "ทำลายจุดอ่อน",
"statHealBoost": "เพิ่มการรักษา",
"statMaxEnergy": "พลังงานสูงสุด",
"statEnergyRegen": "อัตราการฟื้นฟูพลังงาน",
"statEhr": "อัตราสร้างสถานะ",
"statRes": "ต้านทานสถานะ",
"statDmgBoost": "เพิ่มความเสียหาย {element}",
"relicPickerTitle": "🛡️ จัดการรีลิกส์: {slot}",
"tabQuickGen": "⚡ สวมใส่ / สร้างชิ้นแนะนำ",
"tabFromInventory": "📦 เลือกจากคลัง",
"btnEquipInstant": "⚡ สวมใส่ชิ้นนี้ทันที (+15 5★ ออฟเทพ)",
"btnUnequip": "❌ ถอดชิ้นนี้ออก",
"currentEquipped": "ชิ้นที่กำลังสวมใส่อยู่ในปัจจุบัน",
"noRelicEquipped": "ยังไม่ได้สวมใส่รีลิกส์ในช่องนี้",
"chooseMainStat": "เลือกสเตตัสหลัก (Main Stat):",
"chooseSet": "เลือกเซ็ตที่ต้องการ:",
"recommendedBadge": "แนะนำ",
"overviewStatsTitle": "⚔️ ค่าพลังการต่อสู้ (Combat Stats)",
"overviewStatsNote": "รวมโบนัสกรวยแสงและรีลิกส์",
"overviewEquippedLc": "🗡️ กรวยแสงที่สวมใส่",
"overviewEquippedRelics": "🛡️ รีลิกส์และเซ็ต",
"modalRelicsTitle": "🛡️ สวมใส่รีลิกส์ (Relics 6 ชิ้น)",
"modalRelicsSubtitle": "คลิกแต่ละช่องเพื่อเลือกเปลี่ยน หรือสวมใส่เซ็ตแนะนำ",
"btnAutoEquipRelics": "⚡ สวมใส่เซ็ตแนะนำครบชุด",
"btnClearAllRelics": "🧹 ถอดทั้งหมด",
"activeSetEffects": "✨ เอฟเฟกต์เซ็ตที่เปิดใช้งาน",
"modalColLevel": "เลเวล",
"lblPromotion": "ขั้นเลื่อนขั้น",
"slotPickerTitle": "🛡️ เลือกสวมใส่รีลิกส์",
"quickGenRecTitle": "⚡ สร้างชิ้นแนะนำสำหรับช่องนี้",
"quickGenRecDesc": "สร้างรีลิกส์ 5★ +15 ตรงเซ็ตและสเตตัสหลักที่ดีที่สุด",
"btnGenAndEquip": "สร้าง & สวมใส่",
"selectFromInventory": "เลือกจากคลังเก็บของ (ตรงช่อง)",
"btnAllE0S1": "⚡ ปรับ E0S1 ทุกตัว",
"qaGachabaseTitle": "ดึงข้อมูล Gachabase",
"qaGachabaseDesc": "นำเข้าตัวละคร/กรวยแสง เบต้าหรือใหม่ล่าสุด",
"miniBattleTitle": "สรุปการต่อสู้ล่าสุด & ดาเมจทีม",
"miniBattleSubtitle": "สถิติดาเมจ, DPS และสัดส่วนการทำดาเมจของตัวละครในทีมจากการต่อสู้จริงล่าสุด",
"miniTotalDmg": "ดาเมจรวม",
"miniTeamDps": "DPS รวม",
"miniBreakDmg": "Break / Super Break",
"miniBattleTurns": "เทิร์น / เวลา",
"miniBreakdownTitle": "สัดส่วนดาเมจสมาชิกในทีม (Damage Share)",
"miniViewFullAnalyst": "Damage Analyst →",
"miniNoBattleTitle": "ยังไม่มีข้อมูลการต่อสู้ล่าสุด",
"miniNoBattleDesc": "เข้าสู้ในเกม (Calyx / Shadow / Boss) เพื่อเริ่มจับสถิติดาเมจแบบเรียลไทม์",
"miniBtnFetch": "🔄 ดึงข้อมูลสด",
"miniBtnDemo": "⚡ โหลดข้อมูลตัวอย่าง",
"synergyTitle": "วิเคราะห์ Synergy ทีม & จุดอ่อน",
"synergySubtitle": "วิเคราะห์การครอบคลุม Weakness Break, ความสมดุลของบทบาท และความพร้อมของทีม",
"synergyBreakCoverage": "🎯 การทำลายจุดอ่อน (Weakness Break Coverage)",
"synergyRoleBalance": "🛡️ การกระจายบทบาทในทีม (Team Composition & Roles)",
"synergyEquipmentTitle": "🛡️ ความพร้อมของอุปกรณ์และเลเวลเฉลี่ย",
"synergyAvgLevel": "เลเวลเฉลี่ย",
"synergyAvgEidolon": "Eidolon เฉลี่ย",
"synergyLcEquipped": "สวมกรวยแสง",
"synergyRelicFull": "รีลิกส์ครบชุด",
"synergyCoverageBadge": "ครอบคลุม {count}/7 ธาตุ",
"synergyNoInTeam": "ไม่มีในทีม",
"roleDps": "🗡️ DPS",
"roleSupport": "⚡ ซัพพอร์ต/ดีบัฟ",
"roleSustain": "🛡️ Sustain ฮีล/ชิลด์",
"roleSpecialist": "🔮 พิเศษ/FUA",
"adviceEmpty": "ยังไม่มีตัวละครในทีม กรุณาเลือกตัวละครในทีมด้านบน",
"adviceNoSustain": "⚠️ ข้อแนะนำ: ทีมยังขาดตัวละครสายป้องกันหรือรักษา (Preservation / Abundance) แนะนำใส่ 1 ตำแหน่งเพื่อความปลอดภัยในการเล่น",
"adviceNoDps": "💡 ข้อแนะนำ: ทีมมีแต่ตัวซัพพอร์ต ยังไม่มีตัวทำดาเมจหลัก (Destruction / Hunt / Erudition)",
"adviceNoSupport": "💡 ข้อแนะนำ: ทีมมีตัวดาเมจแต่ยังไม่มีตัวบัฟหรือดีบัฟ (Harmony / Nihility) เสริมตัวซัพพอร์ตจะช่วยเร่งดาเมจได้มหาศาล",
"adviceBalanced": "✅ สมดุลยอดเยี่ยม: ทีมมีโครงสร้างครบเครื่อง ทั้งตัวทำดาเมจ ซัพพอร์ตบัฟ/ดีบัฟ และตัวฮีลเลอร์/ชิลเดอร์ พร้อมลุยทุกคอนเทนต์!",
"consoleTitle": "คอนโซลคำสั่ง GM & Log สด",
"consoleSubtitle": "ส่งคำสั่ง GM / Server commands แบบเรียลไทม์ พร้อมติดตามสถานะและ Packet Log",
"consoleCopyLog": "📋 คัดลอก",
"consoleClearLog": "🗑️ ล้าง Log",
"consoleQuickTitle": "⚡ คำสั่งด่วนที่ใช้บ่อย (Quick Commands)",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Jades",
"quickCmdCredits": "💰 +10M Credits",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 รถไฟ Express",
"quickCmdClearLineup": "🧹 เคลียร์ทีม",
"quickCmdHelp": "❓ /help",
"consoleReady": "GaC Server Console พร้อมใช้งาน (พิมพ์ /help เพื่อดูคำสั่งทั้งหมด)",
"filterSamePath": "สายเดียวกัน",
"consolePlaceholder": "พิมพ์คำสั่ง GM เช่น /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "ส่งคำสั่ง",
"consoleHistoryHint": "💡 รองรับกด ↑ ↓ เพื่อเลือกประวัติคำสั่งก่อนหน้า",
"consoleOnline": "● เซิร์ฟเวอร์ออนไลน์",
"consoleOffline": "○ ออฟไลน์ (คำสั่งทำงานผ่านแคชภายใน)",
"consoleLogCopied": "📋 คัดลอก Log ทั้งหมดลงในคลิปบอร์ดแล้ว",
"consoleLogCopyFailed": "❌ ไม่สามารถคัดลอก Log ได้",
"consoleLogCleared": "ล้างหน้าจอ Terminal เรียบร้อย",
"btnGachabaseSync": "🌐 ซิงค์ Gachabase",
"tabPersistentGaC": "💾 จัดการเซฟ GaC",
"tabPersistentFirefly": "👤 ผู้บุกเบิก & March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Superimpose (ขัดเกลา)",
"lcPickerTitle": "🗡️ เลือกสวมใส่กรวยแสง (Light Cone)",
"lcPickerSigTitle": "⭐ กรวยแสงประจำตัวแนะนำ (Signature)",
"lcPickerEquipSig": "⚡ สวมใส่ชิ้นนี้",
"lcPickerUnequip": "✕ ถอดกรวยแสงออก",
"lblPingInterval": "ความถี่ในการตรวจสอบเซิร์ฟเวอร์ (Ping Interval)",
"tabDamageAnalyst": "💥 Damage Analyst",
"analystTitle": "💥 วิเคราะห์ความเสียหายจากการต่อสู้ (Damage Analyst)",
"analystSubtitle": "ดักจับและวิเคราะห์ดาเมจจากการต่อสู้จริงในเกม Star Rail (ระบบเดียวกับ FireflyGO / Veritas)",
"analystFetchBtn": "🔄 ดึงดาเมจล่าสุดจากในเกม",
"analystAutoSync": "⚡ ซิงค์ข้อมูลสดระหว่างต่อสู้",
"analystImportBtn": "📂 นำเข้าไฟล์ JSON",
"analystExportBtn": "💾 ส่งออก JSON",
"analystClearBtn": "🗑️ ล้างข้อมูล",
"analystNoBattle": "ยังไม่มีข้อมูลการต่อสู้ — กรุณาเริ่มการต่อสู้ในเกม หรือกด 'ดึงดาเมจล่าสุด' / 'นำเข้าไฟล์ JSON'",
"analystTotalDamage": "ดาเมจรวมทั้งทีม",
"analystCycles": "จำนวนรอบ (Cycles)",
"analystTurns": "เทิร์นทั้งหมด",
"analystDuration": "ระยะเวลาการต่อสู้",
"analystHealing": "การฟื้นฟู HP รวม",
"analystShield": "โล่ป้องกันรวม",
"analystDpsShare": "สัดส่วนดาเมจ (DPS Share)",
"analystShareTotal": "รวม 100%",
"analystShareUnavailable": "สัดส่วนตัวละคร: ไม่มีข้อมูล",
"analystBreakdownTitle": "รายละเอียดดาเมจจำแนกตามประเภท",
"analystDmgNormal": "🗡️ โจมตีปกติ",
"analystDmgSkill": "⚡ สกิลต่อสู้",
"analystDmgUlt": "💥 ท่าไม้ตาย",
"analystDmgBreak": "🔨 Break / Super Break",
"analystDmgFollowup": "🔄 โจมตีต่อเนื่อง",
"analystDmgDot": "🩸 ดาเมจต่อเนื่อง (DoT)",
"analystMaxHit": "ดาเมจสูงสุดใน 1 ครั้ง",
"analystDamageTaken": "ดาเมจที่ได้รับ",
"analystTurnsTaken": "เทิร์นแอ็กชัน",
"analystSkillUses": "จำนวนครั้งที่ใช้สกิล",
"analystEnemyTitle": "👾 รายชื่อศัตรูที่ถูกโจมตี (Targets / Enemies)",
"analystEnemyDmgTaken": "ดาเมจที่ศัตรูได้รับ",
"analystEnemyTurns": "เทิร์นของศัตรู",
"analystStatusWin": "🏆 ชนะการต่อสู้",
"analystStatusLive": "🔴 LIVE — กำลังต่อสู้อยู่",
"analystStatusLose": "💀 พ่ายแพ้",
"analystStatusQuit": "🚪 ยอมแพ้ / ออกจากการต่อสู้",
"analystToastFetched": "✅ ดึงข้อมูลการต่อสู้ล่าสุดจากเซิร์ฟเวอร์เรียบร้อย",
"analystToastImported": "✅ นำเข้าข้อมูลการต่อสู้เรียบร้อย",
"analystToastCleared": "🗑️ ล้างข้อมูลการต่อสู้เรียบร้อย",
"analystDashboardBanner": "💥 ข้อมูลการต่อสู้ล่าสุด: ดาเมจรวม {dmg} ({cycles} รอบ) — คลิกเพื่อดูบทวิเคราะห์เต็ม →"
},
"en": {
"tabDamageAnalyst": "💥 Damage Analyst",
"analystTitle": "💥 In-Game Combat Damage Analyst",
"analystSubtitle": "Capture & analyze real combat statistics from Star Rail (FireflyGO / Veritas architecture)",
"analystFetchBtn": "🔄 Fetch In-Game Battle",
"analystAutoSync": "⚡ Sync battle data live",
"analystImportBtn": "📂 Import Battle JSON",
"analystExportBtn": "💾 Export JSON",
"analystClearBtn": "🗑️ Clear Report",
"analystNoBattle": "No combat data recorded yet — Please play a battle in-game or click 'Fetch In-Game Battle' / 'Import Battle JSON'",
"analystTotalDamage": "Team Total Damage",
"analystCycles": "Cycles Elapsed",
"analystTurns": "Total Turns",
"analystDuration": "Combat Duration",
"analystHealing": "Total Healing",
"analystShield": "Total Shield",
"analystDpsShare": "Damage Share (DPS %)",
"analystShareTotal": "Total 100%",
"analystShareUnavailable": "Character shares unavailable",
"analystBreakdownTitle": "Damage Breakdown by Category",
"analystDmgNormal": "🗡️ Basic ATK",
"analystDmgSkill": "⚡ Skill",
"analystDmgUlt": "💥 Ultimate",
"analystDmgBreak": "🔨 Break / Super Break",
"analystDmgFollowup": "🔄 Follow-up",
"analystDmgDot": "🩸 DoT",
"analystMaxHit": "Max Single Hit",
"analystDamageTaken": "Damage Taken",
"analystTurnsTaken": "Action Turns",
"analystSkillUses": "Ability Usages",
"analystEnemyTitle": "👾 Enemy & Target Analysis",
"analystEnemyDmgTaken": "Damage Received",
"analystEnemyTurns": "Enemy Turns",
"analystStatusWin": "🏆 Victory",
"analystStatusLive": "🔴 LIVE — Battle in progress",
"analystStatusLose": "💀 Defeat",
"analystStatusQuit": "🚪 Retreated / Quitted",
"analystToastFetched": "✅ Latest battle statistics fetched successfully",
"analystToastImported": "✅ Battle data imported successfully",
"analystToastCleared": "🗑️ Battle report cleared",
"analystDashboardBanner": "💥 Latest Battle: Total {dmg} ({cycles} Cycles) — View Full Analysis →",
"ahaGlobalDesc": "Enable server-wide Aeon ★ Aha special trait",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Showcase Card",
"modalTabBuildGuide": "📖 Build Guide",
"buildGuideTitle": "Builds from player usage data",
"buildGuideSnapshot": "Snapshot {version} · collected {date}",
"buildGuideDescription": "Items and percentages show usage in Prydwen's endgame samples. Use them as a reference; they are not an official ranking or recommendation.",
"buildGuideSampleCount": "Largest endgame sample ({mode}): {count} players",
"buildGuideSampleUnavailable": "No endgame sample count for this character",
"buildGuideLowSample": "Small sample; results may not reflect the broader player base.",
"buildGuideOpenPrydwen": "Open full guide",
"buildGuideLightCones": "Common Light Cones",
"buildGuideRelicSets": "Common Relic Sets",
"buildGuidePlanarSets": "Common Planar Sets",
"buildGuideMainStats": "Common Main Stats",
"buildGuideBody": "Body",
"buildGuideFeet": "Feet",
"buildGuideSphere": "Sphere",
"buildGuideRope": "Rope",
"buildGuideNoSample": "No sample data",
"buildGuideNoData": "This character has no build statistics in the bundled snapshot. Open the Prydwen guide for current recommendations.",
"buildGuideCredit": "Prydwen data · compiled and processed by {credit} ·",
"buildGuideOpenEquipment": "Open relics and equipment",
"showcaseAutoRelics": "⚡ Auto-equip Relics",
"showcaseCopy": "📋 Copy Text",
"showcaseExport": "🖼️ Export Image",
"btnChangeLc": "Change Light Cone",
"lcPassiveTitle": "Light Cone Ability",
"toastE6S5Applied": "⭐ Character build maxed to E6S5 (Lv.80, Max Skills, S5)!",
"toastE0S1Applied": "⚡ Character build set to E0S1 (Lv.80, Max Skills, S1)!",
"toastShowcaseCopied": "📋 Build information copied to clipboard!",
"toastRelicsEquipped": "⚡ Optimal +15 relic set equipped for {name}!",
"btnAddLc": "+ Add LC",
"btnAddRelic": "+ Add Relic",
"btnAddSlot": "+ Add Slot",
"lblCreativeMode": "Creative Mode",
"badgeCreative": "Creative",
"toastSlotRemoved": "Removed Slot {slot}",
"quickActionsBadge": "Quick Tools",
"qaEnergy50Title": "Team Energy 50%",
"qaEnergy50Desc": "Standard starting battle energy",
"qaEnergy100Title": "Team Energy 100%",
"qaEnergy100Desc": "Instant Ultimate ready",
"qaUnlockAllTitle": "Unlock All Avatars",
"qaUnlockAllDesc": "Add all 70+ characters at E6",
"qaAddLcsTitle": "Add All 5★ Light Cones",
"qaAddLcsDesc": "All signature S5 light cones to inventory",
"qaTeleportTitle": "Teleport to Astral Express",
"qaTeleportDesc": "Return to Parlor Car safe hub",
"qaClearLineupTitle": "Clear Team Lineup",
"qaClearLineupDesc": "Empty all slots to rebuild team",
"qaGachabaseTitle": "Fetch from Gachabase",
"qaGachabaseDesc": "Import latest beta & datamined characters/LCs",
"toastEnergy50": "Team energy set to 50% (standard)",
"toastEnergy100": "Team energy set to 100% (instant burst)",
"toastUnlockedAll": "Unlocked all 70+ characters at E6",
"toastAddedAllLcs": "Added all 5★ signature light cones to inventory",
"toastTeleportedTrain": "Teleported to Astral Express Parlor Car",
"toastLineupCleared": "Lineup cleared successfully",
"modalAddLcTitle": "🗡️ Add Light Cone to FreeSR",
"modalAddRelicTitle": "🛡️ Add Relic to FreeSR",
"lblSelectLc": "Select Light Cone",
"lblSelectRelicSet": "Select Relic Set",
"lblRelicSlot": "Relic Slot",
"lblMainAffix": "Main Stat",
"lblEquipAvatar": "Equip to Avatar",
"unassigned": "-- Unassigned (Inventory) --",
"btnAddLcSubmit": "💾 Add to FreeSR",
"btnAddRelicSubmit": "💾 Add to FreeSR",
"toastLcAdded": "Light Cone added to FreeSR",
"toastRelicAdded": "Relic added to FreeSR",
"deleteItem": "Delete",
"toastItemDeleted": "Item deleted successfully",
"appName": "GaC-Srtool",
"appSubtitle": "Star Rail FreeSR & Server Controller",
"online": "Connected",
"offline": "Offline",
"checking": "Checking...",
"refresh": "🔄 Refresh",
"connectFailed": "Connection Failed",
"tabDashboard": "📊 Dashboard & Party",
"tabAvatars": "👥 Characters",
"tabEquipment": "🗡️ Lightcones & Relics",
"tabInventory": "🎒 Inventory",
"inventoryTitle": "🎒 Item quantities",
"inventoryDescription": "Search by item ID, edit several quantities, then save once. Items come from the Client catalog used by the server. Leave a field empty to use the server default.",
"inventorySearchPlaceholder": "Search item ID...",
"inventoryDiscard": "Discard edits",
"inventorySave": "Save changes",
"inventoryLoadHint": "Loading the server catalog...",
"inventoryItemTotal": "{count} items",
"inventoryPending": "{count} pending",
"inventoryPage": "Page {page}/{pages} • {count} items",
"inventoryNoMatch": "No matching item IDs",
"inventoryCountFor": "Quantity for item {id}",
"inventoryDefaultPlaceholder": "Server default",
"inventoryGaCOnly": "This editor is available with GaC-hkrpg-go only.",
"inventoryLoadSuccess": "Loaded {count} catalog items • unchanged items use the server default",
"inventoryLoadFailed": "Could not load the catalog",
"inventorySaving": "Saving {count} items...",
"inventorySaveSuccess": "Saved {count} items • log in again to load the updated bag",
"inventorySaveFailed": "Could not save inventory",
"inventoryItemId": "Item ID",
"inventoryDefaultCount": "Bag quantity",
"inventoryPrevious": "Previous",
"inventoryNext": "Next",
"tabPersistent": "💾 GaC Save Manager",
"tabExrank": "⚡ Ex-Rank Skills",
"tabJson": "📝 JSON Management",
"tabSettings": "⚙️ Settings",
"statAvatars": "Owned Characters",
"statLightcones": "Lightcones",
"statRelics": "Relics",
"serverStatusTitle": "📍 Server Status & Coordinates",
"lblServerModeActive": "Active Server Mode",
"lblApiEndpoint": "API Gateway Endpoint",
"lblPlaneId": "Plane ID",
"lblFloorId": "Floor ID",
"coords": "Character Coordinates XYZ",
"quickActionsTitle": "⚡ Quick Actions",
"quickActionsSubtitle": "Send commands to server instantly",
"btnMaxAll": "⭐ Max Level 80 & E6 All Characters",
"btnSyncPersistent": "💾 Sync Latest Persistent Save",
"currentLineupTitle": "🎮 Current Lineup",
"slot": "Slot",
"slotEmpty": "Empty (Click to add)",
"slotTooltip": "Click to select a character for this slot",
"removeFromTeam": "Remove from team",
"searchPlaceholder": "🔍 Search character name or ID...",
"filterAllRarity": "All Rarities",
"filter5Star": "5-Star",
"filter4Star": "4-Star",
"filterAllElements": "All Elements",
"filterAllPaths": "All Paths",
"btnReload": "🔄 Reload",
"avatarsLoading": "Loading characters...",
"noAvatarsFound": "No matching characters found",
"eidolonLabel": "Eidolon:",
"confirmMaxAll": "Upgrade all characters to Level 80 and unlock E6?",
"maxAllSuccess": "All characters maximized successfully!",
"avatarRankSuccess": "Updated character {id} to E{rank}",
"eqLcTitle": "🗡️ Lightcones in Inventory",
"eqLcSubtitle": "All lightcones from freesr-data.json",
"eqLcLoading": "Loading lightcone data...",
"eqRelicTitle": "🛡️ Relics in Inventory",
"eqRelicSubtitle": "All relics from freesr-data.json",
"eqRelicLoading": "Loading relic data...",
"itemCount": "{n} items",
"notEquipped": "Not equipped",
"equippedBy": "Equipped by",
"noLcData": "No lightcone data available",
"noRelicData": "No relic data available",
"persistentTitle": "💾 GaC Save Manager",
"persistentBadge": "Our Custom Server",
"persistentSubtitle": "The persistent save stores GaC-specific player states like Trailblazer gender/element, March 7th path, and server-wide global features.",
"persistentTbM7Title": "👤 Trailblazer & March 7th",
"lblTbGenderElement": "Trailblazer Gender & Element",
"lblM7Path": "March 7th Path",
"btnSaveCharSettings": "💾 Save Character Settings",
"persistentGlobalTitle": "⚙️ GaC Special Features",
"swGlobalDesc": "Enable server-wide Silver Wolf global mechanic",
"castoriceGlobalDesc": "Enable server-wide Castorice global mechanic",
"btnSaveGlobalSwitch": "💾 Save Global Toggles",
"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 characters Ex-Rank {status}",
"enabled": "enabled",
"disabled": "disabled",
"btnFreesr": "📄 freesr-data.json",
"btnPersistent": "💾 persistent save",
"btnDataGame": "🎮 data-in-game.json",
"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",
"settingsConnTitle": "⚙️ API Gateway Connection",
"settingsConnSubtitle": "Configure server mode and REST endpoint",
"lblServerMode": "Server Mode",
"lblApiGatewayUrl": "REST API Gateway URL",
"btnTestPing": "⚡ Test Connection",
"btnSaveSettings": "💾 Save Settings",
"btnResetDefault": "Reset Defaults",
"settingsBattleTitle": "🎮 Battle & FreeSR Defaults",
"settingsBattleSubtitle": "Customize gameplay behavior and lineup defaults",
"lblDefaultEnergy": "Battle Starting Energy",
"lblAutoSync": "Auto-Sync to Server",
"descAutoSync": "Instantly send character and equipment updates to the server",
"lblDefaultCreative": "Creative Mode by Default",
"descDefaultCreative": "Allow duplicate characters and more than 4 lineup slots",
"settingsShowcaseTitle": "🖼️ Showcase Card Display",
"settingsShowcaseSubtitle": "Customize character build card styling and details",
"lblShowRolls": "Show Sub-stat Roll Counts",
"descShowRolls": "Display roll tags for relic sub-affixes",
"lblElementAura": "Element Aura Glow Effect",
"descElementAura": "Dynamic card background and ambient glow matching character element",
"settingsCacheTitle": "🧹 Cache Management & Reset",
"settingsCacheSubtitle": "Clear temporary browser data or restore default settings",
"lblCacheSize": "LocalStorage Memory Usage:",
"btnClearCache": "🧹 Clear Browser Cache",
"btnFactoryReset": "🔄 Factory Reset",
"toastPingSuccess": "⚡ Connected successfully! Latency: {ms} ms",
"toastPingFailed": "❌ Failed to connect to Gateway. Please check server status",
"toastCacheCleared": "🧹 Browser cache cleared successfully",
"apiSettingsTitle": "⚙️ API Gateway Connection Settings",
"apiSettingsSubtitle": "Adjust port or IP according to your server.json",
"modalTitleCharEdit": "Character Customization",
"modalBtnMaxAllChar": "⭐ Max All",
"modalTabSkills": "⚡ Skills & Traces",
"modalTabStatus": "⚙️ Level & Eidolon",
"modalTabLightcone": "🗡️ Lightcone",
"modalSkillCombatTitle": "Combat Skill Levels",
"modalBtnMaxSkills": "⭐ Max All Skills (10/10)",
"modalSkillBasic": "Basic ATK",
"modalSkillSkill": "Skill",
"modalSkillUltra": "Ultimate",
"modalSkillTalent": "Talent",
"modalTracesTitle": "Traces & Technique",
"modalTraceTechnique": "⚡ Technique — Pre-battle active",
"traceA2": "🌟 Bonus Trace A2",
"traceA4": "🌟 Bonus Trace A4",
"traceA6": "🌟 Bonus Trace A6",
"traceStatNodes": "💎 All Stat Bonus Nodes (10 nodes)",
"lblLevelRange": "Level (1-80)",
"lblPromotionRange": "Ascension / Promotion (0-6)",
"lblEidolonLevel": "Eidolon Level",
"btnResetE0": "Reset E0",
"btnMaxE6": "⭐ Max E6",
"modalEnergyTitle": "Ultimate Energy",
"modalEnergy50": "Set 50%",
"modalEnergy100": "Full 100%",
"modalLcTitle": "Equipped Lightcone",
"modalBtnMaxLc": "⭐ Max Lightcone (Lv.80 S5)",
"lblLcId": "Lightcone ID",
"modalLcIdPlaceholder": "e.g. 21002 or 24001",
"lblLcLevel": "Lightcone Level (1-80)",
"lblLcRank": "Superimposition (S1-S5)",
"modalBtnClose": "✕ Close",
"modalBtnSave": "💾 Save Character",
"pickerTitle": "Select Character for Lineup",
"pickerSearchPlaceholder": "🔍 Search character to add...",
"apiModalTitle": "⚙️ API Server Connection Settings",
"btnCancel": "Cancel",
"btnSaveTest": "Save & Test",
"toastSlotUpdated": "Updated Slot {slot} to: {name}",
"toastCharMaxed": "⭐ Maxed {name} to Lv. 80 E6",
"toastCharSaved": "Saved character {name}",
"toastAllSkillsMaxed": "⭐ All skills and traces maxed",
"toastServerSwitched": "Switched server mode to: {mode}",
"tbOptions": {
"MalePhysical": "Trailblazer (Male) - Physical",
"FemalePhysical": "Trailblazer (Female) - Physical",
"MalePreservation": "Trailblazer (Male) - Fire",
"FemalePreservation": "Trailblazer (Female) - Fire",
"MaleHarmony": "Trailblazer (Male) - Harmony",
"FemaleHarmony": "Trailblazer (Female) - Harmony",
"MaleRemembrance": "Trailblazer (Male) - Remembrance",
"FemaleRemembrance": "Trailblazer (Female) - Remembrance"
},
"marchOptions": {
"MarchHunt": "March 7th - The Hunt",
"MarchPreservation": "March 7th - Preservation"
},
"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",
"Elation": "Elation"
},
"settingsSaved": "Settings saved successfully!",
"settingsReset": "Reset to default settings",
"qaLineupE0S1Title": "Set Team to E0S1",
"qaLineupE0S1Desc": "Team characters to E0 with S1 LC",
"qaLineupRelicsTitle": "Auto-Equip Team Relics",
"qaLineupRelicsDesc": "Equip +15 relics for 4 teammates",
"lblPersistenceInfo": "Server save file & data management",
"modalTabOverview": "Overview",
"modalTabRelics": "Relics & Gear",
"attrBasic": "◆ Basic Attributes",
"attrAdvanced": "◆ Advanced Attributes",
"attrElemental": "◆ Damage Type",
"statMaxHp": "Max HP",
"statAtk": "ATK",
"statDef": "DEF",
"statSpd": "SPD",
"statCritRate": "CRIT Rate",
"statCritDmg": "CRIT DMG",
"statBreakEffect": "Break Effect",
"statHealBoost": "Outgoing Healing Boost",
"statMaxEnergy": "Max Energy",
"statEnergyRegen": "Energy Regeneration Rate",
"statEhr": "Effect Hit Rate",
"statRes": "Effect RES",
"statDmgBoost": "{element} DMG Boost",
"relicPickerTitle": "🛡️ Manage Relic: {slot}",
"tabQuickGen": "⚡ Quick & Recommended",
"tabFromInventory": "📦 From Inventory",
"btnEquipInstant": "⚡ Equip This Piece (+15 5★ God Rolls)",
"btnUnequip": "❌ Unequip Relic",
"currentEquipped": "Currently Equipped",
"noRelicEquipped": "No relic equipped in this slot",
"chooseMainStat": "Select Main Stat:",
"chooseSet": "Select Relic Set:",
"recommendedBadge": "Recommended",
"overviewStatsTitle": "⚔️ Combat Stats",
"overviewStatsNote": "Includes Lightcone & Relic bonuses",
"overviewEquippedLc": "🗡️ Equipped Lightcone",
"overviewEquippedRelics": "🛡️ Relics & Set Bonuses",
"modalRelicsTitle": "🛡️ Equip Relics (6 Slots)",
"modalRelicsSubtitle": "Click each slot to change or equip recommended sets",
"btnAutoEquipRelics": "⚡ Equip Recommended Sets",
"btnClearAllRelics": "🧹 Unequip All",
"activeSetEffects": "✨ Active Set Bonuses",
"modalColLevel": "Level",
"lblPromotion": "Ascension Rank",
"slotPickerTitle": "🛡️ Select Relic to Equip",
"quickGenRecTitle": "⚡ Generate Recommended Piece",
"quickGenRecDesc": "Generate 5★ +15 with best set & main stat",
"btnGenAndEquip": "Generate & Equip",
"selectFromInventory": "Select from Inventory",
"btnAllE0S1": "⚡ All E0S1",
"miniBattleTitle": "Recent Battle & Team Damage",
"miniBattleSubtitle": "Live damage stats, DPS, and damage share from the latest combat",
"miniTotalDmg": "Total DMG",
"miniTeamDps": "Team DPS",
"miniBreakDmg": "Break / Super Break",
"miniBattleTurns": "Turns / Time",
"miniBreakdownTitle": "Team Damage Share",
"miniViewFullAnalyst": "Damage Analyst →",
"miniNoBattleTitle": "No Recent Battle Recorded",
"miniNoBattleDesc": "Fight in-game (Calyx / Shadow / Boss) to track real-time combat stats",
"miniBtnFetch": "🔄 Fetch Live",
"miniBtnDemo": "⚡ Load Demo Data",
"synergyTitle": "Team Synergy & Weakness Analysis",
"synergySubtitle": "Analyze Weakness Break coverage, role balance, and equipment readiness",
"synergyBreakCoverage": "🎯 Weakness Break Coverage",
"synergyRoleBalance": "🛡️ Team Composition & Role Distribution",
"synergyEquipmentTitle": "🛡️ Equipment Readiness & Average Level",
"synergyAvgLevel": "Avg Level",
"synergyAvgEidolon": "Avg Eidolon",
"synergyLcEquipped": "Lightcones Equipped",
"synergyRelicFull": "Full Relic Sets",
"synergyCoverageBadge": "Covers {count}/7 Elements",
"synergyNoInTeam": "None in team",
"roleDps": "🗡️ DPS",
"roleSupport": "⚡ Support / Debuff",
"roleSustain": "🛡️ Sustain (Healer/Shielder)",
"roleSpecialist": "🔮 Specialist / FUA",
"adviceEmpty": "No characters in lineup. Please select teammates above.",
"adviceNoSustain": "⚠️ Tip: The team lacks a defensive or healer unit (Preservation / Abundance). Adding one is strongly recommended for survival.",
"adviceNoDps": "💡 Tip: The team consists only of supports without a primary damage dealer (Destruction / Hunt / Erudition).",
"adviceNoSupport": "💡 Tip: The team has damage dealers but lacks buffers or debuffers (Harmony / Nihility). Adding supports will greatly amplify your damage.",
"adviceBalanced": "✅ Excellent Balance: The lineup has full coverage with DPS, buffer/debuffer, and sustain units. Ready for any challenge!",
"consoleTitle": "GM Command Console & Live Log",
"consoleSubtitle": "Dispatch GM / Server commands in real-time with status and packet logs",
"consoleCopyLog": "📋 Copy Log",
"consoleClearLog": "🗑️ Clear Log",
"consoleQuickTitle": "⚡ Quick Commands",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Jades",
"quickCmdCredits": "💰 +10M Credits",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Astral Express",
"quickCmdClearLineup": "🧹 Clear Lineup",
"quickCmdHelp": "❓ /help",
"consoleReady": "GaC Server Console is ready (type /help for commands)",
"filterSamePath": "Same Path",
"consolePlaceholder": "Type GM command e.g. /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Dispatch",
"consoleHistoryHint": "💡 Press ↑ / ↓ to navigate command history",
"consoleOnline": "● Server Online",
"consoleOffline": "○ Offline (Local execution fallback)",
"consoleLogCopied": "📋 All logs copied to clipboard!",
"consoleLogCopyFailed": "❌ Failed to copy logs",
"consoleLogCleared": "Terminal log cleared",
"btnGachabaseSync": "🌐 Sync Gachabase",
"tabPersistentGaC": "💾 GaC Save Manager",
"tabPersistentFirefly": "👤 Trailblazer & March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Superimpose Rank",
"lcPickerTitle": "🗡️ Select Light Cone to Equip",
"lcPickerSigTitle": "⭐ Signature Light Cone",
"lcPickerEquipSig": "⚡ Equip This",
"lcPickerUnequip": "✕ Unequip Light Cone",
"lblPingInterval": "Server Status Check Interval"
},
"zh-CN": {
"ahaGlobalDesc": "全服启用星神·阿哈特殊被动",
"btnAddLc": "+ 添加光锥",
"btnAddRelic": "+ 添加遗器",
"btnAddSlot": "+ 添加槽位",
"lblCreativeMode": "创造模式",
"badgeCreative": "创造模式",
"toastSlotRemoved": "已移除槽位 {slot}",
"quickActionsBadge": "快捷指令",
"qaEnergy50Title": "全队能量 50%",
"qaEnergy50Desc": "进战标准初始能量",
"qaEnergy100Title": "全队能量 100%",
"qaEnergy100Desc": "立即释放终结技",
"qaUnlockAllTitle": "解锁全角色",
"qaUnlockAllDesc": "添加全部 70+ 角色满魂",
"qaAddLcsTitle": "添加全部五星光锥",
"qaAddLcsDesc": "专武叠影5阶入库",
"qaTeleportTitle": "传送至星穹列车",
"qaTeleportDesc": "返回车厢安全区",
"qaClearLineupTitle": "清空编队",
"qaClearLineupDesc": "重置全部槽位重新配队",
"toastEnergy50": "已将全队能量设为 50%",
"toastEnergy100": "已将全队能量设为 100%",
"toastUnlockedAll": "已解锁全部角色(满魂)",
"toastAddedAllLcs": "已添加全部五星光锥至背包",
"toastTeleportedTrain": "已传送至星穹列车观景车厢",
"toastLineupCleared": "已清空编队角色",
"modalAddLcTitle": "🗡️ 添加光锥至 FreeSR",
"modalAddRelicTitle": "🛡️ 添加遗器至 FreeSR",
"lblSelectLc": "选择光锥",
"lblSelectRelicSet": "选择遗器套装",
"lblRelicSlot": "遗器部位",
"lblMainAffix": "主词条属性",
"lblEquipAvatar": "装备给角色",
"unassigned": "-- 暂不装备(存入背包) --",
"btnAddLcSubmit": "💾 添加至 FreeSR",
"btnAddRelicSubmit": "💾 添加至 FreeSR",
"toastLcAdded": "已成功添加光锥至 FreeSR",
"toastRelicAdded": "已成功添加遗器至 FreeSR",
"deleteItem": "删除",
"toastItemDeleted": "道具已成功删除",
"appName": "GaC-Srtool",
"appSubtitle": "星穹铁道 FreeSR 与服务器控制器",
"online": "已连接",
"offline": "离线",
"checking": "检查中...",
"refresh": "🔄 刷新",
"connectFailed": "连接失败",
"tabDashboard": "📊 仪表盘与配队",
"tabAvatars": "👥 角色列表",
"tabEquipment": "🗡️ 光锥与遗器",
"tabPersistent": "💾 GaC 存档管理",
"tabExrank": "⚡ Ex-Rank 特殊技能",
"tabJson": "📝 JSON 文件管理",
"tabSettings": "⚙️ 系统设置",
"statAvatars": "已拥有角色",
"statLightcones": "光锥",
"statRelics": "遗器",
"serverStatusTitle": "📍 服务器状态与当前坐标",
"lblServerModeActive": "当前运行模式",
"lblApiEndpoint": "API 网关端点",
"lblPlaneId": "地图位面 (Plane ID)",
"lblFloorId": "楼层 (Floor ID)",
"coords": "角色坐标 XYZ",
"quickActionsTitle": "⚡ 快捷操作",
"quickActionsSubtitle": "立即向服务器发送指令",
"btnMaxAll": "⭐ 全角色升至80级并满命E6",
"btnSyncPersistent": "💾 同步最新 Persistent 存档",
"currentLineupTitle": "🎮 当前队伍阵容",
"slot": "槽位",
"slotEmpty": "空位 (点击添加)",
"slotTooltip": "点击选择角色加入此位置",
"removeFromTeam": "移出队伍",
"searchPlaceholder": "🔍 搜索角色名称或 ID...",
"filterAllRarity": "全部稀有度",
"filter5Star": "5 星",
"filter4Star": "4 星",
"filterAllElements": "全部属性",
"filterAllPaths": "全部命途",
"btnReload": "🔄 重新载入",
"avatarsLoading": "正在获取角色数据...",
"noAvatarsFound": "未找到符合条件的角色",
"eidolonLabel": "星魂:",
"confirmMaxAll": "确定将全部角色升至80级并解锁满命E6吗?",
"maxAllSuccess": "全角色养成满级成功!",
"avatarRankSuccess": "已调整角色 {id} 为星魂 {rank}",
"eqLcTitle": "🗡️ 背包中的光锥",
"eqLcSubtitle": "来自 freesr-data.json 的所有光锥列表",
"eqLcLoading": "正在加载光锥数据...",
"eqRelicTitle": "🛡️ 背包中的遗器",
"eqRelicSubtitle": "来自 freesr-data.json 的所有遗器列表",
"eqRelicLoading": "正在加载遗器数据...",
"itemCount": "{n} 件",
"notEquipped": "未装备",
"equippedBy": "装备者",
"noLcData": "暂无光锥数据",
"noRelicData": "暂无遗器数据",
"persistentTitle": "💾 GaC 存档管理",
"persistentBadge": "独家自定义服务器",
"persistentSubtitle": "persistent 存档保存 GaC 特有的玩家状态(主角性别/属性、三月七命途、全局开关等)",
"persistentTbM7Title": "👤 开拓者与三月七",
"lblTbGenderElement": "主角性别与属性",
"lblM7Path": "三月七命途形态",
"btnSaveCharSettings": "💾 保存主角设定",
"persistentGlobalTitle": "⚙️ GaC 特殊功能开关",
"swGlobalDesc": "开启全服银狼专属机制",
"castoriceGlobalDesc": "开启全服 Castorice 专属机制",
"btnSaveGlobalSwitch": "💾 保存全局开关",
"exrankTitle": "⚡ Ex-Rank 特殊技能系统",
"exrankSubtitle": "在 FreeSR 中开启特定角色的 Ex-Rank 专属天赋与强化机制(例如景元免疫受控、饮月、黄泉)",
"btnEnableAll": "开启全部 Ex-Rank",
"btnDisableAll": "关闭全部 Ex-Rank",
"exrankToggleSuccess": "{name}: Ex-Rank 已{status}",
"exrankAllSuccess": "全角色 Ex-Rank 已{status}",
"enabled": "启用",
"disabled": "禁用",
"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",
"lblServerMode": "服务器模式",
"lblApiGatewayUrl": "REST API Gateway URL",
"lblPingInterval": "状态检测频率 (秒)",
"btnSaveSettings": "💾 保存设置",
"btnResetDefault": "恢复默认",
"modalTitleCharEdit": "角色养成与配装",
"modalBtnMaxAllChar": "⭐ 全部升至满级",
"modalTabSkills": "⚡ 技能与行迹",
"modalTabStatus": "⚙️ 等级与星魂",
"modalTabLightcone": "🗡️ 光锥",
"modalSkillCombatTitle": "战斗技能等级",
"modalBtnMaxSkills": "⭐ 技能全满 (10/10)",
"modalSkillBasic": "普攻",
"modalSkillSkill": "战技",
"modalSkillUltra": "终结技",
"modalSkillTalent": "天赋",
"modalTracesTitle": "行迹与秘技",
"modalTraceTechnique": "⚡ 秘技 — 进入战斗前生效",
"traceA2": "🌟 额外能力 A2",
"traceA4": "🌟 额外能力 A4",
"traceA6": "🌟 额外能力 A6",
"traceStatNodes": "💎 全部属性加成节点 (10个)",
"lblLevelRange": "角色等级 (1-80)",
"lblPromotionRange": "晋阶等级 (0-6)",
"lblEidolonLevel": "星魂等级",
"btnResetE0": "重置 E0",
"btnMaxE6": "⭐ 满魂 E6",
"modalEnergyTitle": "终结技能量",
"modalEnergy50": "设为 50%",
"modalEnergy100": "满能量 100%",
"modalLcTitle": "装备的光锥",
"modalBtnMaxLc": "⭐ 满级满叠光锥 (Lv.80 叠影5)",
"lblLcId": "光锥 ID",
"modalLcIdPlaceholder": "例如 21002 或 24001",
"lblLcLevel": "光锥等级 (1-80)",
"lblLcRank": "叠影阶数 (S1-S5)",
"modalBtnClose": "✕ 关闭",
"modalBtnSave": "💾 保存角色",
"pickerTitle": "选择上阵角色",
"pickerSearchPlaceholder": "🔍 搜索要加入队伍的角色...",
"apiModalTitle": "⚙️ API 服务器连接设置",
"btnCancel": "取消",
"btnSaveTest": "保存并测试",
"toastSlotUpdated": "已更新槽位 {slot} 为: {name}",
"toastCharMaxed": "⭐ 已将 {name} 升至 Lv. 80 E6",
"toastCharSaved": "已保存角色 {name}",
"toastAllSkillsMaxed": "⭐ 所有技能与行迹已升满",
"toastServerSwitched": "已切换服务器模式为: {mode}",
"tbOptions": {
"MalePhysical": "开拓者 (男) - 物理",
"FemalePhysical": "开拓者 (女) - 物理",
"MalePreservation": "开拓者 (男) - 火",
"FemalePreservation": "开拓者 (女) - 火",
"MaleHarmony": "开拓者 (男) - 同谐",
"FemaleHarmony": "开拓者 (女) - 同谐",
"MaleRemembrance": "开拓者 (男) - 记忆",
"FemaleRemembrance": "开拓者 (女) - 记忆"
},
"marchOptions": {
"MarchHunt": "三月七 - 巡猎",
"MarchPreservation": "三月七 - 存护"
},
"elements": {
"Physical": "物理",
"Fire": "火",
"Ice": "冰",
"Lightning": "雷",
"Wind": "风",
"Quantum": "量子",
"Imaginary": "虚数",
"Unknown": "未知"
},
"paths": {
"Destruction": "毁灭",
"Hunt": "巡猎",
"Erudition": "智识",
"Harmony": "同谐",
"Nihility": "虚无",
"Preservation": "存护",
"Abundance": "丰饶",
"Remembrance": "记忆",
"Unknown": "未知",
"Elation": "欢愉"
},
"settingsSaved": "设置已成功保存!",
"settingsReset": "已恢复默认设置",
"btnE6S5": "⭐ 满命满精 (E6S5)",
"btnE0S1": "⚡ 零命专武 (E0S1)",
"modalTabShowcase": "🖼️ 展示卡片",
"showcaseAutoRelics": "⚡ 一键装备推荐遗器",
"showcaseCopy": "📋 复制文本",
"showcaseExport": "🖼️ 导出图片",
"btnChangeLc": "更换光锥",
"lcPassiveTitle": "光锥技能效果",
"toastE6S5Applied": "⭐ 角色已调整为满配 E6S5(80级、技能满级、叠影5)!",
"toastE0S1Applied": "⚡ 角色已调整为平民毕业 E0S1(80级、技能满级、叠影1)!",
"toastShowcaseCopied": "📋 角色配装信息已复制到剪贴板!",
"toastRelicsEquipped": "⚡ 已为 {name} 装备推荐的 +15 遗器全套!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ API Gateway 连接设置",
"settingsConnSubtitle": "配置服务器运行模式与 REST 接口端点",
"btnTestPing": "⚡ 测试连接",
"settingsBattleTitle": "🎮 战斗与 FreeSR 默认配置",
"settingsBattleSubtitle": "自定义游戏内默认战斗与队伍初始化行为",
"lblDefaultEnergy": "战斗开局能量值 (Battle Starting Energy)",
"lblAutoSync": "自动同步至服务器 (Auto-Sync)",
"descAutoSync": "修改角色或装备时立即将变更发送至服务端",
"lblDefaultCreative": "默认开启创造模式 (Creative Mode)",
"descDefaultCreative": "允许队伍配置重复角色及突破4人限制",
"settingsShowcaseTitle": "🖼️ 角色展示卡片设置",
"settingsShowcaseSubtitle": "自定义配装展示卡的美观度与展示细节",
"lblShowRolls": "显示遗器副词条强化次数 (Roll Counts)",
"descShowRolls": "在副词条旁显示强化命中的次数标签",
"lblElementAura": "属性光效光晕 (Element Aura Glow)",
"descElementAura": "卡片背景与氛围光环随角色属性动态变换",
"settingsCacheTitle": "🧹 缓存管理与系统重置",
"settingsCacheSubtitle": "清理浏览器临时缓存或将工具恢复出厂设置",
"lblCacheSize": "LocalStorage 存储占用:",
"btnClearCache": "🧹 清除浏览器缓存",
"btnFactoryReset": "🔄 恢复出厂设置",
"toastPingSuccess": "⚡ 连接成功!延迟: {ms} ms",
"toastPingFailed": "❌ 无法连接到 Gateway,请检查服务端状态",
"toastCacheCleared": "🧹 浏览器缓存已清空",
"qaLineupE0S1Title": "全队一键 E0S1",
"qaLineupE0S1Desc": "将当前编队角色设为 0命+1叠专武",
"qaLineupRelicsTitle": "一键全队神装",
"qaLineupRelicsDesc": "为编队4人一键穿戴 +15 毕业遗器",
"lblPersistenceInfo": "服务端存档与数据管理",
"modalTabOverview": "角色总览",
"modalTabRelics": "遗器与配装",
"attrBasic": "◆ 基础属性",
"attrAdvanced": "◆ 进阶属性",
"attrElemental": "◆ 伤害属性",
"statMaxHp": "生命上限",
"statAtk": "攻击力",
"statDef": "防御力",
"statSpd": "速度",
"statCritRate": "暴击率",
"statCritDmg": "暴击伤害",
"statBreakEffect": "击破特攻",
"statHealBoost": "治疗量加成",
"statMaxEnergy": "能量上限",
"statEnergyRegen": "能量恢复效率",
"statEhr": "效果命中",
"statRes": "效果抵抗",
"statDmgBoost": "{element}属性伤害提高",
"relicPickerTitle": "🛡️ 遗器管理: {slot}",
"tabQuickGen": "⚡ 快速生成与推荐",
"tabFromInventory": "📦 仓库选择",
"btnEquipInstant": "⚡ 立即装备此件 (+15 5★ 完美副词条)",
"btnUnequip": "❌ 卸下此遗器",
"currentEquipped": "当前装备中",
"noRelicEquipped": "该部位尚未装备遗器",
"chooseMainStat": "选择主词条:",
"chooseSet": "选择遗器套装:",
"recommendedBadge": "推荐",
"overviewStatsTitle": "⚔️ 战斗面板 (Combat Stats)",
"overviewStatsNote": "已计入光锥与遗器属性加成",
"overviewEquippedLc": "🗡️ 当前装备光锥",
"overviewEquippedRelics": "🛡️ 遗器套装效果",
"modalRelicsTitle": "🛡️ 遗器配装 (6 部位)",
"modalRelicsSubtitle": "点击单个部位更换,或一键穿戴推荐套装",
"btnAutoEquipRelics": "⚡ 一键穿戴推荐套装",
"btnClearAllRelics": "🧹 一键卸下全部",
"activeSetEffects": "✨ 当前生效的套装效果",
"modalColLevel": "等级",
"lblPromotion": "突破阶段",
"slotPickerTitle": "🛡️ 选择要装备的遗器",
"quickGenRecTitle": "⚡ 为该部位生成推荐遗器",
"quickGenRecDesc": "自动生成适配的 5★ +15 最优套装与主词条",
"btnGenAndEquip": "生成并穿戴",
"selectFromInventory": "从库存中选择对应部位",
"btnAllE0S1": "⚡ 全员 E0S1",
"qaGachabaseTitle": "从 Gachabase 获取数据",
"qaGachabaseDesc": "导入最新的测试服/解密角色与光锥数据",
"synergyTitle": "队伍协同与弱点破盾分析",
"synergySubtitle": "分析弱点属性覆盖度、队伍角色定位均衡性与练度准备状态",
"synergyBreakCoverage": "🎯 弱点破盾属性覆盖",
"synergyRoleBalance": "🛡️ 队伍构成与角色分工",
"synergyEquipmentTitle": "📊 装备准备度与平均等级",
"synergyAvgLevel": "平均等级",
"synergyAvgEidolon": "平均星魂",
"synergyLcEquipped": "光锥装配",
"synergyRelicFull": "遗器满配",
"synergyCoverageBadge": "覆盖 {count}/7 属性",
"synergyNoInTeam": "未在队伍中",
"roleDps": "🗡️ 输出 (DPS)",
"roleSupport": "⚡ 辅助/减益",
"roleSustain": "🛡️ 生存 (治疗/护盾)",
"roleSpecialist": "🔮 特殊/追击",
"adviceEmpty": "当前队伍尚无角色,请在上方选择角色加入队伍。",
"adviceNoSustain": "⚠️ 建议:队伍缺乏防护或治疗角色(存护/丰饶),建议加入1名以保障战斗生存能力。",
"adviceNoDps": "💡 建议:队伍全为辅助角色,缺少主力输出担当(毁灭/巡猎/智识)。",
"adviceNoSupport": "💡 建议:队伍有输出但缺乏增益或减益辅佐(同谐/虚无),加入辅助可显著提高队伍总伤害。",
"adviceBalanced": "✅ 阵容均衡:队伍构架完备,兼备输出、增益减益辅助与治疗护盾生存,随时准备出征!",
"consoleTitle": "GM 命令行控制台与实时日志",
"consoleSubtitle": "实时向服务器发送 GM 指令并跟踪数据包日志与执行状态",
"consoleCopyLog": "📋 复制日志",
"consoleClearLog": "🗑️ 清空日志",
"consoleQuickTitle": "⚡ 常用快捷命令",
"consolePlaceholder": "输入 GM 命令,如 /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "发送指令",
"consoleHistoryHint": "💡 支持按 ↑ ↓ 键快速选择历史命令",
"consoleOnline": "● 服务器在线",
"consoleOffline": "○ 离线模式(本地缓存执行)",
"consoleLogCopied": "📋 全部日志已复制到剪贴板!",
"consoleLogCopyFailed": "❌ 无法复制日志",
"consoleLogCleared": "终端日志已清空",
"btnGachabaseSync": "🌐 同步 Gachabase",
"tabPersistentGaC": "💾 GaC 存档管理",
"tabPersistentFirefly": "👤 开拓者与三月七",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "叠影等阶",
"lcPickerTitle": "🗡️ 选择要装备的光锥",
"lcPickerSigTitle": "⭐ 推荐专属光锥 (Signature)",
"lcPickerEquipSig": "⚡ 立即装备",
"lcPickerUnequip": "✕ 卸下光锥"
},
"zh-TW": {
"ahaGlobalDesc": "全服啟用星神·阿哈特殊被動",
"btnAddLc": "+ 新增光錐",
"btnAddRelic": "+ 新增遺器",
"btnAddSlot": "+ 新增槽位",
"lblCreativeMode": "創造模式",
"badgeCreative": "創造模式",
"toastSlotRemoved": "已移除槽位 {slot}",
"quickActionsBadge": "快捷指令",
"qaEnergy50Title": "全隊能量 50%",
"qaEnergy50Desc": "進戰標準初始能量",
"qaEnergy100Title": "全隊能量 100%",
"qaEnergy100Desc": "立即施放終結技",
"qaUnlockAllTitle": "解鎖全角色",
"qaUnlockAllDesc": "新增全部 70+ 角色滿魂",
"qaAddLcsTitle": "新增全部五星光錐",
"qaAddLcsDesc": "專武疊影5階入庫",
"qaTeleportTitle": "傳送至星穹列車",
"qaTeleportDesc": "返回車廂安全區",
"qaClearLineupTitle": "清空隊伍",
"qaClearLineupDesc": "重設全部槽位重新組隊",
"toastEnergy50": "已將全隊能量設為 50%",
"toastEnergy100": "已將全隊能量設為 100%",
"toastUnlockedAll": "已解鎖全部角色(滿魂)",
"toastAddedAllLcs": "已新增全部五星光錐至背包",
"toastTeleportedTrain": "已傳送至星穹列車觀景車廂",
"toastLineupCleared": "已清空隊伍角色",
"modalAddLcTitle": "🗡️ 新增光錐至 FreeSR",
"modalAddRelicTitle": "🛡️ 新增遺器至 FreeSR",
"lblSelectLc": "選擇光錐",
"lblSelectRelicSet": "選擇遺器套裝",
"lblRelicSlot": "遺器部位",
"lblMainAffix": "主詞條屬性",
"lblEquipAvatar": "裝備給角色",
"unassigned": "-- 暫不裝備(存入背包) --",
"btnAddLcSubmit": "💾 新增至 FreeSR",
"btnAddRelicSubmit": "💾 新增至 FreeSR",
"toastLcAdded": "已成功新增光錐至 FreeSR",
"toastRelicAdded": "已成功新增遺器至 FreeSR",
"deleteItem": "刪除",
"toastItemDeleted": "道具已成功刪除",
"appName": "GaC-Srtool",
"appSubtitle": "星穹鐵道 FreeSR 與伺服器控制器",
"online": "已連線",
"offline": "離線",
"checking": "檢查中...",
"refresh": "🔄 重新整理",
"connectFailed": "連線失敗",
"tabDashboard": "📊 儀表板與配隊",
"tabAvatars": "👥 角色列表",
"tabEquipment": "🗡️ 光錐與遺器",
"tabPersistent": "💾 GaC 存檔管理",
"tabExrank": "⚡ Ex-Rank 特殊技能",
"tabJson": "📝 JSON 檔案管理",
"tabSettings": "⚙️ 系統設定",
"statAvatars": "已擁有角色",
"statLightcones": "光錐",
"statRelics": "遺器",
"serverStatusTitle": "📍 伺服器狀態與當前座標",
"lblServerModeActive": "當前運行模式",
"lblApiEndpoint": "API 閘道端點",
"lblPlaneId": "地圖位面 (Plane ID)",
"lblFloorId": "樓層 (Floor ID)",
"coords": "角色座標 XYZ",
"quickActionsTitle": "⚡ 快捷操作",
"quickActionsSubtitle": "立即向伺服器發送指令",
"btnMaxAll": "⭐ 全角色升至80級並滿魂E6",
"btnSyncPersistent": "💾 同步最新 Persistent 存檔",
"currentLineupTitle": "🎮 當前隊伍陣容",
"slot": "欄位",
"slotEmpty": "空位 (點擊新增)",
"slotTooltip": "點擊選擇角色加入此位置",
"removeFromTeam": "移出隊伍",
"searchPlaceholder": "🔍 搜尋角色名稱或 ID...",
"filterAllRarity": "全部稀有度",
"filter5Star": "5 星",
"filter4Star": "4 星",
"filterAllElements": "全部屬性",
"filterAllPaths": "全部命途",
"btnReload": "🔄 重新載入",
"avatarsLoading": "正在獲取角色資料...",
"noAvatarsFound": "未找到符合條件的角色",
"eidolonLabel": "星魂:",
"confirmMaxAll": "確定將全部角色升至80級並解鎖滿魂E6嗎?",
"maxAllSuccess": "全角色養成滿級成功!",
"avatarRankSuccess": "已調整角色 {id} 為星魂 {rank}",
"eqLcTitle": "🗡️ 背包中的光錐",
"eqLcSubtitle": "來自 freesr-data.json 的所有光錐列表",
"eqLcLoading": "正在載入光錐資料...",
"eqRelicTitle": "🛡️ 背包中的遺器",
"eqRelicSubtitle": "來自 freesr-data.json 的所有遺器列表",
"eqRelicLoading": "正在載入遺器資料...",
"itemCount": "{n} 件",
"notEquipped": "未裝備",
"equippedBy": "裝備者",
"noLcData": "暫無光錐資料",
"noRelicData": "暫無遺器資料",
"persistentTitle": "💾 GaC 存檔管理",
"persistentBadge": "獨家自訂伺服器",
"persistentSubtitle": "persistent 存檔儲存 GaC 特有的玩家狀態(主角性別/屬性、三月七命途、全域開關等)",
"persistentTbM7Title": "👤 開拓者與三月七",
"lblTbGenderElement": "主角性別與屬性",
"lblM7Path": "三月七命途型態",
"btnSaveCharSettings": "💾 儲存主角設定",
"persistentGlobalTitle": "⚙️ GaC 特殊功能開關",
"swGlobalDesc": "開啟全服銀狼專屬機制",
"castoriceGlobalDesc": "開啟全服 Castorice 專屬機制",
"btnSaveGlobalSwitch": "💾 儲存全域開關",
"exrankTitle": "⚡ Ex-Rank 特殊技能系統",
"exrankSubtitle": "在 FreeSR 中開啟特定角色的 Ex-Rank 專屬天賦與強化機制(例如景元免疫受控、飲月、黃泉)",
"btnEnableAll": "開啟全部 Ex-Rank",
"btnDisableAll": "關閉全部 Ex-Rank",
"exrankToggleSuccess": "{name}: Ex-Rank 已{status}",
"exrankAllSuccess": "全角色 Ex-Rank 已{status}",
"enabled": "啟用",
"disabled": "停用",
"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",
"lblServerMode": "伺服器模式",
"lblApiGatewayUrl": "REST API Gateway URL",
"lblPingInterval": "狀態檢測頻率 (秒)",
"btnSaveSettings": "💾 儲存設定",
"btnResetDefault": "恢復預設值",
"modalTitleCharEdit": "角色養成與配裝",
"modalBtnMaxAllChar": "⭐ 全部升至滿級",
"modalTabSkills": "⚡ 技能與行跡",
"modalTabStatus": "⚙️ 等級與星魂",
"modalTabLightcone": "🗡️ 光錐",
"modalSkillCombatTitle": "戰鬥技能等級",
"modalBtnMaxSkills": "⭐ 技能全滿 (10/10)",
"modalSkillBasic": "普攻",
"modalSkillSkill": "戰技",
"modalSkillUltra": "終結技",
"modalSkillTalent": "天賦",
"modalTracesTitle": "行跡與秘技",
"modalTraceTechnique": "⚡ 秘技 — 進入戰鬥前生效",
"traceA2": "🌟 額外能力 A2",
"traceA4": "🌟 額外能力 A4",
"traceA6": "🌟 額外能力 A6",
"traceStatNodes": "💎 全部屬性加成節點 (10個)",
"lblLevelRange": "角色等級 (1-80)",
"lblPromotionRange": "晉階等級 (0-6)",
"lblEidolonLevel": "星魂等級",
"btnResetE0": "重設 E0",
"btnMaxE6": "⭐ 滿魂 E6",
"modalEnergyTitle": "終結技能量",
"modalEnergy50": "設為 50%",
"modalEnergy100": "滿能量 100%",
"modalLcTitle": "裝備的光錐",
"modalBtnMaxLc": "⭐ 滿級滿疊光錐 (Lv.80 疊影5)",
"lblLcId": "光錐 ID",
"modalLcIdPlaceholder": "例如 21002 或 24001",
"lblLcLevel": "光錐等級 (1-80)",
"lblLcRank": "疊影階數 (S1-S5)",
"modalBtnClose": "✕ 關閉",
"modalBtnSave": "💾 儲存角色",
"pickerTitle": "選擇上陣角色",
"pickerSearchPlaceholder": "🔍 搜尋要加入隊伍的角色...",
"apiModalTitle": "⚙️ API 伺服器連線設定",
"btnCancel": "取消",
"btnSaveTest": "儲存並測試",
"toastSlotUpdated": "已更新欄位 {slot} 為: {name}",
"toastCharMaxed": "⭐ 已將 {name} 升至 Lv. 80 E6",
"toastCharSaved": "已儲存角色 {name}",
"toastAllSkillsMaxed": "⭐ 所有技能與行跡已升滿",
"toastServerSwitched": "已切換伺服器模式為: {mode}",
"tbOptions": {
"MalePhysical": "開拓者 (男) - 物理",
"FemalePhysical": "開拓者 (女) - 物理",
"MalePreservation": "開拓者 (男) - 火",
"FemalePreservation": "開拓者 (女) - 火",
"MaleHarmony": "開拓者 (男) - 同諧",
"FemaleHarmony": "開拓者 (女) - 同諧",
"MaleRemembrance": "開拓者 (男) - 記憶",
"FemaleRemembrance": "開拓者 (女) - 記憶"
},
"marchOptions": {
"MarchHunt": "三月七 - 巡獵",
"MarchPreservation": "三月七 - 存護"
},
"elements": {
"Physical": "物理",
"Fire": "火",
"Ice": "冰",
"Lightning": "雷",
"Wind": "風",
"Quantum": "量子",
"Imaginary": "虛數",
"Unknown": "未知"
},
"paths": {
"Destruction": "毀滅",
"Hunt": "巡獵",
"Erudition": "智識",
"Harmony": "同諧",
"Nihility": "虛無",
"Preservation": "存護",
"Abundance": "豐饒",
"Remembrance": "記憶",
"Unknown": "未知",
"Elation": "歡愉"
},
"settingsSaved": "設定已成功儲存!",
"settingsReset": "已恢復預設設定",
"btnE6S5": "⭐ 滿命滿精 (E6S5)",
"btnE0S1": "⚡ 零命專武 (E0S1)",
"modalTabShowcase": "🖼️ 展示卡片",
"showcaseAutoRelics": "⚡ 一鍵裝備推薦遺器",
"showcaseCopy": "📋 複製文字",
"showcaseExport": "🖼️ 匯出圖片",
"btnChangeLc": "更換光錐",
"lcPassiveTitle": "光錐技能效果",
"toastE6S5Applied": "⭐ 角色已調整為滿配 E6S5(80級、技能滿級、疊影5)!",
"toastE0S1Applied": "⚡ 角色已調整為平民畢業 E0S1(80級、技能滿級、疊影1)!",
"toastShowcaseCopied": "📋 角色配裝資訊已複製到剪貼簿!",
"toastRelicsEquipped": "⚡ 已為 {name} 裝備推薦的 +15 遺器全套!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ API Gateway 連線設定",
"settingsConnSubtitle": "配置伺服器運行模式與 REST 介面端點",
"btnTestPing": "⚡ 測試連線",
"settingsBattleTitle": "🎮 戰鬥與 FreeSR 預設配置",
"settingsBattleSubtitle": "自訂遊戲內預設戰鬥與隊伍初始化行為",
"lblDefaultEnergy": "戰鬥開局能量值 (Battle Starting Energy)",
"lblAutoSync": "自動同步至伺服器 (Auto-Sync)",
"descAutoSync": "修改角色或裝備時立即將變更發送至伺服端",
"lblDefaultCreative": "預設開啟創造模式 (Creative Mode)",
"descDefaultCreative": "允許隊伍配置重複角色及突破4人限制",
"settingsShowcaseTitle": "🖼️ 角色展示卡片設定",
"settingsShowcaseSubtitle": "自訂配裝展示卡的美觀度與展示細節",
"lblShowRolls": "顯示遺器副詞條強化次數 (Roll Counts)",
"descShowRolls": "在副詞條旁顯示強化命中的次數標籤",
"lblElementAura": "屬性光效光暈 (Element Aura Glow)",
"descElementAura": "卡片背景與氛圍光環隨角色屬性動態變換",
"settingsCacheTitle": "🧹 快取管理與系統重設",
"settingsCacheSubtitle": "清理瀏覽器暫存快取或將工具恢復出廠設定",
"lblCacheSize": "LocalStorage 儲存佔用:",
"btnClearCache": "🧹 清除瀏覽器快取",
"btnFactoryReset": "🔄 恢復出廠設定",
"toastPingSuccess": "⚡ 連線成功!延遲: {ms} ms",
"toastPingFailed": "❌ 無法連線到 Gateway,請檢查伺服端狀態",
"toastCacheCleared": "🧹 瀏覽器快取已清空",
"qaLineupE0S1Title": "全隊一鍵 E0S1",
"qaLineupE0S1Desc": "將當前編隊角色設為 0命+1疊專武",
"qaLineupRelicsTitle": "一鍵全隊神裝",
"qaLineupRelicsDesc": "為編隊4人一鍵穿戴 +15 畢業遺器",
"lblPersistenceInfo": "伺服端存檔與資料管理",
"modalTabOverview": "角色總覽",
"modalTabRelics": "遺器與配裝",
"attrBasic": "◆ 基礎屬性",
"attrAdvanced": "◆ 進階屬性",
"attrElemental": "◆ 傷害屬性",
"statMaxHp": "生命上限",
"statAtk": "攻擊力",
"statDef": "防禦力",
"statSpd": "速度",
"statCritRate": "暴擊率",
"statCritDmg": "暴擊傷害",
"statBreakEffect": "擊破特攻",
"statHealBoost": "治療量加成",
"statMaxEnergy": "能量上限",
"statEnergyRegen": "能量恢復效率",
"statEhr": "效果命中",
"statRes": "效果抵抗",
"statDmgBoost": "{element}屬性傷害提高",
"relicPickerTitle": "🛡️ 遺器管理: {slot}",
"tabQuickGen": "⚡ 快速生成與推薦",
"tabFromInventory": "📦 倉庫選擇",
"btnEquipInstant": "⚡ 立即裝備此件 (+15 5★ 完美副詞條)",
"btnUnequip": "❌ 卸下此遺器",
"currentEquipped": "當前裝備中",
"noRelicEquipped": "該部位尚未裝備遺器",
"chooseMainStat": "選擇主詞條:",
"chooseSet": "選擇遺器套裝:",
"recommendedBadge": "推薦",
"overviewStatsTitle": "⚔️ 戰鬥面板 (Combat Stats)",
"overviewStatsNote": "已計入光錐與遺器屬性加成",
"overviewEquippedLc": "🗡️ 當前裝備光錐",
"overviewEquippedRelics": "🛡️ 遺器套裝效果",
"modalRelicsTitle": "🛡️ 遺器配裝 (6 部位)",
"modalRelicsSubtitle": "點擊單一部位更換,或一鍵穿戴推薦套裝",
"btnAutoEquipRelics": "⚡ 一鍵穿戴推薦套裝",
"btnClearAllRelics": "🧹 一鍵卸下全部",
"activeSetEffects": "✨ 當前生效的套裝效果",
"modalColLevel": "等級",
"lblPromotion": "突破階段",
"slotPickerTitle": "🛡️ 選擇要裝備的遺器",
"quickGenRecTitle": "⚡ 為該部位生成推薦遺器",
"quickGenRecDesc": "自動生成適配的 5★ +15 最優套裝與主詞條",
"btnGenAndEquip": "生成並穿戴",
"selectFromInventory": "從庫存中選擇對應部位",
"btnAllE0S1": "⚡ 全員 E0S1",
"qaGachabaseTitle": "從 Gachabase 獲取資料",
"qaGachabaseDesc": "匯入最新的測試服/解密角色與光錐資料",
"synergyTitle": "隊伍協同與弱點破盾分析",
"synergySubtitle": "分析弱點屬性覆蓋度、隊伍角色定位均衡性與練度準備狀態",
"synergyBreakCoverage": "🎯 弱點破盾屬性覆蓋",
"synergyRoleBalance": "🛡️ 隊伍構成與角色分工",
"synergyEquipmentTitle": "📊 裝備準備度與平均等級",
"synergyAvgLevel": "平均等級",
"synergyAvgEidolon": "平均星魂",
"synergyLcEquipped": "光錐裝配",
"synergyRelicFull": "遺器滿配",
"synergyCoverageBadge": "覆蓋 {count}/7 屬性",
"synergyNoInTeam": "未在隊伍中",
"roleDps": "🗡️ 輸出 (DPS)",
"roleSupport": "⚡ 輔助/減益",
"roleSustain": "🛡️ 生存 (治療/護盾)",
"roleSpecialist": "🔮 特殊/追擊",
"adviceEmpty": "目前隊伍尚無角色,請在上方選擇角色加入隊伍。",
"adviceNoSustain": "⚠️ 建議:隊伍缺乏防護或治療角色(存護/豐饒),建議加入1名以保障戰鬥生存能力。",
"adviceNoDps": "💡 建議:隊伍全為輔助角色,缺少主力輸出擔當(毀滅/巡獵/智識)。",
"adviceNoSupport": "💡 建議:隊伍有輸出但缺乏增益或減益輔佐(同諧/虛無),加入輔助可顯著提高隊伍總傷害。",
"adviceBalanced": "✅ 陣容均衡:隊伍架構完備,兼備輸出、增益減益輔助與治療護盾生存,隨時準備出征!",
"consoleTitle": "GM 命令列主控台與即時記錄",
"consoleSubtitle": "即時向伺服器發送 GM 指令並追蹤封包日誌與執行狀態",
"consoleCopyLog": "📋 複製記錄",
"consoleClearLog": "🗑️ 清空記錄",
"consoleQuickTitle": "⚡ 常用捷徑命令",
"consolePlaceholder": "輸入 GM 命令,例如 /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "發送指令",
"consoleHistoryHint": "💡 支援按 ↑ ↓ 鍵快速選擇歷史命令",
"consoleOnline": "● 伺服器在線",
"consoleOffline": "○ 離線模式(本機快取執行)",
"consoleLogCopied": "📋 全部日誌已複製到剪貼簿!",
"consoleLogCopyFailed": "❌ 無法複製日誌",
"consoleLogCleared": "終端日誌已清空",
"btnGachabaseSync": "🌐 同步 Gachabase",
"tabPersistentGaC": "💾 GaC 存檔管理",
"tabPersistentFirefly": "👤 開拓者與三月七",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "疊影等階",
"lcPickerTitle": "🗡️ 選擇要裝備的光錐",
"lcPickerSigTitle": "⭐ 推薦專屬光錐 (Signature)",
"lcPickerEquipSig": "⚡ 立即裝備",
"lcPickerUnequip": "✕ 卸下光錐"
},
"ja": {
"ahaGlobalDesc": "全サーバーで星神・アッハの特殊パッシブを有効化",
"btnAddLc": "+ 光円錐を追加",
"btnAddRelic": "+ 遺物を追加",
"btnAddSlot": "+ スロット追加",
"lblCreativeMode": "クリエイティブモード",
"badgeCreative": "クリエイティブ",
"toastSlotRemoved": "スロット {slot} を削除しました",
"quickActionsBadge": "クイックツール",
"qaEnergy50Title": "チームEP 50%",
"qaEnergy50Desc": "戦闘開始時の標準EP",
"qaEnergy100Title": "チームEP 100%",
"qaEnergy100Desc": "必殺技即時発動可能",
"qaUnlockAllTitle": "全キャラ解放",
"qaUnlockAllDesc": "70体以上の全キャラを完凸で追加",
"qaAddLcsTitle": "全★5光円錐を追加",
"qaAddLcsDesc": "モチーフ光円錐(重畳5)を倉庫に追加",
"qaTeleportTitle": "星穹列車へテレポート",
"qaTeleportDesc": "安全エリアの客車へ帰還",
"qaClearLineupTitle": "編成をクリア",
"qaClearLineupDesc": "全スロットをリセットして再編成",
"toastEnergy50": "チームEPを50%に設定しました",
"toastEnergy100": "チームEPを100%に設定しました",
"toastUnlockedAll": "全キャラ(完凸)を解放しました",
"toastAddedAllLcs": "全★5光円錐を追加しました",
"toastTeleportedTrain": "星穹列車の客車へテレポートしました",
"toastLineupCleared": "編成をクリアしました",
"modalAddLcTitle": "🗡️ FreeSRに光円錐を追加",
"modalAddRelicTitle": "🛡️ FreeSRに遺物を追加",
"lblSelectLc": "光円錐を選択",
"lblSelectRelicSet": "遺物セットを選択",
"lblRelicSlot": "部位",
"lblMainAffix": "メインステータス",
"lblEquipAvatar": "キャラクターに装備",
"unassigned": "-- 未装備(インベントリ) --",
"btnAddLcSubmit": "💾 FreeSRに追加",
"btnAddRelicSubmit": "💾 FreeSRに追加",
"toastLcAdded": "FreeSRに光円錐を追加しました",
"toastRelicAdded": "FreeSRに遺物を追加しました",
"deleteItem": "削除",
"toastItemDeleted": "アイテムを削除しました",
"appName": "GaC-Srtool",
"appSubtitle": "スターレイル FreeSR & サーバーコントローラー",
"online": "接続完了",
"offline": "オフライン",
"checking": "確認中...",
"refresh": "🔄 更新",
"connectFailed": "接続失敗",
"tabDashboard": "📊 ダッシュボード・編成",
"tabAvatars": "👥 キャラクター",
"tabEquipment": "🗡️ 光円錐と遺物",
"tabPersistent": "💾 GaC セーブ管理",
"tabExrank": "⚡ Ex-Rank 特殊スキル",
"tabJson": "📝 JSON 管理",
"tabSettings": "⚙️ 設定",
"statAvatars": "所持キャラクター",
"statLightcones": "光円錐",
"statRelics": "遺物",
"serverStatusTitle": "📍 サーバー状態と現在座標",
"lblServerModeActive": "稼働中のサーバーモード",
"lblApiEndpoint": "API ゲートウェイエンドポイント",
"lblPlaneId": "マップ平面 (Plane ID)",
"lblFloorId": "フロア (Floor ID)",
"coords": "キャラクター座標 XYZ",
"quickActionsTitle": "⚡ クイック操作",
"quickActionsSubtitle": "サーバーへ即時コマンドを送信",
"btnMaxAll": "⭐ 全キャラ Lv.80 & 完凸E6にする",
"btnSyncPersistent": "💾 最新 Persistent データを同期",
"currentLineupTitle": "🎮 現在の編成",
"slot": "枠",
"slotEmpty": "空き (クリックして追加)",
"slotTooltip": "クリックしてこの枠にキャラクターを選択",
"removeFromTeam": "編成から外す",
"searchPlaceholder": "🔍 キャラ名またはIDで検索...",
"filterAllRarity": "すべてのレアリティ",
"filter5Star": "★5",
"filter4Star": "★4",
"filterAllElements": "すべての属性",
"filterAllPaths": "すべての運命",
"btnReload": "🔄 再読み込み",
"avatarsLoading": "キャラクターデータを読み込み中...",
"noAvatarsFound": "該当するキャラクターが見つかりません",
"eidolonLabel": "星魂:",
"confirmMaxAll": "全キャラクターをレベル80・星魂E6まで育成しますか?",
"maxAllSuccess": "全キャラクターの最大化が完了しました!",
"avatarRankSuccess": "キャラクター {id} を星魂 {rank} に変更しました",
"eqLcTitle": "🗡️ 所持光円錐一覧",
"eqLcSubtitle": "freesr-data.json からの全光円錐一覧",
"eqLcLoading": "光円錐データを読み込み中...",
"eqRelicTitle": "🛡️ 所持遺物一覧",
"eqRelicSubtitle": "freesr-data.json からの全遺物一覧",
"eqRelicLoading": "遺物データを読み込み中...",
"itemCount": "{n} 個",
"notEquipped": "未装備",
"equippedBy": "装備者",
"noLcData": "光円錐データがありません",
"noRelicData": "遺物データがありません",
"persistentTitle": "💾 GaC セーブ管理",
"persistentBadge": "専用カスタムサーバー",
"persistentSubtitle": "persistent ファイルには、開拓者の性別/属性、三月なのかの運命、グローバル機能スイッチなど GaC 専用設定が保存されます",
"persistentTbM7Title": "👤 開拓者 & 三月なのか",
"lblTbGenderElement": "開拓者の性別・属性",
"lblM7Path": "三月なのかの運命形態",
"btnSaveCharSettings": "💾 設定を保存",
"persistentGlobalTitle": "⚙️ GaC 特殊機能スイッチ",
"swGlobalDesc": "サーバー全体で銀狼の特殊機能を有効化",
"castoriceGlobalDesc": "サーバー全体で Castorice の特殊機能を有効化",
"btnSaveGlobalSwitch": "💾 グローバル設定を保存",
"exrankTitle": "⚡ Ex-Rank 特殊スキルシステム",
"exrankSubtitle": "FreeSR で特定キャラの Ex-Rank 専用天賦や特殊メカニクスを有効化(景元の行動制限無効、飲月、黄泉など)",
"btnEnableAll": "全 Ex-Rank を有効化",
"btnDisableAll": "全 Ex-Rank を無効化",
"exrankToggleSuccess": "{name}: Ex-Rank を{status}にしました",
"exrankAllSuccess": "全キャラの Ex-Rank を{status}にしました",
"enabled": "有効",
"disabled": "無効",
"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を変更できます",
"lblServerMode": "サーバーモード",
"lblApiGatewayUrl": "REST API Gateway URL",
"lblPingInterval": "ヘルスチェック頻度 (秒)",
"btnSaveSettings": "💾 設定を保存",
"btnResetDefault": "デフォルトに戻す",
"modalTitleCharEdit": "キャラクター育成・カスタマイズ",
"modalBtnMaxAllChar": "⭐ すべてMAXにする",
"modalTabSkills": "⚡ スキルと軌跡",
"modalTabStatus": "⚙️ レベル & 星魂",
"modalTabLightcone": "🗡️ 光円錐",
"modalSkillCombatTitle": "戦闘スキルレベル",
"modalBtnMaxSkills": "⭐ スキル全MAX (10/10)",
"modalSkillBasic": "通常攻撃",
"modalSkillSkill": "戦闘スキル",
"modalSkillUltra": "必殺技",
"modalSkillTalent": "天賦",
"modalTracesTitle": "軌跡と秘技",
"modalTraceTechnique": "⚡ 秘技 — 戦闘突入前に有効化",
"traceA2": "🌟 追加能力 A2",
"traceA4": "🌟 追加能力 A4",
"traceA6": "🌟 追加能力 A6",
"traceStatNodes": "💎 全ステータスボーナス (10個)",
"lblLevelRange": "レベル (1-80)",
"lblPromotionRange": "昇格段階 (0-6)",
"lblEidolonLevel": "星魂段階",
"btnResetE0": "E0にリセット",
"btnMaxE6": "⭐ 完凸 E6",
"modalEnergyTitle": "必殺技EP",
"modalEnergy50": "50% に設定",
"modalEnergy100": "100% (MAX)",
"modalLcTitle": "装備中の光円錐",
"modalBtnMaxLc": "⭐ 光円錐MAX (Lv.80 重畳5)",
"lblLcId": "光円錐 ID",
"modalLcIdPlaceholder": "例: 21002 または 24001",
"lblLcLevel": "光円錐レベル (1-80)",
"lblLcRank": "重畳段階 (S1-S5)",
"modalBtnClose": "✕ 閉じる",
"modalBtnSave": "💾 キャラクター保存",
"pickerTitle": "編成キャラクターを選択",
"pickerSearchPlaceholder": "🔍 編成するキャラクターを検索...",
"apiModalTitle": "⚙️ API サーバー接続設定",
"btnCancel": "キャンセル",
"btnSaveTest": "保存 & テスト",
"toastSlotUpdated": "枠 {slot} を {name} に更新しました",
"toastCharMaxed": "⭐ {name} を Lv.80 E6 に育成完了",
"toastCharSaved": "{name} の設定を保存しました",
"toastAllSkillsMaxed": "⭐ 全スキルと軌跡を最大化しました",
"toastServerSwitched": "サーバーモードを {mode} に切り替えました",
"tbOptions": {
"MalePhysical": "開拓者 (男) - 物理",
"FemalePhysical": "開拓者 (女) - 物理",
"MalePreservation": "開拓者 (男) - 炎",
"FemalePreservation": "開拓者 (女) - 炎",
"MaleHarmony": "開拓者 (男) - 調和",
"FemaleHarmony": "開拓者 (女) - 調和",
"MaleRemembrance": "開拓者 (男) - 記憶",
"FemaleRemembrance": "開拓者 (女) - 記憶"
},
"marchOptions": {
"MarchHunt": "三月なのか - 巡狩",
"MarchPreservation": "三月なのか - 存護"
},
"elements": {
"Physical": "物理",
"Fire": "炎",
"Ice": "氷",
"Lightning": "雷",
"Wind": "風",
"Quantum": "量子",
"Imaginary": "虚数",
"Unknown": "不明"
},
"paths": {
"Destruction": "壊滅",
"Hunt": "巡狩",
"Erudition": "知恵",
"Harmony": "調和",
"Nihility": "虚無",
"Preservation": "存護",
"Abundance": "豊穣",
"Remembrance": "記憶",
"Unknown": "不明",
"Elation": "愉悦"
},
"settingsSaved": "設定を保存しました!",
"settingsReset": "デフォルト設定に戻しました",
"btnE6S5": "⭐ 完凸完重 (E6S5)",
"btnE0S1": "⚡ 無凸モチーフ (E0S1)",
"modalTabShowcase": "🖼️ ショーケースカード",
"showcaseAutoRelics": "⚡ 推奨遺物を自動装備",
"showcaseCopy": "📋 テキストをコピー",
"showcaseExport": "🖼️ 画像として保存",
"btnChangeLc": "光円錐を変更",
"lcPassiveTitle": "光円錐スキル効果",
"toastE6S5Applied": "⭐ キャラクターを完全育成 E6S5(Lv.80、スキル最大、重畳5)に設定しました!",
"toastE0S1Applied": "⚡ キャラクターを E0S1(Lv.80、スキル最大、重畳1)に設定しました!",
"toastShowcaseCopied": "📋 ビルド情報をクリップボードにコピーしました!",
"toastRelicsEquipped": "⚡ {name} に推奨 +15 遺物フルセットを装備しました!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ API Gateway 接続設定",
"settingsConnSubtitle": "サーバーモードと REST エンドポイントの設定",
"btnTestPing": "⚡ 接続テスト",
"settingsBattleTitle": "🎮 戦闘&FreeSR デフォルト設定",
"settingsBattleSubtitle": "戦闘開始時の挙動やチーム編成のデフォルト動作を調整",
"lblDefaultEnergy": "戦闘開始時のチームEP (Starting Energy)",
"lblAutoSync": "サーバーへの自動同期 (Auto-Sync)",
"descAutoSync": "キャラクターや装備を変更した際、即座にサーバーへ反映します",
"lblDefaultCreative": "クリエイティブモードをデフォルトで有効化",
"descDefaultCreative": "同キャラ重複編成や4枠以上のチーム編成を常時許可します",
"settingsShowcaseTitle": "🖼️ ショーケースカード表示設定",
"settingsShowcaseSubtitle": "ビルド表示カードのデザインと詳細項目をカスタマイズ",
"lblShowRolls": "遺物サブステータスの強化回数を表示",
"descShowRolls": "サブステータスの強化ヒット回数タグを表示します",
"lblElementAura": "属性オーラ発光エフェクト",
"descElementAura": "キャラクターの属性に合わせてカード背景と光彩を変化させます",
"settingsCacheTitle": "🧹 キャッシュ管理&システムリセット",
"settingsCacheSubtitle": "ブラウザの一時データを消去するか、ツールを初期状態に戻します",
"lblCacheSize": "LocalStorage メモリ使用量:",
"btnClearCache": "🧹 ブラウザキャッシュを消去",
"btnFactoryReset": "🔄 初期設定に戻す",
"toastPingSuccess": "⚡ 接続成功! レイテンシ: {ms} ms",
"toastPingFailed": "❌ Gateway への接続に失敗しました。サーバーを確認してください",
"toastCacheCleared": "🧹 ブラウザキャッシュをクリアしました",
"qaLineupE0S1Title": "チーム全員を E0S1 に設定",
"qaLineupE0S1Desc": "編成キャラを無凸+モチーフ光円錐重畳1に設定",
"qaLineupRelicsTitle": "チーム全員にフル装備",
"qaLineupRelicsDesc": "編成中の4人に推奨 +15 遺物を自動装備",
"lblPersistenceInfo": "サーバーセーブデータ&ファイル管理",
"modalTabOverview": "キャラクター概要",
"modalTabRelics": "遺物&装備",
"attrBasic": "◆ 基礎ステータス",
"attrAdvanced": "◆ 上級ステータス",
"attrElemental": "◆ 属性ステータス",
"statMaxHp": "最大HP",
"statAtk": "攻撃力",
"statDef": "防御力",
"statSpd": "速度",
"statCritRate": "会心率",
"statCritDmg": "会心ダメージ",
"statBreakEffect": "撃破特効",
"statHealBoost": "治癒量バフ",
"statMaxEnergy": "最大EP",
"statEnergyRegen": "EP回復効率",
"statEhr": "効果命中",
"statRes": "効果抵抗",
"statDmgBoost": "{element}属性与ダメージ増加",
"relicPickerTitle": "🛡️ 遺物管理: {slot}",
"tabQuickGen": "⚡ クイック生成とおすすめ",
"tabFromInventory": "📦 所持品から選択",
"btnEquipInstant": "⚡ 今すぐ装備 (+15 5★ 神サブ)",
"btnUnequip": "❌ この遺物を外す",
"currentEquipped": "現在装備中",
"noRelicEquipped": "この部位には何も装備されていません",
"chooseMainStat": "メインステータスを選択:",
"chooseSet": "遺物セットを選択:",
"recommendedBadge": "推奨",
"overviewStatsTitle": "⚔️ 戦闘ステータス (Combat Stats)",
"overviewStatsNote": "光円錐および遺物のボーナスを含みます",
"overviewEquippedLc": "🗡️ 装備中の光円錐",
"overviewEquippedRelics": "🛡️ 遺物&セット効果",
"modalRelicsTitle": "🛡️ 遺物装備 (全6スロット)",
"modalRelicsSubtitle": "各スロットをクリックして変更、または推奨セットを一括装備",
"btnAutoEquipRelics": "⚡ 推奨セットを一括装備",
"btnClearAllRelics": "🧹 すべて外す",
"activeSetEffects": "✨ 発動中のセット効果",
"modalColLevel": "レベル",
"lblPromotion": "昇格段階",
"slotPickerTitle": "🛡️ 装備する遺物を選択",
"quickGenRecTitle": "⚡ この部位の推奨遺物を生成",
"quickGenRecDesc": "最適なセットとメインステータスの 5★ +15 遺物を生成",
"btnGenAndEquip": "生成して装備",
"selectFromInventory": "インベントリから選択",
"btnAllE0S1": "⚡ 全員 E0S1",
"qaGachabaseTitle": "Gachabase から最新データを取得",
"qaGachabaseDesc": "最新のベータ版・データマイニングキャラや光円錐をインポート",
"synergyTitle": "チームシナジー&弱点撃破分析",
"synergySubtitle": "弱点撃破の属性網羅度、役割バランス、装備育成状況を分析",
"synergyBreakCoverage": "🎯 弱点撃破属性カバー",
"synergyRoleBalance": "🛡️ チーム編成と役割分担",
"synergyEquipmentTitle": "📊 装備の準備状況と平均レベル",
"synergyAvgLevel": "平均レベル",
"synergyAvgEidolon": "平均星魂",
"synergyLcEquipped": "光円錐装備",
"synergyRelicFull": "遺物フル装備",
"synergyCoverageBadge": "{count}/7 属性カバー",
"synergyNoInTeam": "未編成",
"roleDps": "🗡️ アタッカー (DPS)",
"roleSupport": "⚡ サポート/デバフ",
"roleSustain": "🛡️ 耐久 (回復/シールド)",
"roleSpecialist": "🔮 特殊/追加攻撃",
"adviceEmpty": "チームにキャラクターが編成されていません。上部でキャラクターを選択してください。",
"adviceNoSustain": "⚠️ アドバイス:耐久枠(存護/豊饒)がいません。生存率を高めるため1枠編成することをおすすめします。",
"adviceNoDps": "💡 アドバイス:サポート主体でメインアタッカー(壊滅/巡狩/知恵)が不足しています。",
"adviceNoSupport": "💡 アドバイス:アタッカーはいますがバフ/デバフ役(調和/虚無)がいません。サポートを加えることで火力が大幅に向上します。",
"adviceBalanced": "✅ バランス抜群:アタッカー、バフ/デバフ役、回復/シールド役が完璧に揃った理想の編成です!",
"consoleTitle": "GMコマンドコンソール&リアルタイムログ",
"consoleSubtitle": "リアルタイムでGMコマンドを送信し、パケットログと実行状況を追跡",
"consoleCopyLog": "📋 ログをコピー",
"consoleClearLog": "🗑️ ログ消去",
"consoleQuickTitle": "⚡ よく使うクイックコマンド",
"consolePlaceholder": "GMコマンドを入力 (例: /heal, /max, /teleport 20411, /give 102 1000...)",
"consoleSend": "送信",
"consoleHistoryHint": "💡 ↑ ↓ キーで直近のコマンド履歴を呼び出せます",
"consoleOnline": "● サーバーオンライン",
"consoleOffline": "○ オフライン(ローカル実行モード)",
"consoleLogCopied": "📋 すべてのログをクリップボードにコピーしました!",
"consoleLogCopyFailed": "❌ ログのコピーに失敗しました",
"consoleLogCleared": "ターミナルログを消去しました",
"btnGachabaseSync": "🌐 Gachabase同期",
"tabPersistentGaC": "💾 GaCセーブデータ管理",
"tabPersistentFirefly": "👤 開拓者&三月なのか",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "重畳ランク",
"lcPickerTitle": "🗡️ 装備する光円錐を選択",
"lcPickerSigTitle": "⭐ 推奨モチーフ光円錐 (Signature)",
"lcPickerEquipSig": "⚡ これを装備",
"lcPickerUnequip": "✕ 光円錐を外す"
},
"ko": {
"ahaGlobalDesc": "서버 전체 에이언즈★아하 특수 패시브 활성화",
"btnAddLc": "+ 광추 추가",
"btnAddRelic": "+ 유물 추가",
"btnAddSlot": "+ 슬롯 추가",
"lblCreativeMode": "크리에이티브 모드",
"badgeCreative": "크리에이티브",
"toastSlotRemoved": "슬롯 {slot}이(가) 삭제되었습니다",
"quickActionsBadge": "빠른 작업",
"qaEnergy50Title": "파티 에너지 50%",
"qaEnergy50Desc": "전투 진입 기본 표준 에너지",
"qaEnergy100Title": "파티 에너지 100%",
"qaEnergy100Desc": "필살기 즉시 사용 가능",
"qaUnlockAllTitle": "전체 캐릭터 해금",
"qaUnlockAllDesc": "70명 이상의 모든 캐릭터 풀돌 추가",
"qaAddLcsTitle": "모든 5★ 광추 추가",
"qaAddLcsDesc": "전용 광추 5중첩 가방 추가",
"qaTeleportTitle": "은하열차로 워프",
"qaTeleportDesc": "안전 구역인 객차로 귀환",
"qaClearLineupTitle": "파티 비우기",
"qaClearLineupDesc": "모든 슬롯 초기화 후 재편성",
"toastEnergy50": "파티 에너지를 50%로 설정했습니다",
"toastEnergy100": "파티 에너지를 100%로 설정했습니다",
"toastUnlockedAll": "모든 캐릭터(풀돌)를 해금했습니다",
"toastAddedAllLcs": "모든 5★ 광추를 추가했습니다",
"toastTeleportedTrain": "은하열차 객차로 워프했습니다",
"toastLineupCleared": "파티를 초기화했습니다",
"modalAddLcTitle": "🗡️ FreeSR에 광추 추가",
"modalAddRelicTitle": "🛡️ FreeSR에 유물 추가",
"lblSelectLc": "광추 선택",
"lblSelectRelicSet": "유물 세트 선택",
"lblRelicSlot": "부위",
"lblMainAffix": "메인 속성",
"lblEquipAvatar": "캐릭터에 장착",
"unassigned": "-- 미장착 (인벤토리) --",
"btnAddLcSubmit": "💾 FreeSR에 추가",
"btnAddRelicSubmit": "💾 FreeSR에 추가",
"toastLcAdded": "FreeSR에 광추가 추가되었습니다",
"toastRelicAdded": "FreeSR에 유물이 추가되었습니다",
"deleteItem": "삭제",
"toastItemDeleted": "아이템이 삭제되었습니다",
"appName": "GaC-Srtool",
"appSubtitle": "스타레일 FreeSR & 서버 컨트롤러",
"online": "연결됨",
"offline": "오프라인",
"checking": "확인 중...",
"refresh": "🔄 새로고침",
"connectFailed": "연결 실패",
"tabDashboard": "📊 대시보드 및 파티",
"tabAvatars": "👥 캐릭터",
"tabEquipment": "🗡️ 광추 및 유물",
"tabPersistent": "💾 GaC 세이브 관리",
"tabExrank": "⚡ Ex-Rank 특수 스킬",
"tabJson": "📝 JSON 관리",
"tabSettings": "⚙️ 설정",
"statAvatars": "보유 캐릭터",
"statLightcones": "광추",
"statRelics": "유물",
"serverStatusTitle": "📍 서버 상태 및 현재 좌표",
"lblServerModeActive": "활성 서버 모드",
"lblApiEndpoint": "API 게이트웨이 엔드포인트",
"lblPlaneId": "플레인 ID",
"lblFloorId": "층 ID",
"coords": "캐릭터 좌표 XYZ",
"quickActionsTitle": "⚡ 빠른 작업",
"quickActionsSubtitle": "서버로 즉시 명령 전송",
"btnMaxAll": "⭐ 모든 캐릭터 80레벨 및 6성흔 달성",
"btnSyncPersistent": "💾 최신 Persistent 데이터 동기화",
"currentLineupTitle": "🎮 현재 파티",
"slot": "슬롯",
"slotEmpty": "비어 있음 (클릭하여 추가)",
"slotTooltip": "이 슬롯에 캐릭터를 선택하려면 클릭",
"removeFromTeam": "파티에서 제거",
"searchPlaceholder": "🔍 캐릭터 이름 또는 ID 검색...",
"filterAllRarity": "모든 희귀도",
"filter5Star": "5성",
"filter4Star": "4성",
"filterAllElements": "모든 속성",
"filterAllPaths": "모든 운명의 길",
"btnReload": "🔄 다시 로드",
"avatarsLoading": "캐릭터 데이터를 불러오는 중...",
"noAvatarsFound": "조건에 맞는 캐릭터가 없습니다",
"eidolonLabel": "성흔:",
"confirmMaxAll": "모든 캐릭터를 레벨 80 및 성흔 6으로 육성하시겠습니까?",
"maxAllSuccess": "모든 캐릭터 최대치 달성 완료!",
"avatarRankSuccess": "캐릭터 {id} 성흔을 {rank}(으)로 변경했습니다",
"eqLcTitle": "🗡️ 보유 광추 목록",
"eqLcSubtitle": "freesr-data.json의 모든 광추 목록",
"eqLcLoading": "광추 데이터 불러오는 중...",
"eqRelicTitle": "🛡️ 보유 유물 목록",
"eqRelicSubtitle": "freesr-data.json의 모든 유물 목록",
"eqRelicLoading": "유물 데이터 불러오는 중...",
"itemCount": "{n}개",
"notEquipped": "미장착",
"equippedBy": "장착 캐릭터",
"noLcData": "광추 데이터가 없습니다",
"noRelicData": "유물 데이터가 없습니다",
"persistentTitle": "💾 GaC 세이브 관리",
"persistentBadge": "자체 커스텀 서버",
"persistentSubtitle": "persistent 파일은 개척자 성별/속성, Mar. 7th 운명의 길, 전역 기능 스위치 등 GaC 전용 설정을 저장합니다",
"persistentTbM7Title": "👤 개척자 & Mar. 7th",
"lblTbGenderElement": "개척자 성별 및 속성",
"lblM7Path": "Mar. 7th 운명의 길 형태",
"btnSaveCharSettings": "💾 캐릭터 설정 저장",
"persistentGlobalTitle": "⚙️ GaC 특수 기능 스위치",
"swGlobalDesc": "서버 전체 은랑 특수 메커니즘 활성화",
"castoriceGlobalDesc": "서버 전체 Castorice 특수 메커니즘 활성화",
"btnSaveGlobalSwitch": "💾 전역 스위치 저장",
"exrankTitle": "⚡ Ex-Rank 특수 스킬 시스템",
"exrankSubtitle": "FreeSR에서 특정 캐릭터의 Ex-Rank 특성 활성화 (경원 제어 면역, 단항 음월, 아케론 등)",
"btnEnableAll": "모든 Ex-Rank 활성화",
"btnDisableAll": "모든 Ex-Rank 비활성화",
"exrankToggleSuccess": "{name}: Ex-Rank {status}",
"exrankAllSuccess": "모든 캐릭터 Ex-Rank {status}",
"enabled": "활성화됨",
"disabled": "비활성화됨",
"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 변경 가능",
"lblServerMode": "서버 모드",
"lblApiGatewayUrl": "REST API Gateway URL",
"lblPingInterval": "상태 확인 간격 (초)",
"btnSaveSettings": "💾 설정 저장",
"btnResetDefault": "기본값 복원",
"modalTitleCharEdit": "캐릭터 육성 및 세팅",
"modalBtnMaxAllChar": "⭐ 모두 최대치로 육성",
"modalTabSkills": "⚡ 스킬 및 행적",
"modalTabStatus": "⚙️ 레벨 & 성흔",
"modalTabLightcone": "🗡️ 광추",
"modalSkillCombatTitle": "전투 스킬 레벨",
"modalBtnMaxSkills": "⭐ 모든 스킬 최대치 (10/10)",
"modalSkillBasic": "일반 공격",
"modalSkillSkill": "전투 스킬",
"modalSkillUltra": "필살기",
"modalSkillTalent": "특성",
"modalTracesTitle": "행적 및 비술",
"modalTraceTechnique": "⚡ 비술 — 전투 진입 전 활성화",
"traceA2": "🌟 추가 능력 A2",
"traceA4": "🌟 추가 능력 A4",
"traceA6": "🌟 추가 능력 A6",
"traceStatNodes": "💎 모든 스탯 보너스 노드 (10개)",
"lblLevelRange": "레벨 (1-80)",
"lblPromotionRange": "승급 단계 (0-6)",
"lblEidolonLevel": "성흔 레벨",
"btnResetE0": "E0 초기화",
"btnMaxE6": "⭐ 풀성흔 E6",
"modalEnergyTitle": "필살기 에너지",
"modalEnergy50": "50% 설정",
"modalEnergy100": "100% 충전",
"modalLcTitle": "장착된 광추",
"modalBtnMaxLc": "⭐ 광추 최대치 (80레벨 중첩5)",
"lblLcId": "광추 ID",
"modalLcIdPlaceholder": "예: 21002 또는 24001",
"lblLcLevel": "광추 레벨 (1-80)",
"lblLcRank": "중첩 단계 (S1-S5)",
"modalBtnClose": "✕ 닫기",
"modalBtnSave": "💾 캐릭터 저장",
"pickerTitle": "파티 배치 캐릭터 선택",
"pickerSearchPlaceholder": "🔍 배치할 캐릭터 검색...",
"apiModalTitle": "⚙️ API 서버 연결 설정",
"btnCancel": "취소",
"btnSaveTest": "저장 및 테스트",
"toastSlotUpdated": "{slot}번 슬롯을 {name}(으)로 업데이트했습니다",
"toastCharMaxed": "⭐ {name}을(를) 80레벨 6성흔으로 육성 완료",
"toastCharSaved": "{name} 캐릭터 저장 완료",
"toastAllSkillsMaxed": "⭐ 모든 스킬과 행적이 최대치로 설정되었습니다",
"toastServerSwitched": "서버 모드를 {mode}(으)로 변경했습니다",
"tbOptions": {
"MalePhysical": "개척자 (남) - 물리",
"FemalePhysical": "개척자 (여) - 물리",
"MalePreservation": "개척자 (남) - 화염",
"FemalePreservation": "개척자 (여) - 화염",
"MaleHarmony": "개척자 (남) - 화합",
"FemaleHarmony": "개척자 (여) - 화합",
"MaleRemembrance": "개척자 (남) - 기억",
"FemaleRemembrance": "개척자 (여) - 기억"
},
"marchOptions": {
"MarchHunt": "Mar. 7th - 수렵",
"MarchPreservation": "Mar. 7th - 보존"
},
"elements": {
"Physical": "물리",
"Fire": "화염",
"Ice": "얼음",
"Lightning": "번개",
"Wind": "바람",
"Quantum": "양자",
"Imaginary": "허수",
"Unknown": "미확인"
},
"paths": {
"Destruction": "파멸",
"Hunt": "수렵",
"Erudition": "지식",
"Harmony": "화합",
"Nihility": "공허",
"Preservation": "보존",
"Abundance": "풍요",
"Remembrance": "기억",
"Unknown": "미확인",
"Elation": "환락"
},
"settingsSaved": "설정이 저장되었습니다!",
"settingsReset": "기본 설정으로 복원되었습니다",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ 쇼케이스 카드",
"showcaseAutoRelics": "⚡ 추천 유물 자동 장착",
"showcaseCopy": "📋 텍스트 복사",
"showcaseExport": "🖼️ 이미지 내보내기",
"btnChangeLc": "광추 변경",
"lcPassiveTitle": "광추 스킬 효과",
"toastE6S5Applied": "⭐ 캐릭터를 E6S5(80레벨, 풀스킬, 중첩5)로 설정했습니다!",
"toastE0S1Applied": "⚡ 캐릭터를 E0S1(80레벨, 풀스킬, 중첩1)로 설정했습니다!",
"toastShowcaseCopied": "📋 세팅 정보가 클립보드에 복사되었습니다!",
"toastRelicsEquipped": "⚡ {name}에게 최적 +15 유물 풀세트를 장착했습니다!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ API Gateway 연결 설정",
"settingsConnSubtitle": "서버 모드 및 REST 엔드포인트 설정",
"btnTestPing": "⚡ 연결 테스트",
"settingsBattleTitle": "🎮 전투 및 FreeSR 기본 설정",
"settingsBattleSubtitle": "게임 내 기본 전투 동작 및 파티 편성 설정",
"lblDefaultEnergy": "전투 시작 시 파티 에너지 (Starting Energy)",
"lblAutoSync": "서버 자동 동기화 (Auto-Sync)",
"descAutoSync": "캐릭터나 장비를 변경할 때 즉시 서버로 전송합니다",
"lblDefaultCreative": "기본으로 크리에이티브 모드 활성화",
"descDefaultCreative": "중복 캐릭터 편성 및 4인 초과 파티 편성을 항시 허용합니다",
"settingsShowcaseTitle": "🖼️ 쇼케이스 카드 표시 설정",
"settingsShowcaseSubtitle": "세팅 카드 디자인 및 세부 표시 항목 커스터마이징",
"lblShowRolls": "유물 보조 속성 강화 횟수 표시",
"descShowRolls": "보조 속성 강화 횟수 태그를 표시합니다",
"lblElementAura": "속성 아우라 발광 효과",
"descElementAura": "캐릭터 속성에 맞추어 카드 배경 및 조명이 동적으로 변화합니다",
"settingsCacheTitle": "🧹 캐시 관리 및 시스템 초기화",
"settingsCacheSubtitle": "브라우저 임시 데이터를 삭제하거나 공장 초기화합니다",
"lblCacheSize": "LocalStorage 메모리 사용량:",
"btnClearCache": "🧹 브라우저 캐시 삭제",
"btnFactoryReset": "🔄 공장 초기화",
"toastPingSuccess": "⚡ 연결 성공! 지연 시간: {ms} ms",
"toastPingFailed": "❌ Gateway 연결 실패. 서버 상태를 확인하세요",
"toastCacheCleared": "🧹 브라우저 캐시가 삭제되었습니다",
"qaLineupE0S1Title": "파티 전원 E0S1 설정",
"qaLineupE0S1Desc": "편성 캐릭터를 명함 전광 1중첩으로 세팅",
"qaLineupRelicsTitle": "파티 전원 풀세팅",
"qaLineupRelicsDesc": "편성 중인 4명에게 +15 추천 유물 세트 장착",
"lblPersistenceInfo": "서버 세이브 파일 및 데이터 관리",
"modalTabOverview": "캐릭터 개요",
"modalTabRelics": "유물 및 장비",
"attrBasic": "◆ 기본 속성",
"attrAdvanced": "◆ 고급 속성",
"attrElemental": "◆ 속성 피해",
"statMaxHp": "최대 HP",
"statAtk": "공격력",
"statDef": "방어력",
"statSpd": "속도",
"statCritRate": "치명타 확률",
"statCritDmg": "치명타 피해",
"statBreakEffect": "격파 특수효과",
"statHealBoost": "치유량 보너스",
"statMaxEnergy": "에너지 최대치",
"statEnergyRegen": "에너지 회복효율",
"statEhr": "효과 명중",
"statRes": "효과 저항",
"statDmgBoost": "{element} 속성 피해 증가",
"relicPickerTitle": "🛡️ 유물 관리: {slot}",
"tabQuickGen": "⚡ 빠른 생성 및 추천",
"tabFromInventory": "📦 보관함에서 선택",
"btnEquipInstant": "⚡ 즉시 장착 (+15 5★ 종결옵)",
"btnUnequip": "❌ 유물 해제",
"currentEquipped": "현재 장착 중",
"noRelicEquipped": "이 부위에 유물이 장착되지 않음",
"chooseMainStat": "메인 옵션 선택:",
"chooseSet": "유물 세트 선택:",
"recommendedBadge": "추천",
"overviewStatsTitle": "⚔️ 전투 스탯 (Combat Stats)",
"overviewStatsNote": "광추 및 유물 보너스 포함",
"overviewEquippedLc": "🗡️ 장착 중인 광추",
"overviewEquippedRelics": "🛡️ 유물 및 세트 효과",
"modalRelicsTitle": "🛡️ 유물 장착 (6개 부위)",
"modalRelicsSubtitle": "각 부위를 클릭하여 변경하거나 추천 세트를 일괄 장착",
"btnAutoEquipRelics": "⚡ 추천 세트 일괄 장착",
"btnClearAllRelics": "🧹 모두 해제",
"activeSetEffects": "✨ 활성화된 세트 효과",
"modalColLevel": "레벨",
"lblPromotion": "승급 단계",
"slotPickerTitle": "🛡️ 장착할 유물 선택",
"quickGenRecTitle": "⚡ 이 부위 추천 유물 생성",
"quickGenRecDesc": "최적 세트와 주옵션의 5★ +15 유물 자동 생성",
"btnGenAndEquip": "생성 및 장착",
"selectFromInventory": "인벤토리에서 선택",
"btnAllE0S1": "⚡ 전원 E0S1",
"qaGachabaseTitle": "Gachabase에서 최신 데이터 가져오기",
"qaGachabaseDesc": "최신 베타 및 데이터마이닝 캐릭터/광추 가져오기",
"synergyTitle": "파티 시너지 및 약점 격파 분석",
"synergySubtitle": "약점 격파 속성 커버리지, 역할군 밸런스 및 장비 세팅 완성도 분석",
"synergyBreakCoverage": "🎯 약점 격파 속성 커버리지",
"synergyRoleBalance": "🛡️ 파티 구성 및 역할군 분포",
"synergyEquipmentTitle": "📊 장비 세팅 준비도 및 평균 레벨",
"synergyAvgLevel": "평균 레벨",
"synergyAvgEidolon": "평균 성혼",
"synergyLcEquipped": "광추 장착",
"synergyRelicFull": "유물 풀세트",
"synergyCoverageBadge": "{count}/7개 속성 커버",
"synergyNoInTeam": "파티에 없음",
"roleDps": "🗡️ 딜러 (DPS)",
"roleSupport": "⚡ 서포터/디버퍼",
"roleSustain": "🛡️ 생존 (힐러/실더)",
"roleSpecialist": "🔮 특수/추가공격",
"adviceEmpty": "파티에 편성된 캐릭터가 없습니다. 위에서 캐릭터를 선택해 주세요.",
"adviceNoSustain": "⚠️ 조언: 파티에 방어 또는 회복 캐릭터(보존/풍요)가 없습니다. 안정적인 클리어를 위해 1명을 편성하는 것을 권장합니다.",
"adviceNoDps": "💡 조언: 파티가 서포터로만 구성되어 있어 메인 딜러(파멸/수렵/지식)가 부족합니다.",
"adviceNoSupport": "💡 조언: 딜러는 있지만 버프/디버프 서포터(화합/공허)가 없습니다. 서포터를 추가하면 총 대미지가 크게 상승합니다.",
"adviceBalanced": "✅ 완벽한 밸런스: 딜러, 버프/디버프 서포터, 힐러/실더 생존 요원이 모두 갖춰진 이상적인 파티입니다!",
"consoleTitle": "GM 명령어 콘솔 및 실시간 로그",
"consoleSubtitle": "실시간으로 GM 명령어를 서버에 전송하고 패킷 로그와 상태를 모니터링",
"consoleCopyLog": "📋 로그 복사",
"consoleClearLog": "🗑️ 로그 지우기",
"consoleQuickTitle": "⚡ 자주 쓰는 빠른 명령어",
"consolePlaceholder": "GM 명령어 입력 (예: /heal, /max, /teleport 20411, /give 102 1000...)",
"consoleSend": "명령 전송",
"consoleHistoryHint": "💡 ↑ ↓ 키를 눌러 이전 명령어 기록을 탐색할 수 있습니다",
"consoleOnline": "● 서버 온라인",
"consoleOffline": "○ 오프라인 (로컬 실행 모드)",
"consoleLogCopied": "📋 모든 로그가 클립보드에 복사되었습니다!",
"consoleLogCopyFailed": "❌ 로그 복사 실패",
"consoleLogCleared": "터미널 로그가 지워졌습니다",
"btnGachabaseSync": "🌐 Gachabase 동기화",
"tabPersistentGaC": "💾 GaC 세이브 관리",
"tabPersistentFirefly": "👤 개척자 & March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "중첩 등급",
"lcPickerTitle": "🗡️ 장착할 광추 선택",
"lcPickerSigTitle": "⭐ 추천 전용 광추 (Signature)",
"lcPickerEquipSig": "⚡ 바로 장착",
"lcPickerUnequip": "✕ 광추 해제"
},
"vi": {
"ahaGlobalDesc": "Bật cơ chế đặc biệt Aeon ★ Aha toàn máy chủ",
"btnAddLc": "+ Thêm Nón Ánh Sáng",
"btnAddRelic": "+ Thêm Di Vật",
"btnAddSlot": "+ Thêm Vị Trí",
"lblCreativeMode": "Chế độ sáng tạo",
"badgeCreative": "Sáng tạo",
"toastSlotRemoved": "Đã xóa vị trí {slot}",
"quickActionsBadge": "Lệnh Nhanh",
"qaEnergy50Title": "Năng lượng đội 50%",
"qaEnergy50Desc": "Năng lượng khởi đầu tiêu chuẩn",
"qaEnergy100Title": "Năng lượng đội 100%",
"qaEnergy100Desc": "Sẵn sàng dùng Tuyệt Kỹ ngay",
"qaUnlockAllTitle": "Mở khóa toàn bộ nhân vật",
"qaUnlockAllDesc": "Thêm đầy đủ hơn 70 nhân vật Tinh Hồn 6",
"qaAddLcsTitle": "Thêm toàn bộ Nón 5★",
"qaAddLcsDesc": "Nón trấn Tích Tầng 5 vào kho",
"qaTeleportTitle": "Dịch chuyển về Đội Tàu Astral",
"qaTeleportDesc": "Trở về Toa Tàu an toàn",
"qaClearLineupTitle": "Xóa đội hình",
"qaClearLineupDesc": "Dọn sạch vị trí để xếp đội mới",
"toastEnergy50": "Đã đặt năng lượng đội về 50%",
"toastEnergy100": "Đã sạc đầy 100% năng lượng đội",
"toastUnlockedAll": "Đã mở khóa toàn bộ nhân vật Tinh Hồn 6",
"toastAddedAllLcs": "Đã thêm toàn bộ Nón Ánh Sáng 5 sao",
"toastTeleportedTrain": "Đã dịch chuyển về Toa Tàu Astral",
"toastLineupCleared": "Đã xóa sạch đội hình",
"modalAddLcTitle": "🗡️ Thêm Nón Ánh Sáng vào FreeSR",
"modalAddRelicTitle": "🛡️ Thêm Di Vật vào FreeSR",
"lblSelectLc": "Chọn Nón Ánh Sáng",
"lblSelectRelicSet": "Chọn Bộ Di Vật",
"lblRelicSlot": "Vị trí Di Vật",
"lblMainAffix": "Thuộc tính chính",
"lblEquipAvatar": "Trang bị cho nhân vật",
"unassigned": "-- Chưa trang bị (Kho đồ) --",
"btnAddLcSubmit": "💾 Thêm vào FreeSR",
"btnAddRelicSubmit": "💾 Thêm vào FreeSR",
"toastLcAdded": "Đã thêm Nón Ánh Sáng vào FreeSR",
"toastRelicAdded": "Đã thêm Di Vật vào FreeSR",
"deleteItem": "Xóa",
"toastItemDeleted": "Đã xóa vật phẩm thành công",
"appName": "GaC-Srtool",
"appSubtitle": "Bộ điều khiển máy chủ & FreeSR Star Rail",
"online": "Đã kết nối",
"offline": "Ngoại tuyến",
"checking": "Đang kiểm tra...",
"refresh": "🔄 Làm mới",
"connectFailed": "Kết nối thất bại",
"tabDashboard": "📊 Tổng quan & Đội hình",
"tabAvatars": "👥 Nhân vật",
"tabEquipment": "🗡️ Nón Ánh Sáng & Di Vật",
"tabPersistent": "💾 Quản lý lưu GaC",
"tabExrank": "⚡ Kỹ Năng Ex-Rank",
"tabJson": "📝 Quản lý JSON",
"tabSettings": "⚙️ Cài đặt",
"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ủ & Tọa độ",
"lblServerModeActive": "Chế độ máy chủ hoạt động",
"lblApiEndpoint": "Điểm cuối API Gateway",
"lblPlaneId": "Plane ID",
"lblFloorId": "Floor ID",
"coords": "Tọa độ nhân vật XYZ",
"quickActionsTitle": "⚡ Thao tác nhanh",
"quickActionsSubtitle": "Gửi lệnh đến máy chủ ngay lập tức",
"btnMaxAll": "⭐ Đạt cấp 80 & E6 tất cả nhân vật",
"btnSyncPersistent": "💾 Đồng bộ tệp lưu Persistent mới nhất",
"currentLineupTitle": "🎮 Đội hình hiện tại",
"slot": "Vị trí",
"slotEmpty": "Trống (Nhấp để thêm)",
"slotTooltip": "Nhấp để chọn nhân vật cho vị trí này",
"removeFromTeam": "Xóa khỏi đội",
"searchPlaceholder": "🔍 Tìm kiếm nhân vật hoặc ID...",
"filterAllRarity": "Tất cả độ hiếm",
"filter5Star": "5 Sao",
"filter4Star": "4 Sao",
"filterAllElements": "Tất cả thuộc tính",
"filterAllPaths": "Tất cả Vận Mệnh",
"btnReload": "🔄 Tải lại",
"avatarsLoading": "Đang tải dữ liệu nhân vật...",
"noAvatarsFound": "Không tìm thấy nhân vật phù hợp",
"eidolonLabel": "Tinh Hồn:",
"confirmMaxAll": "Nâng cấp tất cả nhân vật lên Cấp 80 và Tinh Hồn 6?",
"maxAllSuccess": "Tối đa tất cả nhân vật thành công!",
"avatarRankSuccess": "Đã chỉnh nhân vật {id} thành Tinh Hồn {rank}",
"eqLcTitle": "🗡️ Nón Ánh Sáng trong kho",
"eqLcSubtitle": "Tất cả Nón Ánh Sáng từ freesr-data.json",
"eqLcLoading": "Đang tải dữ liệu Nón Ánh Sáng...",
"eqRelicTitle": "🛡️ Di Vật trong kho",
"eqRelicSubtitle": "Tất cả Di Vật từ freesr-data.json",
"eqRelicLoading": "Đang tải dữ liệu Di Vật...",
"itemCount": "{n} món",
"notEquipped": "Chưa trang bị",
"equippedBy": "Trang bị bởi",
"noLcData": "Chưa có dữ liệu Nón Ánh Sáng",
"noRelicData": "Chưa có dữ liệu Di Vật",
"persistentTitle": "💾 Quản lý lưu GaC",
"persistentBadge": "Máy chủ tùy chỉnh độc quyền",
"persistentSubtitle": "Tệp persistent lưu trữ trạng thái người chơi của GaC như giới tính/thuộc tính nhân vật chính, March 7th, công tắc toàn cục",
"persistentTbM7Title": "👤 Nhà Khai Phá & March 7th",
"lblTbGenderElement": "Giới tính & Thuộc tính nhân vật chính",
"lblM7Path": "Dạng Vận Mệnh của March 7th",
"btnSaveCharSettings": "💾 Lưu cài đặt nhân vật",
"persistentGlobalTitle": "⚙️ Công tắc tính năng đặc biệt GaC",
"swGlobalDesc": "Bật cơ chế Silver Wolf toàn máy chủ",
"castoriceGlobalDesc": "Bật cơ chế Castorice toàn máy chủ",
"btnSaveGlobalSwitch": "💾 Lưu công tắc toàn cục",
"exrankTitle": "⚡ Hệ thống kỹ năng Ex-Rank",
"exrankSubtitle": "Kích hoạt thiên phú và đặc quyền Ex-Rank trong FreeSR (ví dụ: Jing Yuan kháng khống chế, Dan Heng IL, Acheron)",
"btnEnableAll": "Bật tất cả Ex-Rank",
"btnDisableAll": "Tắt tất cả Ex-Rank",
"exrankToggleSuccess": "{name}: Ex-Rank {status}",
"exrankAllSuccess": "Tất cả nhân vật Ex-Rank {status}",
"enabled": "đã bật",
"disabled": "đã tắt",
"btnFreesr": "📄 freesr-data.json",
"btnPersistent": "💾 persistent",
"btnBeautify": "✨ Định dạng JSON",
"btnDownload": "📥 Tải xuống Backup",
"btnUpload": "📤 Tải lên tệp",
"btnSaveServer": "💾 Lưu vào máy chủ",
"jsonTip": "Mẹo: Chỉnh sửa trực tiếp JSON và nhấn 'Lưu vào máy chủ'",
"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ài đặt kết nối API Gateway",
"apiSettingsSubtitle": "Điều chỉnh cổng hoặc IP theo server.json của bạn",
"lblServerMode": "Chế độ máy chủ",
"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",
"modalTitleCharEdit": "Tùy chỉnh nhân vật",
"modalBtnMaxAllChar": "⭐ Nâng tối đa tất cả",
"modalTabSkills": "⚡ Kỹ Năng & Vết Tích",
"modalTabStatus": "⚙️ Cấp & Tinh Hồn",
"modalTabLightcone": "🗡️ Nón Ánh Sáng",
"modalSkillCombatTitle": "Cấp kỹ năng chiến đấu",
"modalBtnMaxSkills": "⭐ Tối đa kỹ năng (10/10)",
"modalSkillBasic": "Tấn Công Thường",
"modalSkillSkill": "Chiến Kỹ",
"modalSkillUltra": "Tuyệt Kỹ",
"modalSkillTalent": "Thiên Phú",
"modalTracesTitle": "Vết Tích & Bí Kỹ",
"modalTraceTechnique": "⚡ Bí Kỹ — Kích hoạt trước trận",
"traceA2": "🌟 Vết Tích Phụ A2",
"traceA4": "🌟 Vết Tích Phụ A4",
"traceA6": "🌟 Vết Tích Phụ A6",
"traceStatNodes": "💎 Tất cả nhánh tăng chỉ số (10 nhánh)",
"lblLevelRange": "Cấp độ (1-80)",
"lblPromotionRange": "Đột phá (0-6)",
"lblEidolonLevel": "Cấp Tinh Hồn",
"btnResetE0": "Đặt lại E0",
"btnMaxE6": "⭐ Tối đa E6",
"modalEnergyTitle": "Năng lượng Tuyệt Kỹ",
"modalEnergy50": "Đặt 50%",
"modalEnergy100": "Đầy 100%",
"modalLcTitle": "Nón Ánh Sáng đã trang bị",
"modalBtnMaxLc": "⭐ Tối đa Nón Ánh Sáng (Lv.80 S5)",
"lblLcId": "ID Nón Ánh Sáng",
"modalLcIdPlaceholder": "VD: 21002 hoặc 24001",
"lblLcLevel": "Cấp Nón Ánh Sáng (1-80)",
"lblLcRank": "Bậc Tích Lũy (S1-S5)",
"modalBtnClose": "✕ Đóng",
"modalBtnSave": "💾 Lưu nhân vật",
"pickerTitle": "Chọn nhân vật vào đội hình",
"pickerSearchPlaceholder": "🔍 Tìm kiếm nhân vật để thêm...",
"apiModalTitle": "⚙️ Cài đặt kết nối máy chủ API",
"btnCancel": "Hủy",
"btnSaveTest": "Lưu & Kiểm tra",
"toastSlotUpdated": "Đã cập nhật vị trí {slot} thành: {name}",
"toastCharMaxed": "⭐ Đã nâng {name} lên Lv. 80 E6",
"toastCharSaved": "Đã lưu nhân vật {name}",
"toastAllSkillsMaxed": "⭐ Đã nâng tối đa kỹ năng và vết tích",
"toastServerSwitched": "Đã chuyển chế độ máy chủ sang: {mode}",
"tbOptions": {
"MalePhysical": "Nhà Khai Phá (Nam) - Vật Lý",
"FemalePhysical": "Nhà Khai Phá (Nữ) - Vật Lý",
"MalePreservation": "Nhà Khai Phá (Nam) - Hỏa",
"FemalePreservation": "Nhà Khai Phá (Nữ) - Hỏa",
"MaleHarmony": "Nhà Khai Phá (Nam) - Hòa Hợp",
"FemaleHarmony": "Nhà Khai Phá (Nữ) - Hòa Hợp",
"MaleRemembrance": "Nhà Khai Phá (Nam) - Ký Ức",
"FemaleRemembrance": "Nhà Khai Phá (Nữ) - Ký Ức"
},
"marchOptions": {
"MarchHunt": "March 7th - Săn Bắn",
"MarchPreservation": "March 7th - Bảo Hộ"
},
"elements": {
"Physical": "Vật Lý",
"Fire": "Hỏa",
"Ice": "Băng",
"Lightning": "Lôi",
"Wind": "Phong",
"Quantum": "Lượng Tử",
"Imaginary": "Số Ảo",
"Unknown": "Chưa rõ"
},
"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": "Chưa rõ",
"Elation": "Vui Vẻ"
},
"settingsSaved": "Đã lưu cài đặt thành công!",
"settingsReset": "Đã khôi phục cài đặt mặc định",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Thẻ trưng bày",
"showcaseAutoRelics": "⚡ Tự động trang bị Di Vật",
"showcaseCopy": "📋 Sao chép văn bản",
"showcaseExport": "🖼️ Xuất hình ảnh",
"btnChangeLc": "Đổi Nón Ánh Sáng",
"lcPassiveTitle": "Hiệu ứng Nón Ánh Sáng",
"toastE6S5Applied": "⭐ Đã nâng nhân vật lên tối đa E6S5 (Lv.80, Kỹ năng tối đa, S5)!",
"toastE0S1Applied": "⚡ Đã đặt nhân vật thành E0S1 (Lv.80, Kỹ năng tối đa, S1)!",
"toastShowcaseCopied": "📋 Đã sao chép thông tin trang bị vào khay nhớ tạm!",
"toastRelicsEquipped": "⚡ Đã trang bị bộ Di Vật +15 đề xuất cho {name}!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ Cài đặt kết nối API Gateway",
"settingsConnSubtitle": "Cấu hình chế độ máy chủ và địa chỉ REST",
"btnTestPing": "⚡ Kiểm tra kết nối",
"settingsBattleTitle": "🎮 Mặc định chiến đấu & FreeSR",
"settingsBattleSubtitle": "Tùy chỉnh hành vi trận đấu và thiết lập đội hình mặc định",
"lblDefaultEnergy": "Năng lượng ban đầu khi vào trận",
"lblAutoSync": "Tự động đồng bộ lên máy chủ (Auto-Sync)",
"descAutoSync": "Gửi thay đổi nhân vật hoặc trang bị lên máy chủ ngay lập tức",
"lblDefaultCreative": "Bật Chế độ Sáng tạo theo mặc định",
"descDefaultCreative": "Cho phép trùng nhân vật và nhiều hơn 4 ô trong đội hình",
"settingsShowcaseTitle": "🖼️ Hiển thị Thẻ Trưng Bày",
"settingsShowcaseSubtitle": "Tùy chỉnh giao diện thẻ trưng bày chỉ số nhân vật",
"lblShowRolls": "Hiển thị số lần nâng dòng phụ",
"descShowRolls": "Hiển thị nhãn số lần rơi vào thuộc tính phụ của Di Vật",
"lblElementAura": "Hiệu ứng hào quang nguyên tố",
"descElementAura": "Đổi màu nền và ánh sáng phát ra theo thuộc tính nhân vật",
"settingsCacheTitle": "🧹 Quản lý bộ nhớ đệm & Đặt lại",
"settingsCacheSubtitle": "Xóa dữ liệu tạm thời của trình duyệt hoặc khôi phục cài đặt gốc",
"lblCacheSize": "Dung lượng LocalStorage:",
"btnClearCache": "🧹 Xóa bộ nhớ đệm",
"btnFactoryReset": "🔄 Khôi phục cài đặt gốc",
"toastPingSuccess": "⚡ Kết nối thành công! Độ trễ: {ms} ms",
"toastPingFailed": "❌ Không thể kết nối với Gateway. Vui lòng kiểm tra máy chủ",
"toastCacheCleared": "🧹 Đã xóa bộ nhớ đệm trình duyệt",
"qaLineupE0S1Title": "Cả đội lên E0S1",
"qaLineupE0S1Desc": "Đưa nhân vật trong đội về E0 với Nón S1",
"qaLineupRelicsTitle": "Tự trang bị cho cả đội",
"qaLineupRelicsDesc": "Trang bị Di Vật +15 cho cả 4 thành viên",
"lblPersistenceInfo": "Quản lý tệp lưu và dữ liệu máy chủ",
"modalTabOverview": "Tổng quan",
"modalTabRelics": "Di Vật & Trang bị",
"attrBasic": "◆ Thuộc Tính Cơ Bản",
"attrAdvanced": "◆ Thuộc Tính Nâng Cao",
"attrElemental": "◆ Thuộc Tính Sát Thương",
"statMaxHp": "HP Tối Đa",
"statAtk": "Tấn Công",
"statDef": "Phòng Thủ",
"statSpd": "Tốc Độ",
"statCritRate": "Tỷ Lệ Bạo Kích",
"statCritDmg": "Sát Thương Bạo Kích",
"statBreakEffect": "Tấn Công Kích Phá",
"statHealBoost": "Tăng Trị Liệu",
"statMaxEnergy": "Giới Hạn Năng Lượng",
"statEnergyRegen": "Hiệu Suất Hồi Năng Lượng",
"statEhr": "Chính Xác Hiệu Ứng",
"statRes": "Kháng Hiệu Ứng",
"statDmgBoost": "Tăng Sát Thương {element}",
"relicPickerTitle": "🛡️ Quản Lý Di Vật: {slot}",
"tabQuickGen": "⚡ Tạo Nhanh & Đề Xuất",
"tabFromInventory": "📦 Chọn Từ Kho",
"btnEquipInstant": "⚡ Trang Bị Ngay (+15 5★ Dòng Siêu Đỉnh)",
"btnUnequip": "❌ Tháo Di Vật Này",
"currentEquipped": "Đang Trang Bị Hiện Tại",
"noRelicEquipped": "Chưa trang bị di vật ở ô này",
"chooseMainStat": "Chọn Chỉ Số Chính:",
"chooseSet": "Chọn Bộ Di Vật:",
"recommendedBadge": "Đề Xuất",
"overviewStatsTitle": "⚔️ Chỉ số chiến đấu (Combat Stats)",
"overviewStatsNote": "Bao gồm chỉ số từ Nón Ánh Sáng và Di Vật",
"overviewEquippedLc": "🗡️ Nón Ánh Sáng đang trang bị",
"overviewEquippedRelics": "🛡️ Hiệu ứng bộ Di Vật",
"modalRelicsTitle": "🛡️ Trang bị Di Vật (6 vị trí)",
"modalRelicsSubtitle": "Nhấn vào từng ô để thay đổi hoặc trang bị bộ đề xuất",
"btnAutoEquipRelics": "⚡ Trang bị bộ đề xuất",
"btnClearAllRelics": "🧹 Tháo toàn bộ",
"activeSetEffects": "✨ Hiệu ứng bộ đang kích hoạt",
"modalColLevel": "Cấp độ",
"lblPromotion": "Cấp đột phá",
"slotPickerTitle": "🛡️ Chọn Di Vật để trang bị",
"quickGenRecTitle": "⚡ Tạo Di Vật đề xuất cho ô này",
"quickGenRecDesc": "Tạo Di Vật 5★ +15 chuẩn bộ và dòng chính tốt nhất",
"btnGenAndEquip": "Tạo & Trang bị",
"selectFromInventory": "Chọn từ túi đồ",
"btnAllE0S1": "⚡ Tất cả E0S1",
"qaGachabaseTitle": "Lấy dữ liệu từ Gachabase",
"qaGachabaseDesc": "Nhập nhân vật và Nón Ánh Sáng mới nhất từ beta",
"synergyTitle": "Phân tích phối hợp đội hình & Phá vỡ điểm yếu",
"synergySubtitle": "Phân tích độ bao phủ điểm yếu, cân bằng vai trò và độ sẵn sàng trang bị",
"synergyBreakCoverage": "🎯 Độ bao phủ phá vỡ điểm yếu",
"synergyRoleBalance": "🛡️ Cấu trúc đội hình & Phân chia vai trò",
"synergyEquipmentTitle": "📊 Độ sẵn sàng trang bị & Cấp trung bình",
"synergyAvgLevel": "Cấp trung bình",
"synergyAvgEidolon": "Tinh Hồn TB",
"synergyLcEquipped": "Nón Ánh Sáng",
"synergyRelicFull": "Đủ bộ Di Vật",
"synergyCoverageBadge": "Bao phủ {count}/7 Thuộc tính",
"synergyNoInTeam": "Không có trong đội",
"roleDps": "🗡️ DPS Chủ lực",
"roleSupport": "⚡ Hỗ trợ/Giảm ích",
"roleSustain": "🛡️ Sinh tồn (Hồi máu/Khiên)",
"roleSpecialist": "🔮 Đặc biệt/Đòn đánh theo sau",
"adviceEmpty": "Chưa có nhân vật trong đội. Vui lòng chọn nhân vật ở trên.",
"adviceNoSustain": "⚠️ Gợi ý: Đội hình đang thiếu nhân vật phòng thủ hoặc trị liệu (Bảo Hộ / Trù Phú). Khuyên dùng 1 vị trí để bảo đảm an toàn.",
"adviceNoDps": "💡 Gợi ý: Đội hình toàn hỗ trợ, chưa có sát thương chủ lực (Hủy Diệt / Săn Bắn / Tri Thức).",
"adviceNoSupport": "💡 Gợi ý: Đội có sát thương nhưng thiếu nhân vật tăng ích/giảm ích (Hòa Hợp / Hư Vô). Thêm hỗ trợ sẽ giúp tăng vọt sát thương.",
"adviceBalanced": "✅ Cân bằng hoàn hảo: Đội hình đầy đủ sát thương, hỗ trợ tăng/giảm ích và hồi phục/khiên. Sẵn sàng cho mọi thử thách!",
"consoleTitle": "Bảng điều khiển lệnh GM & Nhật ký trực tiếp",
"consoleSubtitle": "Gửi lệnh GM/Máy chủ theo thời gian thực và theo dõi nhật ký gói tin",
"consoleCopyLog": "📋 Sao chép",
"consoleClearLog": "🗑️ Xóa nhật ký",
"consoleQuickTitle": "⚡ Lệnh nhanh thường dùng",
"consolePlaceholder": "Nhập lệnh GM, vd: /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Gửi lệnh",
"consoleHistoryHint": "💡 Nhấn ↑ ↓ để chọn lịch sử lệnh trước đó",
"consoleOnline": "● Máy chủ trực tuyến",
"consoleOffline": "○ Ngoại tuyến (Chế độ cục bộ)",
"consoleLogCopied": "📋 Đã sao chép tất cả nhật ký vào khay nhớ tạm!",
"consoleLogCopyFailed": "❌ Không thể sao chép nhật ký",
"consoleLogCleared": "Đã xóa màn hình nhật ký",
"btnGachabaseSync": "🌐 Đồng bộ Gachabase",
"tabPersistentGaC": "💾 Quản lý lưu GaC",
"tabPersistentFirefly": "👤 Nhà Khai Phá & March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Bậc Tích Lũy",
"lcPickerTitle": "🗡️ Chọn Nón Ánh Sáng để trang bị",
"lcPickerSigTitle": "⭐ Nón Ánh Sáng Trấn đề xuất",
"lcPickerEquipSig": "⚡ Trang bị món này",
"lcPickerUnequip": "✕ Tháo Nón Ánh Sáng"
},
"id": {
"ahaGlobalDesc": "Aktifkan kemampuan khusus Aeon ★ Aha di seluruh server",
"btnAddLc": "+ Tambah Light Cone",
"btnAddRelic": "+ Tambah Relic",
"btnAddSlot": "+ Tambah Slot",
"lblCreativeMode": "Mode Kreatif",
"badgeCreative": "Kreatif",
"toastSlotRemoved": "Slot {slot} berhasil dihapus",
"quickActionsBadge": "Tindakan Cepat",
"qaEnergy50Title": "Energi Tim 50%",
"qaEnergy50Desc": "Energi awal standar saat masuk battle",
"qaEnergy100Title": "Energi Tim 100%",
"qaEnergy100Desc": "Ultimate langsung siap pakai",
"qaUnlockAllTitle": "Buka Semua Karakter",
"qaUnlockAllDesc": "Tambah 70+ karakter E6 ke tas",
"qaAddLcsTitle": "Tambah Semua Light Cone 5★",
"qaAddLcsDesc": "Light Cone signature S5 ke inventaris",
"qaTeleportTitle": "Teleport ke Astral Express",
"qaTeleportDesc": "Kembali ke Parlor Car zona aman",
"qaClearLineupTitle": "Kosongkan Tim",
"qaClearLineupDesc": "Kosongkan semua slot untuk susun ulang",
"toastEnergy50": "Energi tim diatur ke 50%",
"toastEnergy100": "Energi tim diatur ke 100%",
"toastUnlockedAll": "Berhasil membuka semua karakter (E6)",
"toastAddedAllLcs": "Berhasil menambahkan semua Light Cone 5★",
"toastTeleportedTrain": "Teleportasi ke Parlor Car berhasil",
"toastLineupCleared": "Susunan tim berhasil dikosongkan",
"modalAddLcTitle": "🗡️ Tambah Light Cone ke FreeSR",
"modalAddRelicTitle": "🛡️ Tambah Relic ke FreeSR",
"lblSelectLc": "Pilih Light Cone",
"lblSelectRelicSet": "Pilih Set Relic",
"lblRelicSlot": "Slot Relic",
"lblMainAffix": "Stat Utama",
"lblEquipAvatar": "Pasang ke Karakter",
"unassigned": "-- Belum Dipasang (Tas) --",
"btnAddLcSubmit": "💾 Tambah ke FreeSR",
"btnAddRelicSubmit": "💾 Tambah ke FreeSR",
"toastLcAdded": "Light Cone berhasil ditambahkan ke FreeSR",
"toastRelicAdded": "Relic berhasil ditambahkan ke FreeSR",
"deleteItem": "Hapus",
"toastItemDeleted": "Item berhasil dihapus",
"appName": "GaC-Srtool",
"appSubtitle": "Pengontrol Server & FreeSR Star Rail",
"online": "Terhubung",
"offline": "Offline",
"checking": "Memeriksa...",
"refresh": "🔄 Segarkan",
"connectFailed": "Koneksi Gagal",
"tabDashboard": "📊 Dasbor & Tim",
"tabAvatars": "👥 Karakter",
"tabEquipment": "🗡️ Light Cone & Relic",
"tabPersistent": "💾 Pengelola Simpan GaC",
"tabExrank": "⚡ Keahlian Ex-Rank",
"tabJson": "📝 Manajemen JSON",
"tabSettings": "⚙️ Pengaturan",
"statAvatars": "Karakter Dimiliki",
"statLightcones": "Light Cone",
"statRelics": "Relic",
"serverStatusTitle": "📍 Status Server & Koordinat",
"lblServerModeActive": "Mode Server Aktif",
"lblApiEndpoint": "Endpoint API Gateway",
"lblPlaneId": "Plane ID",
"lblFloorId": "Floor ID",
"coords": "Koordinat Karakter XYZ",
"quickActionsTitle": "⚡ Tindakan Cepat",
"quickActionsSubtitle": "Kirim perintah ke server secara instan",
"btnMaxAll": "⭐ Maksimalkan Semua Karakter Lv. 80 & E6",
"btnSyncPersistent": "💾 Sinkronkan Simpanan Persistent Terbaru",
"currentLineupTitle": "🎮 Susunan Tim Saat Ini",
"slot": "Slot",
"slotEmpty": "Kosong (Klik untuk tambah)",
"slotTooltip": "Klik untuk memilih karakter di slot ini",
"removeFromTeam": "Hapus dari tim",
"searchPlaceholder": "🔍 Cari nama karakter atau ID...",
"filterAllRarity": "Semua Kelangkaan",
"filter5Star": "Bintang 5",
"filter4Star": "Bintang 4",
"filterAllElements": "Semua Elemen",
"filterAllPaths": "Semua Path",
"btnReload": "🔄 Muat Ulang",
"avatarsLoading": "Memuat data karakter...",
"noAvatarsFound": "Tidak ada karakter yang cocok",
"eidolonLabel": "Eidolon:",
"confirmMaxAll": "Tingkatkan semua karakter ke Lv. 80 dan buka E6?",
"maxAllSuccess": "Semua karakter berhasil dimaksimalkan!",
"avatarRankSuccess": "Karakter {id} diperbarui ke E{rank}",
"eqLcTitle": "🗡️ Light Cone di Inventaris",
"eqLcSubtitle": "Semua light cone dari freesr-data.json",
"eqLcLoading": "Memuat data light cone...",
"eqRelicTitle": "🛡️ Relic di Inventaris",
"eqRelicSubtitle": "Semua relic dari freesr-data.json",
"eqRelicLoading": "Memuat data relic...",
"itemCount": "{n} item",
"notEquipped": "Tidak terpasang",
"equippedBy": "Dipasang oleh",
"noLcData": "Tidak ada data light cone",
"noRelicData": "Tidak ada data relic",
"persistentTitle": "💾 Pengelola Simpan GaC",
"persistentBadge": "Server Kustom Kami",
"persistentSubtitle": "File persistent menyimpan status pemain khusus GaC seperti gender/elemen Trailblazer, jalur March 7th, dan fitur global",
"persistentTbM7Title": "👤 Trailblazer & March 7th",
"lblTbGenderElement": "Gender & Elemen Trailblazer",
"lblM7Path": "Path March 7th",
"btnSaveCharSettings": "💾 Simpan Pengaturan Karakter",
"persistentGlobalTitle": "⚙️ Saklar Fitur Khusus GaC",
"swGlobalDesc": "Aktifkan fungsi khusus Silver Wolf di seluruh server",
"castoriceGlobalDesc": "Aktifkan fungsi khusus Castorice di seluruh server",
"btnSaveGlobalSwitch": "💾 Simpan Saklar Global",
"exrankTitle": "⚡ Sistem Keahlian Ex-Rank",
"exrankSubtitle": "Buka bakat khusus Ex-Rank di FreeSR (mis. kekebalan CC Jing Yuan, Dan Heng IL, Acheron)",
"btnEnableAll": "Aktifkan Semua Ex-Rank",
"btnDisableAll": "Nonaktifkan Semua Ex-Rank",
"exrankToggleSuccess": "{name}: Ex-Rank {status}",
"exrankAllSuccess": "Semua karakter Ex-Rank {status}",
"enabled": "aktif",
"disabled": "nonaktif",
"btnFreesr": "📄 freesr-data.json",
"btnPersistent": "💾 persistent save",
"btnBeautify": "✨ Rapikan JSON",
"btnDownload": "📥 Unduh Cadangan",
"btnUpload": "📤 Unggah File",
"btnSaveServer": "💾 Simpan ke Server",
"jsonTip": "Tips: Edit JSON mentah dan klik 'Simpan ke Server'",
"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 sesuai dengan server.json Anda",
"lblServerMode": "Mode Server",
"lblApiGatewayUrl": "URL REST API Gateway",
"lblPingInterval": "Interval Cek Status (detik)",
"btnSaveSettings": "💾 Simpan Pengaturan",
"btnResetDefault": "Kembalikan Default",
"modalTitleCharEdit": "Kustomisasi Karakter",
"modalBtnMaxAllChar": "⭐ Maksimalkan Semua",
"modalTabSkills": "⚡ Skill & Traces",
"modalTabStatus": "⚙️ Level & Eidolon",
"modalTabLightcone": "🗡️ Light Cone",
"modalSkillCombatTitle": "Level Skill Pertempuran",
"modalBtnMaxSkills": "⭐ Maksimalkan Semua Skill (10/10)",
"modalSkillBasic": "Basic ATK",
"modalSkillSkill": "Skill",
"modalSkillUltra": "Ultimate",
"modalSkillTalent": "Talent",
"modalTracesTitle": "Traces & Technique",
"modalTraceTechnique": "⚡ Technique — Aktif sebelum tempur",
"traceA2": "🌟 Bonus Trace A2",
"traceA4": "🌟 Bonus Trace A4",
"traceA6": "🌟 Bonus Trace A6",
"traceStatNodes": "💎 Semua Node Bonus Stat (10 node)",
"lblLevelRange": "Level (1-80)",
"lblPromotionRange": "Promosi (0-6)",
"lblEidolonLevel": "Tingkat Eidolon",
"btnResetE0": "Reset E0",
"btnMaxE6": "⭐ Maksimal E6",
"modalEnergyTitle": "Energi Ultimate",
"modalEnergy50": "Set 50%",
"modalEnergy100": "Penuh 100%",
"modalLcTitle": "Light Cone Terpasang",
"modalBtnMaxLc": "⭐ Maksimalkan Light Cone (Lv.80 S5)",
"lblLcId": "ID Light Cone",
"modalLcIdPlaceholder": "Contoh: 21002 atau 24001",
"lblLcLevel": "Level Light Cone (1-80)",
"lblLcRank": "Superimposisi (S1-S5)",
"modalBtnClose": "✕ Tutup",
"modalBtnSave": "💾 Simpan Karakter",
"pickerTitle": "Pilih Karakter untuk Tim",
"pickerSearchPlaceholder": "🔍 Cari karakter untuk ditambahkan...",
"apiModalTitle": "⚙️ Pengaturan Koneksi API Server",
"btnCancel": "Batal",
"btnSaveTest": "Simpan & Uji",
"toastSlotUpdated": "Memperbarui Slot {slot} menjadi: {name}",
"toastCharMaxed": "⭐ {name} dimaksimalkan ke Lv. 80 E6",
"toastCharSaved": "Karakter {name} tersimpan",
"toastAllSkillsMaxed": "⭐ Semua skill dan trace telah dimaksimalkan",
"toastServerSwitched": "Beralih mode server ke: {mode}",
"tbOptions": {
"MalePhysical": "Trailblazer (Pria) - Fisik",
"FemalePhysical": "Trailblazer (Wanita) - Fisik",
"MalePreservation": "Trailblazer (Pria) - Fire",
"FemalePreservation": "Trailblazer (Wanita) - Fire",
"MaleHarmony": "Trailblazer (Pria) - Harmony",
"FemaleHarmony": "Trailblazer (Wanita) - Harmony",
"MaleRemembrance": "Trailblazer (Pria) - Remembrance",
"FemaleRemembrance": "Trailblazer (Wanita) - Remembrance"
},
"marchOptions": {
"MarchHunt": "March 7th - The Hunt",
"MarchPreservation": "March 7th - Preservation"
},
"elements": {
"Physical": "Fisik",
"Fire": "Api",
"Ice": "Es",
"Lightning": "Petir",
"Wind": "Angin",
"Quantum": "Kuantum",
"Imaginary": "Imajinasi",
"Unknown": "Tidak Diketahui"
},
"paths": {
"Destruction": "Destruction",
"Hunt": "Hunt",
"Erudition": "Erudition",
"Harmony": "Harmony",
"Nihility": "Nihility",
"Preservation": "Preservation",
"Abundance": "Abundance",
"Remembrance": "Remembrance",
"Unknown": "Tidak Diketahui",
"Elation": "Elation"
},
"settingsSaved": "Pengaturan berhasil disimpan!",
"settingsReset": "Pengaturan dikembalikan ke default",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Kartu Showcase",
"showcaseAutoRelics": "⚡ Pasang Relic Rekomendasi",
"showcaseCopy": "📋 Salin Teks",
"showcaseExport": "🖼️ Ekspor Gambar",
"btnChangeLc": "Ganti Light Cone",
"lcPassiveTitle": "Efek Kemampuan Light Cone",
"toastE6S5Applied": "⭐ Karakter dimaksimalkan ke E6S5 (Lv.80, Skill Penuh, S5)!",
"toastE0S1Applied": "⚡ Karakter disetel ke E0S1 (Lv.80, Skill Penuh, S1)!",
"toastShowcaseCopied": "📋 Informasi build disalin ke papan klip!",
"toastRelicsEquipped": "⚡ Set relic +15 terbaik dipasang untuk {name}!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ Pengaturan Koneksi API Gateway",
"settingsConnSubtitle": "Atur mode server dan endpoint REST",
"btnTestPing": "⚡ Tes Koneksi",
"settingsBattleTitle": "🎮 Pengaturan Tempur & FreeSR",
"settingsBattleSubtitle": "Sesuaikan perilaku pertempuran dan tim bawaan",
"lblDefaultEnergy": "Energi Awal Pertempuran (Starting Energy)",
"lblAutoSync": "Sinkronisasi Otomatis ke Server (Auto-Sync)",
"descAutoSync": "Kirim pembaruan karakter dan perlengkapan langsung ke server",
"lblDefaultCreative": "Mode Kreatif Secara Default",
"descDefaultCreative": "Izinkan karakter duplikat dan lebih dari 4 slot tim",
"settingsShowcaseTitle": "🖼️ Tampilan Kartu Showcase",
"settingsShowcaseSubtitle": "Kustomisasi gaya dan detail kartu showcase",
"lblShowRolls": "Tampilkan Jumlah Roll Sub-stat",
"descShowRolls": "Tampilkan label jumlah roll pada sub-stat relic",
"lblElementAura": "Efek Cahaya Aura Elemen",
"descElementAura": "Latar belakang kartu dan pendaran dinamis sesuai elemen karakter",
"settingsCacheTitle": "🧹 Manajemen Cache & Reset",
"settingsCacheSubtitle": "Hapus data sementara browser atau pulihkan pengaturan awal",
"lblCacheSize": "Penggunaan Memori LocalStorage:",
"btnClearCache": "🧹 Hapus Cache Browser",
"btnFactoryReset": "🔄 Reset Pabrik",
"toastPingSuccess": "⚡ Terhubung berhasil! Latensi: {ms} ms",
"toastPingFailed": "❌ Gagal terhubung ke Gateway. Periksa status server",
"toastCacheCleared": "🧹 Cache browser berhasil dibersihkan",
"qaLineupE0S1Title": "Atur Tim ke E0S1",
"qaLineupE0S1Desc": "Karakter tim menjadi E0 dengan LC S1",
"qaLineupRelicsTitle": "Pasang Relic Tim Otomatis",
"qaLineupRelicsDesc": "Pasang relic +15 untuk 4 anggota tim",
"lblPersistenceInfo": "Manajemen file simpan dan data server",
"modalTabOverview": "Ringkasan",
"modalTabRelics": "Relic & Perlengkapan",
"attrBasic": "◆ Atribut Dasar",
"attrAdvanced": "◆ Atribut Lanjutan",
"attrElemental": "◆ Tipe Damage",
"statMaxHp": "Max HP",
"statAtk": "ATK",
"statDef": "DEF",
"statSpd": "SPD",
"statCritRate": "CRIT Rate",
"statCritDmg": "CRIT DMG",
"statBreakEffect": "Break Effect",
"statHealBoost": "Outgoing Healing Boost",
"statMaxEnergy": "Max Energy",
"statEnergyRegen": "Energy Regeneration Rate",
"statEhr": "Effect Hit Rate",
"statRes": "Effect RES",
"statDmgBoost": "{element} DMG Boost",
"relicPickerTitle": "🛡️ Kelola Relic: {slot}",
"tabQuickGen": "⚡ Buat Cepat & Rekomendasi",
"tabFromInventory": "📦 Dari Inventaris",
"btnEquipInstant": "⚡ Pasang Sekarang (+15 5★ Stat Dewa)",
"btnUnequip": "❌ Lepas Relic",
"currentEquipped": "Sedang Dipasang",
"noRelicEquipped": "Belum ada relic terpasang",
"chooseMainStat": "Pilih Main Stat:",
"chooseSet": "Pilih Set Relic:",
"recommendedBadge": "Rekomendasi",
"overviewStatsTitle": "⚔️ Statistik Tempur (Combat Stats)",
"overviewStatsNote": "Termasuk bonus Light Cone & Relic",
"overviewEquippedLc": "🗡️ Light Cone Terpasang",
"overviewEquippedRelics": "🛡️ Bonus Set Relic",
"modalRelicsTitle": "🛡️ Pasang Relic (6 Slot)",
"modalRelicsSubtitle": "Klik setiap slot untuk mengganti atau pasang set rekomendasi",
"btnAutoEquipRelics": "⚡ Pasang Set Rekomendasi",
"btnClearAllRelics": "🧹 Lepas Semua",
"activeSetEffects": "✨ Efek Set yang Aktif",
"modalColLevel": "Level",
"lblPromotion": "Peringkat Ascension",
"slotPickerTitle": "🛡️ Pilih Relic untuk Dipasang",
"quickGenRecTitle": "⚡ Buat Bagian Rekomendasi Slot Ini",
"quickGenRecDesc": "Buat relic 5★ +15 dengan set & stat utama terbaik",
"btnGenAndEquip": "Buat & Pasang",
"selectFromInventory": "Pilih dari Penyimpanan",
"btnAllE0S1": "⚡ Semua E0S1",
"qaGachabaseTitle": "Ambil Data dari Gachabase",
"qaGachabaseDesc": "Impor karakter dan LC beta/datamine terbaru",
"synergyTitle": "Analisis Sinergi Tim & Kelemahan Break",
"synergySubtitle": "Analisis cakupan Weakness Break, keseimbangan peran, dan kesiapan perlengkapan",
"synergyBreakCoverage": "🎯 Cakupan Weakness Break",
"synergyRoleBalance": "🛡️ Komposisi Tim & Distribusi Peran",
"synergyEquipmentTitle": "📊 Kesiapan Perlengkapan & Level Rata-rata",
"synergyAvgLevel": "Level Rata-rata",
"synergyAvgEidolon": "Eidolon Rata-rata",
"synergyLcEquipped": "Light Cone Terpasang",
"synergyRelicFull": "Relic Lengkap",
"synergyCoverageBadge": "Mencakup {count}/7 Elemen",
"synergyNoInTeam": "Tidak ada di tim",
"roleDps": "🗡️ DPS",
"roleSupport": "⚡ Support / Debuff",
"roleSustain": "🛡️ Sustain (Penyembuh/Perisai)",
"roleSpecialist": "🔮 Spesialis / Serangan Lanjutan",
"adviceEmpty": "Belum ada karakter di tim. Silakan pilih anggota tim di atas.",
"adviceNoSustain": "⚠️ Saran: Tim kekurangan karakter pelindung atau penyembuh (Preservation / Abundance). Disarankan membawa 1 untuk bertahan hidup.",
"adviceNoDps": "💡 Saran: Tim hanya terdiri dari support tanpa DPS utama (Destruction / Hunt / Erudition).",
"adviceNoSupport": "💡 Saran: Tim memiliki DPS tetapi kurang buffer/debuffer (Harmony / Nihility). Menambahkan support akan meningkatkan damage secara signifikan.",
"adviceBalanced": "✅ Keseimbangan Luar Biasa: Susunan tim lengkap dengan DPS, buffer/debuffer, dan sustain. Siap menghadapi semua tantangan!",
"consoleTitle": "Konsol Perintah GM & Log Langsung",
"consoleSubtitle": "Kirim perintah GM / Server secara langsung dengan log paket dan status",
"consoleCopyLog": "📋 Salin Log",
"consoleClearLog": "🗑️ Bersihkan",
"consoleQuickTitle": "⚡ Perintah Cepat",
"consolePlaceholder": "Ketik perintah GM, cth: /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Kirim",
"consoleHistoryHint": "💡 Tekan ↑ ↓ untuk memilih riwayat perintah sebelumnya",
"consoleOnline": "● Server Online",
"consoleOffline": "○ Offline (Eksekusi lokal)",
"consoleLogCopied": "📋 Semua log disalin ke papan klip!",
"consoleLogCopyFailed": "❌ Gagal menyalin log",
"consoleLogCleared": "Log terminal dibersihkan",
"btnGachabaseSync": "🌐 Sinkron Gachabase",
"tabPersistentGaC": "💾 Pengelola Simpan GaC",
"tabPersistentFirefly": "👤 Trailblazer & March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Tingkat Superimpose",
"lcPickerTitle": "🗡️ Pilih Light Cone untuk Dipasang",
"lcPickerSigTitle": "⭐ Light Cone Signature Rekomendasi",
"lcPickerEquipSig": "⚡ Pasang Ini",
"lcPickerUnequip": "✕ Lepas Light Cone"
},
"es": {
"ahaGlobalDesc": "Activar rasgo especial de Eón ★ Aha en todo el servidor",
"btnAddLc": "+ Añadir cono de luz",
"btnAddRelic": "+ Añadir reliquia",
"btnAddSlot": "+ Añadir posición",
"lblCreativeMode": "Modo creativo",
"badgeCreative": "Creativo",
"toastSlotRemoved": "Posición {slot} eliminada",
"quickActionsBadge": "Herramientas Rápidas",
"qaEnergy50Title": "Energía de equipo 50%",
"qaEnergy50Desc": "Energía inicial estándar en batalla",
"qaEnergy100Title": "Energía de equipo 100%",
"qaEnergy100Desc": "Habilidad definitiva lista al instante",
"qaUnlockAllTitle": "Desbloquear todos los personajes",
"qaUnlockAllDesc": "Añadir más de 70 personajes con E6",
"qaAddLcsTitle": "Añadir todos los conos de luz 5★",
"qaAddLcsDesc": "Conos de luz distintivos S5 al inventario",
"qaTeleportTitle": "Teletransporte al Expreso Astral",
"qaTeleportDesc": "Volver al vagón panorámico (zona segura)",
"qaClearLineupTitle": "Vaciar equipo",
"qaClearLineupDesc": "Limpiar casillas para formar nuevo equipo",
"toastEnergy50": "Energía del equipo ajustada al 50%",
"toastEnergy100": "Energía del equipo ajustada al 100%",
"toastUnlockedAll": "Todos los personajes desbloqueados (E6)",
"toastAddedAllLcs": "Todos los conos de 5★ añadidos",
"toastTeleportedTrain": "Teletransportado al Expreso Astral",
"toastLineupCleared": "Equipo vaciado correctamente",
"modalAddLcTitle": "🗡️ Añadir cono de luz a FreeSR",
"modalAddRelicTitle": "🛡️ Añadir reliquia a FreeSR",
"lblSelectLc": "Seleccionar cono de luz",
"lblSelectRelicSet": "Seleccionar conjunto de reliquias",
"lblRelicSlot": "Ranura de reliquia",
"lblMainAffix": "Atributo principal",
"lblEquipAvatar": "Equipar a personaje",
"unassigned": "-- Sin equipar (Inventario) --",
"btnAddLcSubmit": "💾 Añadir a FreeSR",
"btnAddRelicSubmit": "💾 Añadir a FreeSR",
"toastLcAdded": "Cono de luz añadido a FreeSR",
"toastRelicAdded": "Reliquia añadida a FreeSR",
"deleteItem": "Eliminar",
"toastItemDeleted": "Objeto eliminado correctamente",
"appName": "GaC-Srtool",
"appSubtitle": "Controlador de servidor y FreeSR de Star Rail",
"online": "Conectado",
"offline": "Desconectado",
"checking": "Comprobando...",
"refresh": "🔄 Actualizar",
"connectFailed": "Conexión fallida",
"tabDashboard": "📊 Panel y equipo",
"tabAvatars": "👥 Personajes",
"tabEquipment": "🗡️ Conos de luz y artefactos",
"tabPersistent": "💾 Gestor de guardado GaC",
"tabExrank": "⚡ Habilidades Ex-Rank",
"tabJson": "📝 Gestión de JSON",
"tabSettings": "⚙️ Ajustes",
"statAvatars": "Personajes en posesión",
"statLightcones": "Conos de luz",
"statRelics": "Artefactos",
"serverStatusTitle": "📍 Estado del servidor y coordenadas",
"lblServerModeActive": "Modo de servidor activo",
"lblApiEndpoint": "Punto de enlace API Gateway",
"lblPlaneId": "ID de plano",
"lblFloorId": "ID de piso",
"coords": "Coordenadas del personaje XYZ",
"quickActionsTitle": "⚡ Acciones rápidas",
"quickActionsSubtitle": "Enviar comandos al servidor al instante",
"btnMaxAll": "⭐ Nivel 80 y E6 a todos los personajes",
"btnSyncPersistent": "💾 Sincronizar guardado persistent",
"currentLineupTitle": "🎮 Alineación actual",
"slot": "Posición",
"slotEmpty": "Vacío (Haz clic para añadir)",
"slotTooltip": "Haz clic para seleccionar un personaje en esta casilla",
"removeFromTeam": "Quitar del equipo",
"searchPlaceholder": "🔍 Buscar por nombre o ID de personaje...",
"filterAllRarity": "Todas las rarezas",
"filter5Star": "5 Estrellas",
"filter4Star": "4 Estrellas",
"filterAllElements": "Todos los elementos",
"filterAllPaths": "Todas las vías",
"btnReload": "🔄 Recargar",
"avatarsLoading": "Cargando personajes...",
"noAvatarsFound": "No se encontraron personajes coincidentes",
"eidolonLabel": "Eidolon:",
"confirmMaxAll": "¿Subir todos los personajes a nivel 80 y desbloquear E6?",
"maxAllSuccess": "¡Todos los personajes maximizados con éxito!",
"avatarRankSuccess": "Personaje {id} actualizado a E{rank}",
"eqLcTitle": "🗡️ Conos de luz en inventario",
"eqLcSubtitle": "Todos los conos de luz de freesr-data.json",
"eqLcLoading": "Cargando datos de conos de luz...",
"eqRelicTitle": "🛡️ Artefactos en inventario",
"eqRelicSubtitle": "Todos los artefactos de freesr-data.json",
"eqRelicLoading": "Cargando datos de artefactos...",
"itemCount": "{n} objetos",
"notEquipped": "No equipado",
"equippedBy": "Equipado por",
"noLcData": "No hay datos de conos de luz",
"noRelicData": "No hay datos de artefactos",
"persistentTitle": "💾 Gestor de guardado GaC",
"persistentBadge": "Servidor personalizado propio",
"persistentSubtitle": "El archivo persistent guarda configuraciones específicas de GaC como género/elemento del Trazacaminos, vía de Siete de Marzo e interruptores globales",
"persistentTbM7Title": "👤 Trazacaminos y Siete de Marzo",
"lblTbGenderElement": "Género y elemento del Trazacaminos",
"lblM7Path": "Vía de Siete de Marzo",
"btnSaveCharSettings": "💾 Guardar ajustes de personaje",
"persistentGlobalTitle": "⚙️ Funciones especiales de GaC",
"swGlobalDesc": "Activar función global de Silver Wolf en todo el servidor",
"castoriceGlobalDesc": "Activar función global de Castorice en todo el servidor",
"btnSaveGlobalSwitch": "💾 Guardar interruptores globales",
"exrankTitle": "⚡ Sistema de habilidades Ex-Rank",
"exrankSubtitle": "Activa 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 personajes Ex-Rank {status}",
"enabled": "activado",
"disabled": "desactivado",
"btnFreesr": "📄 freesr-data.json",
"btnPersistent": "💾 persistent",
"btnBeautify": "✨ Formatear 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": "⚙️ Ajustes de conexión API Gateway",
"apiSettingsSubtitle": "Ajuste el puerto o la IP según su server.json",
"lblServerMode": "Modo de servidor",
"lblApiGatewayUrl": "URL REST API Gateway",
"lblPingInterval": "Frecuencia de comprobación (segundos)",
"btnSaveSettings": "💾 Guardar ajustes",
"btnResetDefault": "Restablecer valores iniciales",
"modalTitleCharEdit": "Personalización de personaje",
"modalBtnMaxAllChar": "⭐ Maximizar todo",
"modalTabSkills": "⚡ Habilidades y rastros",
"modalTabStatus": "⚙️ Nivel y Eidolon",
"modalTabLightcone": "🗡️ Cono de luz",
"modalSkillCombatTitle": "Nivel de habilidades de combate",
"modalBtnMaxSkills": "⭐ Habilidades al máximo (10/10)",
"modalSkillBasic": "Ataque básico",
"modalSkillSkill": "Habilidad básica",
"modalSkillUltra": "Habilidad definitiva",
"modalSkillTalent": "Talento",
"modalTracesTitle": "Rastros y técnica",
"modalTraceTechnique": "⚡ Técnica — Activa antes de la batalla",
"traceA2": "🌟 Habilidad adicional A2",
"traceA4": "🌟 Habilidad adicional A4",
"traceA6": "🌟 Habilidad adicional A6",
"traceStatNodes": "💎 Todos los nodos de atributos (10 nodos)",
"lblLevelRange": "Nivel (1-80)",
"lblPromotionRange": "Ascensión (0-6)",
"lblEidolonLevel": "Nivel de Eidolon",
"btnResetE0": "Restablecer E0",
"btnMaxE6": "⭐ E6 al máximo",
"modalEnergyTitle": "Energía definitiva",
"modalEnergy50": "Poner 50%",
"modalEnergy100": "Llenar 100%",
"modalLcTitle": "Cono de luz equipado",
"modalBtnMaxLc": "⭐ Cono al máximo (Nv.80 Superp.5)",
"lblLcId": "ID de cono de luz",
"modalLcIdPlaceholder": "ej. 21002 o 24001",
"lblLcLevel": "Nivel de cono de luz (1-80)",
"lblLcRank": "Superposición (S1-S5)",
"modalBtnClose": "✕ Cerrar",
"modalBtnSave": "💾 Guardar personaje",
"pickerTitle": "Seleccionar personaje para el equipo",
"pickerSearchPlaceholder": "🔍 Buscar personaje para añadir...",
"apiModalTitle": "⚙️ Ajustes de conexión de servidor API",
"btnCancel": "Cancelar",
"btnSaveTest": "Guardar y probar",
"toastSlotUpdated": "Casilla {slot} actualizada a: {name}",
"toastCharMaxed": "⭐ {name} al máximo (Nv. 80 E6)",
"toastCharSaved": "Personaje {name} guardado",
"toastAllSkillsMaxed": "⭐ Habilidades y rastros al máximo",
"toastServerSwitched": "Modo de servidor cambiado a: {mode}",
"tbOptions": {
"MalePhysical": "Trazacaminos (Masculino) - Físico",
"FemalePhysical": "Trazacaminos (Femenino) - Físico",
"MalePreservation": "Trazacaminos (Masculino) - Fuego",
"FemalePreservation": "Trazacaminos (Femenino) - Fuego",
"MaleHarmony": "Trazacaminos (Masculino) - Armonía",
"FemaleHarmony": "Trazacaminos (Femenino) - Armonía",
"MaleRemembrance": "Trazacaminos (Masculino) - Reminiscencia",
"FemaleRemembrance": "Trazacaminos (Femenino) - Reminiscencia"
},
"marchOptions": {
"MarchHunt": "Siete de Marzo - Cacería",
"MarchPreservation": "Siete de Marzo - Conservación"
},
"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": "Inexistencia",
"Preservation": "Conservación",
"Abundance": "Abundancia",
"Remembrance": "Reminiscencia",
"Unknown": "Desconocido",
"Elation": "Exultación"
},
"settingsSaved": "¡Ajustes guardados con éxito!",
"settingsReset": "Ajustes restablecidos por defecto",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Tarjeta de exhibición",
"showcaseAutoRelics": "⚡ Autoequipar artefactos",
"showcaseCopy": "📋 Copiar texto",
"showcaseExport": "🖼️ Exportar imagen",
"btnChangeLc": "Cambiar Cono de Luz",
"lcPassiveTitle": "Habilidad del Cono de Luz",
"toastE6S5Applied": "⭐ ¡Personaje maximizado a E6S5 (Nv.80, Habilidades al máximo, S5)!",
"toastE0S1Applied": "⚡ ¡Personaje ajustado a E0S1 (Nv.80, Habilidades al máximo, S1)!",
"toastShowcaseCopied": "📋 ¡Información de la build copiada al portapapeles!",
"toastRelicsEquipped": "⚡ ¡Set de artefactos +15 óptimo equipado para {name}!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ Conexión API Gateway",
"settingsConnSubtitle": "Configura el modo del servidor y el endpoint REST",
"btnTestPing": "⚡ Probar conexión",
"settingsBattleTitle": "🎮 Valores de batalla y FreeSR",
"settingsBattleSubtitle": "Personaliza el comportamiento de batalla y equipo por defecto",
"lblDefaultEnergy": "Energía inicial de batalla",
"lblAutoSync": "Sincronización automática con el servidor",
"descAutoSync": "Envía cambios de personajes y equipo al servidor inmediatamente",
"lblDefaultCreative": "Modo Creativo por defecto",
"descDefaultCreative": "Permite personajes duplicados y más de 4 ranuras de equipo",
"settingsShowcaseTitle": "🖼️ Visualización de tarjeta de exhibición",
"settingsShowcaseSubtitle": "Personaliza el estilo y detalles de la tarjeta de build",
"lblShowRolls": "Mostrar tiradas de substats",
"descShowRolls": "Muestra etiquetas de número de mejoras en substats de artefactos",
"lblElementAura": "Efecto de brillo de aura elemental",
"descElementAura": "Fondo de tarjeta y brillo ambiental según el elemento del personaje",
"settingsCacheTitle": "🧹 Gestión de caché y reinicio",
"settingsCacheSubtitle": "Borra datos temporales del navegador o restaura ajustes de fábrica",
"lblCacheSize": "Uso de memoria LocalStorage:",
"btnClearCache": "🧹 Limpiar caché del navegador",
"btnFactoryReset": "🔄 Restablecimiento de fábrica",
"toastPingSuccess": "⚡ ¡Conexión exitosa! Latencia: {ms} ms",
"toastPingFailed": "❌ Error al conectar con Gateway. Comprueba el estado del servidor",
"toastCacheCleared": "🧹 Caché del navegador borrada con éxito",
"qaLineupE0S1Title": "Equipo en E0S1",
"qaLineupE0S1Desc": "Personajes del equipo en E0 con Cono S1",
"qaLineupRelicsTitle": "Autoequipar artefactos de equipo",
"qaLineupRelicsDesc": "Equipar artefactos +15 a los 4 compañeros",
"lblPersistenceInfo": "Gestión de datos y archivos de guardado",
"modalTabOverview": "Resumen",
"modalTabRelics": "Artefactos y equipo",
"attrBasic": "◆ Atributos básicos",
"attrAdvanced": "◆ Atributos avanzados",
"attrElemental": "◆ Tipo de daño",
"statMaxHp": "PV máx.",
"statAtk": "ATQ",
"statDef": "DEF",
"statSpd": "VEL",
"statCritRate": "Prob. CRIT",
"statCritDmg": "Daño CRIT",
"statBreakEffect": "Efecto de Ruptura",
"statHealBoost": "Bonif. curación realizada",
"statMaxEnergy": "Energía máx.",
"statEnergyRegen": "Recuperación de energía",
"statEhr": "Acierto de efecto",
"statRes": "Resistencia a efecto",
"statDmgBoost": "Daño {element} aumentado",
"relicPickerTitle": "🛡️ Administrar artefacto: {slot}",
"tabQuickGen": "⚡ Creación rápida y recomendada",
"tabFromInventory": "📦 Del inventario",
"btnEquipInstant": "⚡ Equipar ahora (+15 5★ Substats perfectos)",
"btnUnequip": "❌ Desequipar artefacto",
"currentEquipped": "Equipado actualmente",
"noRelicEquipped": "Ningún artefacto equipado en esta casilla",
"chooseMainStat": "Elegir stat principal:",
"chooseSet": "Elegir conjunto:",
"recommendedBadge": "Recomendado",
"overviewStatsTitle": "⚔️ Estadísticas de combate",
"overviewStatsNote": "Incluye bonificaciones de Cono y Artefactos",
"overviewEquippedLc": "🗡️ Cono de Luz equipado",
"overviewEquippedRelics": "🛡️ Artefactos y efectos de set",
"modalRelicsTitle": "🛡️ Equipar artefactos (6 ranuras)",
"modalRelicsSubtitle": "Haz clic en cada ranura para cambiar o equipar sets recomendados",
"btnAutoEquipRelics": "⚡ Equipar sets recomendados",
"btnClearAllRelics": "🧹 Desequipar todo",
"activeSetEffects": "✨ Efectos de set activos",
"modalColLevel": "Nivel",
"lblPromotion": "Rango de ascensión",
"slotPickerTitle": "🛡️ Seleccionar artefacto para equipar",
"quickGenRecTitle": "⚡ Generar pieza recomendada",
"quickGenRecDesc": "Genera 5★ +15 con el mejor set y stat principal",
"btnGenAndEquip": "Generar y equipar",
"selectFromInventory": "Seleccionar del inventario",
"btnAllE0S1": "⚡ Todos E0S1",
"qaGachabaseTitle": "Obtener de Gachabase",
"qaGachabaseDesc": "Importar últimos personajes y conos de la beta/datamine",
"synergyTitle": "Análisis de sinergia de equipo y ruptura de debilidad",
"synergySubtitle": "Analiza la cobertura de debilidades, equilibrio de roles y preparación de equipo",
"synergyBreakCoverage": "🎯 Cobertura de ruptura de debilidad",
"synergyRoleBalance": "🛡️ Composición del equipo y distribución de roles",
"synergyEquipmentTitle": "📊 Preparación de equipo y nivel medio",
"synergyAvgLevel": "Nivel promedio",
"synergyAvgEidolon": "Eidolon promedio",
"synergyLcEquipped": "Conos equipados",
"synergyRelicFull": "Artefactos completos",
"synergyCoverageBadge": "Cubre {count}/7 Elementos",
"synergyNoInTeam": "Ninguno en el equipo",
"roleDps": "🗡️ DPS",
"roleSupport": "⚡ Apoyo / Debuff",
"roleSustain": "🛡️ Supervivencia (Sanador/Escudo)",
"roleSpecialist": "🔮 Especialista / Adicional",
"adviceEmpty": "No hay personajes en el equipo. Por favor selecciona integrantes arriba.",
"adviceNoSustain": "⚠️ Consejo: El equipo carece de un defensor o sanador (Conservación / Abundancia). Se recomienda añadir uno para mayor supervivencia.",
"adviceNoDps": "💡 Consejo: El equipo solo tiene apoyos sin un causante de daño principal (Destrucción / Cacería / Erudición).",
"adviceNoSupport": "💡 Consejo: El equipo tiene DPS pero carece de potenciadores/debilitadores (Armonía / Nihilidad). Añadir soporte aumentará enormemente el daño.",
"adviceBalanced": "✅ Equilibrio excelente: El equipo cuenta con DPS, apoyos de beneficio/perjuicio y supervivencia. ¡Listo para cualquier desafío!",
"consoleTitle": "Consola de comandos GM y registros en vivo",
"consoleSubtitle": "Envía comandos GM / Servidor en tiempo real con registros de paquetes y estado",
"consoleCopyLog": "📋 Copiar",
"consoleClearLog": "🗑️ Limpiar",
"consoleQuickTitle": "⚡ Comandos rápidos comunes",
"consolePlaceholder": "Escribe comando GM, ej: /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Enviar",
"consoleHistoryHint": "💡 Pulsa ↑ ↓ para navegar por el historial de comandos",
"consoleOnline": "● Servidor en línea",
"consoleOffline": "○ Desconectado (Modo local)",
"consoleLogCopied": "📋 ¡Todos los registros se han copiado al portapapeles!",
"consoleLogCopyFailed": "❌ Error al copiar registros",
"consoleLogCleared": "Registro de la terminal borrado",
"btnGachabaseSync": "🌐 Sincronizar Gachabase",
"tabPersistentGaC": "💾 Gestor de guardado GaC",
"tabPersistentFirefly": "👤 Trazacaminos y Siete de Marzo",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Rango de superposición",
"lcPickerTitle": "🗡️ Seleccionar Cono de Luz para equipar",
"lcPickerSigTitle": "⭐ Cono de Luz insignia recomendado",
"lcPickerEquipSig": "⚡ Equipar este",
"lcPickerUnequip": "✕ Desequipar Cono de Luz"
},
"fr": {
"ahaGlobalDesc": "Activer le trait spécial d'Éon ★ Aha sur tout le serveur",
"btnAddLc": "+ Ajouter cône de lumière",
"btnAddRelic": "+ Ajouter relique",
"btnAddSlot": "+ Ajouter un emplacement",
"lblCreativeMode": "Mode créatif",
"badgeCreative": "Créatif",
"toastSlotRemoved": "Emplacement {slot} supprimé",
"quickActionsBadge": "Outils Rapides",
"qaEnergy50Title": "Énergie d'équipe 50%",
"qaEnergy50Desc": "Énergie de départ standard en combat",
"qaEnergy100Title": "Énergie d'équipe 100%",
"qaEnergy100Desc": "Ultime prêt instantanément",
"qaUnlockAllTitle": "Débloquer tous les personnages",
"qaUnlockAllDesc": "Ajouter 70+ personnages au rang E6",
"qaAddLcsTitle": "Ajouter tous les cônes 5★",
"qaAddLcsDesc": "Cônes signatures S5 à l'inventaire",
"qaTeleportTitle": "Téléportation à l'Astral Express",
"qaTeleportDesc": "Retourner au wagon-salon (zone sûre)",
"qaClearLineupTitle": "Vider l'équipe",
"qaClearLineupDesc": "Effacer les emplacements pour recomposer",
"toastEnergy50": "Énergie d'équipe réglée à 50%",
"toastEnergy100": "Énergie d'équipe réglée à 100%",
"toastUnlockedAll": "Tous les personnages débloqués (E6)",
"toastAddedAllLcs": "Tous les cônes de lumière 5★ ajoutés",
"toastTeleportedTrain": "Téléporté au wagon-salon de l'Astral Express",
"toastLineupCleared": "Équipe réinitialisée",
"modalAddLcTitle": "🗡️ Ajouter cône de lumière à FreeSR",
"modalAddRelicTitle": "🛡️ Ajouter relique à FreeSR",
"lblSelectLc": "Sélectionner cône de lumière",
"lblSelectRelicSet": "Sélectionner ensemble de reliques",
"lblRelicSlot": "Emplacement de relique",
"lblMainAffix": "Statistique principale",
"lblEquipAvatar": "Équiper au personnage",
"unassigned": "-- Non équipé (Inventaire) --",
"btnAddLcSubmit": "💾 Ajouter à FreeSR",
"btnAddRelicSubmit": "💾 Ajouter à FreeSR",
"toastLcAdded": "Cône de lumière ajouté à FreeSR",
"toastRelicAdded": "Relique ajoutée à FreeSR",
"deleteItem": "Supprimer",
"toastItemDeleted": "Objet supprimé avec succès",
"appName": "GaC-Srtool",
"appSubtitle": "Contrôleur de serveur et FreeSR Star Rail",
"online": "Connecté",
"offline": "Hors ligne",
"checking": "Vérification...",
"refresh": "🔄 Actualiser",
"connectFailed": "Échec de connexion",
"tabDashboard": "📊 Tableau de bord et équipe",
"tabAvatars": "👥 Personnages",
"tabEquipment": "🗡️ Cônes de lumière et reliques",
"tabPersistent": "💾 Gestionnaire de sauvegarde GaC",
"tabExrank": "⚡ Compétences Ex-Rank",
"tabJson": "📝 Gestion JSON",
"tabSettings": "⚙️ Paramètres",
"statAvatars": "Personnages possédés",
"statLightcones": "Cônes de lumière",
"statRelics": "Reliques",
"serverStatusTitle": "📍 État du serveur et coordonnées",
"lblServerModeActive": "Mode de serveur actif",
"lblApiEndpoint": "Point de terminaison API Gateway",
"lblPlaneId": "ID de plan",
"lblFloorId": "ID d'étage",
"coords": "Coordonnées du personnage XYZ",
"quickActionsTitle": "⚡ Actions rapides",
"quickActionsSubtitle": "Envoyer des commandes au serveur instantanément",
"btnMaxAll": "⭐ Niv. 80 et E6 tous les personnages",
"btnSyncPersistent": "💾 Synchroniser la sauvegarde persistent",
"currentLineupTitle": "🎮 Équipe actuelle",
"slot": "Emplacement",
"slotEmpty": "Vide (Cliquer pour ajouter)",
"slotTooltip": "Cliquer pour sélectionner un personnage pour cet emplacement",
"removeFromTeam": "Retirer de l'équipe",
"searchPlaceholder": "🔍 Rechercher par nom ou ID de personnage...",
"filterAllRarity": "Toutes les raretés",
"filter5Star": "5 Étoiles",
"filter4Star": "4 Étoiles",
"filterAllElements": "Tous les éléments",
"filterAllPaths": "Toutes les voies",
"btnReload": "🔄 Recharger",
"avatarsLoading": "Chargement des personnages...",
"noAvatarsFound": "Aucun personnage correspondant trouvé",
"eidolonLabel": "Eidolon:",
"confirmMaxAll": "Améliorer tous les personnages au niveau 80 et débloquer E6 ?",
"maxAllSuccess": "Tous les personnages sont maximisés avec succès !",
"avatarRankSuccess": "Personnage {id} mis à jour au rang E{rank}",
"eqLcTitle": "🗡️ Cônes de lumière dans l'inventaire",
"eqLcSubtitle": "Tous les cônes de lumière de freesr-data.json",
"eqLcLoading": "Chargement des cônes de lumière...",
"eqRelicTitle": "🛡️ Reliques dans l'inventaire",
"eqRelicSubtitle": "Toutes les reliques de freesr-data.json",
"eqRelicLoading": "Chargement des reliques...",
"itemCount": "{n} objets",
"notEquipped": "Non équipé",
"equippedBy": "Équipé par",
"noLcData": "Aucune donnée de cône de lumière",
"noRelicData": "Aucune donnée de relique",
"persistentTitle": "💾 Gestionnaire de sauvegarde GaC",
"persistentBadge": "Serveur personnalisé",
"persistentSubtitle": "Le fichier persistent stocke les paramètres GaC spécifiques comme le sexe/élément du Pionnier, la voie de March 7th et les options globales",
"persistentTbM7Title": "👤 Pionnier et March 7th",
"lblTbGenderElement": "Sexe et élément du Pionnier",
"lblM7Path": "Voie de March 7th",
"btnSaveCharSettings": "💾 Enregistrer les réglages du personnage",
"persistentGlobalTitle": "⚙️ Fonctions spéciales GaC",
"swGlobalDesc": "Activer la fonction globale de Silver Wolf sur tout le serveur",
"castoriceGlobalDesc": "Activer la fonction globale de Castorice sur tout le serveur",
"btnSaveGlobalSwitch": "💾 Enregistrer les options globales",
"exrankTitle": "⚡ Système de compétences Ex-Rank",
"exrankSubtitle": "Active les bonus spéciaux Ex-Rank dans FreeSR (ex: immunité au contrôle de Jing Yuan, Dan Heng IL, Acheron)",
"btnEnableAll": "Activer tous les Ex-Rank",
"btnDisableAll": "Désactiver tous les Ex-Rank",
"exrankToggleSuccess": "{name}: Ex-Rank {status}",
"exrankAllSuccess": "Tous les personnages Ex-Rank {status}",
"enabled": "activé",
"disabled": "désactivé",
"btnFreesr": "📄 freesr-data.json",
"btnPersistent": "💾 persistent",
"btnBeautify": "✨ Mettre en forme le JSON",
"btnDownload": "📥 Télécharger la sauvegarde",
"btnUpload": "📤 Importer 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é avec succès",
"jsonInvalid": "Format JSON non valide",
"apiSettingsTitle": "⚙️ Paramètres de connexion API Gateway",
"apiSettingsSubtitle": "Ajustez le port ou l'IP selon votre server.json",
"lblServerMode": "Mode serveur",
"lblApiGatewayUrl": "URL REST API Gateway",
"lblPingInterval": "Intervalle de vérification (secondes)",
"btnSaveSettings": "💾 Enregistrer les paramètres",
"btnResetDefault": "Restaurer par défaut",
"modalTitleCharEdit": "Personnalisation du personnage",
"modalBtnMaxAllChar": "⭐ Tout maximiser",
"modalTabSkills": "⚡ Compétences et traces",
"modalTabStatus": "⚙️ Niveau et Eidolon",
"modalTabLightcone": "🗡️ Cône de lumière",
"modalSkillCombatTitle": "Niveaux de compétences de combat",
"modalBtnMaxSkills": "⭐ Compétences au max (10/10)",
"modalSkillBasic": "Attaque normale",
"modalSkillSkill": "Compétence",
"modalSkillUltra": "Ultime",
"modalSkillTalent": "Talent",
"modalTracesTitle": "Traces et technique",
"modalTraceTechnique": "⚡ Technique — Active avant le combat",
"traceA2": "🌟 Capacité bonus A2",
"traceA4": "🌟 Capacité bonus A4",
"traceA6": "🌟 Capacité bonus A6",
"traceStatNodes": "💎 Tous les nœuds de statistiques (10 nœuds)",
"lblLevelRange": "Niveau (1-80)",
"lblPromotionRange": "Élévation (0-6)",
"lblEidolonLevel": "Niveau d'Eidolon",
"btnResetE0": "Réinitialiser E0",
"btnMaxE6": "⭐ E6 au max",
"modalEnergyTitle": "Énergie ultime",
"modalEnergy50": "Régler 50%",
"modalEnergy100": "Plein 100%",
"modalLcTitle": "Cône de lumière équipé",
"modalBtnMaxLc": "⭐ Cône au max (Niv.80 S5)",
"lblLcId": "ID de cône de lumière",
"modalLcIdPlaceholder": "ex. 21002 ou 24001",
"lblLcLevel": "Niveau du cône (1-80)",
"lblLcRank": "Superposition (S1-S5)",
"modalBtnClose": "✕ Fermer",
"modalBtnSave": "💾 Enregistrer le personnage",
"pickerTitle": "Sélectionner un personnage pour l'équipe",
"pickerSearchPlaceholder": "🔍 Rechercher un personnage...",
"apiModalTitle": "⚙️ Paramètres de connexion au serveur API",
"btnCancel": "Annuler",
"btnSaveTest": "Enregistrer et tester",
"toastSlotUpdated": "Emplacement {slot} mis à jour avec : {name}",
"toastCharMaxed": "⭐ {name} au max (Niv. 80 E6)",
"toastCharSaved": "Personnage {name} enregistré",
"toastAllSkillsMaxed": "⭐ Compétences et traces au max",
"toastServerSwitched": "Mode serveur basculé sur : {mode}",
"tbOptions": {
"MalePhysical": "Pionnier (Homme) - Physique",
"FemalePhysical": "Pionnière (Femme) - Physique",
"MalePreservation": "Pionnier (Homme) - Feu",
"FemalePreservation": "Pionnière (Femme) - Feu",
"MaleHarmony": "Pionnier (Homme) - Harmonie",
"FemaleHarmony": "Pionnière (Femme) - Harmonie",
"MaleRemembrance": "Pionnier (Homme) - Souvenir",
"FemaleRemembrance": "Pionnière (Femme) - Souvenir"
},
"marchOptions": {
"MarchHunt": "March 7th - La Chasse",
"MarchPreservation": "March 7th - La Préservation"
},
"elements": {
"Physical": "Physique",
"Fire": "Feu",
"Ice": "Glace",
"Lightning": "Foudre",
"Wind": "Vent",
"Quantum": "Quantique",
"Imaginary": "Imaginaire",
"Unknown": "Inconnu"
},
"paths": {
"Destruction": "La Destruction",
"Hunt": "La Chasse",
"Erudition": "L'Érudition",
"Harmony": "L'Harmonie",
"Nihility": "La Nihilité",
"Preservation": "La Préservation",
"Abundance": "L'Abondance",
"Remembrance": "Le Souvenir",
"Unknown": "Inconnu",
"Elation": "L'Allégresse"
},
"settingsSaved": "Paramètres enregistrés avec succès !",
"settingsReset": "Paramètres réinitialisés par défaut",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Carte de présentation",
"showcaseAutoRelics": "⚡ Équiper reliques auto",
"showcaseCopy": "📋 Copier texte",
"showcaseExport": "🖼️ Exporter image",
"btnChangeLc": "Changer de Cône de Lumière",
"lcPassiveTitle": "Capacité du Cône de Lumière",
"toastE6S5Applied": "⭐ Personnage maximisé à E6S5 (Nv.80, Aptitudes max, S5)!",
"toastE0S1Applied": "⚡ Personnage ajusté à E0S1 (Nv.80, Aptitudes max, S1)!",
"toastShowcaseCopied": "📋 Informations de build copiées dans le presse-papiers!",
"toastRelicsEquipped": "⚡ Ensemble optimal de reliques +15 équipé pour {name}!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ Connexion API Gateway",
"settingsConnSubtitle": "Configurer le mode serveur et le point de terminaison REST",
"btnTestPing": "⚡ Tester la connexion",
"settingsBattleTitle": "🎮 Valeurs par défaut de combat & FreeSR",
"settingsBattleSubtitle": "Personnaliser le comportement de combat et d'équipe",
"lblDefaultEnergy": "Énergie initiale de combat",
"lblAutoSync": "Synchronisation automatique vers le serveur",
"descAutoSync": "Envoyer instantanément les modifications au serveur",
"lblDefaultCreative": "Mode Créatif par défaut",
"descDefaultCreative": "Autoriser les doublons et plus de 4 emplacements d'équipe",
"settingsShowcaseTitle": "🖼️ Affichage de la carte de présentation",
"settingsShowcaseSubtitle": "Personnaliser le style et les détails de la carte",
"lblShowRolls": "Afficher le nombre d'améliorations des sous-stats",
"descShowRolls": "Afficher le nombre de jets pour les sous-attributs",
"lblElementAura": "Effet d'aura lumineuse élémentaire",
"descElementAura": "Arrière-plan dynamique selon l'élément du personnage",
"settingsCacheTitle": "🧹 Gestion du cache & Réinitialisation",
"settingsCacheSubtitle": "Effacer les données temporaires ou réinitialiser le système",
"lblCacheSize": "Mémoire LocalStorage utilisée:",
"btnClearCache": "🧹 Vider le cache du navigateur",
"btnFactoryReset": "🔄 Réinitialisation d'usine",
"toastPingSuccess": "⚡ Connexion réussie! Latence: {ms} ms",
"toastPingFailed": "❌ Échec de connexion au Gateway. Vérifiez le serveur",
"toastCacheCleared": "🧹 Cache du navigateur vidé avec succès",
"qaLineupE0S1Title": "Équipe en E0S1",
"qaLineupE0S1Desc": "Personnages de l'équipe à E0 avec Cône S1",
"qaLineupRelicsTitle": "Équiper reliques d'équipe auto",
"qaLineupRelicsDesc": "Équiper reliques +15 aux 4 coéquipiers",
"lblPersistenceInfo": "Gestion des sauvegardes et données serveur",
"modalTabOverview": "Aperçu",
"modalTabRelics": "Reliques & Équipement",
"attrBasic": "◆ Caractéristiques de base",
"attrAdvanced": "◆ Caractéristiques avancées",
"attrElemental": "◆ Type de dégâts",
"statMaxHp": "PV max",
"statAtk": "ATQ",
"statDef": "DÉF",
"statSpd": "VIT",
"statCritRate": "Chances de coup critique",
"statCritDmg": "Dégâts critiques",
"statBreakEffect": "Effet de rupture",
"statHealBoost": "Augmentation des soins prodigués",
"statMaxEnergy": "Énergie max",
"statEnergyRegen": "Régénération d'énergie",
"statEhr": "Chances d'appliquer des effets",
"statRes": "Résistance aux effets",
"statDmgBoost": "Augmentation des dégâts {element}",
"relicPickerTitle": "🛡️ Gérer la relique : {slot}",
"tabQuickGen": "⚡ Création rapide et recommandée",
"tabFromInventory": "📦 Depuis l'inventaire",
"btnEquipInstant": "⚡ Équiper maintenant (+15 5★ Stats parfaites)",
"btnUnequip": "❌ Déséquiper",
"currentEquipped": "Actuellement équipé",
"noRelicEquipped": "Aucune relique équipée dans cet emplacement",
"chooseMainStat": "Choisir la stat principale :",
"chooseSet": "Choisir le set :",
"recommendedBadge": "Recommandé",
"overviewStatsTitle": "⚔️ Statistiques de combat",
"overviewStatsNote": "Inclut les bonus de Cône et de Reliques",
"overviewEquippedLc": "🗡️ Cône de Lumière équipé",
"overviewEquippedRelics": "🛡️ Reliques et bonus de set",
"modalRelicsTitle": "🛡️ Équiper reliques (6 emplacements)",
"modalRelicsSubtitle": "Cliquez sur chaque emplacement pour modifier ou équiper les sets recommandés",
"btnAutoEquipRelics": "⚡ Équiper sets recommandés",
"btnClearAllRelics": "🧹 Tout déséquiper",
"activeSetEffects": "✨ Bonus de set actifs",
"modalColLevel": "Niveau",
"lblPromotion": "Rang d'élévation",
"slotPickerTitle": "🛡️ Sélectionner une relique à équiper",
"quickGenRecTitle": "⚡ Générer la pièce recommandée",
"quickGenRecDesc": "Générer 5★ +15 avec le meilleur set et la stat principale",
"btnGenAndEquip": "Générer & Équiper",
"selectFromInventory": "Sélectionner dans l'inventaire",
"btnAllE0S1": "⚡ Tous E0S1",
"qaGachabaseTitle": "Récupérer depuis Gachabase",
"qaGachabaseDesc": "Importer les derniers personnages et cônes de la bêta",
"synergyTitle": "Analyse de synergie d'équipe et rupture de faiblesse",
"synergySubtitle": "Analysez la couverture de faiblesse, l'équilibre des rôles et la préparation des équipements",
"synergyBreakCoverage": "🎯 Couverture de rupture de faiblesse",
"synergyRoleBalance": "🛡️ Composition d'équipe et distribution des rôles",
"synergyEquipmentTitle": "📊 Préparation des équipements et niveau moyen",
"synergyAvgLevel": "Niveau moyen",
"synergyAvgEidolon": "Eidolon moyen",
"synergyLcEquipped": "Cônes équipés",
"synergyRelicFull": "Reliques complètes",
"synergyCoverageBadge": "Couvre {count}/7 Éléments",
"synergyNoInTeam": "Aucun dans l'équipe",
"roleDps": "🗡️ DPS",
"roleSupport": "⚡ Soutien / Affaiblissement",
"roleSustain": "🛡️ Survie (Soigneur/Bouclier)",
"roleSpecialist": "🔮 Spécialiste / Attaque de suivi",
"adviceEmpty": "Aucun personnage dans l'équipe. Veuillez sélectionner des coéquipiers ci-dessus.",
"adviceNoSustain": "⚠️ Conseil: L'équipe manque d'une unité de défense ou de soin (Préservation / Abondance). En ajouter une est fortement recommandé.",
"adviceNoDps": "💡 Conseil: L'équipe ne contient que des soutiens sans attaquant principal (Destruction / Chasse / Érudition).",
"adviceNoSupport": "💡 Conseil: L'équipe a des attaquants mais manque de buffs/débuffs (Harmonie / Nihilité). Ajouter du soutien augmentera grandement vos dégâts.",
"adviceBalanced": "✅ Équilibre excellent: L'équipe est complète avec DPS, soutiens et survie. Prête pour tous les défis!",
"consoleTitle": "Console de commandes GM et journaux en direct",
"consoleSubtitle": "Envoyez des commandes GM / Serveur en temps réel avec journaux de paquets",
"consoleCopyLog": "📋 Copier",
"consoleClearLog": "🗑️ Effacer",
"consoleQuickTitle": "⚡ Commandes rapides",
"consolePlaceholder": "Entrez commande GM, ex: /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Envoyer",
"consoleHistoryHint": "💡 Appuyez sur ↑ ↓ pour naviguer dans l'historique des commandes",
"consoleOnline": "● Serveur en ligne",
"consoleOffline": "○ Hors ligne (Exécution locale)",
"consoleLogCopied": "📋 Tous les journaux ont été copiés dans le presse-papiers!",
"consoleLogCopyFailed": "❌ Impossible de copier les journaux",
"consoleLogCleared": "Journaux du terminal effacés",
"btnGachabaseSync": "🌐 Synchroniser Gachabase",
"tabPersistentGaC": "💾 Gestionnaire de sauvegarde GaC",
"tabPersistentFirefly": "👤 Pionnier & March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Rang de superposition",
"lcPickerTitle": "🗡️ Sélectionner un Cône de Lumière à équiper",
"lcPickerSigTitle": "⭐ Cône de Lumière signature recommandé",
"lcPickerEquipSig": "⚡ Équiper ceci",
"lcPickerUnequip": "✕ Déséquiper le Cône"
},
"de": {
"ahaGlobalDesc": "Serverweite Äon ★ Aha-Spezialmechanik aktivieren",
"btnAddLc": "+ Lichtkegel hinzufügen",
"btnAddRelic": "+ Relikt hinzufügen",
"btnAddSlot": "+ Platz hinzufügen",
"lblCreativeMode": "Kreativmodus",
"badgeCreative": "Kreativ",
"toastSlotRemoved": "Platz {slot} entfernt",
"quickActionsBadge": "Schnellbefehle",
"qaEnergy50Title": "Team-Energie 50%",
"qaEnergy50Desc": "Standard-Startenergie im Kampf",
"qaEnergy100Title": "Team-Energie 100%",
"qaEnergy100Desc": "Ultimate sofort einsatzbereit",
"qaUnlockAllTitle": "Alle Figuren freischalten",
"qaUnlockAllDesc": "Alle 70+ Figuren auf E6 hinzufügen",
"qaAddLcsTitle": "Alle 5★-Lichtkegel hinzufügen",
"qaAddLcsDesc": "Signatur-Lichtkegel (S5) ins Inventar",
"qaTeleportTitle": "Zum Astralexpress teleportieren",
"qaTeleportDesc": "Zurück zum Parlor Car (Sicherheitszone)",
"qaClearLineupTitle": "Team leeren",
"qaClearLineupDesc": "Alle Plätze leeren für neues Team",
"toastEnergy50": "Team-Energie auf 50% gesetzt",
"toastEnergy100": "Team-Energie auf 100% gesetzt",
"toastUnlockedAll": "Alle Figuren auf E6 freigeschaltet",
"toastAddedAllLcs": "Alle 5★-Lichtkegel hinzugefügt",
"toastTeleportedTrain": "Zum Astralexpress teleportiert",
"toastLineupCleared": "Team-Plätze geleert",
"modalAddLcTitle": "🗡️ Lichtkegel zu FreeSR hinzufügen",
"modalAddRelicTitle": "🛡️ Relikt zu FreeSR hinzufügen",
"lblSelectLc": "Lichtkegel auswählen",
"lblSelectRelicSet": "Reliktset auswählen",
"lblRelicSlot": "Reliktslot",
"lblMainAffix": "Hauptwert",
"lblEquipAvatar": "Figur ausrüsten",
"unassigned": "-- Nicht ausgerüstet (Inventar) --",
"btnAddLcSubmit": "💾 Zu FreeSR hinzufügen",
"btnAddRelicSubmit": "💾 Zu FreeSR hinzufügen",
"toastLcAdded": "Lichtkegel zu FreeSR hinzugefügt",
"toastRelicAdded": "Relikt zu FreeSR hinzugefügt",
"deleteItem": "Löschen",
"toastItemDeleted": "Gegenstand erfolgreich gelöscht",
"appName": "GaC-Srtool",
"appSubtitle": "Star Rail FreeSR- & Server-Controller",
"online": "Verbunden",
"offline": "Offline",
"checking": "Prüfen...",
"refresh": "🔄 Aktualisieren",
"connectFailed": "Verbindung fehlgeschlagen",
"tabDashboard": "📊 Dashboard & Team",
"tabAvatars": "👥 Charaktere",
"tabEquipment": "🗡️ Lichtkegel & Relikte",
"tabPersistent": "💾 GaC-Speicher-Manager",
"tabExrank": "⚡ Ex-Rank-Fähigkeiten",
"tabJson": "📝 JSON-Verwaltung",
"tabSettings": "⚙️ Einstellungen",
"statAvatars": "Charaktere im Besitz",
"statLightcones": "Lichtkegel",
"statRelics": "Relikte",
"serverStatusTitle": "📍 Serverstatus & Koordinaten",
"lblServerModeActive": "Aktiver Servermodus",
"lblApiEndpoint": "API-Gateway-Endpunkt",
"lblPlaneId": "Ebenen-ID",
"lblFloorId": "Stockwerk-ID",
"coords": "Charakterkoordinaten XYZ",
"quickActionsTitle": "⚡ Schnellaktionen",
"quickActionsSubtitle": "Befehle sofort an den Server senden",
"btnMaxAll": "⭐ Alle Charaktere auf St. 80 & E6",
"btnSyncPersistent": "💾 Persistent-Speicherstand synchronisieren",
"currentLineupTitle": "🎮 Aktuelles Team",
"slot": "Platz",
"slotEmpty": "Leer (Klicken zum Hinzufügen)",
"slotTooltip": "Klicken, um einen Charakter für diesen Platz auszuwählen",
"removeFromTeam": "Aus dem Team entfernen",
"searchPlaceholder": "🔍 Nach Name oder ID suchen...",
"filterAllRarity": "Alle Seltenheiten",
"filter5Star": "5 Sterne",
"filter4Star": "4 Sterne",
"filterAllElements": "Alle Elemente",
"filterAllPaths": "Alle Pfade",
"btnReload": "🔄 Neu laden",
"avatarsLoading": "Charaktere werden geladen...",
"noAvatarsFound": "Keine passenden Charaktere gefunden",
"eidolonLabel": "Eidolon:",
"confirmMaxAll": "Alle Charaktere auf Stufe 80 aufwerten und E6 freischalten?",
"maxAllSuccess": "Alle Charaktere erfolgreich maximiert!",
"avatarRankSuccess": "Charakter {id} auf E{rank} aktualisiert",
"eqLcTitle": "🗡️ Lichtkegel im Inventar",
"eqLcSubtitle": "Alle Lichtkegel aus freesr-data.json",
"eqLcLoading": "Lichtkegeldaten werden geladen...",
"eqRelicTitle": "🛡️ Relikte im Inventar",
"eqRelicSubtitle": "Alle Relikte aus freesr-data.json",
"eqRelicLoading": "Reliktdaten werden geladen...",
"itemCount": "{n} Gegenstände",
"notEquipped": "Nicht ausgerüstet",
"equippedBy": "Ausgerüstet von",
"noLcData": "Keine Lichtkegeldaten verfügbar",
"noRelicData": "Keine Reliktdaten verfügbar",
"persistentTitle": "💾 GaC-Speicher-Manager",
"persistentBadge": "Eigener benutzerdefinierter Server",
"persistentSubtitle": "Die persistent-Datei speichert GaC-spezifische Einstellungen wie Geschlecht/Element des Trailblazers, Pfad von 7. März und globale Schalter",
"persistentTbM7Title": "👤 Trailblazer & 7. März",
"lblTbGenderElement": "Geschlecht & Element des Trailblazers",
"lblM7Path": "Pfad von 7. März",
"btnSaveCharSettings": "💾 Charaktereinstellungen speichern",
"persistentGlobalTitle": "⚙️ GaC-Sonderfunktionsschalter",
"swGlobalDesc": "Serverweite Silver Wolf-Spezialmechanik aktivieren",
"castoriceGlobalDesc": "Serverweite Castorice-Spezialmechanik aktivieren",
"btnSaveGlobalSwitch": "💾 Globale Schalter speichern",
"exrankTitle": "⚡ Ex-Rank-Fähigkeitensystem",
"exrankSubtitle": "Aktiviert spezielle Ex-Rank-Talente in FreeSR (z.B. CC-Immunität für Jing Yuan, Dan Heng IL, Acheron)",
"btnEnableAll": "Alle Ex-Ranks aktivieren",
"btnDisableAll": "Alle Ex-Ranks deaktivieren",
"exrankToggleSuccess": "{name}: Ex-Rank {status}",
"exrankAllSuccess": "Alle Charaktere Ex-Rank {status}",
"enabled": "aktiviert",
"disabled": "deaktiviert",
"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 'Auf Server speichern' klicken",
"jsonStatusReady": "Bereit",
"jsonStatusOpening": "Öffnen: {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",
"lblServerMode": "Servermodus",
"lblApiGatewayUrl": "REST API Gateway URL",
"lblPingInterval": "Prüfintervall (Sekunden)",
"btnSaveSettings": "💾 Einstellungen speichern",
"btnResetDefault": "Auf Standard zurücksetzen",
"modalTitleCharEdit": "Charakteranpassung",
"modalBtnMaxAllChar": "⭐ Alles maximieren",
"modalTabSkills": "⚡ Fähigkeiten & Spuren",
"modalTabStatus": "⚙️ Stufe & Eidolon",
"modalTabLightcone": "🗡️ Lichtkegel",
"modalSkillCombatTitle": "Kampffertigkeitsstufe",
"modalBtnMaxSkills": "⭐ Alle Fähigkeiten max. (10/10)",
"modalSkillBasic": "Standardangriff",
"modalSkillSkill": "Fertigkeit",
"modalSkillUltra": "Ultimate",
"modalSkillTalent": "Talent",
"modalTracesTitle": "Spuren & Technik",
"modalTraceTechnique": "⚡ Technik — Vor dem Kampf aktiv",
"traceA2": "🌟 Zusatzfähigkeit A2",
"traceA4": "🌟 Zusatzfähigkeit A4",
"traceA6": "🌟 Zusatzfähigkeit A6",
"traceStatNodes": "💎 Alle Attributs-Bonus-Knoten (10 Knoten)",
"lblLevelRange": "Stufe (1-80)",
"lblPromotionRange": "Aufstieg (0-6)",
"lblEidolonLevel": "Eidolon-Stufe",
"btnResetE0": "Auf E0 zurücksetzen",
"btnMaxE6": "⭐ Voll E6",
"modalEnergyTitle": "Ultimate-Energie",
"modalEnergy50": "50% setzen",
"modalEnergy100": "Voll 100%",
"modalLcTitle": "Ausgerüsteter Lichtkegel",
"modalBtnMaxLc": "⭐ Lichtkegel max. (St.80 Überl.5)",
"lblLcId": "Lichtkegel-ID",
"modalLcIdPlaceholder": "z.B. 21002 oder 24001",
"lblLcLevel": "Lichtkegel-Stufe (1-80)",
"lblLcRank": "Überlagerung (S1-S5)",
"modalBtnClose": "✕ Schließen",
"modalBtnSave": "💾 Charakter speichern",
"pickerTitle": "Charakter für das Team auswählen",
"pickerSearchPlaceholder": "🔍 Charakter zum Hinzufügen suchen...",
"apiModalTitle": "⚙️ API-Server-Verbindungseinstellungen",
"btnCancel": "Abbrechen",
"btnSaveTest": "Speichern & Testen",
"toastSlotUpdated": "Platz {slot} auf {name} aktualisiert",
"toastCharMaxed": "⭐ {name} auf St. 80 E6 maximiert",
"toastCharSaved": "Charakter {name} gespeichert",
"toastAllSkillsMaxed": "⭐ Alle Fertigkeiten und Spuren maximiert",
"toastServerSwitched": "Servermodus gewechselt zu: {mode}",
"tbOptions": {
"MalePhysical": "Trailblazer (Männlich) - Physisch",
"FemalePhysical": "Trailblazer (Weiblich) - Physisch",
"MalePreservation": "Trailblazer (Männlich) - Feuer",
"FemalePreservation": "Trailblazer (Weiblich) - Feuer",
"MaleHarmony": "Trailblazer (Männlich) - Harmonie",
"FemaleHarmony": "Trailblazer (Weiblich) - Harmonie",
"MaleRemembrance": "Trailblazer (Männlich) - Erinnerung",
"FemaleRemembrance": "Trailblazer (Weiblich) - Erinnerung"
},
"marchOptions": {
"MarchHunt": "7. März - Die Jagd",
"MarchPreservation": "7. März - Die Bewahrung"
},
"elements": {
"Physical": "Physisch",
"Fire": "Feuer",
"Ice": "Eis",
"Lightning": "Blitz",
"Wind": "Wind",
"Quantum": "Quanten",
"Imaginary": "Imaginär",
"Unknown": "Unbekannt"
},
"paths": {
"Destruction": "Die Zerstörung",
"Hunt": "Die Jagd",
"Erudition": "Die Gelehrsamkeit",
"Harmony": "Die Harmonie",
"Nihility": "Die Nichtigkeit",
"Preservation": "Die Bewahrung",
"Abundance": "Der Überfluss",
"Remembrance": "Das Gedenken",
"Unknown": "Unbekannt",
"Elation": "Der Frohsinn"
},
"settingsSaved": "Einstellungen erfolgreich gespeichert!",
"settingsReset": "Auf Standardeinstellungen zurückgesetzt",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Showcase-Karte",
"showcaseAutoRelics": "⚡ Relikte autom. anlegen",
"showcaseCopy": "📋 Text kopieren",
"showcaseExport": "🖼️ Bild exportieren",
"btnChangeLc": "Lichtkegel wechseln",
"lcPassiveTitle": "Lichtkegel-Fähigkeit",
"toastE6S5Applied": "⭐ Charakter auf E6S5 maximiert (Stufe 80, Max Fertigkeiten, S5)!",
"toastE0S1Applied": "⚡ Charakter auf E0S1 gesetzt (Stufe 80, Max Fertigkeiten, S1)!",
"toastShowcaseCopied": "📋 Build-Informationen in die Zwischenablage kopiert!",
"toastRelicsEquipped": "⚡ Optimales +15 Reliktset für {name} ausgerüstet!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ API-Gateway-Verbindung",
"settingsConnSubtitle": "Servermodus und REST-Endpunkt konfigurieren",
"btnTestPing": "⚡ Verbindung testen",
"settingsBattleTitle": "🎮 Kampf- & FreeSR-Standardwerte",
"settingsBattleSubtitle": "Standardverhalten im Kampf und bei Aufstellungen anpassen",
"lblDefaultEnergy": "Startenergie im Kampf",
"lblAutoSync": "Automatisch mit Server synchronisieren",
"descAutoSync": "Änderungen an Charakteren und Ausrüstung sofort senden",
"lblDefaultCreative": "Kreativmodus standardmäßig aktivieren",
"descDefaultCreative": "Doppelte Charaktere und mehr als 4 Aufstellungsplätze erlauben",
"settingsShowcaseTitle": "🖼️ Showcase-Kartenanzeige",
"settingsShowcaseSubtitle": "Design und Details der Build-Karte anpassen",
"lblShowRolls": "Anzahl der Substat-Verbesserungen anzeigen",
"descShowRolls": "Roll-Zähler für Relikt-Nebenwerte anzeigen",
"lblElementAura": "Elementarer Aura-Leuchteffekt",
"descElementAura": "Dynamischer Kartenhintergrund passend zum Charakter-Element",
"settingsCacheTitle": "🧹 Cache-Verwaltung & Zurücksetzen",
"settingsCacheSubtitle": "Temporäre Browserdaten löschen oder Werkseinstellungen wiederherstellen",
"lblCacheSize": "LocalStorage-Speichernutzung:",
"btnClearCache": "🧹 Browser-Cache leeren",
"btnFactoryReset": "🔄 Werkseinstellungen wiederherstellen",
"toastPingSuccess": "⚡ Erfolgreich verbunden! Latenz: {ms} ms",
"toastPingFailed": "❌ Verbindung zum Gateway fehlgeschlagen. Bitte Server prüfen",
"toastCacheCleared": "🧹 Browser-Cache erfolgreich geleert",
"qaLineupE0S1Title": "Team auf E0S1 setzen",
"qaLineupE0S1Desc": "Teamcharaktere auf E0 mit S1 Lichtkegel",
"qaLineupRelicsTitle": "Team-Relikte autom. ausrüsten",
"qaLineupRelicsDesc": "+15 Relikte für 4 Teammitglieder anlegen",
"lblPersistenceInfo": "Server-Speicherdatei & Datenverwaltung",
"modalTabOverview": "Übersicht",
"modalTabRelics": "Relikte & Ausrüstung",
"attrBasic": "◆ Basiswerte",
"attrAdvanced": "◆ Erweiterte Werte",
"attrElemental": "◆ Schadenstyp",
"statMaxHp": "Max. LP",
"statAtk": "ANG",
"statDef": "VER",
"statSpd": "GES",
"statCritRate": "KRIT-Rate",
"statCritDmg": "KRIT-SCH",
"statBreakEffect": "Bruch-Effekt",
"statHealBoost": "Ausgehender Heilungsbonus",
"statMaxEnergy": "Max. Energie",
"statEnergyRegen": "Energie-Regenerationsrate",
"statEhr": "Effekt-Trefferquote",
"statRes": "Effekt-WDS",
"statDmgBoost": "{element}-Schadensbonus",
"relicPickerTitle": "🛡️ Relikt verwalten: {slot}",
"tabQuickGen": "⚡ Schnellherstellung & Empfohlen",
"tabFromInventory": "📦 Aus Inventar",
"btnEquipInstant": "⚡ Sofort ausrüsten (+15 5★ Perfekte Werte)",
"btnUnequip": "❌ Relikt ablegen",
"currentEquipped": "Aktuell ausgerüstet",
"noRelicEquipped": "Kein Relikt in diesem Platz ausgerüstet",
"chooseMainStat": "Hauptwert wählen:",
"chooseSet": "Set auswählen:",
"recommendedBadge": "Empfohlen",
"overviewStatsTitle": "⚔️ Kampfwerte (Combat Stats)",
"overviewStatsNote": "Enthält Boni von Lichtkegel und Relikten",
"overviewEquippedLc": "🗡️ Ausgerüsteter Lichtkegel",
"overviewEquippedRelics": "🛡️ Relikte & Set-Boni",
"modalRelicsTitle": "🛡️ Relikte ausrüsten (6 Plätze)",
"modalRelicsSubtitle": "Klicken Sie auf einen Platz zum Wechseln oder empfohlene Sets ausrüsten",
"btnAutoEquipRelics": "⚡ Empfohlene Sets anlegen",
"btnClearAllRelics": "🧹 Alles ablegen",
"activeSetEffects": "✨ Aktive Set-Boni",
"modalColLevel": "Stufe",
"lblPromotion": "Aufstiegsrang",
"slotPickerTitle": "🛡️ Relikt zum Ausrüsten wählen",
"quickGenRecTitle": "⚡ Empfohlenes Teil generieren",
"quickGenRecDesc": "5★ +15 mit bestem Set und Hauptwert erstellen",
"btnGenAndEquip": "Erstellen & Ausrüsten",
"selectFromInventory": "Aus dem Inventar auswählen",
"btnAllE0S1": "⚡ Alle E0S1",
"qaGachabaseTitle": "Von Gachabase abrufen",
"qaGachabaseDesc": "Neueste Beta-/Datamined-Charaktere und Lichtkegel importieren",
"synergyTitle": "Team-Synergie & Schwächenbruch-Analyse",
"synergySubtitle": "Analysieren Sie Schwächenabdeckung, Rollenbalance und Ausrüstungsbereitschaft",
"synergyBreakCoverage": "🎯 Schwächenbruch-Abdeckung",
"synergyRoleBalance": "🛡️ Teamzusammensetzung & Rollenverteilung",
"synergyEquipmentTitle": "📊 Ausrüstungsbereitschaft & Durchschnittsstufe",
"synergyAvgLevel": "Durchschnittsstufe",
"synergyAvgEidolon": "Durchschn. Eidolon",
"synergyLcEquipped": "Lichtkegel ausgerüstet",
"synergyRelicFull": "Vollständige Relikte",
"synergyCoverageBadge": "Deckt {count}/7 Elemente ab",
"synergyNoInTeam": "Nicht im Team",
"roleDps": "🗡️ DPS",
"roleSupport": "⚡ Unterstützung / Debuff",
"roleSustain": "🛡️ Überleben (Heiler/Schild)",
"roleSpecialist": "🔮 Spezialist / Folgeangriff",
"adviceEmpty": "Keine Charaktere im Team. Bitte wählen Sie oben Teammitglieder aus.",
"adviceNoSustain": "⚠️ Tipp: Dem Team fehlt ein Verteidiger oder Heiler (Bewahrung / Überfluss). Es wird dringend empfohlen, einen hinzuzufügen.",
"adviceNoDps": "💡 Tipp: Das Team besteht nur aus Unterstützern ohne primären Schadensausteiler (Zerstörung / Jagd / Gelehrsamkeit).",
"adviceNoSupport": "💡 Tipp: Das Team hat DPS, aber keine Puffer/Debuffer (Harmonie / Nichtigkeit). Unterstützung erhöht den Gesamtschaden massiv.",
"adviceBalanced": "✅ Ausgezeichnete Balance: Vollständige Aufstellung mit DPS, Puffer/Debuffer und Überleben. Bereit für jede Herausforderung!",
"consoleTitle": "GM-Befehlskonsole & Live-Protokolle",
"consoleSubtitle": "GM-/Serverbefehle in Echtzeit mit Paketprotokollen und Status senden",
"consoleCopyLog": "📋 Kopieren",
"consoleClearLog": "🗑️ Löschen",
"consoleQuickTitle": "⚡ Schnelle Befehle",
"consolePlaceholder": "GM-Befehl eingeben, z.B. /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Senden",
"consoleHistoryHint": "💡 Drücken Sie ↑ ↓, um den Befehlsverlauf aufzurufen",
"consoleOnline": "● Server online",
"consoleOffline": "○ Offline (Lokale Ausführung)",
"consoleLogCopied": "📋 Alle Protokolle in die Zwischenablage kopiert!",
"consoleLogCopyFailed": "❌ Fehler beim Kopieren der Protokolle",
"consoleLogCleared": "Terminalprotokoll gelöscht",
"btnGachabaseSync": "🌐 Gachabase synchronisieren",
"tabPersistentGaC": "💾 GaC-Speicherverwaltung",
"tabPersistentFirefly": "👤 Trailblazer & March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Überlagerungsrang",
"lcPickerTitle": "🗡️ Lichtkegel zum Ausrüsten wählen",
"lcPickerSigTitle": "⭐ Empfohlener Signatur-Lichtkegel",
"lcPickerEquipSig": "⚡ Diesen anlegen",
"lcPickerUnequip": "✕ Lichtkegel ablegen"
},
"ru": {
"ahaGlobalDesc": "Включить особый пассивный навык Эона ★ Аха по всему серверу",
"btnAddLc": "+ Добавить световой конус",
"btnAddRelic": "+ Добавить реликвию",
"btnAddSlot": "+ Добавить слот",
"lblCreativeMode": "Творческий режим",
"badgeCreative": "Творческий",
"toastSlotRemoved": "Слот {slot} удален",
"quickActionsBadge": "Быстрые команды",
"qaEnergy50Title": "Энергия отряда 50%",
"qaEnergy50Desc": "Стандартная начальная энергия",
"qaEnergy100Title": "Энергия отряда 100%",
"qaEnergy100Desc": "Сверхспособность сразу готова",
"qaUnlockAllTitle": "Разблокировать всех героев",
"qaUnlockAllDesc": "Добавить 70+ героев с Эйдолонами 6",
"qaAddLcsTitle": "Добавить все 5★ конусы",
"qaAddLcsDesc": "Сигнатурные конусы (Н5) в инвентарь",
"qaTeleportTitle": "Телепорт на Звёздный экспресс",
"qaTeleportDesc": "Возврат в общий вагон",
"qaClearLineupTitle": "Очистить отряд",
"qaClearLineupDesc": "Сбросить слоты для нового состава",
"toastEnergy50": "Энергия отряда установлена на 50%",
"toastEnergy100": "Энергия отряда установлена на 100%",
"toastUnlockedAll": "Все персонажи разблокированы (Э6)",
"toastAddedAllLcs": "Все 5★ световые конусы добавлены",
"toastTeleportedTrain": "Телепортирован в общий вагон экспресса",
"toastLineupCleared": "Слоты отряда очищены",
"modalAddLcTitle": "🗡️ Добавить световой конус в FreeSR",
"modalAddRelicTitle": "🛡️ Добавить реликвию в FreeSR",
"lblSelectLc": "Выберите световой конус",
"lblSelectRelicSet": "Выберите набор реликвий",
"lblRelicSlot": "Слот реликвии",
"lblMainAffix": "Основная характеристика",
"lblEquipAvatar": "Экипировать персонажу",
"unassigned": "-- Не экипировано (инвентарь) --",
"btnAddLcSubmit": "💾 Добавить в FreeSR",
"btnAddRelicSubmit": "💾 Добавить в FreeSR",
"toastLcAdded": "Световой конус добавлен в FreeSR",
"toastRelicAdded": "Реликвия добавлена в FreeSR",
"deleteItem": "Удалить",
"toastItemDeleted": "Предмет успешно удален",
"appName": "GaC-Srtool",
"appSubtitle": "Контроллер сервера и FreeSR Star Rail",
"online": "Подключено",
"offline": "Не в сети",
"checking": "Проверка...",
"refresh": "🔄 Обновить",
"connectFailed": "Ошибка подключения",
"tabDashboard": "📊 Панель и отряд",
"tabAvatars": "👥 Персонажи",
"tabEquipment": "🗡️ Световые конусы и реликвии",
"tabPersistent": "💾 Управление сохранениями GaC",
"tabExrank": "⚡ Особые навыки Ex-Rank",
"tabJson": "📝 Управление JSON",
"tabSettings": "⚙️ Настройки",
"statAvatars": "Полученные персонажи",
"statLightcones": "Световые конусы",
"statRelics": "Реликвии",
"serverStatusTitle": "📍 Статус сервера и координаты",
"lblServerModeActive": "Активный режим сервера",
"lblApiEndpoint": "Конечная точка API Gateway",
"lblPlaneId": "ID плоскости",
"lblFloorId": "ID этажа",
"coords": "Координаты персонажа XYZ",
"quickActionsTitle": "⚡ Быстрые действия",
"quickActionsSubtitle": "Мгновенная отправка команд на сервер",
"btnMaxAll": "⭐ Все персонажи 80 ур. и E6",
"btnSyncPersistent": "💾 Синхронизировать сохранение Persistent",
"currentLineupTitle": "🎮 Текущий отряд",
"slot": "Слот",
"slotEmpty": "Пусто (нажмите для добавления)",
"slotTooltip": "Нажмите, чтобы выбрать персонажа в этот слот",
"removeFromTeam": "Убрать из отряда",
"searchPlaceholder": "🔍 Поиск по имени или ID...",
"filterAllRarity": "Все редкости",
"filter5Star": "5 Звёзд",
"filter4Star": "4 Звезды",
"filterAllElements": "Все элементы",
"filterAllPaths": "Все Пути",
"btnReload": "🔄 Перезагрузить",
"avatarsLoading": "Загрузка данных персонажей...",
"noAvatarsFound": "Персонажи не найдены",
"eidolonLabel": "Эйдолон:",
"confirmMaxAll": "Повысить всех персонажей до 80 уровня и разблокировать E6?",
"maxAllSuccess": "Все персонажи успешно прокачаны!",
"avatarRankSuccess": "Персонаж {id} повышен до эйдолона {rank}",
"eqLcTitle": "🗡️ Световые конусы в инвентаре",
"eqLcSubtitle": "Все световые конусы из freesr-data.json",
"eqLcLoading": "Загрузка конусов...",
"eqRelicTitle": "🛡️ Реликвии в инвентаре",
"eqRelicSubtitle": "Все реликвии из freesr-data.json",
"eqRelicLoading": "Загрузка реликвий...",
"itemCount": "{n} шт.",
"notEquipped": "Не экипировано",
"equippedBy": "Экипировано на",
"noLcData": "Нет данных о конусах",
"noRelicData": "Нет данных о реликвиях",
"persistentTitle": "💾 Управление сохранениями GaC",
"persistentBadge": "Наш собственный сервер",
"persistentSubtitle": "Файл persistent хранит уникальные настройки GaC: пол/путь Первопроходца, путь Март 7 и глобальные переключатели",
"persistentTbM7Title": "👤 Первопроходец и Март 7",
"lblTbGenderElement": "Пол и путь Первопроходца",
"lblM7Path": "Путь Март 7",
"btnSaveCharSettings": "💾 Сохранить настройки персонажей",
"persistentGlobalTitle": "⚙️ Особые функции GaC",
"swGlobalDesc": "Включить особую механику Серебряного Волка на всем сервере",
"castoriceGlobalDesc": "Включить особую механику Castorice на всем сервере",
"btnSaveGlobalSwitch": "💾 Сохранить глобальные переключатели",
"exrankTitle": "⚡ Система навыков Ex-Rank",
"exrankSubtitle": "Включение уникальных талантов Ex-Rank в FreeSR (иммунитет Цзин Юаня к контролю, Дань Хэн Пожиратель Луны, Ахерон)",
"btnEnableAll": "Включить все Ex-Rank",
"btnDisableAll": "Выключить все Ex-Rank",
"exrankToggleSuccess": "{name}: Ex-Rank {status}",
"exrankAllSuccess": "Все персонажи Ex-Rank {status}",
"enabled": "включен",
"disabled": "выключен",
"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",
"lblServerMode": "Режим сервера",
"lblApiGatewayUrl": "URL REST API Gateway",
"lblPingInterval": "Интервал проверки (секунды)",
"btnSaveSettings": "💾 Сохранить настройки",
"btnResetDefault": "Сбросить по умолчанию",
"modalTitleCharEdit": "Настройка персонажа",
"modalBtnMaxAllChar": "⭐ Максимум всего",
"modalTabSkills": "⚡ Навыки и следы",
"modalTabStatus": "⚙️ Уровень и Эйдолоны",
"modalTabLightcone": "🗡️ Световой конус",
"modalSkillCombatTitle": "Уровни боевых навыков",
"modalBtnMaxSkills": "⭐ Все навыки на макс. (10/10)",
"modalSkillBasic": "Базовая атака",
"modalSkillSkill": "Навык",
"modalSkillUltra": "Сверхспособность",
"modalSkillTalent": "Талант",
"modalTracesTitle": "Следы и техника",
"modalTraceTechnique": "⚡ Техника — Активна перед боем",
"traceA2": "🌟 Доп. способность A2",
"traceA4": "🌟 Доп. способность A4",
"traceA6": "🌟 Доп. способность A6",
"traceStatNodes": "💎 Все узлы усиления параметров (10 узлов)",
"lblLevelRange": "Уровень (1-80)",
"lblPromotionRange": "Возвышение (0-6)",
"lblEidolonLevel": "Уровень Эйдолона",
"btnResetE0": "Сбросить на E0",
"btnMaxE6": "⭐ Макс E6",
"modalEnergyTitle": "Энергия сверхспособности",
"modalEnergy50": "Задать 50%",
"modalEnergy100": "100% (Макс)",
"modalLcTitle": "Экипированный конус",
"modalBtnMaxLc": "⭐ Макс. конус (Ур.80 Н5)",
"lblLcId": "ID светового конуса",
"modalLcIdPlaceholder": "напр. 21002 или 24001",
"lblLcLevel": "Уровень конуса (1-80)",
"lblLcRank": "Наложение (S1-S5)",
"modalBtnClose": "✕ Закрыть",
"modalBtnSave": "💾 Сохранить персонажа",
"pickerTitle": "Выбор персонажа в отряд",
"pickerSearchPlaceholder": "🔍 Поиск персонажа...",
"apiModalTitle": "⚙️ Настройки подключения к серверу API",
"btnCancel": "Отмена",
"btnSaveTest": "Сохранить и проверить",
"toastSlotUpdated": "Слот {slot} изменён на: {name}",
"toastCharMaxed": "⭐ {name} прокачан до 80 ур. E6",
"toastCharSaved": "Персонаж {name} сохранен",
"toastAllSkillsMaxed": "⭐ Все навыки и следы на максимуме",
"toastServerSwitched": "Режим сервера переключен на: {mode}",
"tbOptions": {
"MalePhysical": "Первопроходец (Муж.) - Физический",
"FemalePhysical": "Первопроходец (Жен.) - Физический",
"MalePreservation": "Первопроходец (Муж.) - Огненный",
"FemalePreservation": "Первопроходец (Жен.) - Огненный",
"MaleHarmony": "Первопроходец (Муж.) - Гармония",
"FemaleHarmony": "Первопроходец (Жен.) - Гармония",
"MaleRemembrance": "Первопроходец (Муж.) - Память",
"FemaleRemembrance": "Первопроходец (Жен.) - Память"
},
"marchOptions": {
"MarchHunt": "Март 7 - Охота",
"MarchPreservation": "Март 7 - Сохранение"
},
"elements": {
"Physical": "Физический",
"Fire": "Огненный",
"Ice": "Ледяной",
"Lightning": "Электрический",
"Wind": "Ветряной",
"Quantum": "Квантовый",
"Imaginary": "Мнимый",
"Unknown": "Неизвестно"
},
"paths": {
"Destruction": "Разрушение",
"Hunt": "Охота",
"Erudition": "Эрудиция",
"Harmony": "Гармония",
"Nihility": "Небытие",
"Preservation": "Сохранение",
"Abundance": "Изобилие",
"Remembrance": "Память",
"Unknown": "Неизвестно",
"Elation": "Радость"
},
"settingsSaved": "Настройки успешно сохранены!",
"settingsReset": "Настройки сброшены по умолчанию",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Карточка персонажа",
"showcaseAutoRelics": "⚡ Надеть реликвии авто",
"showcaseCopy": "📋 Скопировать текст",
"showcaseExport": "🖼️ Сохранить изображение",
"btnChangeLc": "Сменить Световой конус",
"lcPassiveTitle": "Навык Светового конуса",
"toastE6S5Applied": "⭐ Персонаж прокачан на максимум: E6S5 (80 ур., макс. следы, Наложение 5)!",
"toastE0S1Applied": "⚡ Персонаж настроен на E0S1 (80 ур., макс. следы, Наложение 1)!",
"toastShowcaseCopied": "📋 Информация о билде скопирована в буфер обмена!",
"toastRelicsEquipped": "⚡ Оптимальный набор реликвий +15 надет на {name}!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ Подключение к API Gateway",
"settingsConnSubtitle": "Настройка режима сервера и адреса REST эндпоинта",
"btnTestPing": "⚡ Проверить соединение",
"settingsBattleTitle": "🎮 Настройки боя и FreeSR по умолчанию",
"settingsBattleSubtitle": "Поведение в бою и параметры формирования отряда",
"lblDefaultEnergy": "Начальная энергия в бою (Starting Energy)",
"lblAutoSync": "Автосинхронизация с сервером (Auto-Sync)",
"descAutoSync": "Мгновенно отправлять изменения персонажей и экипировки на сервер",
"lblDefaultCreative": "Творческий режим по умолчанию",
"descDefaultCreative": "Разрешить дубликаты персонажей и более 4 слотов в отряде",
"settingsShowcaseTitle": "🖼️ Отображение карточки персонажа",
"settingsShowcaseSubtitle": "Настройка стиля и деталей карточки сборки",
"lblShowRolls": "Показывать число роллов сабстатов",
"descShowRolls": "Отображать метки числа улучшений дополнительных характеристик",
"lblElementAura": "Свечение ауры элемента",
"descElementAura": "Динамический фон и свечение карточки под цвет стихии персонажа",
"settingsCacheTitle": "🧹 Управление кэшем и сброс",
"settingsCacheSubtitle": "Очистка временных данных браузера или полный сброс к заводским",
"lblCacheSize": "Использование памяти LocalStorage:",
"btnClearCache": "🧹 Очистить кэш браузера",
"btnFactoryReset": "🔄 Заводской сброс",
"toastPingSuccess": "⚡ Успешное подключение! Задержка: {ms} мс",
"toastPingFailed": "❌ Ошибка подключения к Gateway. Проверьте сервер",
"toastCacheCleared": "🧹 Кэш браузера успешно очищен",
"qaLineupE0S1Title": "Отряд на E0S1",
"qaLineupE0S1Desc": "Герои отряда на E0 с конусом S1",
"qaLineupRelicsTitle": "Авто-экипировка отряда",
"qaLineupRelicsDesc": "Надеть реликвии +15 всем 4 бойцам отряда",
"lblPersistenceInfo": "Управление сохранениями и данными сервера",
"modalTabOverview": "Обзор",
"modalTabRelics": "Реликвии и снаряжение",
"attrBasic": "◆ Базовые характеристики",
"attrAdvanced": "◆ Продвинутые характеристики",
"attrElemental": "◆ Тип урона",
"statMaxHp": "Макс. HP",
"statAtk": "Сила атаки",
"statDef": "Защита",
"statSpd": "Скорость",
"statCritRate": "Крит. шанс",
"statCritDmg": "Крит. урон",
"statBreakEffect": "Эффект пробития",
"statHealBoost": "Бонус исцеления",
"statMaxEnergy": "Макс. энергия",
"statEnergyRegen": "Скорость восстановления энергии",
"statEhr": "Шанс попадания эффектов",
"statRes": "Сопротивление эффектам",
"statDmgBoost": "Бонус {element} урона",
"relicPickerTitle": "🛡️ Управление реликвией: {slot}",
"tabQuickGen": "⚡ Быстрое создание и рекомендации",
"tabFromInventory": "📦 Из инвентаря",
"btnEquipInstant": "⚡ Экипировать сейчас (+15 5★ Идеальные сабы)",
"btnUnequip": "❌ Снять реликвию",
"currentEquipped": "Сейчас экипировано",
"noRelicEquipped": "В этом слоте нет реликвии",
"chooseMainStat": "Выберите основной стат:",
"chooseSet": "Выберите набор:",
"recommendedBadge": "Рекомендуется",
"overviewStatsTitle": "⚔️ Боевые характеристики",
"overviewStatsNote": "Включает бонусы конуса и реликвий",
"overviewEquippedLc": "🗡️ Надетый Световой конус",
"overviewEquippedRelics": "🛡️ Реликвии и бонусы комплектов",
"modalRelicsTitle": "🛡️ Экипировка реликвий (6 слотов)",
"modalRelicsSubtitle": "Нажмите на слот для смены или наденьте рекомендованные комплекты",
"btnAutoEquipRelics": "⚡ Надеть рекомендованные сеты",
"btnClearAllRelics": "🧹 Снять всё",
"activeSetEffects": "✨ Активные эффекты комплектов",
"modalColLevel": "Уровень",
"lblPromotion": "Ранг возвышения",
"slotPickerTitle": "🛡️ Выбор реликвии для экипировки",
"quickGenRecTitle": "⚡ Создать рекомендованную деталь",
"quickGenRecDesc": "Создать 5★ +15 с лучшим сетом и главным статом",
"btnGenAndEquip": "Создать и надеть",
"selectFromInventory": "Выбрать из инвентаря",
"btnAllE0S1": "⚡ Все на E0S1",
"qaGachabaseTitle": "Получить данные из Gachabase",
"qaGachabaseDesc": "Импорт новых героев и конусов из беты/датамайна",
"synergyTitle": "Анализ синергии отряда и пробития уязвимостей",
"synergySubtitle": "Анализ покрытия уязвимостей, баланса ролей и готовности экипировки",
"synergyBreakCoverage": "🎯 Покрытие пробития уязвимостей",
"synergyRoleBalance": "🛡️ Состав отряда и распределение ролей",
"synergyEquipmentTitle": "📊 Готовность экипировки и средний уровень",
"synergyAvgLevel": "Средний уровень",
"synergyAvgEidolon": "Средний Эйдолон",
"synergyLcEquipped": "Конусов надето",
"synergyRelicFull": "Полный сет реликвий",
"synergyCoverageBadge": "Покрыто {count}/7 стихий",
"synergyNoInTeam": "Нет в отряде",
"roleDps": "🗡️ ДД (DPS)",
"roleSupport": "⚡ Саппорт / Дебаффер",
"roleSustain": "🛡️ Выживание (Хил/Щит)",
"roleSpecialist": "🔮 Специалист / Бонус-атака",
"adviceEmpty": "В отряде нет персонажей. Пожалуйста, выберите героев выше.",
"adviceNoSustain": "⚠️ Совет: В отряде нет персонажа защиты или лечения (Сохранение / Изобилие). Рекомендуется добавить одного для выживаемости.",
"adviceNoDps": "💡 Совет: В отряде только саппорты, нет основного бойца нанесения урона (Разрушение / Охота / Эрудиция).",
"adviceNoSupport": "💡 Совет: В отряде есть ДД, но не хватает бафферов или дебафферов (Гармония / Небытие). Поддержка сильно увеличит общий урон.",
"adviceBalanced": "✅ Отличный баланс: В отряде есть всё — ДД, баффер/дебаффер и персонаж выживания. Готов к любым испытаниям!",
"consoleTitle": "GM-консоль команд и живой журнал",
"consoleSubtitle": "Отправка команд GM / сервера в реальном времени с логированием пакетов",
"consoleCopyLog": "📋 Копировать",
"consoleClearLog": "🗑️ Очистить",
"consoleQuickTitle": "⚡ Быстрые команды",
"consolePlaceholder": "Введите GM-команду, напр.: /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Отправить",
"consoleHistoryHint": "💡 Нажимайте ↑ ↓ для переключения истории команд",
"consoleOnline": "● Сервер онлайн",
"consoleOffline": "○ Офлайн (Локальное выполнение)",
"consoleLogCopied": "📋 Все логи скопированы в буфер обмена!",
"consoleLogCopyFailed": "❌ Не удалось скопировать логи",
"consoleLogCleared": "Журнал терминала очищен",
"btnGachabaseSync": "🌐 Синхронизация Gachabase",
"tabPersistentGaC": "💾 Управление сохранениями GaC",
"tabPersistentFirefly": "👤 Первопроходец и Март 7",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Ранг наложения",
"lcPickerTitle": "🗡️ Выберите Световой конус для экипировки",
"lcPickerSigTitle": "⭐ Рекомендованный сигнатурный конус",
"lcPickerEquipSig": "⚡ Надеть этот",
"lcPickerUnequip": "✕ Снять Световой конус"
},
"pt": {
"ahaGlobalDesc": "Ativar habilidade passiva especial de Aeon ★ Aha em todo o servidor",
"btnAddLc": "+ Adicionar Cone de Luz",
"btnAddRelic": "+ Adicionar Relíquia",
"btnAddSlot": "+ Adicionar espaço",
"lblCreativeMode": "Modo Criativo",
"badgeCreative": "Criativo",
"toastSlotRemoved": "Espaço {slot} removido",
"quickActionsBadge": "Ações Rápidas",
"qaEnergy50Title": "Energia da Equipe 50%",
"qaEnergy50Desc": "Energia inicial padrão de batalha",
"qaEnergy100Title": "Energia da Equipe 100%",
"qaEnergy100Desc": "Perícia Suprema pronta na hora",
"qaUnlockAllTitle": "Desbloquear Todos os Personagens",
"qaUnlockAllDesc": "Adicionar todos os 70+ personagens E6",
"qaAddLcsTitle": "Adicionar Todos os Cones 5★",
"qaAddLcsDesc": "Cones de Luz assinatura S5 ao inventário",
"qaTeleportTitle": "Teleporte para o Expresso Astral",
"qaTeleportDesc": "Retornar ao Vagão Panorâmico seguro",
"qaClearLineupTitle": "Limpar Equipe",
"qaClearLineupDesc": "Esvaziar espaços para nova formação",
"toastEnergy50": "Energia da equipe definida em 50%",
"toastEnergy100": "Energia da equipe definida em 100%",
"toastUnlockedAll": "Todos os personagens desbloqueados (E6)",
"toastAddedAllLcs": "Todos os Cones de Luz 5★ adicionados",
"toastTeleportedTrain": "Teleportado para o Expresso Astral",
"toastLineupCleared": "Equipe limpa com sucesso",
"modalAddLcTitle": "🗡️ Adicionar Cone de Luz ao FreeSR",
"modalAddRelicTitle": "🛡️ Adicionar Relíquia ao FreeSR",
"lblSelectLc": "Selecionar Cone de Luz",
"lblSelectRelicSet": "Selecionar Conjunto de Relíquias",
"lblRelicSlot": "Espaço de Relíquia",
"lblMainAffix": "Atributo Principal",
"lblEquipAvatar": "Equipar ao Personagem",
"unassigned": "-- Não Equipado (Inventário) --",
"btnAddLcSubmit": "💾 Adicionar ao FreeSR",
"btnAddRelicSubmit": "💾 Adicionar ao FreeSR",
"toastLcAdded": "Cone de Luz adicionado ao FreeSR",
"toastRelicAdded": "Relíquia adicionada ao FreeSR",
"deleteItem": "Excluir",
"toastItemDeleted": "Item excluído com sucesso",
"appName": "GaC-Srtool",
"appSubtitle": "Controlador de Servidor e FreeSR de Star Rail",
"online": "Conectado",
"offline": "Offline",
"checking": "Verificando...",
"refresh": "🔄 Atualizar",
"connectFailed": "Falha na Conexão",
"tabDashboard": "📊 Painel e Equipe",
"tabAvatars": "👥 Personagens",
"tabEquipment": "🗡️ Cones de Luz e Relíquias",
"tabPersistent": "💾 Gerenciador de Salvamento GaC",
"tabExrank": "⚡ Habilidades Ex-Rank",
"tabJson": "📝 Gerenciamento de JSON",
"tabSettings": "⚙️ Configurações",
"statAvatars": "Personagens Obtidos",
"statLightcones": "Cones de Luz",
"statRelics": "Relíquias",
"serverStatusTitle": "📍 Status do Servidor e Coordenadas",
"lblServerModeActive": "Modo de Servidor Ativo",
"lblApiEndpoint": "Ponto de Extremidade da API Gateway",
"lblPlaneId": "ID do Plano",
"lblFloorId": "ID do Andar",
"coords": "Coordenadas do Personagem XYZ",
"quickActionsTitle": "⚡ Ações Rápidas",
"quickActionsSubtitle": "Enviar comandos para o servidor instantaneamente",
"btnMaxAll": "⭐ Todos os personagens Nv. 80 e E6",
"btnSyncPersistent": "💾 Sincronizar salvamento Persistent",
"currentLineupTitle": "🎮 Equipe Atual",
"slot": "Espaço",
"slotEmpty": "Vazio (Clique para adicionar)",
"slotTooltip": "Clique para escolher um personagem para este espaço",
"removeFromTeam": "Remover da equipe",
"searchPlaceholder": "🔍 Buscar por nome ou ID de personagem...",
"filterAllRarity": "Todas as raridades",
"filter5Star": "5 Estrelas",
"filter4Star": "4 Estrellas",
"filterAllElements": "Todos os elementos",
"filterAllPaths": "Todos os caminhos",
"btnReload": "🔄 Recarregar",
"avatarsLoading": "Carregando personagens...",
"noAvatarsFound": "Nenhum personagem correspondente encontrado",
"eidolonLabel": "Eidolon:",
"confirmMaxAll": "Evoluir todos os personagens para o Nível 80 e desbloquear E6?",
"maxAllSuccess": "Todos os personagens foram maximizados com sucesso!",
"avatarRankSuccess": "Personagem {id} atualizado para E{rank}",
"eqLcTitle": "🗡️ Cones de Luz no Inventário",
"eqLcSubtitle": "Todos os cones de luz de freesr-data.json",
"eqLcLoading": "Carregando dados dos cones de luz...",
"eqRelicTitle": "🛡️ Relíquias no Inventário",
"eqRelicSubtitle": "Todas as relíquias de freesr-data.json",
"eqRelicLoading": "Carregando dados das relíquias...",
"itemCount": "{n} itens",
"notEquipped": "Não equipado",
"equippedBy": "Equipado por",
"noLcData": "Nenhum dado de cone de luz disponível",
"noRelicData": "Nenhum dado de relíquia disponível",
"persistentTitle": "💾 Gerenciador de Salvamento GaC",
"persistentBadge": "Nosso Servidor Personalizado",
"persistentSubtitle": "O arquivo persistent armazena configurações específicas do GaC, como gênero/elemento do Desbravador, caminho de 7 de Março e opções globais",
"persistentTbM7Title": "👤 Desbravador e 7 de Março",
"lblTbGenderElement": "Gênero e Elemento do Desbravador",
"lblM7Path": "Caminho de 7 de Março",
"btnSaveCharSettings": "💾 Salvar Configurações de Personagem",
"persistentGlobalTitle": "⚙️ Recursos Especiais do GaC",
"swGlobalDesc": "Ativar recurso global da Silver Wolf em todo o servidor",
"castoriceGlobalDesc": "Ativar recurso global da Castorice em todo o servidor",
"btnSaveGlobalSwitch": "💾 Salvar Interruptores Globais",
"exrankTitle": "⚡ Sistema de Habilidades Ex-Rank",
"exrankSubtitle": "Ativa talentos especiais Ex-Rank no FreeSR (ex: imunidade a CC de 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 personagens Ex-Rank {status}",
"enabled": "ativado",
"disabled": "desativado",
"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",
"lblServerMode": "Modo de Servidor",
"lblApiGatewayUrl": "URL REST API Gateway",
"lblPingInterval": "Intervalo de verificação (segundos)",
"btnSaveSettings": "💾 Salvar Configurações",
"btnResetDefault": "Restaurar Padrão",
"modalTitleCharEdit": "Personalização de Personagem",
"modalBtnMaxAllChar": "⭐ Maximizar Tudo",
"modalTabSkills": "⚡ Habilidades e Rastros",
"modalTabStatus": "⚙️ Nível e Eidolon",
"modalTabLightcone": "🗡️ Cone de Luz",
"modalSkillCombatTitle": "Níveis de Habilidade de Combate",
"modalBtnMaxSkills": "⭐ Todas as habilidades no máx. (10/10)",
"modalSkillBasic": "ATQ Básico",
"modalSkillSkill": "Perícia",
"modalSkillUltra": "Perícia Suprema",
"modalSkillTalent": "Talento",
"modalTracesTitle": "Rastros e Técnica",
"modalTraceTechnique": "⚡ Técnica — Ativa pré-combate",
"traceA2": "🌟 Habilidade Bônus A2",
"traceA4": "🌟 Habilidade Bônus A4",
"traceA6": "🌟 Habilidade Bônus A6",
"traceStatNodes": "💎 Todos os nós de atributos bônus (10 nós)",
"lblLevelRange": "Nível (1-80)",
"lblPromotionRange": "Ascensão (0-6)",
"lblEidolonLevel": "Nível de Eidolon",
"btnResetE0": "Redefinir E0",
"btnMaxE6": "⭐ E6 Máximo",
"modalEnergyTitle": "Energia Suprema",
"modalEnergy50": "Definir 50%",
"modalEnergy100": "Cheio 100%",
"modalLcTitle": "Cone de Luz Equipado",
"modalBtnMaxLc": "⭐ Cone no máx. (Nv.80 S5)",
"lblLcId": "ID do Cone de Luz",
"modalLcIdPlaceholder": "ex. 21002 ou 24001",
"lblLcLevel": "Nível do Cone (1-80)",
"lblLcRank": "Sobreposição (S1-S5)",
"modalBtnClose": "✕ Fechar",
"modalBtnSave": "💾 Salvar Personagem",
"pickerTitle": "Selecionar Personagem para a Equipe",
"pickerSearchPlaceholder": "🔍 Buscar personagem para adicionar...",
"apiModalTitle": "⚙️ Configurações de Conexão do Servidor API",
"btnCancel": "Cancelar",
"btnSaveTest": "Salvar e Testar",
"toastSlotUpdated": "Espaço {slot} atualizado para: {name}",
"toastCharMaxed": "⭐ {name} maximizado para Nv. 80 E6",
"toastCharSaved": "Personagem {name} salvo",
"toastAllSkillsMaxed": "⭐ Todas as habilidades e rastros maximizados",
"toastServerSwitched": "Modo de servidor alterado para: {mode}",
"tbOptions": {
"MalePhysical": "Desbravador (Masc.) - Físico",
"FemalePhysical": "Desbravadora (Fem.) - Físico",
"MalePreservation": "Desbravador (Masc.) - Fogo",
"FemalePreservation": "Desbravadora (Fem.) - Fogo",
"MaleHarmony": "Desbravador (Masc.) - Harmonia",
"FemaleHarmony": "Desbravadora (Fem.) - Harmonia",
"MaleRemembrance": "Desbravador (Masc.) - A Recordação",
"FemaleRemembrance": "Desbravadora (Fem.) - A Recordação"
},
"marchOptions": {
"MarchHunt": "7 de Março - A Caça",
"MarchPreservation": "7 de Março - A Preservação"
},
"elements": {
"Physical": "Físico",
"Fire": "Fogo",
"Ice": "Gelo",
"Lightning": "Raio",
"Wind": "Vento",
"Quantum": "Quântico",
"Imaginary": "Imaginário",
"Unknown": "Desconhecido"
},
"paths": {
"Destruction": "A Destruição",
"Hunt": "A Caça",
"Erudition": "A Erudição",
"Harmony": "A Harmonia",
"Nihility": "A Inexistência",
"Preservation": "A Preservação",
"Abundance": "A Abundância",
"Remembrance": "A Recordação",
"Unknown": "Desconhecido",
"Elation": "A Alegria"
},
"settingsSaved": "Configurações salvas com sucesso!",
"settingsReset": "Configurações restauradas para o padrão",
"btnE6S5": "⭐ E6S5",
"btnE0S1": "⚡ E0S1",
"modalTabShowcase": "🖼️ Cartão de Exibição",
"showcaseAutoRelics": "⚡ Autoequipar Relíquias",
"showcaseCopy": "📋 Copiar Texto",
"showcaseExport": "🖼️ Exportar Imagem",
"btnChangeLc": "Mudar Cone de Luz",
"lcPassiveTitle": "Habilidade do Cone de Luz",
"toastE6S5Applied": "⭐ Personagem maximizado para E6S5 (Nv.80, Habilidades no máx, S5)!",
"toastE0S1Applied": "⚡ Personagem ajustado para E0S1 (Nv.80, Habilidades no máx, S1)!",
"toastShowcaseCopied": "📋 Informações da build copiadas para a área de transferência!",
"toastRelicsEquipped": "⚡ Conjunto ótimo de relíquias +15 equipado para {name}!",
"btnDataGame": "🎮 data-in-game.json",
"settingsConnTitle": "⚙️ Conexão com API Gateway",
"settingsConnSubtitle": "Configurar modo do servidor e endpoint REST",
"btnTestPing": "⚡ Testar Conexão",
"settingsBattleTitle": "🎮 Padrões de Batalha & FreeSR",
"settingsBattleSubtitle": "Personalizar comportamento de combate e padrões de equipe",
"lblDefaultEnergy": "Energia Inicial de Batalha",
"lblAutoSync": "Sincronização Automática com o Servidor",
"descAutoSync": "Enviar alterações de personagens e equipamentos imediatamente",
"lblDefaultCreative": "Modo Criativo por Padrão",
"descDefaultCreative": "Permitir personagens duplicados e mais de 4 espaços na equipe",
"settingsShowcaseTitle": "🖼️ Exibição do Cartão de Showcase",
"settingsShowcaseSubtitle": "Personalizar design e detalhes do cartão de build",
"lblShowRolls": "Exibir Contagem de Rolagens de Sub-atributos",
"descShowRolls": "Mostrar marcadores de rolagens para sub-atributos de relíquias",
"lblElementAura": "Efeito de Brilho de Aura Elemental",
"descElementAura": "Fundo dinâmico e brilho ambiente correspondente ao elemento",
"settingsCacheTitle": "🧹 Gerenciamento de Cache & Redefinição",
"settingsCacheSubtitle": "Limpar dados temporários do navegador ou restaurar configurações de fábrica",
"lblCacheSize": "Uso de Memória LocalStorage:",
"btnClearCache": "🧹 Limpar Cache do Navegador",
"btnFactoryReset": "🔄 Redefinição de Fábrica",
"toastPingSuccess": "⚡ Conectado com sucesso! Latência: {ms} ms",
"toastPingFailed": "❌ Falha ao conectar ao Gateway. Verifique o servidor",
"toastCacheCleared": "🧹 Cache do navegador limpo com sucesso",
"qaLineupE0S1Title": "Equipe em E0S1",
"qaLineupE0S1Desc": "Personagens da equipe em E0 com Cone S1",
"qaLineupRelicsTitle": "Autoequipar Relíquias da Equipe",
"qaLineupRelicsDesc": "Equipar relíquias +15 para os 4 integrantes",
"lblPersistenceInfo": "Gerenciamento de saves e dados do servidor",
"modalTabOverview": "Visão Geral",
"modalTabRelics": "Relíquias & Equipamentos",
"attrBasic": "◆ Atributos Básicos",
"attrAdvanced": "◆ Atributos Avançados",
"attrElemental": "◆ Tipo de Dano",
"statMaxHp": "PV Máx.",
"statAtk": "ATQ",
"statDef": "DEF",
"statSpd": "VEL",
"statCritRate": "Taxa Crítica",
"statCritDmg": "Dano Crítico",
"statBreakEffect": "Efeito de Quebra",
"statHealBoost": "Bônus de Cura Realizada",
"statMaxEnergy": "Energia Máx.",
"statEnergyRegen": "Taxa de Regeneração de Energia",
"statEhr": "Taxa de Acerto de Efeito",
"statRes": "RES a Efeito",
"statDmgBoost": "Aumento de Dano {element}",
"relicPickerTitle": "🛡️ Gerenciar Relíquia: {slot}",
"tabQuickGen": "⚡ Criação Rápida e Recomendada",
"tabFromInventory": "📦 Do Inventário",
"btnEquipInstant": "⚡ Equipar Agora (+15 5★ Substats Perfeitos)",
"btnUnequip": "❌ Desequipar",
"currentEquipped": "Atualmente Equipado",
"noRelicEquipped": "Nenhuma relíquia equipada neste espaço",
"chooseMainStat": "Escolha o Stat Principal:",
"chooseSet": "Escolher Conjunto:",
"recommendedBadge": "Recomendado",
"overviewStatsTitle": "⚔️ Atributos de Combate",
"overviewStatsNote": "Inclui bônus de Cone de Luz e Relíquias",
"overviewEquippedLc": "🗡️ Cone de Luz Equipado",
"overviewEquippedRelics": "🛡️ Relíquias e Efeitos de Conjunto",
"modalRelicsTitle": "🛡️ Equipar Relíquias (6 Espaços)",
"modalRelicsSubtitle": "Clique em cada espaço para alterar ou equipar conjuntos recomendados",
"btnAutoEquipRelics": "⚡ Equipar Conjuntos Recomendados",
"btnClearAllRelics": "🧹 Desequipar Tudo",
"activeSetEffects": "✨ Efeitos de Conjunto Ativos",
"modalColLevel": "Nível",
"lblPromotion": "Classificação de Ascensão",
"slotPickerTitle": "🛡️ Selecionar Relíquia para Equipar",
"quickGenRecTitle": "⚡ Gerar Peça Recomendada",
"quickGenRecDesc": "Gerar 5★ +15 com o melhor conjunto e atributo principal",
"btnGenAndEquip": "Gerar & Equipar",
"selectFromInventory": "Selecionar do Inventário",
"btnAllE0S1": "⚡ Todos E0S1",
"qaGachabaseTitle": "Buscar do Gachabase",
"qaGachabaseDesc": "Importar personagens e cones mais recentes da beta",
"synergyTitle": "Análise de Sinergia de Equipe e Quebra de Fraqueza",
"synergySubtitle": "Analise a cobertura de fraquezas, equilíbrio de funções e prontidão de equipamentos",
"synergyBreakCoverage": "🎯 Cobertura de Quebra de Fraqueza",
"synergyRoleBalance": "🛡️ Composição da Equipe e Distribuição de Funções",
"synergyEquipmentTitle": "📊 Prontidão de Equipamentos e Nível Médio",
"synergyAvgLevel": "Nível Médio",
"synergyAvgEidolon": "Eidolon Médio",
"synergyLcEquipped": "Cones Equipados",
"synergyRelicFull": "Relíquias Completas",
"synergyCoverageBadge": "Cobre {count}/7 Elementos",
"synergyNoInTeam": "Nenhum na equipe",
"roleDps": "🗡️ DPS",
"roleSupport": "⚡ Suporte / Debuff",
"roleSustain": "🛡️ Sobrevivência (Cura/Escudo)",
"roleSpecialist": "🔮 Especialista / Ataque Extra",
"adviceEmpty": "Nenhum personagem na equipe. Selecione integrantes acima.",
"adviceNoSustain": "⚠️ Dica: A equipe não tem um defensor ou curador (Preservação / Abundância). Recomenda-se adicionar um para sobrevivência.",
"adviceNoDps": "💡 Dica: A equipe é composta apenas por suportes sem um causador de dano principal (Destruição / Caça / Erudição).",
"adviceNoSupport": "💡 Dica: A equipe tem DPS, mas carece de buffers/debuffers (Harmonia / Inexistência). Adicionar suporte aumentará bastante o dano.",
"adviceBalanced": "✅ Equilíbrio Excelente: A formação conta com DPS, suporte de buffer/debuffer e sobrevivência. Pronta para qualquer desafio!",
"consoleTitle": "Console de Comandos GM e Log em Tempo Real",
"consoleSubtitle": "Envie comandos GM / Servidor em tempo real com logs de pacotes e status",
"consoleCopyLog": "📋 Copiar",
"consoleClearLog": "🗑️ Limpar",
"consoleQuickTitle": "⚡ Comandos Rápidos",
"consolePlaceholder": "Digite comando GM, ex: /heal, /max, /teleport 20411, /give 102 1000...",
"consoleSend": "Enviar",
"consoleHistoryHint": "💡 Pressione ↑ ↓ para navegar no histórico de comandos",
"consoleOnline": "● Servidor Online",
"consoleOffline": "○ Offline (Execução local)",
"consoleLogCopied": "📋 Todos os logs copiados para a área de transferência!",
"consoleLogCopyFailed": "❌ Falha ao copiar logs",
"consoleLogCleared": "Log do terminal limpo",
"btnGachabaseSync": "🌐 Sincronizar Gachabase",
"tabPersistentGaC": "💾 Gerenciador de Saves GaC",
"tabPersistentFirefly": "👤 Desbravador e March 7th",
"badgePersistenceGaC": "GaC: persistent.json (/api/persistent)",
"badgePersistenceFirefly": "FireflyGo: data-in-game.json & freesr-data.json",
"badgePersistenceRobin": "RobinSR: freesr-data.json (/api/freesr)",
"lblLcSuperimpose": "Classificação de Sobreposição",
"lcPickerTitle": "🗡️ Selecionar Cone de Luz para Equipar",
"lcPickerSigTitle": "⭐ Cone de Luz de Assinatura Recomendado",
"lcPickerEquipSig": "⚡ Equipar Este",
"lcPickerUnequip": "✕ Desequipar Cone de Luz"
}
};
// Keys introduced after the original translations were authored. Keep every
// supported locale complete so the runtime never has to fall back to English.
const ADDITIONAL_TRANSLATIONS = {
"th": {
"buildGuideModeMoc": "Memory of Chaos",
"buildGuideModePf": "Pure Fiction",
"buildGuideModeAs": "Apocalyptic Shadow",
"buildGuideModeAa": "Anomaly Arbitration",
"confirmClearRelics": "ต้องการถอดรีลิกส์ทั้งหมดของตัวละครนี้หรือไม่?",
"toastRelicsCleared": "ถอดรีลิกส์เรียบร้อยแล้ว {count} ชิ้น"
},
"en": {
"buildGuideModeMoc": "Memory of Chaos",
"buildGuideModePf": "Pure Fiction",
"buildGuideModeAs": "Apocalyptic Shadow",
"buildGuideModeAa": "Anomaly Arbitration",
"confirmClearRelics": "Unequip all relics from this character?",
"toastRelicsCleared": "Unequipped {count} relics"
},
"zh-CN": {
"buildGuideModeMoc": "混沌回忆",
"buildGuideModePf": "虚构叙事",
"buildGuideModeAs": "末日幻影",
"buildGuideModeAa": "异相仲裁",
"confirmClearRelics": "确定要卸下该角色的全部遗器吗?",
"toastRelicsCleared": "已卸下 {count} 件遗器",
"tabDamageAnalyst": "💥 伤害分析",
"analystTitle": "💥 游戏内战斗伤害分析",
"analystSubtitle": "捕获并分析《星穹铁道》中的真实战斗数据(FireflyGO / Veritas 架构)",
"analystFetchBtn": "🔄 获取游戏内战斗数据",
"analystAutoSync": "⚡ 实时同步战斗数据",
"analystImportBtn": "📂 导入战斗 JSON",
"analystExportBtn": "💾 导出 JSON",
"analystClearBtn": "🗑️ 清除报告",
"analystNoBattle": "尚无战斗记录 — 请在游戏中进行战斗,或点击“获取游戏内战斗数据”/“导入战斗 JSON”",
"analystTotalDamage": "队伍总伤害",
"analystCycles": "已经过轮数",
"analystTurns": "总行动回合",
"analystDuration": "战斗时长",
"analystHealing": "总治疗量",
"analystShield": "总护盾量",
"analystDpsShare": "伤害占比 (DPS %) ",
"analystShareTotal": "总计 100%",
"analystShareUnavailable": "暂无角色伤害占比数据",
"analystBreakdownTitle": "伤害类型明细",
"analystDmgNormal": "🗡️ 普攻",
"analystDmgSkill": "⚡ 战技",
"analystDmgUlt": "💥 终结技",
"analystDmgBreak": "🔨 击破 / 超击破",
"analystDmgFollowup": "🔄 追加攻击",
"analystDmgDot": "🩸 持续伤害 (DoT)",
"analystMaxHit": "单次最高伤害",
"analystDamageTaken": "受到的伤害",
"analystTurnsTaken": "行动回合数",
"analystSkillUses": "技能使用次数",
"analystEnemyTitle": "👾 敌人与目标分析",
"analystEnemyDmgTaken": "敌人受到的伤害",
"analystEnemyTurns": "敌方回合数",
"analystStatusWin": "🏆 战斗胜利",
"analystStatusLive": "🔴 LIVE — 战斗进行中",
"analystStatusLose": "💀 战斗失败",
"analystStatusQuit": "🚪 撤退 / 退出战斗",
"analystToastFetched": "✅ 已成功获取最新战斗数据",
"analystToastImported": "✅ 已成功导入战斗数据",
"analystToastCleared": "🗑️ 已清除战斗报告",
"analystDashboardBanner": "💥 最近战斗:总伤害 {dmg}({cycles} 轮)— 查看完整分析 →",
"modalTabBuildGuide": "📖 配装指南",
"buildGuideTitle": "基于玩家使用数据的配装方案",
"buildGuideSnapshot": "数据快照 {version} · 收集于 {date}",
"buildGuideDescription": "条目及百分比表示 Prydwen 终局玩法样本中的使用率,仅供参考,并非官方排名或推荐。",
"buildGuideSampleCount": "最大终局样本({mode}):{count} 名玩家",
"buildGuideSampleUnavailable": "该角色暂无终局样本数量",
"buildGuideLowSample": "样本较少,结果可能无法代表大多数玩家的选择。",
"buildGuideOpenPrydwen": "打开完整指南",
"buildGuideLightCones": "常用光锥",
"buildGuideRelicSets": "常用遗器套装",
"buildGuidePlanarSets": "常用位面饰品套装",
"buildGuideMainStats": "常用主词条",
"buildGuideBody": "躯干",
"buildGuideFeet": "脚部",
"buildGuideSphere": "位面球",
"buildGuideRope": "连结绳",
"buildGuideNoSample": "暂无样本数据",
"buildGuideNoData": "当前收录的数据快照中没有该角色的配装统计。请打开 Prydwen 指南查看最新建议。",
"buildGuideCredit": "数据来源:Prydwen · 整理与处理:{credit} ·",
"buildGuideOpenEquipment": "打开遗器与装备管理",
"tabInventory": "🎒 背包",
"inventoryTitle": "🎒 道具数量管理",
"inventoryDescription": "按道具 ID 搜索,可同时修改多个数量后一次保存。道具来自服务器使用的客户端目录。留空表示使用服务器默认值。",
"inventorySearchPlaceholder": "搜索道具 ID...",
"inventoryDiscard": "放弃修改",
"inventorySave": "保存更改",
"inventoryLoadHint": "正在加载服务器目录...",
"inventoryItemTotal": "{count} 个道具",
"inventoryPending": "{count} 项待保存",
"inventoryPage": "第 {page}/{pages} 页 • 共 {count} 项",
"inventoryNoMatch": "没有匹配的道具 ID",
"inventoryCountFor": "道具 {id} 的数量",
"inventoryDefaultPlaceholder": "服务器默认值",
"inventoryGaCOnly": "此管理器仅适用于 GaC-hkrpg-go。",
"inventoryLoadSuccess": "已加载 {count} 个目录条目 • 未修改的道具使用服务器默认值",
"inventoryLoadFailed": "无法加载目录",
"inventorySaving": "正在保存 {count} 个道具...",
"inventorySaveSuccess": "已保存 {count} 个道具 • 重新登录游戏以加载更新后的背包",
"inventorySaveFailed": "无法保存背包",
"inventoryItemId": "道具 ID",
"inventoryDefaultCount": "背包数量",
"inventoryPrevious": "上一页",
"inventoryNext": "下一页",
"miniBattleTitle": "最近战斗与队伍伤害",
"miniBattleSubtitle": "最近一次实战的实时伤害、DPS 与角色伤害占比",
"miniTotalDmg": "总伤害",
"miniTeamDps": "队伍 DPS",
"miniBreakDmg": "击破 / 超击破",
"miniBattleTurns": "回合 / 时间",
"miniBreakdownTitle": "队伍伤害占比",
"miniViewFullAnalyst": "伤害分析 →",
"miniNoBattleTitle": "暂无最近战斗记录",
"miniNoBattleDesc": "在游戏中进行战斗(拟造花萼 / 凝滞虚影 / 首领)以追踪实时战斗数据",
"miniBtnFetch": "🔄 获取实时数据",
"miniBtnDemo": "⚡ 加载示例数据",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k 星琼",
"quickCmdCredits": "💰 +10M 信用点",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 星穹列车",
"quickCmdClearLineup": "🧹 清空队伍",
"quickCmdHelp": "❓ /help",
"consoleReady": "GaC 服务器控制台已就绪(输入 /help 查看命令)",
"filterSamePath": "相同命途"
},
"zh-TW": {
"buildGuideModeMoc": "混沌回憶",
"buildGuideModePf": "虛構敘事",
"buildGuideModeAs": "末日幻影",
"buildGuideModeAa": "異相仲裁",
"confirmClearRelics": "確定要卸下此角色的所有遺器嗎?",
"toastRelicsCleared": "已卸下 {count} 件遺器",
"tabDamageAnalyst": "💥 傷害分析",
"analystTitle": "💥 遊戲內戰鬥傷害分析",
"analystSubtitle": "擷取並分析《星穹鐵道》中的實際戰鬥數據(FireflyGO / Veritas 架構)",
"analystFetchBtn": "🔄 取得遊戲內戰鬥資料",
"analystAutoSync": "⚡ 即時同步戰鬥資料",
"analystImportBtn": "📂 匯入戰鬥 JSON",
"analystExportBtn": "💾 匯出 JSON",
"analystClearBtn": "🗑️ 清除報告",
"analystNoBattle": "尚無戰鬥資料 — 請在遊戲中進行戰鬥,或點選「取得遊戲內戰鬥資料」/「匯入戰鬥 JSON」",
"analystTotalDamage": "隊伍總傷害",
"analystCycles": "已經過輪數",
"analystTurns": "總行動回合",
"analystDuration": "戰鬥時間",
"analystHealing": "總治療量",
"analystShield": "總護盾量",
"analystDpsShare": "傷害佔比 (DPS %) ",
"analystShareTotal": "總計 100%",
"analystShareUnavailable": "目前沒有角色傷害佔比資料",
"analystBreakdownTitle": "傷害類型明細",
"analystDmgNormal": "🗡️ 普攻",
"analystDmgSkill": "⚡ 戰技",
"analystDmgUlt": "💥 終結技",
"analystDmgBreak": "🔨 弱點擊破 / 超擊破",
"analystDmgFollowup": "🔄 追加攻擊",
"analystDmgDot": "🩸 持續傷害 (DoT)",
"analystMaxHit": "單次最高傷害",
"analystDamageTaken": "受到的傷害",
"analystTurnsTaken": "行動回合數",
"analystSkillUses": "技能使用次數",
"analystEnemyTitle": "👾 敵人與目標分析",
"analystEnemyDmgTaken": "敵人受到的傷害",
"analystEnemyTurns": "敵方回合數",
"analystStatusWin": "🏆 戰鬥勝利",
"analystStatusLive": "🔴 LIVE — 戰鬥進行中",
"analystStatusLose": "💀 戰鬥失敗",
"analystStatusQuit": "🚪 撤退 / 離開戰鬥",
"analystToastFetched": "✅ 已成功取得最新戰鬥資料",
"analystToastImported": "✅ 已成功匯入戰鬥資料",
"analystToastCleared": "🗑️ 已清除戰鬥報告",
"analystDashboardBanner": "💥 最近戰鬥:總傷害 {dmg}({cycles} 輪)— 查看完整分析 →",
"modalTabBuildGuide": "📖 配裝指南",
"buildGuideTitle": "根據玩家使用數據的配裝方案",
"buildGuideSnapshot": "資料快照 {version} · 蒐集日期 {date}",
"buildGuideDescription": "項目與百分比表示 Prydwen 終局玩法樣本中的使用率,僅供參考,並非官方排名或推薦。",
"buildGuideSampleCount": "最大終局樣本({mode}):{count} 位玩家",
"buildGuideSampleUnavailable": "此角色沒有終局樣本數量資料",
"buildGuideLowSample": "樣本數較少,結果可能無法代表大多數玩家的選擇。",
"buildGuideOpenPrydwen": "開啟完整指南",
"buildGuideLightCones": "常用光錐",
"buildGuideRelicSets": "常用遺器套裝",
"buildGuidePlanarSets": "常用位面飾品套裝",
"buildGuideMainStats": "常用主詞條",
"buildGuideBody": "軀幹",
"buildGuideFeet": "腳部",
"buildGuideSphere": "位面球",
"buildGuideRope": "連結繩",
"buildGuideNoSample": "沒有樣本資料",
"buildGuideNoData": "目前收錄的資料快照中沒有此角色的配裝統計。請開啟 Prydwen 指南查看最新建議。",
"buildGuideCredit": "資料來源:Prydwen · 整理與處理:{credit} ·",
"buildGuideOpenEquipment": "開啟遺器與裝備管理",
"tabInventory": "🎒 背包",
"inventoryTitle": "🎒 道具數量管理",
"inventoryDescription": "依道具 ID 搜尋,可同時修改多項數量後一次儲存。道具來自伺服器使用的客戶端目錄。留白表示使用伺服器預設值。",
"inventorySearchPlaceholder": "搜尋道具 ID...",
"inventoryDiscard": "捨棄修改",
"inventorySave": "儲存變更",
"inventoryLoadHint": "正在載入伺服器目錄...",
"inventoryItemTotal": "{count} 個道具",
"inventoryPending": "{count} 項待儲存",
"inventoryPage": "第 {page}/{pages} 頁 • 共 {count} 項",
"inventoryNoMatch": "找不到符合的道具 ID",
"inventoryCountFor": "道具 {id} 的數量",
"inventoryDefaultPlaceholder": "伺服器預設值",
"inventoryGaCOnly": "此管理工具僅適用於 GaC-hkrpg-go。",
"inventoryLoadSuccess": "已載入 {count} 個目錄項目 • 未修改的道具使用伺服器預設值",
"inventoryLoadFailed": "無法載入目錄",
"inventorySaving": "正在儲存 {count} 個道具...",
"inventorySaveSuccess": "已儲存 {count} 個道具 • 重新登入遊戲以載入更新後的背包",
"inventorySaveFailed": "無法儲存背包",
"inventoryItemId": "道具 ID",
"inventoryDefaultCount": "背包數量",
"inventoryPrevious": "上一頁",
"inventoryNext": "下一頁",
"miniBattleTitle": "最近戰鬥與隊伍傷害",
"miniBattleSubtitle": "最近一場實戰的即時傷害、DPS 與角色傷害佔比",
"miniTotalDmg": "總傷害",
"miniTeamDps": "隊伍 DPS",
"miniBreakDmg": "弱點擊破 / 超擊破",
"miniBattleTurns": "回合 / 時間",
"miniBreakdownTitle": "隊伍傷害佔比",
"miniViewFullAnalyst": "傷害分析 →",
"miniNoBattleTitle": "沒有最近戰鬥紀錄",
"miniNoBattleDesc": "在遊戲中進行戰鬥(擬造花萼 / 凝滯虛影 / 首領)以追蹤即時戰鬥數據",
"miniBtnFetch": "🔄 取得即時資料",
"miniBtnDemo": "⚡ 載入範例資料",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k 星瓊",
"quickCmdCredits": "💰 +10M 信用點",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 星穹列車",
"quickCmdClearLineup": "🧹 清空隊伍",
"quickCmdHelp": "❓ /help",
"consoleReady": "GaC 伺服器主控台已就緒(輸入 /help 查看指令)",
"filterSamePath": "相同命途"
},
"ja": {
"buildGuideModeMoc": "混沌の記憶",
"buildGuideModePf": "虚構叙事",
"buildGuideModeAs": "終末の幻影",
"buildGuideModeAa": "異相裁定",
"confirmClearRelics": "このキャラクターの遺物をすべて外しますか?",
"toastRelicsCleared": "遺物を {count} 個外しました",
"tabDamageAnalyst": "💥 ダメージ分析",
"analystTitle": "💥 ゲーム内戦闘ダメージ分析",
"analystSubtitle": "崩壊:スターレイルの実戦データを記録・分析します(FireflyGO / Veritas 方式)",
"analystFetchBtn": "🔄 ゲーム内の戦闘データを取得",
"analystAutoSync": "⚡ 戦闘データをリアルタイム同期",
"analystImportBtn": "📂 戦闘 JSON をインポート",
"analystExportBtn": "💾 JSON をエクスポート",
"analystClearBtn": "🗑️ レポートを消去",
"analystNoBattle": "戦闘データがありません — ゲーム内で戦闘するか、「ゲーム内の戦闘データを取得」/「戦闘 JSON をインポート」を選択してください",
"analystTotalDamage": "チーム総ダメージ",
"analystCycles": "経過サイクル",
"analystTurns": "総ターン数",
"analystDuration": "戦闘時間",
"analystHealing": "総回復量",
"analystShield": "総シールド量",
"analystDpsShare": "ダメージ割合 (DPS %) ",
"analystShareTotal": "合計 100%",
"analystShareUnavailable": "キャラクター別の割合データがありません",
"analystBreakdownTitle": "ダメージ種別の内訳",
"analystDmgNormal": "🗡️ 通常攻撃",
"analystDmgSkill": "⚡ 戦闘スキル",
"analystDmgUlt": "💥 必殺技",
"analystDmgBreak": "🔨 撃破 / 超撃破",
"analystDmgFollowup": "🔄 追加攻撃",
"analystDmgDot": "🩸 継続ダメージ (DoT)",
"analystMaxHit": "単発最大ダメージ",
"analystDamageTaken": "受けたダメージ",
"analystTurnsTaken": "行動ターン数",
"analystSkillUses": "スキル使用回数",
"analystEnemyTitle": "👾 敵とターゲットの分析",
"analystEnemyDmgTaken": "敵が受けたダメージ",
"analystEnemyTurns": "敵のターン数",
"analystStatusWin": "🏆 勝利",
"analystStatusLive": "🔴 LIVE — 戦闘中",
"analystStatusLose": "💀 敗北",
"analystStatusQuit": "🚪 撤退 / 戦闘を終了",
"analystToastFetched": "✅ 最新の戦闘データを取得しました",
"analystToastImported": "✅ 戦闘データをインポートしました",
"analystToastCleared": "🗑️ 戦闘レポートを消去しました",
"analystDashboardBanner": "💥 直近の戦闘:合計 {dmg} ダメージ({cycles} サイクル)— 詳細分析を見る →",
"modalTabBuildGuide": "📖 ビルドガイド",
"buildGuideTitle": "プレイヤーの使用データに基づくビルド",
"buildGuideSnapshot": "データスナップショット {version} · 収集日 {date}",
"buildGuideDescription": "項目と割合は Prydwen のエンドゲームサンプルにおける使用率です。参考情報であり、公式ランキングや推奨ではありません。",
"buildGuideSampleCount": "最大のエンドゲームサンプル({mode}):{count} 人",
"buildGuideSampleUnavailable": "このキャラクターのエンドゲームサンプル数はありません",
"buildGuideLowSample": "サンプル数が少ないため、全体の傾向を反映していない場合があります。",
"buildGuideOpenPrydwen": "ガイド全文を開く",
"buildGuideLightCones": "よく使われる光円錐",
"buildGuideRelicSets": "よく使われる遺物セット",
"buildGuidePlanarSets": "よく使われる次元界オーナメント",
"buildGuideMainStats": "よく使われるメインステータス",
"buildGuideBody": "胴",
"buildGuideFeet": "脚",
"buildGuideSphere": "次元界オーブ",
"buildGuideRope": "連結縄",
"buildGuideNoSample": "サンプルデータなし",
"buildGuideNoData": "同梱スナップショットにこのキャラクターのビルド統計はありません。最新の推奨は Prydwen ガイドをご覧ください。",
"buildGuideCredit": "データ:Prydwen · 収集・処理:{credit} ·",
"buildGuideOpenEquipment": "遺物・装備管理を開く",
"tabInventory": "🎒 アイテム",
"inventoryTitle": "🎒 アイテム数の管理",
"inventoryDescription": "アイテム ID で検索し、複数の数量を編集して一度に保存できます。アイテム一覧はサーバーが使用するクライアントカタログに基づきます。空欄はサーバーの既定値を使用します。",
"inventorySearchPlaceholder": "アイテム ID を検索...",
"inventoryDiscard": "編集を破棄",
"inventorySave": "変更を保存",
"inventoryLoadHint": "サーバーカタログを読み込み中...",
"inventoryItemTotal": "{count} 件",
"inventoryPending": "未保存 {count} 件",
"inventoryPage": "{page}/{pages} ページ • {count} 件",
"inventoryNoMatch": "一致するアイテム ID がありません",
"inventoryCountFor": "アイテム {id} の数量",
"inventoryDefaultPlaceholder": "サーバーの既定値",
"inventoryGaCOnly": "この管理機能は GaC-hkrpg-go 専用です。",
"inventoryLoadSuccess": "カタログを {count} 件読み込みました • 変更していないアイテムにはサーバーの既定値が使われます",
"inventoryLoadFailed": "カタログを読み込めませんでした",
"inventorySaving": "{count} 件を保存中...",
"inventorySaveSuccess": "{count} 件を保存しました • ゲームに再ログインしてバッグに反映してください",
"inventorySaveFailed": "バッグを保存できませんでした",
"inventoryItemId": "アイテム ID",
"inventoryDefaultCount": "所持数",
"inventoryPrevious": "前へ",
"inventoryNext": "次へ",
"miniBattleTitle": "直近の戦闘とチームダメージ",
"miniBattleSubtitle": "直近の実戦におけるリアルタイムダメージ、DPS、キャラクター別割合",
"miniTotalDmg": "総ダメージ",
"miniTeamDps": "チーム DPS",
"miniBreakDmg": "撃破 / 超撃破",
"miniBattleTurns": "ターン / 時間",
"miniBreakdownTitle": "チームのダメージ割合",
"miniViewFullAnalyst": "ダメージ分析 →",
"miniNoBattleTitle": "直近の戦闘データはありません",
"miniNoBattleDesc": "ゲーム内で戦闘(疑似花萼 / 凝結虚影 / ボス)を行うと、リアルタイムの戦闘データを記録できます",
"miniBtnFetch": "🔄 ライブデータを取得",
"miniBtnDemo": "⚡ サンプルデータを読み込む",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k 星玉",
"quickCmdCredits": "💰 +10M 信用ポイント",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 星穹列車",
"quickCmdClearLineup": "🧹 編成をクリア",
"quickCmdHelp": "❓ /help",
"consoleReady": "GaC サーバーコンソールの準備ができました(コマンド一覧は /help)",
"filterSamePath": "同じ運命"
},
"ko": {
"buildGuideModeMoc": "혼돈의 기억",
"buildGuideModePf": "허구 이야기",
"buildGuideModeAs": "종말의 환영",
"buildGuideModeAa": "이상 중재",
"confirmClearRelics": "이 캐릭터의 유물을 모두 해제할까요?",
"toastRelicsCleared": "유물 {count}개를 해제했습니다",
"tabDamageAnalyst": "💥 피해 분석",
"analystTitle": "💥 인게임 전투 피해 분석",
"analystSubtitle": "붕괴: 스타레일의 실제 전투 통계를 수집하고 분석합니다 (FireflyGO / Veritas 방식)",
"analystFetchBtn": "🔄 인게임 전투 가져오기",
"analystAutoSync": "⚡ 전투 데이터 실시간 동기화",
"analystImportBtn": "📂 전투 JSON 가져오기",
"analystExportBtn": "💾 JSON 내보내기",
"analystClearBtn": "🗑️ 보고서 지우기",
"analystNoBattle": "아직 기록된 전투 데이터가 없습니다 — 게임에서 전투하거나 ‘인게임 전투 가져오기’/‘전투 JSON 가져오기’를 선택하세요",
"analystTotalDamage": "파티 총 피해량",
"analystCycles": "경과 사이클",
"analystTurns": "총 턴 수",
"analystDuration": "전투 시간",
"analystHealing": "총 치유량",
"analystShield": "총 보호막량",
"analystDpsShare": "피해 비중 (DPS %) ",
"analystShareTotal": "합계 100%",
"analystShareUnavailable": "캐릭터별 피해 비중 데이터 없음",
"analystBreakdownTitle": "유형별 피해 내역",
"analystDmgNormal": "🗡️ 일반 공격",
"analystDmgSkill": "⚡ 전투 스킬",
"analystDmgUlt": "💥 필살기",
"analystDmgBreak": "🔨 격파 / 슈퍼 격파",
"analystDmgFollowup": "🔄 추가 공격",
"analystDmgDot": "🩸 지속 피해 (DoT)",
"analystMaxHit": "최대 단일 타격",
"analystDamageTaken": "받은 피해",
"analystTurnsTaken": "행동 턴 수",
"analystSkillUses": "스킬 사용 횟수",
"analystEnemyTitle": "👾 적 및 대상 분석",
"analystEnemyDmgTaken": "적이 받은 피해",
"analystEnemyTurns": "적 턴 수",
"analystStatusWin": "🏆 전투 승리",
"analystStatusLive": "🔴 LIVE — 전투 진행 중",
"analystStatusLose": "💀 전투 패배",
"analystStatusQuit": "🚪 후퇴 / 전투 종료",
"analystToastFetched": "✅ 최신 전투 통계를 가져왔습니다",
"analystToastImported": "✅ 전투 데이터를 가져왔습니다",
"analystToastCleared": "🗑️ 전투 보고서를 지웠습니다",
"analystDashboardBanner": "💥 최근 전투: 총 피해량 {dmg} ({cycles} 사이클) — 전체 분석 보기 →",
"modalTabBuildGuide": "📖 빌드 가이드",
"buildGuideTitle": "플레이어 사용 데이터 기반 빌드",
"buildGuideSnapshot": "데이터 스냅샷 {version} · 수집일 {date}",
"buildGuideDescription": "항목과 비율은 Prydwen 엔드게임 표본의 사용률입니다. 참고용이며 공식 순위나 추천이 아닙니다.",
"buildGuideSampleCount": "가장 큰 엔드게임 표본 ({mode}): {count}명",
"buildGuideSampleUnavailable": "이 캐릭터의 엔드게임 표본 수가 없습니다",
"buildGuideLowSample": "표본이 적어 전체 플레이어 경향을 반영하지 않을 수 있습니다.",
"buildGuideOpenPrydwen": "전체 가이드 열기",
"buildGuideLightCones": "자주 사용하는 광추",
"buildGuideRelicSets": "자주 사용하는 유물 세트",
"buildGuidePlanarSets": "자주 사용하는 차원 장신구 세트",
"buildGuideMainStats": "자주 사용하는 주옵션",
"buildGuideBody": "몸통",
"buildGuideFeet": "신발",
"buildGuideSphere": "차원 구체",
"buildGuideRope": "연결 매듭",
"buildGuideNoSample": "표본 데이터 없음",
"buildGuideNoData": "포함된 스냅샷에 이 캐릭터의 빌드 통계가 없습니다. 최신 추천은 Prydwen 가이드를 확인하세요.",
"buildGuideCredit": "데이터 출처: Prydwen · 수집 및 처리: {credit} ·",
"buildGuideOpenEquipment": "유물 및 장비 관리 열기",
"tabInventory": "🎒 가방",
"inventoryTitle": "🎒 아이템 수량 관리",
"inventoryDescription": "아이템 ID로 검색하고 여러 수량을 수정한 뒤 한 번에 저장하세요. 아이템은 서버가 사용하는 클라이언트 카탈로그에서 가져옵니다. 비워 두면 서버 기본값을 사용합니다.",
"inventorySearchPlaceholder": "아이템 ID 검색...",
"inventoryDiscard": "수정 취소",
"inventorySave": "변경 사항 저장",
"inventoryLoadHint": "서버 카탈로그를 불러오는 중...",
"inventoryItemTotal": "아이템 {count}개",
"inventoryPending": "저장 대기 {count}개",
"inventoryPage": "페이지 {page}/{pages} • {count}개 항목",
"inventoryNoMatch": "일치하는 아이템 ID가 없습니다",
"inventoryCountFor": "아이템 {id} 수량",
"inventoryDefaultPlaceholder": "서버 기본값",
"inventoryGaCOnly": "이 관리 도구는 GaC-hkrpg-go 전용입니다.",
"inventoryLoadSuccess": "카탈로그 {count}개 항목을 불러왔습니다 • 수정하지 않은 아이템은 서버 기본값을 사용합니다",
"inventoryLoadFailed": "카탈로그를 불러오지 못했습니다",
"inventorySaving": "아이템 {count}개 저장 중...",
"inventorySaveSuccess": "아이템 {count}개를 저장했습니다 • 업데이트된 가방을 불러오려면 게임에 다시 로그인하세요",
"inventorySaveFailed": "가방을 저장하지 못했습니다",
"inventoryItemId": "아이템 ID",
"inventoryDefaultCount": "가방 수량",
"inventoryPrevious": "이전",
"inventoryNext": "다음",
"miniBattleTitle": "최근 전투 및 파티 피해량",
"miniBattleSubtitle": "최근 실전 전투의 실시간 피해량, DPS, 캐릭터별 피해 비중",
"miniTotalDmg": "총 피해량",
"miniTeamDps": "파티 DPS",
"miniBreakDmg": "격파 / 슈퍼 격파",
"miniBattleTurns": "턴 / 시간",
"miniBreakdownTitle": "파티 피해 비중",
"miniViewFullAnalyst": "피해 분석 →",
"miniNoBattleTitle": "최근 전투 기록 없음",
"miniNoBattleDesc": "게임에서 전투(Calyx / Shadow / 보스)를 진행하면 실시간 전투 통계를 추적할 수 있습니다",
"miniBtnFetch": "🔄 실시간 데이터 가져오기",
"miniBtnDemo": "⚡ 예시 데이터 불러오기",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k 성옥",
"quickCmdCredits": "💰 +10M 신용 포인트",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 아스트랄 익스프레스",
"quickCmdClearLineup": "🧹 파티 비우기",
"quickCmdHelp": "❓ /help",
"consoleReady": "GaC 서버 콘솔을 사용할 수 있습니다 (/help 입력 시 명령어 표시)",
"filterSamePath": "같은 운명의 길"
},
"vi": {
"buildGuideModeMoc": "Ký Ức Hỗn Độn",
"buildGuideModePf": "Hư Cấu Truyện",
"buildGuideModeAs": "Bóng Ma Ngày Tận Thế",
"buildGuideModeAa": "Trọng Tài Dị Tướng",
"confirmClearRelics": "Tháo tất cả di vật của nhân vật này?",
"toastRelicsCleared": "Đã tháo {count} di vật",
"tabDamageAnalyst": "💥 Phân tích sát thương",
"analystTitle": "💥 Phân tích sát thương chiến đấu trong game",
"analystSubtitle": "Ghi nhận và phân tích số liệu chiến đấu thực tế trong Star Rail (kiến trúc FireflyGO / Veritas)",
"analystFetchBtn": "🔄 Lấy dữ liệu trận đấu trong game",
"analystAutoSync": "⚡ Đồng bộ dữ liệu chiến đấu trực tiếp",
"analystImportBtn": "📂 Nhập JSON trận đấu",
"analystExportBtn": "💾 Xuất JSON",
"analystClearBtn": "🗑️ Xóa báo cáo",
"analystNoBattle": "Chưa có dữ liệu chiến đấu — hãy tham gia trận đấu trong game hoặc chọn “Lấy dữ liệu trận đấu”/“Nhập JSON trận đấu”",
"analystTotalDamage": "Tổng sát thương đội",
"analystCycles": "Số chu kỳ đã qua",
"analystTurns": "Tổng lượt hành động",
"analystDuration": "Thời lượng chiến đấu",
"analystHealing": "Tổng lượng hồi máu",
"analystShield": "Tổng lá chắn",
"analystDpsShare": "Tỷ lệ sát thương (DPS %) ",
"analystShareTotal": "Tổng cộng 100%",
"analystShareUnavailable": "Chưa có tỷ lệ sát thương theo nhân vật",
"analystBreakdownTitle": "Chi tiết sát thương theo loại",
"analystDmgNormal": "🗡️ Đánh thường",
"analystDmgSkill": "⚡ Chiến kỹ",
"analystDmgUlt": "💥 Tuyệt kỹ",
"analystDmgBreak": "🔨 Phá vỡ / Siêu phá vỡ",
"analystDmgFollowup": "🔄 Đòn đánh theo sau",
"analystDmgDot": "🩸 Sát thương duy trì (DoT)",
"analystMaxHit": "Sát thương đơn cao nhất",
"analystDamageTaken": "Sát thương phải chịu",
"analystTurnsTaken": "Lượt hành động",
"analystSkillUses": "Số lần dùng kỹ năng",
"analystEnemyTitle": "👾 Phân tích kẻ địch và mục tiêu",
"analystEnemyDmgTaken": "Sát thương kẻ địch nhận",
"analystEnemyTurns": "Lượt của kẻ địch",
"analystStatusWin": "🏆 Chiến thắng",
"analystStatusLive": "🔴 TRỰC TIẾP — Đang chiến đấu",
"analystStatusLose": "💀 Thất bại",
"analystStatusQuit": "🚪 Rút lui / Thoát trận",
"analystToastFetched": "✅ Đã lấy thành công số liệu trận đấu mới nhất",
"analystToastImported": "✅ Đã nhập dữ liệu trận đấu thành công",
"analystToastCleared": "🗑️ Đã xóa báo cáo trận đấu",
"analystDashboardBanner": "💥 Trận gần nhất: Tổng {dmg} sát thương ({cycles} chu kỳ) — Xem phân tích đầy đủ →",
"modalTabBuildGuide": "📖 Hướng dẫn build",
"buildGuideTitle": "Build dựa trên dữ liệu sử dụng của người chơi",
"buildGuideSnapshot": "Bản dữ liệu {version} · thu thập ngày {date}",
"buildGuideDescription": "Mục và tỷ lệ thể hiện mức sử dụng trong mẫu endgame của Prydwen. Chỉ dùng để tham khảo, không phải xếp hạng hay đề xuất chính thức.",
"buildGuideSampleCount": "Mẫu endgame lớn nhất ({mode}): {count} người chơi",
"buildGuideSampleUnavailable": "Không có số lượng mẫu endgame cho nhân vật này",
"buildGuideLowSample": "Mẫu nhỏ nên kết quả có thể chưa đại diện cho phần lớn người chơi.",
"buildGuideOpenPrydwen": "Mở hướng dẫn đầy đủ",
"buildGuideLightCones": "Nón Ánh Sáng thường dùng",
"buildGuideRelicSets": "Bộ Di Vật thường dùng",
"buildGuidePlanarSets": "Bộ Phụ Kiện Vị Diện thường dùng",
"buildGuideMainStats": "Thuộc tính chính thường dùng",
"buildGuideBody": "Thân",
"buildGuideFeet": "Chân",
"buildGuideSphere": "Quả Cầu Vị Diện",
"buildGuideRope": "Dây Liên Kết",
"buildGuideNoSample": "Không có dữ liệu mẫu",
"buildGuideNoData": "Bản dữ liệu đi kèm chưa có thống kê build cho nhân vật này. Mở hướng dẫn Prydwen để xem đề xuất mới nhất.",
"buildGuideCredit": "Dữ liệu từ Prydwen · tổng hợp và xử lý bởi {credit} ·",
"buildGuideOpenEquipment": "Mở quản lý di vật và trang bị",
"tabInventory": "🎒 Túi đồ",
"inventoryTitle": "🎒 Quản lý số lượng vật phẩm",
"inventoryDescription": "Tìm theo ID vật phẩm, sửa nhiều số lượng rồi lưu một lần. Danh sách lấy từ catalog Client mà máy chủ sử dụng. Để trống để dùng giá trị mặc định của máy chủ.",
"inventorySearchPlaceholder": "Tìm ID vật phẩm...",
"inventoryDiscard": "Hủy chỉnh sửa",
"inventorySave": "Lưu thay đổi",
"inventoryLoadHint": "Đang tải catalog máy chủ...",
"inventoryItemTotal": "{count} vật phẩm",
"inventoryPending": "{count} mục chờ lưu",
"inventoryPage": "Trang {page}/{pages} • {count} mục",
"inventoryNoMatch": "Không tìm thấy ID vật phẩm phù hợp",
"inventoryCountFor": "Số lượng vật phẩm {id}",
"inventoryDefaultPlaceholder": "Mặc định máy chủ",
"inventoryGaCOnly": "Trình quản lý này chỉ dùng được với GaC-hkrpg-go.",
"inventoryLoadSuccess": "Đã tải {count} mục catalog • vật phẩm chưa chỉnh sửa sẽ dùng giá trị mặc định của máy chủ",
"inventoryLoadFailed": "Không thể tải catalog",
"inventorySaving": "Đang lưu {count} vật phẩm...",
"inventorySaveSuccess": "Đã lưu {count} vật phẩm • đăng nhập lại game để tải túi đồ đã cập nhật",
"inventorySaveFailed": "Không thể lưu túi đồ",
"inventoryItemId": "ID vật phẩm",
"inventoryDefaultCount": "Số lượng trong túi",
"inventoryPrevious": "Trước",
"inventoryNext": "Tiếp",
"miniBattleTitle": "Trận gần đây & sát thương đội",
"miniBattleSubtitle": "Sát thương trực tiếp, DPS và tỷ lệ sát thương nhân vật từ trận gần nhất",
"miniTotalDmg": "Tổng sát thương",
"miniTeamDps": "DPS đội",
"miniBreakDmg": "Phá vỡ / Siêu phá vỡ",
"miniBattleTurns": "Lượt / Thời gian",
"miniBreakdownTitle": "Tỷ lệ sát thương đội",
"miniViewFullAnalyst": "Phân tích sát thương →",
"miniNoBattleTitle": "Chưa có trận chiến gần đây",
"miniNoBattleDesc": "Chiến đấu trong game (Calyx / Shadow / Boss) để theo dõi số liệu chiến đấu thời gian thực",
"miniBtnFetch": "🔄 Lấy dữ liệu trực tiếp",
"miniBtnDemo": "⚡ Tải dữ liệu mẫu",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Ngọc Ánh Sao",
"quickCmdCredits": "💰 +10M Tín Dụng",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Astral Express",
"quickCmdClearLineup": "🧹 Xóa đội hình",
"quickCmdHelp": "❓ /help",
"consoleReady": "Bảng điều khiển máy chủ GaC đã sẵn sàng (nhập /help để xem lệnh)",
"filterSamePath": "Cùng Vận Mệnh"
},
"id": {
"buildGuideModeMoc": "Memori Kekacauan",
"buildGuideModePf": "Fiksi Murni",
"buildGuideModeAs": "Bayangan Kiamat",
"buildGuideModeAa": "Arbitrase Anomali",
"confirmClearRelics": "Lepas semua Relik dari karakter ini?",
"toastRelicsCleared": "Berhasil melepas {count} Relik",
"tabDamageAnalyst": "💥 Analisis Damage",
"analystTitle": "💥 Analisis Damage Pertarungan Dalam Game",
"analystSubtitle": "Catat dan analisis statistik pertarungan nyata di Star Rail (arsitektur FireflyGO / Veritas)",
"analystFetchBtn": "🔄 Ambil Data Pertarungan Dalam Game",
"analystAutoSync": "⚡ Sinkronkan Data Pertarungan Secara Langsung",
"analystImportBtn": "📂 Impor JSON Pertarungan",
"analystExportBtn": "💾 Ekspor JSON",
"analystClearBtn": "🗑️ Hapus Laporan",
"analystNoBattle": "Belum ada data pertarungan — bertarunglah di game atau pilih ‘Ambil Data Pertarungan’/‘Impor JSON Pertarungan’",
"analystTotalDamage": "Total Damage Tim",
"analystCycles": "Siklus Berlalu",
"analystTurns": "Total Giliran",
"analystDuration": "Durasi Pertarungan",
"analystHealing": "Total Pemulihan",
"analystShield": "Total Perisai",
"analystDpsShare": "Porsi Damage (DPS %) ",
"analystShareTotal": "Total 100%",
"analystShareUnavailable": "Data porsi damage karakter tidak tersedia",
"analystBreakdownTitle": "Rincian Damage Berdasarkan Kategori",
"analystDmgNormal": "🗡️ Basic ATK",
"analystDmgSkill": "⚡ Skill",
"analystDmgUlt": "💥 Ultimate",
"analystDmgBreak": "🔨 Break / Super Break",
"analystDmgFollowup": "🔄 Follow-up",
"analystDmgDot": "🩸 Damage Berkelanjutan (DoT)",
"analystMaxHit": "Damage Satu Serangan Tertinggi",
"analystDamageTaken": "Damage Diterima",
"analystTurnsTaken": "Giliran Aksi",
"analystSkillUses": "Jumlah Penggunaan Skill",
"analystEnemyTitle": "👾 Analisis Musuh & Target",
"analystEnemyDmgTaken": "Damage yang Diterima Musuh",
"analystEnemyTurns": "Giliran Musuh",
"analystStatusWin": "🏆 Menang",
"analystStatusLive": "🔴 LIVE — Pertarungan berlangsung",
"analystStatusLose": "💀 Kalah",
"analystStatusQuit": "🚪 Mundur / Keluar dari Pertarungan",
"analystToastFetched": "✅ Statistik pertarungan terbaru berhasil diambil",
"analystToastImported": "✅ Data pertarungan berhasil diimpor",
"analystToastCleared": "🗑️ Laporan pertarungan dihapus",
"analystDashboardBanner": "💥 Pertarungan Terbaru: Total {dmg} ({cycles} Siklus) — Lihat Analisis Lengkap →",
"modalTabBuildGuide": "📖 Panduan Build",
"buildGuideTitle": "Build berdasarkan data penggunaan pemain",
"buildGuideSnapshot": "Snapshot {version} · dikumpulkan {date}",
"buildGuideDescription": "Item dan persentase menunjukkan tingkat penggunaan dalam sampel endgame Prydwen. Gunakan sebagai referensi, bukan peringkat atau rekomendasi resmi.",
"buildGuideSampleCount": "Sampel endgame terbesar ({mode}): {count} pemain",
"buildGuideSampleUnavailable": "Jumlah sampel endgame untuk karakter ini tidak tersedia",
"buildGuideLowSample": "Sampel sedikit, hasilnya mungkin belum mewakili mayoritas pemain.",
"buildGuideOpenPrydwen": "Buka panduan lengkap",
"buildGuideLightCones": "Light Cone yang sering digunakan",
"buildGuideRelicSets": "Set Relik yang sering digunakan",
"buildGuidePlanarSets": "Set Ornamen Planar yang sering digunakan",
"buildGuideMainStats": "Stat Utama yang sering digunakan",
"buildGuideBody": "Badan",
"buildGuideFeet": "Kaki",
"buildGuideSphere": "Bola Planar",
"buildGuideRope": "Tali Penghubung",
"buildGuideNoSample": "Tidak ada data sampel",
"buildGuideNoData": "Snapshot yang disertakan belum memiliki statistik build untuk karakter ini. Buka panduan Prydwen untuk rekomendasi terbaru.",
"buildGuideCredit": "Data dari Prydwen · dikumpulkan dan diproses oleh {credit} ·",
"buildGuideOpenEquipment": "Buka pengelola relik dan perlengkapan",
"tabInventory": "🎒 Inventaris",
"inventoryTitle": "🎒 Kelola Jumlah Item",
"inventoryDescription": "Cari berdasarkan ID item, ubah beberapa jumlah, lalu simpan sekaligus. Daftar item berasal dari katalog Client yang digunakan server. Kosongkan kolom untuk memakai nilai default server.",
"inventorySearchPlaceholder": "Cari ID item...",
"inventoryDiscard": "Batalkan perubahan",
"inventorySave": "Simpan perubahan",
"inventoryLoadHint": "Memuat katalog server...",
"inventoryItemTotal": "{count} item",
"inventoryPending": "{count} menunggu disimpan",
"inventoryPage": "Halaman {page}/{pages} • {count} item",
"inventoryNoMatch": "Tidak ada ID item yang cocok",
"inventoryCountFor": "Jumlah item {id}",
"inventoryDefaultPlaceholder": "Default server",
"inventoryGaCOnly": "Pengelola ini hanya tersedia untuk GaC-hkrpg-go.",
"inventoryLoadSuccess": "Memuat {count} item katalog • item yang tidak diubah memakai nilai default server",
"inventoryLoadFailed": "Katalog gagal dimuat",
"inventorySaving": "Menyimpan {count} item...",
"inventorySaveSuccess": "Menyimpan {count} item • masuk kembali ke game untuk memuat tas yang diperbarui",
"inventorySaveFailed": "Inventaris gagal disimpan",
"inventoryItemId": "ID Item",
"inventoryDefaultCount": "Jumlah di tas",
"inventoryPrevious": "Sebelumnya",
"inventoryNext": "Berikutnya",
"miniBattleTitle": "Pertarungan Terbaru & Damage Tim",
"miniBattleSubtitle": "Stat damage langsung, DPS, dan porsi damage karakter dari pertarungan terakhir",
"miniTotalDmg": "Total Damage",
"miniTeamDps": "DPS Tim",
"miniBreakDmg": "Break / Super Break",
"miniBattleTurns": "Giliran / Waktu",
"miniBreakdownTitle": "Porsi Damage Tim",
"miniViewFullAnalyst": "Analisis Damage →",
"miniNoBattleTitle": "Belum Ada Catatan Pertarungan Terbaru",
"miniNoBattleDesc": "Bertarung di game (Calyx / Shadow / Boss) untuk melacak statistik pertarungan secara langsung",
"miniBtnFetch": "🔄 Ambil Data Live",
"miniBtnDemo": "⚡ Muat Data Contoh",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Stellar Jade",
"quickCmdCredits": "💰 +10M Kredit",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Astral Express",
"quickCmdClearLineup": "🧹 Kosongkan Tim",
"quickCmdHelp": "❓ /help",
"consoleReady": "Konsol server GaC siap digunakan (ketik /help untuk melihat perintah)",
"filterSamePath": "Path yang sama"
},
"es": {
"buildGuideModeMoc": "Memoria del Caos",
"buildGuideModePf": "Ficción Pura",
"buildGuideModeAs": "Sombra Apocalíptica",
"buildGuideModeAa": "Arbitraje de Anomalías",
"confirmClearRelics": "¿Quieres desequipar todas las reliquias de este personaje?",
"toastRelicsCleared": "Se desequiparon {count} reliquias",
"tabDamageAnalyst": "💥 Analizador de daño",
"analystTitle": "💥 Análisis del daño de combate en el juego",
"analystSubtitle": "Registra y analiza estadísticas de combates reales de Star Rail (arquitectura de FireflyGO / Veritas)",
"analystFetchBtn": "🔄 Obtener combate del juego",
"analystAutoSync": "⚡ Sincronizar datos de combate en directo",
"analystImportBtn": "📂 Importar JSON de combate",
"analystExportBtn": "💾 Exportar JSON",
"analystClearBtn": "🗑️ Borrar informe",
"analystNoBattle": "Aún no hay datos de combate — lucha en el juego o selecciona «Obtener combate del juego»/«Importar JSON de combate»",
"analystTotalDamage": "Daño total del equipo",
"analystCycles": "Ciclos transcurridos",
"analystTurns": "Turnos totales",
"analystDuration": "Duración del combate",
"analystHealing": "Curación total",
"analystShield": "Escudo total",
"analystDpsShare": "Porcentaje de daño (DPS %) ",
"analystShareTotal": "Total: 100%",
"analystShareUnavailable": "Porcentaje de daño por personaje no disponible",
"analystBreakdownTitle": "Desglose de daño por categoría",
"analystDmgNormal": "🗡️ ATQ básico",
"analystDmgSkill": "⚡ Habilidad",
"analystDmgUlt": "💥 Habilidad definitiva",
"analystDmgBreak": "🔨 Ruptura / Súper ruptura",
"analystDmgFollowup": "🔄 Ataque adicional",
"analystDmgDot": "🩸 Daño con el tiempo (DoT)",
"analystMaxHit": "Mayor golpe individual",
"analystDamageTaken": "Daño recibido",
"analystTurnsTaken": "Turnos de acción",
"analystSkillUses": "Usos de habilidades",
"analystEnemyTitle": "👾 Análisis de enemigos y objetivos",
"analystEnemyDmgTaken": "Daño recibido por el enemigo",
"analystEnemyTurns": "Turnos del enemigo",
"analystStatusWin": "🏆 Victoria",
"analystStatusLive": "🔴 EN DIRECTO — Combate en curso",
"analystStatusLose": "💀 Derrota",
"analystStatusQuit": "🚪 Retirada / Combate abandonado",
"analystToastFetched": "✅ Se obtuvieron las estadísticas del último combate",
"analystToastImported": "✅ Se importaron los datos del combate",
"analystToastCleared": "🗑️ Se borró el informe de combate",
"analystDashboardBanner": "💥 Último combate: {dmg} de daño total ({cycles} ciclos) — Ver análisis completo →",
"modalTabBuildGuide": "📖 Guía de builds",
"buildGuideTitle": "Builds basadas en datos de uso de jugadores",
"buildGuideSnapshot": "Instantánea {version} · recopilada el {date}",
"buildGuideDescription": "Los objetos y porcentajes muestran el uso en las muestras de endgame de Prydwen. Son una referencia, no una clasificación ni recomendación oficial.",
"buildGuideSampleCount": "Muestra de endgame más grande ({mode}): {count} jugadores",
"buildGuideSampleUnavailable": "No hay datos del tamaño de muestra de endgame para este personaje",
"buildGuideLowSample": "La muestra es pequeña y quizá no represente las preferencias de la mayoría.",
"buildGuideOpenPrydwen": "Abrir guía completa",
"buildGuideLightCones": "Conos de luz más usados",
"buildGuideRelicSets": "Sets de artefactos más usados",
"buildGuidePlanarSets": "Sets de ornamentos planares más usados",
"buildGuideMainStats": "Atributos principales más usados",
"buildGuideBody": "Torso",
"buildGuideFeet": "Botas",
"buildGuideSphere": "Esfera",
"buildGuideRope": "Cuerda",
"buildGuideNoSample": "Sin datos de muestra",
"buildGuideNoData": "La instantánea incluida no contiene estadísticas de build para este personaje. Abre la guía de Prydwen para ver recomendaciones actuales.",
"buildGuideCredit": "Datos de Prydwen · recopilados y procesados por {credit} ·",
"buildGuideOpenEquipment": "Abrir gestión de artefactos y equipo",
"tabInventory": "🎒 Inventario",
"inventoryTitle": "🎒 Cantidad de objetos",
"inventoryDescription": "Busca por ID de objeto, modifica varias cantidades y guarda todo de una vez. Los objetos proceden del catálogo del cliente que usa el servidor. Deja el campo vacío para usar el valor predeterminado del servidor.",
"inventorySearchPlaceholder": "Buscar ID de objeto...",
"inventoryDiscard": "Descartar cambios",
"inventorySave": "Guardar cambios",
"inventoryLoadHint": "Cargando catálogo del servidor...",
"inventoryItemTotal": "{count} objetos",
"inventoryPending": "{count} pendientes",
"inventoryPage": "Página {page}/{pages} • {count} objetos",
"inventoryNoMatch": "No hay IDs de objeto coincidentes",
"inventoryCountFor": "Cantidad del objeto {id}",
"inventoryDefaultPlaceholder": "Valor predeterminado del servidor",
"inventoryGaCOnly": "Este editor solo está disponible con GaC-hkrpg-go.",
"inventoryLoadSuccess": "Se cargaron {count} objetos del catálogo • los objetos sin cambios usan el valor predeterminado del servidor",
"inventoryLoadFailed": "No se pudo cargar el catálogo",
"inventorySaving": "Guardando {count} objetos...",
"inventorySaveSuccess": "Se guardaron {count} objetos • vuelve a iniciar sesión para cargar la mochila actualizada",
"inventorySaveFailed": "No se pudo guardar el inventario",
"inventoryItemId": "ID del objeto",
"inventoryDefaultCount": "Cantidad en la mochila",
"inventoryPrevious": "Anterior",
"inventoryNext": "Siguiente",
"miniBattleTitle": "Combate reciente y daño del equipo",
"miniBattleSubtitle": "Daño, DPS y porcentaje por personaje del último combate en tiempo real",
"miniTotalDmg": "Daño total",
"miniTeamDps": "DPS del equipo",
"miniBreakDmg": "Ruptura / Súper ruptura",
"miniBattleTurns": "Turnos / Tiempo",
"miniBreakdownTitle": "Porcentaje de daño del equipo",
"miniViewFullAnalyst": "Analizador de daño →",
"miniNoBattleTitle": "No hay combates recientes registrados",
"miniNoBattleDesc": "Combate en el juego (Cáliz / Sombra / Jefe) para registrar estadísticas en tiempo real",
"miniBtnFetch": "🔄 Obtener datos en directo",
"miniBtnDemo": "⚡ Cargar datos de demostración",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Jades estelares",
"quickCmdCredits": "💰 +10M Créditos",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Expreso Astral",
"quickCmdClearLineup": "🧹 Vaciar equipo",
"quickCmdHelp": "❓ /help",
"consoleReady": "La consola del servidor GaC está lista (escribe /help para ver los comandos)",
"filterSamePath": "Vía igual"
},
"fr": {
"buildGuideModeMoc": "Mémoire du Chaos",
"buildGuideModePf": "Fiction pure",
"buildGuideModeAs": "Ombre apocalyptique",
"buildGuideModeAa": "Arbitrage des anomalies",
"confirmClearRelics": "Retirer toutes les reliques de ce personnage ?",
"toastRelicsCleared": "{count} reliques retirées",
"tabDamageAnalyst": "💥 Analyseur de dégâts",
"analystTitle": "💥 Analyse des dégâts de combat en jeu",
"analystSubtitle": "Capture et analyse les statistiques des combats réels de Star Rail (architecture FireflyGO / Veritas)",
"analystFetchBtn": "🔄 Récupérer le combat en jeu",
"analystAutoSync": "⚡ Synchroniser les données de combat en direct",
"analystImportBtn": "📂 Importer un JSON de combat",
"analystExportBtn": "💾 Exporter en JSON",
"analystClearBtn": "🗑️ Effacer le rapport",
"analystNoBattle": "Aucune donnée de combat enregistrée — lancez un combat en jeu ou choisissez « Récupérer le combat »/« Importer un JSON »",
"analystTotalDamage": "Dégâts totaux de l’équipe",
"analystCycles": "Cycles écoulés",
"analystTurns": "Tours au total",
"analystDuration": "Durée du combat",
"analystHealing": "Soins totaux",
"analystShield": "Bouclier total",
"analystDpsShare": "Part des dégâts (DPS %) ",
"analystShareTotal": "Total : 100 %",
"analystShareUnavailable": "Part des dégâts par personnage indisponible",
"analystBreakdownTitle": "Détail des dégâts par catégorie",
"analystDmgNormal": "🗡️ ATQ normale",
"analystDmgSkill": "⚡ Compétence",
"analystDmgUlt": "💥 Ultime",
"analystDmgBreak": "🔨 Rupture / Super-rupture",
"analystDmgFollowup": "🔄 Attaque de suivi",
"analystDmgDot": "🩸 Dégâts sur la durée (DoT)",
"analystMaxHit": "Plus gros coup unique",
"analystDamageTaken": "Dégâts subis",
"analystTurnsTaken": "Tours d’action",
"analystSkillUses": "Utilisations des capacités",
"analystEnemyTitle": "👾 Analyse des ennemis et des cibles",
"analystEnemyDmgTaken": "Dégâts subis par l’ennemi",
"analystEnemyTurns": "Tours ennemis",
"analystStatusWin": "🏆 Victoire",
"analystStatusLive": "🔴 EN DIRECT — Combat en cours",
"analystStatusLose": "💀 Défaite",
"analystStatusQuit": "🚪 Retraite / Combat quitté",
"analystToastFetched": "✅ Dernières statistiques de combat récupérées",
"analystToastImported": "✅ Données de combat importées",
"analystToastCleared": "🗑️ Rapport de combat effacé",
"analystDashboardBanner": "💥 Dernier combat : {dmg} dégâts au total ({cycles} cycles) — Voir l’analyse complète →",
"modalTabBuildGuide": "📖 Guide de build",
"buildGuideTitle": "Builds selon les données d’utilisation des joueurs",
"buildGuideSnapshot": "Instantané {version} · collecté le {date}",
"buildGuideDescription": "Les objets et pourcentages indiquent leur fréquence dans les échantillons endgame de Prydwen. Ils servent de référence, pas de classement ou de recommandation officielle.",
"buildGuideSampleCount": "Plus grand échantillon endgame ({mode}) : {count} joueurs",
"buildGuideSampleUnavailable": "Taille de l’échantillon endgame indisponible pour ce personnage",
"buildGuideLowSample": "L’échantillon est réduit et peut ne pas représenter la majorité des joueurs.",
"buildGuideOpenPrydwen": "Ouvrir le guide complet",
"buildGuideLightCones": "Cônes de lumière les plus utilisés",
"buildGuideRelicSets": "Sets de reliques les plus utilisés",
"buildGuidePlanarSets": "Ornements planaires les plus utilisés",
"buildGuideMainStats": "Stats principales les plus utilisées",
"buildGuideBody": "Torse",
"buildGuideFeet": "Pieds",
"buildGuideSphere": "Sphère planaire",
"buildGuideRope": "Corde de liaison",
"buildGuideNoSample": "Aucune donnée d’échantillon",
"buildGuideNoData": "L’instantané inclus ne contient pas de statistiques de build pour ce personnage. Consultez le guide Prydwen pour les recommandations actuelles.",
"buildGuideCredit": "Données Prydwen · collectées et traitées par {credit} ·",
"buildGuideOpenEquipment": "Ouvrir la gestion des reliques et équipements",
"tabInventory": "🎒 Inventaire",
"inventoryTitle": "🎒 Quantité des objets",
"inventoryDescription": "Recherchez par ID d’objet, modifiez plusieurs quantités puis enregistrez-les ensemble. La liste provient du catalogue Client utilisé par le serveur. Laissez un champ vide pour utiliser la valeur par défaut du serveur.",
"inventorySearchPlaceholder": "Rechercher un ID d’objet...",
"inventoryDiscard": "Annuler les modifications",
"inventorySave": "Enregistrer les modifications",
"inventoryLoadHint": "Chargement du catalogue serveur...",
"inventoryItemTotal": "{count} objets",
"inventoryPending": "{count} en attente",
"inventoryPage": "Page {page}/{pages} • {count} objets",
"inventoryNoMatch": "Aucun ID d’objet correspondant",
"inventoryCountFor": "Quantité de l’objet {id}",
"inventoryDefaultPlaceholder": "Valeur par défaut du serveur",
"inventoryGaCOnly": "Cet éditeur est réservé à GaC-hkrpg-go.",
"inventoryLoadSuccess": "{count} entrées du catalogue chargées • les objets inchangés utilisent la valeur par défaut du serveur",
"inventoryLoadFailed": "Impossible de charger le catalogue",
"inventorySaving": "Enregistrement de {count} objets...",
"inventorySaveSuccess": "{count} objets enregistrés • reconnectez-vous au jeu pour charger le sac mis à jour",
"inventorySaveFailed": "Impossible d’enregistrer l’inventaire",
"inventoryItemId": "ID de l’objet",
"inventoryDefaultCount": "Quantité dans le sac",
"inventoryPrevious": "Précédent",
"inventoryNext": "Suivant",
"miniBattleTitle": "Combat récent et dégâts de l’équipe",
"miniBattleSubtitle": "Dégâts en direct, DPS et part de chaque personnage lors du dernier combat",
"miniTotalDmg": "Dégâts totaux",
"miniTeamDps": "DPS de l’équipe",
"miniBreakDmg": "Rupture / Super-rupture",
"miniBattleTurns": "Tours / Temps",
"miniBreakdownTitle": "Part des dégâts de l’équipe",
"miniViewFullAnalyst": "Analyse des dégâts →",
"miniNoBattleTitle": "Aucun combat récent enregistré",
"miniNoBattleDesc": "Combattez en jeu (Calice / Ombre stagnante / Boss) pour suivre les statistiques en temps réel",
"miniBtnFetch": "🔄 Récupérer les données en direct",
"miniBtnDemo": "⚡ Charger des données de démonstration",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Jades stellaires",
"quickCmdCredits": "💰 +10M Crédits",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Express astral",
"quickCmdClearLineup": "🧹 Vider l’équipe",
"quickCmdHelp": "❓ /help",
"consoleReady": "La console du serveur GaC est prête (saisissez /help pour afficher les commandes)",
"filterSamePath": "Même Voie"
},
"de": {
"buildGuideModeMoc": "Erinnerung des Chaos",
"buildGuideModePf": "Reine Fiktion",
"buildGuideModeAs": "Apokalyptischer Schatten",
"buildGuideModeAa": "Anomalie-Schlichtung",
"confirmClearRelics": "Alle Relikte dieser Figur ablegen?",
"toastRelicsCleared": "{count} Relikte abgelegt",
"tabDamageAnalyst": "💥 Schadensanalyse",
"analystTitle": "💥 Ingame-Kampfschadensanalyse",
"analystSubtitle": "Erfasst und analysiert echte Kampfstatistiken aus Star Rail (FireflyGO-/Veritas-Architektur)",
"analystFetchBtn": "🔄 Ingame-Kampf abrufen",
"analystAutoSync": "⚡ Kampfdaten live synchronisieren",
"analystImportBtn": "📂 Kampf-JSON importieren",
"analystExportBtn": "💾 JSON exportieren",
"analystClearBtn": "🗑️ Bericht löschen",
"analystNoBattle": "Noch keine Kampfdaten vorhanden — kämpfe im Spiel oder wähle „Ingame-Kampf abrufen“/„Kampf-JSON importieren“",
"analystTotalDamage": "Gesamtschaden des Teams",
"analystCycles": "Abgeschlossene Zyklen",
"analystTurns": "Züge insgesamt",
"analystDuration": "Kampfdauer",
"analystHealing": "Gesamtheilung",
"analystShield": "Gesamtschild",
"analystDpsShare": "Schadensanteil (DPS %) ",
"analystShareTotal": "Gesamt 100 %",
"analystShareUnavailable": "Schadensanteile der Figuren nicht verfügbar",
"analystBreakdownTitle": "Schadensübersicht nach Kategorie",
"analystDmgNormal": "🗡️ Standardangriff",
"analystDmgSkill": "⚡ Fähigkeit",
"analystDmgUlt": "💥 Ultimativfähigkeit",
"analystDmgBreak": "🔨 Durchbruch / Superdurchbruch",
"analystDmgFollowup": "🔄 Folgeangriff",
"analystDmgDot": "🩸 Schaden über Zeit (DoT)",
"analystMaxHit": "Höchster Einzeltreffer",
"analystDamageTaken": "Eingesteckter Schaden",
"analystTurnsTaken": "Aktionszüge",
"analystSkillUses": "Fähigkeitsnutzungen",
"analystEnemyTitle": "👾 Gegner- und Zielanalyse",
"analystEnemyDmgTaken": "Vom Gegner erlittener Schaden",
"analystEnemyTurns": "Gegnerzüge",
"analystStatusWin": "🏆 Sieg",
"analystStatusLive": "🔴 LIVE — Kampf läuft",
"analystStatusLose": "💀 Niederlage",
"analystStatusQuit": "🚪 Rückzug / Kampf verlassen",
"analystToastFetched": "✅ Aktuelle Kampfstatistiken wurden abgerufen",
"analystToastImported": "✅ Kampfdaten wurden importiert",
"analystToastCleared": "🗑️ Kampfbericht wurde gelöscht",
"analystDashboardBanner": "💥 Letzter Kampf: {dmg} Gesamtschaden ({cycles} Zyklen) — Vollständige Analyse ansehen →",
"modalTabBuildGuide": "📖 Build-Guide",
"buildGuideTitle": "Builds nach Nutzungsdaten der Spielenden",
"buildGuideSnapshot": "Datenstand {version} · erfasst am {date}",
"buildGuideDescription": "Objekte und Prozentwerte zeigen die Nutzung in Prydwen-Endgame-Stichproben. Sie dienen als Orientierung, nicht als offizielle Rangliste oder Empfehlung.",
"buildGuideSampleCount": "Größte Endgame-Stichprobe ({mode}): {count} Spielende",
"buildGuideSampleUnavailable": "Keine Endgame-Stichprobengröße für diese Figur verfügbar",
"buildGuideLowSample": "Die Stichprobe ist klein und spiegelt möglicherweise nicht die Mehrheit wider.",
"buildGuideOpenPrydwen": "Vollständigen Guide öffnen",
"buildGuideLightCones": "Häufig verwendete Lichtkegel",
"buildGuideRelicSets": "Häufig verwendete Reliktsets",
"buildGuidePlanarSets": "Häufig verwendete Planarornamente",
"buildGuideMainStats": "Häufig verwendete Hauptwerte",
"buildGuideBody": "Körper",
"buildGuideFeet": "Füße",
"buildGuideSphere": "Planarsphäre",
"buildGuideRope": "Verbindungseil",
"buildGuideNoSample": "Keine Stichprobendaten",
"buildGuideNoData": "Der enthaltene Datenstand enthält keine Build-Statistiken für diese Figur. Aktuelle Empfehlungen findest du im Prydwen-Guide.",
"buildGuideCredit": "Daten von Prydwen · zusammengestellt und aufbereitet von {credit} ·",
"buildGuideOpenEquipment": "Relikt- und Ausrüstungsverwaltung öffnen",
"tabInventory": "🎒 Inventar",
"inventoryTitle": "🎒 Gegenstandsmengen",
"inventoryDescription": "Suche nach Gegenstands-ID, ändere mehrere Mengen und speichere sie zusammen. Die Gegenstände stammen aus dem Client-Katalog des Servers. Ein leeres Feld verwendet den Serverstandardwert.",
"inventorySearchPlaceholder": "Gegenstands-ID suchen...",
"inventoryDiscard": "Änderungen verwerfen",
"inventorySave": "Änderungen speichern",
"inventoryLoadHint": "Serverkatalog wird geladen...",
"inventoryItemTotal": "{count} Gegenstände",
"inventoryPending": "{count} ausstehend",
"inventoryPage": "Seite {page}/{pages} • {count} Gegenstände",
"inventoryNoMatch": "Keine passenden Gegenstands-IDs gefunden",
"inventoryCountFor": "Menge für Gegenstand {id}",
"inventoryDefaultPlaceholder": "Serverstandardwert",
"inventoryGaCOnly": "Diese Verwaltung ist nur mit GaC-hkrpg-go verfügbar.",
"inventoryLoadSuccess": "{count} Katalogeinträge geladen • unveränderte Gegenstände verwenden den Serverstandardwert",
"inventoryLoadFailed": "Katalog konnte nicht geladen werden",
"inventorySaving": "{count} Gegenstände werden gespeichert...",
"inventorySaveSuccess": "{count} Gegenstände gespeichert • melde dich erneut im Spiel an, um den aktualisierten Beutel zu laden",
"inventorySaveFailed": "Inventar konnte nicht gespeichert werden",
"inventoryItemId": "Gegenstands-ID",
"inventoryDefaultCount": "Menge im Beutel",
"inventoryPrevious": "Zurück",
"inventoryNext": "Weiter",
"miniBattleTitle": "Letzter Kampf & Teamschaden",
"miniBattleSubtitle": "Live-Schaden, DPS und Figurenanteile aus dem letzten echten Kampf",
"miniTotalDmg": "Gesamtschaden",
"miniTeamDps": "Team-DPS",
"miniBreakDmg": "Durchbruch / Superdurchbruch",
"miniBattleTurns": "Züge / Zeit",
"miniBreakdownTitle": "Schadensanteile des Teams",
"miniViewFullAnalyst": "Schadensanalyse →",
"miniNoBattleTitle": "Keine aktuellen Kampfaufzeichnungen",
"miniNoBattleDesc": "Kämpfe im Spiel (Kelch / Schatten / Boss), um Echtzeit-Kampfwerte zu erfassen",
"miniBtnFetch": "🔄 Live-Daten abrufen",
"miniBtnDemo": "⚡ Beispieldaten laden",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Sternenjade",
"quickCmdCredits": "💰 +10M Credits",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Astralexpress",
"quickCmdClearLineup": "🧹 Team leeren",
"quickCmdHelp": "❓ /help",
"consoleReady": "Die GaC-Serverkonsole ist bereit (mit /help werden Befehle angezeigt)",
"filterSamePath": "Gleicher Pfad"
},
"ru": {
"buildGuideModeMoc": "Память хаоса",
"buildGuideModePf": "Чистая фантастика",
"buildGuideModeAs": "Апокалиптическая тень",
"buildGuideModeAa": "Арбитраж аномалий",
"confirmClearRelics": "Снять все реликвии с этого персонажа?",
"toastRelicsCleared": "Снято реликвий: {count}",
"tabDamageAnalyst": "💥 Анализ урона",
"analystTitle": "💥 Анализ урона в бою",
"analystSubtitle": "Сбор и анализ статистики реальных боёв в Star Rail (архитектура FireflyGO / Veritas)",
"analystFetchBtn": "🔄 Получить данные боя из игры",
"analystAutoSync": "⚡ Синхронизировать данные боя в реальном времени",
"analystImportBtn": "📂 Импортировать JSON боя",
"analystExportBtn": "💾 Экспортировать JSON",
"analystClearBtn": "🗑️ Очистить отчёт",
"analystNoBattle": "Данные о боях отсутствуют — сразитесь в игре или выберите «Получить данные боя»/«Импортировать JSON боя»",
"analystTotalDamage": "Общий урон отряда",
"analystCycles": "Прошедшие циклы",
"analystTurns": "Всего ходов",
"analystDuration": "Длительность боя",
"analystHealing": "Общее лечение",
"analystShield": "Общий щит",
"analystDpsShare": "Доля урона (DPS %) ",
"analystShareTotal": "Всего 100%",
"analystShareUnavailable": "Доли урона персонажей недоступны",
"analystBreakdownTitle": "Урон по категориям",
"analystDmgNormal": "🗡️ Обычная атака",
"analystDmgSkill": "⚡ Навык",
"analystDmgUlt": "💥 Сверхспособность",
"analystDmgBreak": "🔨 Пробитие / Сверхпробитие",
"analystDmgFollowup": "🔄 Бонус-атака",
"analystDmgDot": "🩸 Периодический урон (DoT)",
"analystMaxHit": "Максимальный разовый урон",
"analystDamageTaken": "Полученный урон",
"analystTurnsTaken": "Ходы действий",
"analystSkillUses": "Использования способностей",
"analystEnemyTitle": "👾 Анализ врагов и целей",
"analystEnemyDmgTaken": "Урон, полученный врагом",
"analystEnemyTurns": "Ходы врага",
"analystStatusWin": "🏆 Победа",
"analystStatusLive": "🔴 LIVE — бой продолжается",
"analystStatusLose": "💀 Поражение",
"analystStatusQuit": "🚪 Отступление / выход из боя",
"analystToastFetched": "✅ Статистика последнего боя получена",
"analystToastImported": "✅ Данные боя импортированы",
"analystToastCleared": "🗑️ Отчёт о бое очищен",
"analystDashboardBanner": "💥 Последний бой: общий урон {dmg} ({cycles} циклов) — открыть полный анализ →",
"modalTabBuildGuide": "📖 Руководство по сборке",
"buildGuideTitle": "Сборки на основе статистики игроков",
"buildGuideSnapshot": "Снимок данных {version} · собран {date}",
"buildGuideDescription": "Предметы и проценты показывают частоту использования в выборках эндгейма Prydwen. Это справочная информация, а не официальный рейтинг или рекомендация.",
"buildGuideSampleCount": "Самая большая выборка эндгейма ({mode}): {count} игроков",
"buildGuideSampleUnavailable": "Размер выборки эндгейма для этого персонажа неизвестен",
"buildGuideLowSample": "Выборка мала и может не отражать предпочтения большинства игроков.",
"buildGuideOpenPrydwen": "Открыть полное руководство",
"buildGuideLightCones": "Популярные световые конусы",
"buildGuideRelicSets": "Популярные наборы реликвий",
"buildGuidePlanarSets": "Популярные планарные украшения",
"buildGuideMainStats": "Популярные основные характеристики",
"buildGuideBody": "Тело",
"buildGuideFeet": "Ноги",
"buildGuideSphere": "Планарная сфера",
"buildGuideRope": "Соединительная верёвка",
"buildGuideNoSample": "Нет данных выборки",
"buildGuideNoData": "В приложенном снимке нет статистики сборки этого персонажа. Откройте руководство Prydwen, чтобы посмотреть актуальные рекомендации.",
"buildGuideCredit": "Данные Prydwen · собраны и обработаны: {credit} ·",
"buildGuideOpenEquipment": "Открыть управление реликвиями и экипировкой",
"tabInventory": "🎒 Инвентарь",
"inventoryTitle": "🎒 Количество предметов",
"inventoryDescription": "Найдите предмет по ID, измените количество нескольких предметов и сохраните всё сразу. Список берётся из каталога клиента, используемого сервером. Пустое поле означает значение по умолчанию сервера.",
"inventorySearchPlaceholder": "Поиск по ID предмета...",
"inventoryDiscard": "Отменить изменения",
"inventorySave": "Сохранить изменения",
"inventoryLoadHint": "Загрузка каталога сервера...",
"inventoryItemTotal": "Предметов: {count}",
"inventoryPending": "Ожидают сохранения: {count}",
"inventoryPage": "Страница {page}/{pages} • предметов: {count}",
"inventoryNoMatch": "Подходящие ID предметов не найдены",
"inventoryCountFor": "Количество предмета {id}",
"inventoryDefaultPlaceholder": "Значение сервера по умолчанию",
"inventoryGaCOnly": "Этот редактор доступен только для GaC-hkrpg-go.",
"inventoryLoadSuccess": "Загружено записей каталога: {count} • для неизменённых предметов действует значение сервера по умолчанию",
"inventoryLoadFailed": "Не удалось загрузить каталог",
"inventorySaving": "Сохранение предметов: {count}...",
"inventorySaveSuccess": "Сохранено предметов: {count} • войдите в игру снова, чтобы загрузить обновлённый инвентарь",
"inventorySaveFailed": "Не удалось сохранить инвентарь",
"inventoryItemId": "ID предмета",
"inventoryDefaultCount": "Количество в инвентаре",
"inventoryPrevious": "Назад",
"inventoryNext": "Далее",
"miniBattleTitle": "Последний бой и урон отряда",
"miniBattleSubtitle": "Урон в реальном времени, DPS и доля каждого персонажа в последнем бою",
"miniTotalDmg": "Общий урон",
"miniTeamDps": "DPS отряда",
"miniBreakDmg": "Пробитие / Сверхпробитие",
"miniBattleTurns": "Ходы / Время",
"miniBreakdownTitle": "Доли урона отряда",
"miniViewFullAnalyst": "Анализ урона →",
"miniNoBattleTitle": "Недавних боёв нет",
"miniNoBattleDesc": "Сражайтесь в игре (Калькс / Тень / босс), чтобы отслеживать боевую статистику в реальном времени",
"miniBtnFetch": "🔄 Получить данные LIVE",
"miniBtnDemo": "⚡ Загрузить пример данных",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k звёздных нефритов",
"quickCmdCredits": "💰 +10M кредитов",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Звёздный экспресс",
"quickCmdClearLineup": "🧹 Очистить отряд",
"quickCmdHelp": "❓ /help",
"consoleReady": "Консоль сервера GaC готова (введите /help, чтобы увидеть команды)",
"filterSamePath": "Тот же Путь"
},
"pt": {
"buildGuideModeMoc": "Memória do Caos",
"buildGuideModePf": "Ficção Pura",
"buildGuideModeAs": "Sombra Apocalíptica",
"buildGuideModeAa": "Arbitragem de Anomalias",
"confirmClearRelics": "Desequipar todas as relíquias deste personagem?",
"toastRelicsCleared": "{count} relíquias desequipadas",
"tabDamageAnalyst": "💥 Análise de dano",
"analystTitle": "💥 Análise de dano de combate no jogo",
"analystSubtitle": "Registra e analisa estatísticas de combates reais em Star Rail (arquitetura FireflyGO / Veritas)",
"analystFetchBtn": "🔄 Buscar combate do jogo",
"analystAutoSync": "⚡ Sincronizar dados de combate ao vivo",
"analystImportBtn": "📂 Importar JSON de batalha",
"analystExportBtn": "💾 Exportar JSON",
"analystClearBtn": "🗑️ Limpar relatório",
"analystNoBattle": "Nenhum dado de combate registrado — lute no jogo ou selecione “Buscar combate do jogo”/“Importar JSON de batalha”",
"analystTotalDamage": "Dano total da equipe",
"analystCycles": "Ciclos decorridos",
"analystTurns": "Turnos totais",
"analystDuration": "Duração do combate",
"analystHealing": "Cura total",
"analystShield": "Escudo total",
"analystDpsShare": "Participação no dano (DPS %) ",
"analystShareTotal": "Total: 100%",
"analystShareUnavailable": "Participação de dano por personagem indisponível",
"analystBreakdownTitle": "Detalhamento do dano por categoria",
"analystDmgNormal": "🗡️ ATQ básico",
"analystDmgSkill": "⚡ Perícia",
"analystDmgUlt": "💥 Supremo",
"analystDmgBreak": "🔨 Quebra / Superquebra",
"analystDmgFollowup": "🔄 Ataque adicional",
"analystDmgDot": "🩸 Dano contínuo (DoT)",
"analystMaxHit": "Maior dano em um golpe",
"analystDamageTaken": "Dano recebido",
"analystTurnsTaken": "Turnos de ação",
"analystSkillUses": "Usos de habilidades",
"analystEnemyTitle": "👾 Análise de inimigos e alvos",
"analystEnemyDmgTaken": "Dano recebido pelo inimigo",
"analystEnemyTurns": "Turnos do inimigo",
"analystStatusWin": "🏆 Vitória",
"analystStatusLive": "🔴 AO VIVO — Combate em andamento",
"analystStatusLose": "💀 Derrota",
"analystStatusQuit": "🚪 Recuou / Saiu do combate",
"analystToastFetched": "✅ Estatísticas do combate mais recente obtidas",
"analystToastImported": "✅ Dados do combate importados",
"analystToastCleared": "🗑️ Relatório de combate limpo",
"analystDashboardBanner": "💥 Batalha recente: {dmg} de dano total ({cycles} ciclos) — Ver análise completa →",
"modalTabBuildGuide": "📖 Guia de build",
"buildGuideTitle": "Builds com base nos dados de uso dos jogadores",
"buildGuideSnapshot": "Instantâneo {version} · coletado em {date}",
"buildGuideDescription": "Os itens e percentuais mostram o uso nas amostras de endgame da Prydwen. Servem como referência, não como classificação ou recomendação oficial.",
"buildGuideSampleCount": "Maior amostra de endgame ({mode}): {count} jogadores",
"buildGuideSampleUnavailable": "Não há contagem de amostra de endgame para este personagem",
"buildGuideLowSample": "A amostra é pequena e talvez não represente a maioria dos jogadores.",
"buildGuideOpenPrydwen": "Abrir guia completo",
"buildGuideLightCones": "Cones de Luz mais usados",
"buildGuideRelicSets": "Conjuntos de Relíquias mais usados",
"buildGuidePlanarSets": "Ornamentos Planares mais usados",
"buildGuideMainStats": "Atributos principais mais usados",
"buildGuideBody": "Corpo",
"buildGuideFeet": "Pés",
"buildGuideSphere": "Esfera Planar",
"buildGuideRope": "Corda de Ligação",
"buildGuideNoSample": "Sem dados de amostra",
"buildGuideNoData": "O instantâneo incluído não contém estatísticas de build para este personagem. Abra o guia da Prydwen para ver as recomendações atuais.",
"buildGuideCredit": "Dados da Prydwen · compilados e processados por {credit} ·",
"buildGuideOpenEquipment": "Abrir gerenciamento de relíquias e equipamentos",
"tabInventory": "🎒 Inventário",
"inventoryTitle": "🎒 Quantidade de itens",
"inventoryDescription": "Pesquise pelo ID do item, edite várias quantidades e salve tudo de uma vez. A lista vem do catálogo do Client usado pelo servidor. Deixe o campo vazio para usar o padrão do servidor.",
"inventorySearchPlaceholder": "Pesquisar ID do item...",
"inventoryDiscard": "Descartar alterações",
"inventorySave": "Salvar alterações",
"inventoryLoadHint": "Carregando catálogo do servidor...",
"inventoryItemTotal": "{count} itens",
"inventoryPending": "{count} pendentes",
"inventoryPage": "Página {page}/{pages} • {count} itens",
"inventoryNoMatch": "Nenhum ID de item correspondente",
"inventoryCountFor": "Quantidade do item {id}",
"inventoryDefaultPlaceholder": "Padrão do servidor",
"inventoryGaCOnly": "Este gerenciador está disponível apenas com GaC-hkrpg-go.",
"inventoryLoadSuccess": "{count} itens do catálogo carregados • itens sem alterações usam o padrão do servidor",
"inventoryLoadFailed": "Não foi possível carregar o catálogo",
"inventorySaving": "Salvando {count} itens...",
"inventorySaveSuccess": "{count} itens salvos • entre novamente no jogo para carregar a mochila atualizada",
"inventorySaveFailed": "Não foi possível salvar o inventário",
"inventoryItemId": "ID do item",
"inventoryDefaultCount": "Quantidade na mochila",
"inventoryPrevious": "Anterior",
"inventoryNext": "Próxima",
"miniBattleTitle": "Combate recente e dano da equipe",
"miniBattleSubtitle": "Dano ao vivo, DPS e participação de cada personagem na batalha mais recente",
"miniTotalDmg": "Dano total",
"miniTeamDps": "DPS da equipe",
"miniBreakDmg": "Quebra / Superquebra",
"miniBattleTurns": "Turnos / Tempo",
"miniBreakdownTitle": "Participação no dano da equipe",
"miniViewFullAnalyst": "Análise de dano →",
"miniNoBattleTitle": "Nenhum combate recente registrado",
"miniNoBattleDesc": "Lute no jogo (Cálice / Sombra / Chefe) para acompanhar estatísticas de combate em tempo real",
"miniBtnFetch": "🔄 Buscar dados ao vivo",
"miniBtnDemo": "⚡ Carregar dados de demonstração",
"quickCmdHeal": "💖 /heal",
"quickCmdJades": "💎 +100k Jade Estelar",
"quickCmdCredits": "💰 +10M Créditos",
"quickCmdMax": "⚡ /max",
"quickCmdExpress": "🚂 Expresso Astral",
"quickCmdClearLineup": "🧹 Limpar equipe",
"quickCmdHelp": "❓ /help",
"consoleReady": "O console do servidor GaC está pronto (digite /help para ver os comandos)",
"filterSamePath": "Mesmo Caminho"
}
};
const DAMAGE_ANALYST_TRANSLATIONS = {
"th": {
"analystCycleValue": "{count} รอบ ({count}-Cycle)",
"analystTurnValue": "{count} เทิร์น",
"analystAveragePerCycle": "เฉลี่ย {value} ต่อรอบ",
"analystAveragePerTurn": "เฉลี่ย {value} ต่อเทิร์น",
"analystBattleMeta": "ด่าน {stage} | การต่อสู้ #{battle}",
"analystStatusReady": "พร้อมรับข้อมูลจากเกม",
"analystAutoTurnValue": "เทิร์นอัตโนมัติ: {count}",
"analystDemoLoaded": "✨ โหลดข้อมูลตัวอย่างการต่อสู้เรียบร้อยแล้ว",
"analystCyclesNote": "มาตรฐาน MoC / PF / AS",
"analystExportEmpty": "ไม่มีรายงานการต่อสู้ให้ส่งออก",
"analystExportSuccess": "ส่งออก {file} เรียบร้อยแล้ว",
"analystImportInvalid": "ไฟล์ JSON ไม่ใช่รายงาน GaC Battle Report หรือ Firefly-Sranalysis",
"analystImportFailed": "ไฟล์ JSON ผิดพลาด: {message}",
"analystDpsShareLabel": "สัดส่วนดาเมจ",
"analystMonsterName": "มอนสเตอร์ #{id}",
"analystWaveEntity": "เวฟ {wave} • เอนทิตี: {entity}",
"analystDamageDealt": "ดาเมจที่ทำได้"
},
"en": {
"analystCycleValue": "{count} Cycles",
"analystTurnValue": "{count} Turns",
"analystAveragePerCycle": "Average: {value} per cycle",
"analystAveragePerTurn": "Average: {value} per turn",
"analystBattleMeta": "Stage: {stage} | Battle: #{battle}",
"analystStatusReady": "Ready for in-game battle data",
"analystAutoTurnValue": "Auto turns: {count}",
"analystDemoLoaded": "✨ Demo battle report loaded",
"analystCyclesNote": "MoC / PF / AS standard",
"analystExportEmpty": "There is no battle report to export",
"analystExportSuccess": "Exported {file} successfully",
"analystImportInvalid": "JSON must be a GaC Battle Report or Firefly-Sranalysis report",
"analystImportFailed": "Invalid JSON file: {message}",
"analystDpsShareLabel": "DAMAGE SHARE",
"analystMonsterName": "Monster #{id}",
"analystWaveEntity": "Wave {wave} • Entity: {entity}",
"analystDamageDealt": "Damage dealt"
},
"zh-CN": {
"analystCycleValue": "{count} 轮",
"analystTurnValue": "{count} 回合",
"analystAveragePerCycle": "平均每轮 {value}",
"analystAveragePerTurn": "平均每回合 {value}",
"analystBattleMeta": "关卡:{stage} | 战斗:#{battle}",
"analystStatusReady": "等待游戏战斗数据",
"analystAutoTurnValue": "自动回合:{count}",
"analystDemoLoaded": "✨ 已载入战斗示例数据",
"analystCyclesNote": "MoC / PF / AS 标准",
"analystExportEmpty": "没有可导出的战斗报告",
"analystExportSuccess": "已成功导出 {file}",
"analystImportInvalid": "JSON 必须是 GaC Battle Report 或 Firefly-Sranalysis 报告",
"analystImportFailed": "JSON 文件无效:{message}",
"analystDpsShareLabel": "伤害占比",
"analystMonsterName": "怪物 #{id}",
"analystWaveEntity": "第 {wave} 波 • 实体:{entity}",
"analystDamageDealt": "造成伤害"
},
"zh-TW": {
"analystCycleValue": "{count} 輪",
"analystTurnValue": "{count} 回合",
"analystAveragePerCycle": "平均每輪 {value}",
"analystAveragePerTurn": "平均每回合 {value}",
"analystBattleMeta": "關卡:{stage} | 戰鬥:#{battle}",
"analystStatusReady": "等待遊戲戰鬥資料",
"analystAutoTurnValue": "自動回合:{count}",
"analystDemoLoaded": "✨ 已載入戰鬥範例資料",
"analystCyclesNote": "MoC / PF / AS 標準",
"analystExportEmpty": "沒有可匯出的戰鬥報告",
"analystExportSuccess": "已成功匯出 {file}",
"analystImportInvalid": "JSON 必須是 GaC Battle Report 或 Firefly-Sranalysis 報告",
"analystImportFailed": "JSON 檔案無效:{message}",
"analystDpsShareLabel": "傷害佔比",
"analystMonsterName": "怪物 #{id}",
"analystWaveEntity": "第 {wave} 波 • 實體:{entity}",
"analystDamageDealt": "造成傷害"
},
"ja": {
"analystCycleValue": "{count} サイクル",
"analystTurnValue": "{count} ターン",
"analystAveragePerCycle": "1サイクル平均:{value}",
"analystAveragePerTurn": "1ターン平均:{value}",
"analystBattleMeta": "ステージ:{stage} | 戦闘:#{battle}",
"analystStatusReady": "ゲーム内の戦闘データを待機中",
"analystAutoTurnValue": "自動ターン:{count}",
"analystDemoLoaded": "✨ 戦闘デモデータを読み込みました",
"analystCyclesNote": "MoC / PF / AS 標準",
"analystExportEmpty": "エクスポートする戦闘レポートがありません",
"analystExportSuccess": "{file} をエクスポートしました",
"analystImportInvalid": "JSON は GaC Battle Report または Firefly-Sranalysis のレポートである必要があります",
"analystImportFailed": "JSON ファイルが無効です:{message}",
"analystDpsShareLabel": "ダメージ割合",
"analystMonsterName": "モンスター #{id}",
"analystWaveEntity": "ウェーブ {wave} • エンティティ:{entity}",
"analystDamageDealt": "与えたダメージ"
},
"ko": {
"analystCycleValue": "{count} 사이클",
"analystTurnValue": "{count}턴",
"analystAveragePerCycle": "사이클당 평균: {value}",
"analystAveragePerTurn": "턴당 평균: {value}",
"analystBattleMeta": "스테이지: {stage} | 전투: #{battle}",
"analystStatusReady": "게임 전투 데이터 대기 중",
"analystAutoTurnValue": "자동 턴: {count}",
"analystDemoLoaded": "✨ 전투 예시 데이터를 불러왔습니다",
"analystCyclesNote": "MoC / PF / AS 표준",
"analystExportEmpty": "내보낼 전투 보고서가 없습니다",
"analystExportSuccess": "{file} 내보내기 완료",
"analystImportInvalid": "JSON은 GaC Battle Report 또는 Firefly-Sranalysis 보고서여야 합니다",
"analystImportFailed": "JSON 파일이 올바르지 않습니다: {message}",
"analystDpsShareLabel": "피해 비중",
"analystMonsterName": "몬스터 #{id}",
"analystWaveEntity": "웨이브 {wave} • 개체: {entity}",
"analystDamageDealt": "가한 피해"
},
"vi": {
"analystCycleValue": "{count} chu kỳ",
"analystTurnValue": "{count} lượt",
"analystAveragePerCycle": "Trung bình mỗi chu kỳ: {value}",
"analystAveragePerTurn": "Trung bình mỗi lượt: {value}",
"analystBattleMeta": "Màn: {stage} | Trận: #{battle}",
"analystStatusReady": "Đang chờ dữ liệu chiến đấu trong game",
"analystAutoTurnValue": "Lượt tự động: {count}",
"analystDemoLoaded": "✨ Đã tải dữ liệu chiến đấu mẫu",
"analystCyclesNote": "Tiêu chuẩn MoC / PF / AS",
"analystExportEmpty": "Không có báo cáo chiến đấu để xuất",
"analystExportSuccess": "Đã xuất {file}",
"analystImportInvalid": "JSON phải là báo cáo GaC Battle Report hoặc Firefly-Sranalysis",
"analystImportFailed": "Tệp JSON không hợp lệ: {message}",
"analystDpsShareLabel": "Tỷ lệ sát thương",
"analystMonsterName": "Quái #{id}",
"analystWaveEntity": "Đợt {wave} • Thực thể: {entity}",
"analystDamageDealt": "Sát thương gây ra"
},
"id": {
"analystCycleValue": "{count} Siklus",
"analystTurnValue": "{count} Giliran",
"analystAveragePerCycle": "Rata-rata per siklus: {value}",
"analystAveragePerTurn": "Rata-rata per giliran: {value}",
"analystBattleMeta": "Stage: {stage} | Pertempuran: #{battle}",
"analystStatusReady": "Menunggu data pertarungan dalam game",
"analystAutoTurnValue": "Giliran otomatis: {count}",
"analystDemoLoaded": "✨ Laporan pertarungan demo dimuat",
"analystCyclesNote": "Standar MoC / PF / AS",
"analystExportEmpty": "Tidak ada laporan pertarungan untuk diekspor",
"analystExportSuccess": "Berhasil mengekspor {file}",
"analystImportInvalid": "JSON harus berupa laporan GaC Battle Report atau Firefly-Sranalysis",
"analystImportFailed": "File JSON tidak valid: {message}",
"analystDpsShareLabel": "Porsi Damage",
"analystMonsterName": "Monster #{id}",
"analystWaveEntity": "Gelombang {wave} • Entitas: {entity}",
"analystDamageDealt": "Damage yang diberikan"
},
"es": {
"analystCycleValue": "{count} ciclos",
"analystTurnValue": "{count} turnos",
"analystAveragePerCycle": "Promedio por ciclo: {value}",
"analystAveragePerTurn": "Promedio por turno: {value}",
"analystBattleMeta": "Fase: {stage} | Combate: n.º {battle}",
"analystStatusReady": "Esperando datos de combate del juego",
"analystAutoTurnValue": "Turnos automáticos: {count}",
"analystDemoLoaded": "✨ Informe de combate de demostración cargado",
"analystCyclesNote": "Estándar de MoC / PF / AS",
"analystExportEmpty": "No hay ningún informe de combate para exportar",
"analystExportSuccess": "Se exportó {file}",
"analystImportInvalid": "El JSON debe ser un informe de GaC Battle Report o Firefly-Sranalysis",
"analystImportFailed": "El archivo JSON no es válido: {message}",
"analystDpsShareLabel": "Porcentaje de daño",
"analystMonsterName": "Monstruo n.º {id}",
"analystWaveEntity": "Oleada {wave} • Entidad: {entity}",
"analystDamageDealt": "Daño infligido"
},
"fr": {
"analystCycleValue": "{count} cycles",
"analystTurnValue": "{count} tours",
"analystAveragePerCycle": "Moyenne par cycle : {value}",
"analystAveragePerTurn": "Moyenne par tour : {value}",
"analystBattleMeta": "Niveau : {stage} | Combat : nº {battle}",
"analystStatusReady": "En attente des données de combat du jeu",
"analystAutoTurnValue": "Tours automatiques : {count}",
"analystDemoLoaded": "✨ Rapport de combat de démonstration chargé",
"analystCyclesNote": "Standard MoC / PF / AS",
"analystExportEmpty": "Aucun rapport de combat à exporter",
"analystExportSuccess": "{file} exporté",
"analystImportInvalid": "Le JSON doit être un rapport GaC Battle Report ou Firefly-Sranalysis",
"analystImportFailed": "Fichier JSON invalide : {message}",
"analystDpsShareLabel": "Part des dégâts",
"analystMonsterName": "Monstre nº {id}",
"analystWaveEntity": "Vague {wave} • Entité : {entity}",
"analystDamageDealt": "Dégâts infligés"
},
"de": {
"analystCycleValue": "{count} Zyklen",
"analystTurnValue": "{count} Züge",
"analystAveragePerCycle": "Durchschnitt pro Zyklus: {value}",
"analystAveragePerTurn": "Durchschnitt pro Zug: {value}",
"analystBattleMeta": "Stufe: {stage} | Kampf: Nr. {battle}",
"analystStatusReady": "Warte auf Kampfdaten aus dem Spiel",
"analystAutoTurnValue": "Automatische Züge: {count}",
"analystDemoLoaded": "✨ Demo-Kampfbericht geladen",
"analystCyclesNote": "MoC / PF / AS Standard",
"analystExportEmpty": "Kein Kampfbericht zum Exportieren vorhanden",
"analystExportSuccess": "{file} erfolgreich exportiert",
"analystImportInvalid": "JSON muss ein GaC Battle Report oder ein Firefly-Sranalysis-Bericht sein",
"analystImportFailed": "Ungültige JSON-Datei: {message}",
"analystDpsShareLabel": "Schadensanteil",
"analystMonsterName": "Monster Nr. {id}",
"analystWaveEntity": "Welle {wave} • Einheit: {entity}",
"analystDamageDealt": "Verursachter Schaden"
},
"ru": {
"analystCycleValue": "Циклов: {count}",
"analystTurnValue": "Ходов: {count}",
"analystAveragePerCycle": "В среднем за цикл: {value}",
"analystAveragePerTurn": "В среднем за ход: {value}",
"analystBattleMeta": "Этап: {stage} | Бой: №{battle}",
"analystStatusReady": "Ожидание боевых данных из игры",
"analystAutoTurnValue": "Автоходы: {count}",
"analystDemoLoaded": "✨ Загружен демонстрационный отчёт о бое",
"analystCyclesNote": "Стандарт MoC / PF / AS",
"analystExportEmpty": "Нет отчёта о бое для экспорта",
"analystExportSuccess": "Отчёт {file} успешно экспортирован",
"analystImportInvalid": "JSON должен быть отчётом GaC Battle Report или Firefly-Sranalysis",
"analystImportFailed": "Некорректный JSON-файл: {message}",
"analystDpsShareLabel": "Доля урона",
"analystMonsterName": "Монстр №{id}",
"analystWaveEntity": "Волна {wave} • Сущность: {entity}",
"analystDamageDealt": "Нанесённый урон"
},
"pt": {
"analystCycleValue": "{count} ciclos",
"analystTurnValue": "{count} turnos",
"analystAveragePerCycle": "Média por ciclo: {value}",
"analystAveragePerTurn": "Média por turno: {value}",
"analystBattleMeta": "Fase: {stage} | Batalha: nº {battle}",
"analystStatusReady": "Aguardando dados de combate do jogo",
"analystAutoTurnValue": "Turnos automáticos: {count}",
"analystDemoLoaded": "✨ Relatório de combate de demonstração carregado",
"analystCyclesNote": "Padrão MoC / PF / AS",
"analystExportEmpty": "Não há relatório de combate para exportar",
"analystExportSuccess": "{file} exportado com sucesso",
"analystImportInvalid": "O JSON precisa ser um relatório GaC Battle Report ou Firefly-Sranalysis",
"analystImportFailed": "Arquivo JSON inválido: {message}",
"analystDpsShareLabel": "Participação no dano",
"analystMonsterName": "Monstro nº {id}",
"analystWaveEntity": "Onda {wave} • Entidade: {entity}",
"analystDamageDealt": "Dano causado"
}
};
const UI_COMPLETION_TRANSLATIONS = {
th: {
appSubtitle: 'ตัวจัดการเซิร์ฟเวอร์และ FreeSR สำหรับ Star Rail', tabDamageAnalyst: '💥 วิเคราะห์ดาเมจ',
equipmentSearchPlaceholder: '🔍 ค้นหา Light Cone, รีลิกส์ หรือ ID...', filter3Star: '3 ดาว', filterAllStatus: 'ทุกสถานะ', filterEquipped: 'สวมใส่อยู่', filterInInventory: 'ในคลัง', filterAllTypes: 'ทุกประเภท', filterAllRelicSlots: 'ทุกชิ้นส่วน',
globalFeatureSilverWolf: 'ฟีเจอร์พิเศษ Silver Wolf ทั่วเซิร์ฟเวอร์', globalFeatureCastorice: 'ฟีเจอร์พิเศษ Castorice ทั่วเซิร์ฟเวอร์', globalFeatureAha: 'ฟีเจอร์พิเศษ Aeon ★ Aha ทั่วเซิร์ฟเวอร์', lightConeSearchPlaceholder: '🔍 ค้นหา Light Cone ตามชื่อหรือ ID...',
superimpositionLabel: 'ระดับการขัดเกลา', superimpositionSelectTitle: 'เลือกระดับการขัดเกลาเมื่อติดตั้ง', superimpositionRank: 'S{rank} (ขัดเกลา {rank})',
relicSlotHead: 'ส่วนหัว (HP)', relicSlotHands: 'ส่วนมือ (ATK)', relicSlotBody: 'ลำตัว', relicSlotFeet: 'รองเท้า', relicSlotSphere: 'ลูกแก้วมิติ', relicSlotRope: 'เชือกเชื่อมต่อ', slotPickerSubtitle: 'เลือกชิ้นที่มีอยู่ หรือสร้างชิ้นใหม่ตามบิลด์แนะนำ',
substatCustomizerTitle: '🔧 ปรับแต่งค่าสถานะรอง:', substatPresetRecommended: '⭐ ค่าสถานะแนะนำ', substatPresetCrit: '🎯 CRIT Rate/DMG', substatPresetSpeed: '⚡ ความเร็ว SPD', substatPresetBreak: '🔨 Break Effect', substatPresetTank: '🛡️ HP/DEF', substatRollCountLabel: '💡 จำนวนครั้งที่ทอยทั้งหมด:', substatRollLimit: '/ 9 ครั้ง (5★ เลเวล 15)', substatResetButton: '↺ รีเซ็ต'
},
en: {
tabDamageAnalyst: '💥 Damage Analyst',
equipmentSearchPlaceholder: '🔍 Search Light Cones, Relics, or item IDs...', filter3Star: '3-Star', filterAllStatus: 'All Statuses', filterEquipped: 'Equipped', filterInInventory: 'In Inventory', filterAllTypes: 'All Types', filterAllRelicSlots: 'All Relic Slots',
globalFeatureSilverWolf: 'Silver Wolf Global Feature', globalFeatureCastorice: 'Castorice Global Feature', globalFeatureAha: 'Aeon ★ Aha Global Feature', lightConeSearchPlaceholder: '🔍 Search Light Cones by name or ID...',
superimpositionLabel: 'Superimposition', superimpositionSelectTitle: 'Choose superimposition when equipping', superimpositionRank: 'S{rank} (Superimposition {rank})',
relicSlotHead: 'Head (HP)', relicSlotHands: 'Hands (ATK)', relicSlotBody: 'Body', relicSlotFeet: 'Feet', relicSlotSphere: 'Planar Sphere', relicSlotRope: 'Link Rope', slotPickerSubtitle: 'Choose an owned piece or create one based on the recommended build',
substatCustomizerTitle: '🔧 Customize Substats:', substatPresetRecommended: '⭐ Recommended Stats', substatPresetCrit: '🎯 CRIT Rate/DMG', substatPresetSpeed: '⚡ Speed SPD', substatPresetBreak: '🔨 Break Effect', substatPresetTank: '🛡️ HP/DEF', substatRollCountLabel: '💡 Total rolls:', substatRollLimit: '/ 9 rolls (5★ Level 15)', substatResetButton: '↺ Reset'
},
'zh-CN': {
equipmentSearchPlaceholder: '🔍 搜索光锥、遗器或物品 ID…', filter3Star: '3 星', filterAllStatus: '全部状态', filterEquipped: '已装备', filterInInventory: '背包中', filterAllTypes: '全部类型', filterAllRelicSlots: '全部部位',
globalFeatureSilverWolf: '银狼全局功能', globalFeatureCastorice: '遐蝶全局功能', globalFeatureAha: '星神 ★ 阿哈全局功能', lightConeSearchPlaceholder: '🔍 按名称或 ID 搜索光锥…',
superimpositionLabel: '叠影等级', superimpositionSelectTitle: '装备时选择叠影等级', superimpositionRank: 'S{rank}(叠影 {rank})',
relicSlotHead: '头部(生命值)', relicSlotHands: '手部(攻击力)', relicSlotBody: '躯干', relicSlotFeet: '脚部', relicSlotSphere: '位面球', relicSlotRope: '连结绳', slotPickerSubtitle: '选择已有遗器,或按推荐配装生成新遗器',
substatCustomizerTitle: '🔧 自定义副词条:', substatPresetRecommended: '⭐ 推荐属性', substatPresetCrit: '🎯 暴击率/暴击伤害', substatPresetSpeed: '⚡ 速度', substatPresetBreak: '🔨 击破特攻', substatPresetTank: '🛡️ 生命值/防御力', substatRollCountLabel: '💡 总强化次数:', substatRollLimit: '/ 9 次(5 星 15 级)', substatResetButton: '↺ 重置'
},
'zh-TW': {
equipmentSearchPlaceholder: '🔍 搜尋光錐、遺器或物品 ID…', filter3Star: '3 星', filterAllStatus: '所有狀態', filterEquipped: '已裝備', filterInInventory: '背包中', filterAllTypes: '所有類型', filterAllRelicSlots: '所有部位',
globalFeatureSilverWolf: '銀狼全域功能', globalFeatureCastorice: '遐蝶全域功能', globalFeatureAha: '星神 ★ 阿哈全域功能', lightConeSearchPlaceholder: '🔍 依名稱或 ID 搜尋光錐…',
superimpositionLabel: '疊影等級', superimpositionSelectTitle: '裝備時選擇疊影等級', superimpositionRank: 'S{rank}(疊影 {rank})',
relicSlotHead: '頭部(生命值)', relicSlotHands: '手部(攻擊力)', relicSlotBody: '軀幹', relicSlotFeet: '腳部', relicSlotSphere: '位面球', relicSlotRope: '連結繩', slotPickerSubtitle: '選擇已有遺器,或依推薦配裝建立新遺器',
substatCustomizerTitle: '🔧 自訂副詞條:', substatPresetRecommended: '⭐ 推薦屬性', substatPresetCrit: '🎯 暴擊率/暴擊傷害', substatPresetSpeed: '⚡ 速度', substatPresetBreak: '🔨 擊破特攻', substatPresetTank: '🛡️ 生命值/防禦力', substatRollCountLabel: '💡 總強化次數:', substatRollLimit: '/ 9 次(5 星 15 級)', substatResetButton: '↺ 重設'
},
ja: {
equipmentSearchPlaceholder: '🔍 光円錐・遺物・アイテムIDを検索…', filter3Star: '星3', filterAllStatus: 'すべての状態', filterEquipped: '装備中', filterInInventory: '所持中', filterAllTypes: 'すべての種類', filterAllRelicSlots: 'すべての部位',
globalFeatureSilverWolf: '銀狼 グローバル機能', globalFeatureCastorice: 'キャストリス グローバル機能', globalFeatureAha: '星神 ★ アッハ グローバル機能', lightConeSearchPlaceholder: '🔍 光円錐を名前またはIDで検索…',
superimpositionLabel: '重畳ランク', superimpositionSelectTitle: '装備時の重畳ランクを選択', superimpositionRank: 'S{rank}(重畳{rank})',
relicSlotHead: '頭部(HP)', relicSlotHands: '手部(攻撃力)', relicSlotBody: '胴体', relicSlotFeet: '脚部', relicSlotSphere: '次元界オーブ', relicSlotRope: '連結縄', slotPickerSubtitle: '所持済みの遺物を選ぶか、おすすめビルドに合わせて新しく作成します',
substatCustomizerTitle: '🔧 サブステータスを調整:', substatPresetRecommended: '⭐ おすすめステータス', substatPresetCrit: '🎯 会心率/会心ダメージ', substatPresetSpeed: '⚡ 速度', substatPresetBreak: '🔨 撃破特効', substatPresetTank: '🛡️ HP/防御力', substatRollCountLabel: '💡 強化回数:', substatRollLimit: '/ 9回(星5・Lv.15)', substatResetButton: '↺ リセット'
},
ko: {
equipmentSearchPlaceholder: '🔍 광추, 유물 또는 아이템 ID 검색…', filter3Star: '3성', filterAllStatus: '전체 상태', filterEquipped: '장착 중', filterInInventory: '보유 중', filterAllTypes: '전체 유형', filterAllRelicSlots: '전체 부위',
globalFeatureSilverWolf: '은랑 글로벌 기능', globalFeatureCastorice: '캐스토리스 글로벌 기능', globalFeatureAha: '에이언즈 ★ 아하 글로벌 기능', lightConeSearchPlaceholder: '🔍 이름 또는 ID로 광추 검색…',
superimpositionLabel: '중첩 단계', superimpositionSelectTitle: '장착할 중첩 단계를 선택하세요', superimpositionRank: 'S{rank} (중첩 {rank})',
relicSlotHead: '머리 (HP)', relicSlotHands: '팔 (공격력)', relicSlotBody: '몸통', relicSlotFeet: '다리', relicSlotSphere: '차원 구체', relicSlotRope: '연결 매듭', slotPickerSubtitle: '보유한 유물을 선택하거나 추천 빌드에 맞춰 새 유물을 만드세요',
substatCustomizerTitle: '🔧 부옵션 설정:', substatPresetRecommended: '⭐ 추천 능력치', substatPresetCrit: '🎯 치명타 확률/피해', substatPresetSpeed: '⚡ 속도', substatPresetBreak: '🔨 격파 특수효과', substatPresetTank: '🛡️ HP/방어력', substatRollCountLabel: '💡 총 강화 횟수:', substatRollLimit: '/ 9회 (5성 Lv.15)', substatResetButton: '↺ 초기화'
},
vi: {
equipmentSearchPlaceholder: '🔍 Tìm nón ánh sáng, di vật hoặc ID vật phẩm…', filter3Star: '3 sao', filterAllStatus: 'Mọi trạng thái', filterEquipped: 'Đang trang bị', filterInInventory: 'Trong túi', filterAllTypes: 'Mọi loại', filterAllRelicSlots: 'Mọi vị trí',
globalFeatureSilverWolf: 'Tính năng toàn máy chủ của Sói Bạc', globalFeatureCastorice: 'Tính năng toàn máy chủ của Castorice', globalFeatureAha: 'Tính năng toàn máy chủ của Aeon ★ Aha', lightConeSearchPlaceholder: '🔍 Tìm nón ánh sáng theo tên hoặc ID…',
superimpositionLabel: 'Bậc tinh luyện', superimpositionSelectTitle: 'Chọn bậc tinh luyện khi trang bị', superimpositionRank: 'S{rank} (Tinh luyện {rank})',
relicSlotHead: 'Đầu (HP)', relicSlotHands: 'Tay (Tấn Công)', relicSlotBody: 'Thân', relicSlotFeet: 'Chân', relicSlotSphere: 'Quả Cầu Vị Diện', relicSlotRope: 'Dây Liên Kết', slotPickerSubtitle: 'Chọn di vật đang có hoặc tạo món mới theo đề xuất xây dựng',
substatCustomizerTitle: '🔧 Tùy chỉnh chỉ số phụ:', substatPresetRecommended: '⭐ Chỉ số đề xuất', substatPresetCrit: '🎯 Tỷ Lệ ST Bạo Kích/ST Bạo Kích', substatPresetSpeed: '⚡ Tốc Độ', substatPresetBreak: '🔨 Tấn Công Kích Phá', substatPresetTank: '🛡️ HP/Phòng Thủ', substatRollCountLabel: '💡 Tổng số lần cường hóa:', substatRollLimit: '/ 9 lần (5★ cấp 15)', substatResetButton: '↺ Đặt lại'
},
id: {
appSubtitle: 'Pengelola server dan FreeSR Star Rail', offline: 'Luring', btnPersistent: '💾 Simpanan persistent', slot: 'Posisi',
analystDmgNormal: '🗡️ Serangan Dasar', analystDmgSkill: '⚡ Skill Tempur', analystDmgUlt: '💥 Serangan Pamungkas', analystDmgFollowup: '🔄 Serangan Lanjutan', analystMonsterName: 'Musuh #{id}',
modalSkillBasic: 'Serangan Dasar', modalSkillSkill: 'Skill Tempur', modalSkillTalent: 'Talenta', traceA2: '🌟 Jejak Bonus A2', traceA4: '🌟 Jejak Bonus A4', traceA6: '🌟 Jejak Bonus A6', btnResetE0: 'Atur Ulang E0', modalEnergy50: 'Atur 50%', modalEnergy100: 'Atur 100%',
equipmentSearchPlaceholder: '🔍 Cari Light Cone, Relik, atau ID item…', filter3Star: '3 Bintang', filterAllStatus: 'Semua Status', filterEquipped: 'Dipakai', filterInInventory: 'Di Inventaris', filterAllTypes: 'Semua Jenis', filterAllRelicSlots: 'Semua Slot Relik',
globalFeatureSilverWolf: 'Fitur Global Silver Wolf', globalFeatureCastorice: 'Fitur Global Castorice', globalFeatureAha: 'Fitur Global Aeon ★ Aha', lightConeSearchPlaceholder: '🔍 Cari Light Cone berdasarkan nama atau ID…',
superimpositionLabel: 'Superimposisi', superimpositionSelectTitle: 'Pilih superimposisi saat dipasang', superimpositionRank: 'S{rank} (Superimposisi {rank})',
relicSlotHead: 'Kepala (HP)', relicSlotHands: 'Tangan (ATK)', relicSlotBody: 'Badan', relicSlotFeet: 'Kaki', relicSlotSphere: 'Bola Planar', relicSlotRope: 'Tali Penghubung', slotPickerSubtitle: 'Pilih relik yang dimiliki atau buat relik baru sesuai rekomendasi build',
substatCustomizerTitle: '🔧 Atur Substat:', substatPresetRecommended: '⭐ Stat Rekomendasi', substatPresetCrit: '🎯 CRIT Rate/DMG', substatPresetSpeed: '⚡ SPD', substatPresetBreak: '🔨 Break Effect', substatPresetTank: '🛡️ HP/DEF', substatRollCountLabel: '💡 Total roll:', substatRollLimit: '/ 9 roll (5★ Level 15)', substatResetButton: '↺ Atur Ulang'
},
es: {
equipmentSearchPlaceholder: '🔍 Buscar conos de luz, artefactos o ID de objeto…', filter3Star: '3 estrellas', filterAllStatus: 'Todos los estados', filterEquipped: 'Equipado', filterInInventory: 'En el inventario', filterAllTypes: 'Todos los tipos', filterAllRelicSlots: 'Todas las posiciones',
globalFeatureSilverWolf: 'Función global de Silver Wolf', globalFeatureCastorice: 'Función global de Castorice', globalFeatureAha: 'Función global de Aeon ★ Aha', lightConeSearchPlaceholder: '🔍 Buscar conos de luz por nombre o ID…',
superimpositionLabel: 'Superposición', superimpositionSelectTitle: 'Elige la superposición al equipar', superimpositionRank: 'S{rank} (Superposición {rank})',
relicSlotHead: 'Cabeza (PV)', relicSlotHands: 'Manos (ATQ)', relicSlotBody: 'Torso', relicSlotFeet: 'Pies', relicSlotSphere: 'Esfera planar', relicSlotRope: 'Cuerda de unión', slotPickerSubtitle: 'Elige una reliquia que tengas o crea una según la build recomendada',
substatCustomizerTitle: '🔧 Personalizar subatributos:', substatPresetRecommended: '⭐ Atributos recomendados', substatPresetCrit: '🎯 Prob. CRIT/Daño CRIT', substatPresetSpeed: '⚡ Velocidad', substatPresetBreak: '🔨 Efecto de Ruptura', substatPresetTank: '🛡️ PV/DEF', substatRollCountLabel: '💡 Mejoras totales:', substatRollLimit: '/ 9 mejoras (5★ Nivel 15)', substatResetButton: '↺ Restablecer'
},
fr: {
equipmentSearchPlaceholder: '🔍 Rechercher des cônes de lumière, reliques ou ID…', filter3Star: '3 étoiles', filterAllStatus: 'Tous les états', filterEquipped: 'Équipé', filterInInventory: 'Dans l’inventaire', filterAllTypes: 'Tous les types', filterAllRelicSlots: 'Tous les emplacements',
globalFeatureSilverWolf: 'Fonction globale de Silver Wolf', globalFeatureCastorice: 'Fonction globale de Castorice', globalFeatureAha: 'Fonction globale de l’Éon ★ Aha', lightConeSearchPlaceholder: '🔍 Rechercher un cône de lumière par nom ou ID…',
superimpositionLabel: 'Superposition', superimpositionSelectTitle: 'Choisir la superposition à équiper', superimpositionRank: 'S{rank} (Superposition {rank})',
relicSlotHead: 'Tête (PV)', relicSlotHands: 'Mains (ATQ)', relicSlotBody: 'Torse', relicSlotFeet: 'Pieds', relicSlotSphere: 'Orbe planaire', relicSlotRope: 'Corde de liaison', slotPickerSubtitle: 'Choisissez une relique possédée ou créez-en une selon le build recommandé',
substatCustomizerTitle: '🔧 Personnaliser les sous-stats :', substatPresetRecommended: '⭐ Stats recommandées', substatPresetCrit: '🎯 Taux CRIT/DGT CRIT', substatPresetSpeed: '⚡ Vitesse', substatPresetBreak: '🔨 Effet de Rupture', substatPresetTank: '🛡️ PV/DÉF', substatRollCountLabel: '💡 Renforcements totaux :', substatRollLimit: '/ 9 renforcements (5★ niv. 15)', substatResetButton: '↺ Réinitialiser'
},
de: {
equipmentSearchPlaceholder: '🔍 Lichtkegel, Relikte oder Item-ID suchen …', filter3Star: '3 Sterne', filterAllStatus: 'Alle Status', filterEquipped: 'Ausgerüstet', filterInInventory: 'Im Inventar', filterAllTypes: 'Alle Typen', filterAllRelicSlots: 'Alle Reliktplätze',
globalFeatureSilverWolf: 'Silver-Wolf-Globalfunktion', globalFeatureCastorice: 'Castorice-Globalfunktion', globalFeatureAha: 'Äonen-Globalfunktion ★ Aha', lightConeSearchPlaceholder: '🔍 Lichtkegel nach Name oder ID suchen …',
superimpositionLabel: 'Überlagerung', superimpositionSelectTitle: 'Überlagerung beim Ausrüsten wählen', superimpositionRank: 'S{rank} (Überlagerung {rank})',
relicSlotHead: 'Kopf (LP)', relicSlotHands: 'Hände (ANG)', relicSlotBody: 'Körper', relicSlotFeet: 'Füße', relicSlotSphere: 'Planare Sphäre', relicSlotRope: 'Verbindungsschnur', slotPickerSubtitle: 'Wähle ein vorhandenes Relikt oder erstelle eines nach dem empfohlenen Build',
substatCustomizerTitle: '🔧 Nebenwerte anpassen:', substatPresetRecommended: '⭐ Empfohlene Werte', substatPresetCrit: '🎯 KRIT-Rate/Schaden', substatPresetSpeed: '⚡ Geschwindigkeit', substatPresetBreak: '🔨 Bruch-Effekt', substatPresetTank: '🛡️ LP/VER', substatRollCountLabel: '💡 Verstärkungen gesamt:', substatRollLimit: '/ 9 Verstärkungen (5★ Stufe 15)', substatResetButton: '↺ Zurücksetzen'
},
ru: {
equipmentSearchPlaceholder: '🔍 Поиск световых конусов, реликвий или ID предмета…', filter3Star: '3 звезды', filterAllStatus: 'Все статусы', filterEquipped: 'Экипировано', filterInInventory: 'В инвентаре', filterAllTypes: 'Все типы', filterAllRelicSlots: 'Все слоты реликвий',
globalFeatureSilverWolf: 'Глобальная функция Серебряного Волка', globalFeatureCastorice: 'Глобальная функция Кастории', globalFeatureAha: 'Глобальная функция эона ★ Ахи', lightConeSearchPlaceholder: '🔍 Поиск светового конуса по названию или ID…',
superimpositionLabel: 'Наложение', superimpositionSelectTitle: 'Выберите наложение при экипировке', superimpositionRank: 'S{rank} (наложение {rank})',
relicSlotHead: 'Голова (HP)', relicSlotHands: 'Руки (ATK)', relicSlotBody: 'Тело', relicSlotFeet: 'Ноги', relicSlotSphere: 'Планарная сфера', relicSlotRope: 'Соединительная верёвка', slotPickerSubtitle: 'Выберите имеющуюся реликвию или создайте новую по рекомендуемой сборке',
substatCustomizerTitle: '🔧 Настройка дополнительных характеристик:', substatPresetRecommended: '⭐ Рекомендуемые характеристики', substatPresetCrit: '🎯 Шанс/урон крит. попадания', substatPresetSpeed: '⚡ Скорость', substatPresetBreak: '🔨 Эффект пробития', substatPresetTank: '🛡️ HP/Защита', substatRollCountLabel: '💡 Всего усилений:', substatRollLimit: '/ 9 усилений (5★, ур. 15)', substatResetButton: '↺ Сбросить'
},
pt: {
equipmentSearchPlaceholder: '🔍 Buscar cones de luz, relíquias ou ID do item…', filter3Star: '3 estrelas', filterAllStatus: 'Todos os status', filterEquipped: 'Equipado', filterInInventory: 'No inventário', filterAllTypes: 'Todos os tipos', filterAllRelicSlots: 'Todos os espaços',
globalFeatureSilverWolf: 'Recurso global da Loba Prateada', globalFeatureCastorice: 'Recurso global de Castorice', globalFeatureAha: 'Recurso global do Aeon ★ Aha', lightConeSearchPlaceholder: '🔍 Buscar cone de luz por nome ou ID…',
superimpositionLabel: 'Sobreposição', superimpositionSelectTitle: 'Escolha a sobreposição ao equipar', superimpositionRank: 'S{rank} (Sobreposição {rank})',
relicSlotHead: 'Cabeça (PV)', relicSlotHands: 'Mãos (ATQ)', relicSlotBody: 'Corpo', relicSlotFeet: 'Pés', relicSlotSphere: 'Orbe planar', relicSlotRope: 'Corda de ligação', slotPickerSubtitle: 'Escolha uma relíquia que possui ou crie uma de acordo com a build recomendada',
substatCustomizerTitle: '🔧 Personalizar subatributos:', substatPresetRecommended: '⭐ Atributos recomendados', substatPresetCrit: '🎯 Taxa CRIT/Dano CRIT', substatPresetSpeed: '⚡ Velocidade', substatPresetBreak: '🔨 Efeito de Quebra', substatPresetTank: '🛡️ PV/DEF', substatRollCountLabel: '💡 Aprimoramentos totais:', substatRollLimit: '/ 9 aprimoramentos (5★ Nv. 15)', substatResetButton: '↺ Redefinir'
}
};
const GLOBAL_UI_LABEL_TRANSLATIONS = {
th: {
apiSettingsTooltip: 'คลิกเพื่อตั้งค่าการเชื่อมต่อ API', languageSelectorTitle: 'เลือกภาษา', branchTooltip: 'สาขา Git ที่ใช้งาน', apiLive: 'API ทำงานอยู่',
persistentDescription: 'เซิร์ฟเวอร์ GaC จัดเก็บทีมใน persistent.json (รองรับโหมดสร้างสรรค์) • FireflyGo จัดเก็บใน freesr-data.json', languageChanged: 'เปลี่ยนภาษาเป็น {language} แล้ว'
},
en: {
apiSettingsTooltip: 'Click to configure the API connection', languageSelectorTitle: 'Choose language', branchTooltip: 'Active Git branch', apiLive: 'API Live',
persistentDescription: 'GaC stores the lineup in persistent.json (including Creative Mode) • FireflyGo stores it in freesr-data.json', languageChanged: 'Language changed to {language}'
},
'zh-CN': {
apiSettingsTooltip: '点击设置 API 连接', languageSelectorTitle: '选择语言', branchTooltip: '当前 Git 分支', apiLive: 'API 运行中',
persistentDescription: 'GaC 将队伍保存在 persistent.json(支持创意模式)• FireflyGo 将数据保存在 freesr-data.json', languageChanged: '语言已切换为{language}'
},
'zh-TW': {
apiSettingsTooltip: '點擊設定 API 連線', languageSelectorTitle: '選擇語言', branchTooltip: '目前 Git 分支', apiLive: 'API 運作中',
persistentDescription: 'GaC 將隊伍儲存在 persistent.json(支援創意模式)• FireflyGo 將資料儲存在 freesr-data.json', languageChanged: '語言已切換為{language}'
},
ja: {
apiSettingsTooltip: 'クリックして API 接続を設定', languageSelectorTitle: '言語を選択', branchTooltip: '現在の Git ブランチ', apiLive: 'API 稼働中',
persistentDescription: 'GaC はチームを persistent.json に保存します(クリエイティブモード対応)• FireflyGo は freesr-data.json に保存します', languageChanged: '言語を{language}に変更しました'
},
ko: {
apiSettingsTooltip: '클릭하여 API 연결 설정', languageSelectorTitle: '언어 선택', branchTooltip: '현재 Git 브랜치', apiLive: 'API 실행 중',
persistentDescription: 'GaC는 파티를 persistent.json에 저장합니다(크리에이티브 모드 지원) • FireflyGo는 freesr-data.json에 저장합니다', languageChanged: '언어를 {language}(으)로 변경했습니다'
},
vi: {
apiSettingsTooltip: 'Nhấn để cấu hình kết nối API', languageSelectorTitle: 'Chọn ngôn ngữ', branchTooltip: 'Nhánh Git hiện tại', apiLive: 'API đang hoạt động',
persistentDescription: 'GaC lưu đội hình trong persistent.json (hỗ trợ Chế độ Sáng tạo) • FireflyGo lưu dữ liệu trong freesr-data.json', languageChanged: 'Đã chuyển ngôn ngữ sang {language}'
},
id: {
apiSettingsTooltip: 'Klik untuk mengatur koneksi API', languageSelectorTitle: 'Pilih bahasa', branchTooltip: 'Branch Git aktif', apiLive: 'API aktif',
persistentDescription: 'GaC menyimpan susunan tim di persistent.json (mendukung Mode Kreatif) • FireflyGo menyimpan data di freesr-data.json', languageChanged: 'Bahasa diubah ke {language}'
},
es: {
apiSettingsTooltip: 'Haz clic para configurar la conexión API', languageSelectorTitle: 'Elegir idioma', branchTooltip: 'Rama Git activa', apiLive: 'API activa',
persistentDescription: 'GaC guarda el equipo en persistent.json (incluido el modo creativo) • FireflyGo guarda los datos en freesr-data.json', languageChanged: 'Idioma cambiado a {language}'
},
fr: {
apiSettingsTooltip: 'Cliquez pour configurer la connexion API', languageSelectorTitle: 'Choisir la langue', branchTooltip: 'Branche Git active', apiLive: 'API active',
persistentDescription: 'GaC enregistre l’équipe dans persistent.json (mode créatif inclus) • FireflyGo enregistre les données dans freesr-data.json', languageChanged: 'Langue changée : {language}'
},
de: {
apiSettingsTooltip: 'Klicken, um die API-Verbindung einzurichten', languageSelectorTitle: 'Sprache auswählen', branchTooltip: 'Aktiver Git-Branch', apiLive: 'API aktiv',
persistentDescription: 'GaC speichert das Team in persistent.json (mit Kreativmodus) • FireflyGo speichert die Daten in freesr-data.json', languageChanged: 'Sprache auf {language} umgestellt'
},
ru: {
apiSettingsTooltip: 'Нажмите, чтобы настроить подключение к API', languageSelectorTitle: 'Выбрать язык', branchTooltip: 'Текущая ветка Git', apiLive: 'API работает',
persistentDescription: 'GaC сохраняет отряд в persistent.json (включая творческий режим) • FireflyGo сохраняет данные в freesr-data.json', languageChanged: 'Язык изменён: {language}'
},
pt: {
apiSettingsTooltip: 'Clique para configurar a conexão com a API', languageSelectorTitle: 'Escolher idioma', branchTooltip: 'Branch Git ativa', apiLive: 'API ativa',
persistentDescription: 'GaC salva a equipe em persistent.json (incluindo o Modo Criativo) • FireflyGo salva os dados em freesr-data.json', languageChanged: 'Idioma alterado para {language}'
}
};
const INTERACTION_FEEDBACK_TRANSLATIONS = {
th: {
toastRelicUnequippedSlot: 'ถอดรีลิกส์ {slot} แล้ว', toastRelicUnequipped: 'ถอดรีลิกส์เรียบร้อยแล้ว', toastRelicEquipped: 'สวมใส่ {name} สำเร็จ!', toastSubstatsSaved: 'บันทึกค่าสถานะรองของ {name} แล้ว',
toastLightConeEquipped: 'สวมใส่ {lightcone} ให้ {character} แล้ว', toastLightConeUnequipped: 'ถอด Light Cone ออกจาก {character} แล้ว', toastAllCharactersE0S1: 'ตั้งตัวละครทุกตัวเป็น E0S1 พร้อม Light Cone ประจำตัวแล้ว', toastLocalRankUpdated: 'ตั้ง {name} เป็น E{rank} (บันทึกในเครื่อง)',
toastErrorMessage: 'เกิดข้อผิดพลาด: {message}', toastClipboardCopyFailed: 'คัดลอกไปยังคลิปบอร์ดไม่สำเร็จ', toastCardExporting: 'กำลังสร้างการ์ดบิลด์ PNG...', toastCardDownloaded: 'ดาวน์โหลดการ์ดบิลด์ PNG แล้ว', toastPopupRequired: 'อนุญาตป๊อปอัปเพื่อพิมพ์หรือบันทึกรูปภาพ',
toastTeamE0S1: 'ตั้งตัวละครทุกตัวในทีมเป็น E0S1 แล้ว', toastTeamRecommendedRelics: 'ติดตั้งรีลิกส์และเครื่องประดับแนะนำให้ทั้งทีมแล้ว', toastInventoryLightConeUpdated: 'อัปเดตผู้สวมใส่ {lightcone} แล้ว', confirmDeleteLightCone: 'ยืนยันการลบ {name} ออกจากคลัง FreeSR หรือไม่?', confirmDeleteRelic: 'ยืนยันการลบ {name} ออกจากคลัง FreeSR หรือไม่?',
toastDataSavedServer: 'บันทึก {file} ลงเซิร์ฟเวอร์และแคชแล้ว', toastDataCacheOnlyFailure: 'บันทึก {file} ลงแคชแล้ว แต่ส่งไปยังเซิร์ฟเวอร์ไม่สำเร็จ: {error}', toastDataSavedOffline: 'บันทึก {file} ลงแคชแล้ว (โหมดออฟไลน์)', toastNoEquippedRelics: 'ไม่มีรีลิกส์ที่สวมใส่อยู่',
toastLightConeChanged: 'เปลี่ยน Light Cone เป็น {name} แล้ว', toastCharacterSettingsSaved: 'บันทึกการตั้งค่าตัวละครแล้ว', toastJsonFormatted: 'จัดรูปแบบ JSON แล้ว', toastFileDownloaded: 'ดาวน์โหลด {file} แล้ว', toastEndpointSelected: 'เลือก Endpoint: {url}', toastDefaultEnergySet: 'ตั้งค่าพลังงานเริ่มต้นเป็น {energy}%', toastGlobalSwitchSaved: 'บันทึกสวิตช์ Global เรียบร้อยแล้ว', toastCreativeModeToggled: '{title}: {status}'
},
en: {
toastRelicUnequippedSlot: 'Unequipped the {slot} relic', toastRelicUnequipped: 'Relic unequipped', toastRelicEquipped: 'Equipped {name}!', toastSubstatsSaved: 'Saved substat changes for {name}',
toastLightConeEquipped: 'Equipped {lightcone} on {character}', toastLightConeUnequipped: 'Unequipped the Light Cone from {character}', toastAllCharactersE0S1: 'Set all characters to E0S1 with their signature Light Cones', toastLocalRankUpdated: 'Set {name} to E{rank} (saved locally)',
toastErrorMessage: 'Error: {message}', toastClipboardCopyFailed: 'Could not copy to clipboard', toastCardExporting: 'Creating the PNG build card...', toastCardDownloaded: 'PNG build card downloaded', toastPopupRequired: 'Allow pop-ups to print or save the image',
toastTeamE0S1: 'Set the whole team to E0S1', toastTeamRecommendedRelics: 'Equipped recommended Relics and Planar Ornaments for the team', toastInventoryLightConeUpdated: 'Updated the wearer of {lightcone}', confirmDeleteLightCone: 'Delete {name} from the FreeSR inventory?', confirmDeleteRelic: 'Delete {name} from the FreeSR inventory?',
toastDataSavedServer: 'Saved {file} to the server and cache', toastDataCacheOnlyFailure: 'Saved {file} to cache, but the server save failed: {error}', toastDataSavedOffline: 'Saved {file} to cache (offline mode)', toastNoEquippedRelics: 'No Relics are currently equipped',
toastLightConeChanged: 'Light Cone changed to {name}', toastCharacterSettingsSaved: 'Character settings saved', toastJsonFormatted: 'JSON formatted', toastFileDownloaded: 'Downloaded {file}', toastEndpointSelected: 'Endpoint selected: {url}', toastDefaultEnergySet: 'Default Energy set to {energy}%', toastGlobalSwitchSaved: 'Global toggles saved', toastCreativeModeToggled: '{title}: {status}'
},
'zh-CN': {
toastRelicUnequippedSlot: '已卸下{slot}位遗器', toastRelicUnequipped: '已卸下遗器', toastRelicEquipped: '已装备{name}!', toastSubstatsSaved: '已保存{name}的副词条修改', toastLightConeEquipped: '已为{character}装备{lightcone}', toastLightConeUnequipped: '已卸下{character}的光锥', toastAllCharactersE0S1: '已将所有角色设为 E0S1 并装备专属光锥', toastLocalRankUpdated: '已将{name}设为 E{rank}(仅保存在本机)',
toastErrorMessage: '发生错误:{message}', toastClipboardCopyFailed: '复制到剪贴板失败', toastCardExporting: '正在生成 PNG 配装卡片…', toastCardDownloaded: '已下载 PNG 配装卡片', toastPopupRequired: '请允许弹出窗口以打印或保存图片', toastTeamE0S1: '已将队伍中的角色设为 E0S1', toastTeamRecommendedRelics: '已为全队装备推荐遗器和位面饰品', toastInventoryLightConeUpdated: '已更新{lightcone}的装备角色', confirmDeleteLightCone: '确定要从 FreeSR 背包删除{name}吗?', confirmDeleteRelic: '确定要从 FreeSR 背包删除{name}吗?',
toastDataSavedServer: '已将{file}保存到服务器和缓存', toastDataCacheOnlyFailure: '已将{file}保存到缓存,但保存到服务器失败:{error}', toastDataSavedOffline: '已将{file}保存到缓存(离线模式)', toastNoEquippedRelics: '当前没有已装备的遗器', toastLightConeChanged: '光锥已更换为{name}', toastCharacterSettingsSaved: '已保存角色设置', toastJsonFormatted: '已格式化 JSON', toastFileDownloaded: '已下载{file}', toastEndpointSelected: '已选择端点:{url}', toastDefaultEnergySet: '默认能量已设为 {energy}%', toastGlobalSwitchSaved: '已保存全局开关', toastCreativeModeToggled: '{title}:{status}'
},
'zh-TW': {
toastRelicUnequippedSlot: '已卸下{slot}部位遺器', toastRelicUnequipped: '已卸下遺器', toastRelicEquipped: '已裝備{name}!', toastSubstatsSaved: '已儲存{name}的副詞條修改', toastLightConeEquipped: '已為{character}裝備{lightcone}', toastLightConeUnequipped: '已卸下{character}的光錐', toastAllCharactersE0S1: '已將所有角色設為 E0S1 並裝備專屬光錐', toastLocalRankUpdated: '已將{name}設為 E{rank}(僅儲存在本機)',
toastErrorMessage: '發生錯誤:{message}', toastClipboardCopyFailed: '複製到剪貼簿失敗', toastCardExporting: '正在建立 PNG 配裝卡片…', toastCardDownloaded: '已下載 PNG 配裝卡片', toastPopupRequired: '請允許彈出視窗以列印或儲存圖片', toastTeamE0S1: '已將隊伍中的角色設為 E0S1', toastTeamRecommendedRelics: '已為全隊裝備推薦遺器和位面飾品', toastInventoryLightConeUpdated: '已更新{lightcone}的裝備角色', confirmDeleteLightCone: '確定要從 FreeSR 背包刪除{name}嗎?', confirmDeleteRelic: '確定要從 FreeSR 背包刪除{name}嗎?',
toastDataSavedServer: '已將{file}儲存至伺服器和快取', toastDataCacheOnlyFailure: '已將{file}儲存至快取,但儲存至伺服器失敗:{error}', toastDataSavedOffline: '已將{file}儲存至快取(離線模式)', toastNoEquippedRelics: '目前沒有已裝備的遺器', toastLightConeChanged: '光錐已更換為{name}', toastCharacterSettingsSaved: '已儲存角色設定', toastJsonFormatted: '已格式化 JSON', toastFileDownloaded: '已下載{file}', toastEndpointSelected: '已選擇端點:{url}', toastDefaultEnergySet: '預設能量已設為 {energy}%', toastGlobalSwitchSaved: '已儲存全域開關', toastCreativeModeToggled: '{title}:{status}'
},
ja: {
toastRelicUnequippedSlot: '{slot}の遺物を外しました', toastRelicUnequipped: '遺物を外しました', toastRelicEquipped: '{name}を装備しました!', toastSubstatsSaved: '{name}のサブステータスを保存しました', toastLightConeEquipped: '{character}に{lightcone}を装備しました', toastLightConeUnequipped: '{character}の光円錐を外しました', toastAllCharactersE0S1: '全キャラクターをE0S1にし、モチーフ光円錐を装備しました', toastLocalRankUpdated: '{name}をE{rank}に設定しました(ローカル保存)',
toastErrorMessage: 'エラー:{message}', toastClipboardCopyFailed: 'クリップボードにコピーできませんでした', toastCardExporting: 'PNGビルドカードを作成中…', toastCardDownloaded: 'PNGビルドカードをダウンロードしました', toastPopupRequired: '画像の印刷または保存にはポップアップを許可してください', toastTeamE0S1: 'チーム全員をE0S1に設定しました', toastTeamRecommendedRelics: 'チーム全員におすすめの遺物と次元界オーナメントを装備しました', toastInventoryLightConeUpdated: '{lightcone}の装備キャラクターを更新しました', confirmDeleteLightCone: 'FreeSRの所持品から{name}を削除しますか?', confirmDeleteRelic: 'FreeSRの所持品から{name}を削除しますか?',
toastDataSavedServer: '{file}をサーバーとキャッシュに保存しました', toastDataCacheOnlyFailure: '{file}をキャッシュに保存しましたが、サーバーへの保存に失敗しました:{error}', toastDataSavedOffline: '{file}をキャッシュに保存しました(オフライン)', toastNoEquippedRelics: '装備中の遺物はありません', toastLightConeChanged: '光円錐を{name}に変更しました', toastCharacterSettingsSaved: 'キャラクター設定を保存しました', toastJsonFormatted: 'JSONを整形しました', toastFileDownloaded: '{file}をダウンロードしました', toastEndpointSelected: 'エンドポイントを選択:{url}', toastDefaultEnergySet: '初期EPを{energy}%に設定しました', toastGlobalSwitchSaved: 'グローバル設定を保存しました', toastCreativeModeToggled: '{title}:{status}'
},
ko: {
toastRelicUnequippedSlot: '{slot} 유물을 해제했습니다', toastRelicUnequipped: '유물을 해제했습니다', toastRelicEquipped: '{name} 장착 완료!', toastSubstatsSaved: '{name}의 부옵션 변경을 저장했습니다', toastLightConeEquipped: '{character}에게 {lightcone} 장착 완료', toastLightConeUnequipped: '{character}의 광추를 해제했습니다', toastAllCharactersE0S1: '모든 캐릭터를 E0S1로 설정하고 전용 광추를 장착했습니다', toastLocalRankUpdated: '{name}을(를) E{rank}(으)로 설정했습니다(로컬 저장)',
toastErrorMessage: '오류: {message}', toastClipboardCopyFailed: '클립보드에 복사하지 못했습니다', toastCardExporting: 'PNG 빌드 카드를 만드는 중…', toastCardDownloaded: 'PNG 빌드 카드를 다운로드했습니다', toastPopupRequired: '이미지를 인쇄하거나 저장하려면 팝업을 허용하세요', toastTeamE0S1: '팀 전체를 E0S1로 설정했습니다', toastTeamRecommendedRelics: '팀 전체에 추천 유물과 차원 장신구를 장착했습니다', toastInventoryLightConeUpdated: '{lightcone}의 장착 캐릭터를 업데이트했습니다', confirmDeleteLightCone: 'FreeSR 보관함에서 {name}을(를) 삭제할까요?', confirmDeleteRelic: 'FreeSR 보관함에서 {name}을(를) 삭제할까요?',
toastDataSavedServer: '{file}을(를) 서버와 캐시에 저장했습니다', toastDataCacheOnlyFailure: '{file}을(를) 캐시에 저장했지만 서버 저장에 실패했습니다: {error}', toastDataSavedOffline: '{file}을(를) 캐시에 저장했습니다(오프라인 모드)', toastNoEquippedRelics: '장착된 유물이 없습니다', toastLightConeChanged: '광추를 {name}(으)로 변경했습니다', toastCharacterSettingsSaved: '캐릭터 설정을 저장했습니다', toastJsonFormatted: 'JSON 형식을 정리했습니다', toastFileDownloaded: '{file}을(를) 다운로드했습니다', toastEndpointSelected: '엔드포인트 선택: {url}', toastDefaultEnergySet: '기본 에너지를 {energy}%로 설정했습니다', toastGlobalSwitchSaved: '글로벌 스위치를 저장했습니다', toastCreativeModeToggled: '{title}: {status}'
},
vi: {
toastRelicUnequippedSlot: 'Đã tháo di vật ở vị trí {slot}', toastRelicUnequipped: 'Đã tháo di vật', toastRelicEquipped: 'Đã trang bị {name}!', toastSubstatsSaved: 'Đã lưu chỉ số phụ của {name}', toastLightConeEquipped: 'Đã trang bị {lightcone} cho {character}', toastLightConeUnequipped: 'Đã tháo nón ánh sáng của {character}', toastAllCharactersE0S1: 'Đã đặt mọi nhân vật thành E0S1 và trang bị nón ánh sáng đặc trưng', toastLocalRankUpdated: 'Đã đặt {name} thành E{rank} (lưu trên máy)',
toastErrorMessage: 'Lỗi: {message}', toastClipboardCopyFailed: 'Không thể sao chép vào bộ nhớ tạm', toastCardExporting: 'Đang tạo thẻ build PNG…', toastCardDownloaded: 'Đã tải thẻ build PNG', toastPopupRequired: 'Hãy cho phép cửa sổ bật lên để in hoặc lưu ảnh', toastTeamE0S1: 'Đã đặt cả đội thành E0S1', toastTeamRecommendedRelics: 'Đã trang bị di vật và phụ kiện vị diện đề xuất cho cả đội', toastInventoryLightConeUpdated: 'Đã cập nhật nhân vật trang bị {lightcone}', confirmDeleteLightCone: 'Xóa {name} khỏi kho FreeSR?', confirmDeleteRelic: 'Xóa {name} khỏi kho FreeSR?',
toastDataSavedServer: 'Đã lưu {file} lên máy chủ và bộ nhớ đệm', toastDataCacheOnlyFailure: 'Đã lưu {file} vào bộ nhớ đệm nhưng không lưu được lên máy chủ: {error}', toastDataSavedOffline: 'Đã lưu {file} vào bộ nhớ đệm (ngoại tuyến)', toastNoEquippedRelics: 'Hiện không có di vật nào được trang bị', toastLightConeChanged: 'Đã đổi nón ánh sáng thành {name}', toastCharacterSettingsSaved: 'Đã lưu cài đặt nhân vật', toastJsonFormatted: 'Đã định dạng JSON', toastFileDownloaded: 'Đã tải {file}', toastEndpointSelected: 'Đã chọn Endpoint: {url}', toastDefaultEnergySet: 'Đã đặt năng lượng mặc định thành {energy}%', toastGlobalSwitchSaved: 'Đã lưu công tắc toàn máy chủ', toastCreativeModeToggled: '{title}: {status}'
},
id: {
toastRelicUnequippedSlot: 'Relik slot {slot} dilepas', toastRelicUnequipped: 'Relik dilepas', toastRelicEquipped: '{name} dipasang!', toastSubstatsSaved: 'Perubahan substat {name} disimpan', toastLightConeEquipped: '{lightcone} dipasang pada {character}', toastLightConeUnequipped: 'Light Cone {character} dilepas', toastAllCharactersE0S1: 'Semua karakter diatur ke E0S1 dengan Light Cone khasnya', toastLocalRankUpdated: '{name} diatur ke E{rank} (disimpan lokal)',
toastErrorMessage: 'Terjadi kesalahan: {message}', toastClipboardCopyFailed: 'Gagal menyalin ke clipboard', toastCardExporting: 'Membuat kartu build PNG…', toastCardDownloaded: 'Kartu build PNG diunduh', toastPopupRequired: 'Izinkan pop-up untuk mencetak atau menyimpan gambar', toastTeamE0S1: 'Seluruh tim diatur ke E0S1', toastTeamRecommendedRelics: 'Relik dan Ornamen Planar rekomendasi dipasang untuk seluruh tim', toastInventoryLightConeUpdated: 'Pemakai {lightcone} diperbarui', confirmDeleteLightCone: 'Hapus {name} dari inventaris FreeSR?', confirmDeleteRelic: 'Hapus {name} dari inventaris FreeSR?',
toastDataSavedServer: '{file} disimpan ke server dan cache', toastDataCacheOnlyFailure: '{file} disimpan ke cache, tetapi gagal disimpan ke server: {error}', toastDataSavedOffline: '{file} disimpan ke cache (mode luring)', toastNoEquippedRelics: 'Tidak ada relik yang sedang dipakai', toastLightConeChanged: 'Light Cone diubah menjadi {name}', toastCharacterSettingsSaved: 'Pengaturan karakter disimpan', toastJsonFormatted: 'JSON dirapikan', toastFileDownloaded: '{file} diunduh', toastEndpointSelected: 'Endpoint dipilih: {url}', toastDefaultEnergySet: 'Energi awal diatur ke {energy}%', toastGlobalSwitchSaved: 'Sakelar global disimpan', toastCreativeModeToggled: '{title}: {status}'
},
es: {
toastRelicUnequippedSlot: 'Se quitó la reliquia de {slot}', toastRelicUnequipped: 'Se quitó la reliquia', toastRelicEquipped: '¡Se equipó {name}!', toastSubstatsSaved: 'Se guardaron los subatributos de {name}', toastLightConeEquipped: 'Se equipó {lightcone} en {character}', toastLightConeUnequipped: 'Se quitó el cono de luz de {character}', toastAllCharactersE0S1: 'Todos los personajes están en E0S1 con su cono de luz característico', toastLocalRankUpdated: '{name} se estableció en E{rank} (guardado localmente)',
toastErrorMessage: 'Error: {message}', toastClipboardCopyFailed: 'No se pudo copiar al portapapeles', toastCardExporting: 'Creando la tarjeta de build PNG…', toastCardDownloaded: 'Tarjeta de build PNG descargada', toastPopupRequired: 'Permite las ventanas emergentes para imprimir o guardar la imagen', toastTeamE0S1: 'Todo el equipo se estableció en E0S1', toastTeamRecommendedRelics: 'Se equiparon reliquias y ornamentos planares recomendados al equipo', toastInventoryLightConeUpdated: 'Se actualizó el personaje que lleva {lightcone}', confirmDeleteLightCone: '¿Eliminar {name} del inventario de FreeSR?', confirmDeleteRelic: '¿Eliminar {name} del inventario de FreeSR?',
toastDataSavedServer: '{file} se guardó en el servidor y la caché', toastDataCacheOnlyFailure: '{file} se guardó en la caché, pero falló el guardado en el servidor: {error}', toastDataSavedOffline: '{file} se guardó en la caché (modo sin conexión)', toastNoEquippedRelics: 'No hay reliquias equipadas', toastLightConeChanged: 'El cono de luz cambió a {name}', toastCharacterSettingsSaved: 'Se guardó la configuración del personaje', toastJsonFormatted: 'JSON formateado', toastFileDownloaded: 'Se descargó {file}', toastEndpointSelected: 'Endpoint seleccionado: {url}', toastDefaultEnergySet: 'Energía inicial establecida en {energy}%', toastGlobalSwitchSaved: 'Se guardaron los interruptores globales', toastCreativeModeToggled: '{title}: {status}'
},
fr: {
toastRelicUnequippedSlot: 'Relique retirée de l’emplacement {slot}', toastRelicUnequipped: 'Relique retirée', toastRelicEquipped: '{name} équipé !', toastSubstatsSaved: 'Sous-stats de {name} enregistrées', toastLightConeEquipped: '{lightcone} équipé sur {character}', toastLightConeUnequipped: 'Cône de lumière retiré de {character}', toastAllCharactersE0S1: 'Tous les personnages sont passés en E0S1 avec leur cône signature', toastLocalRankUpdated: '{name} est passé en E{rank} (enregistré localement)',
toastErrorMessage: 'Erreur : {message}', toastClipboardCopyFailed: 'Impossible de copier dans le presse-papiers', toastCardExporting: 'Création de la carte de build PNG…', toastCardDownloaded: 'Carte de build PNG téléchargée', toastPopupRequired: 'Autorisez les fenêtres pop-up pour imprimer ou enregistrer l’image', toastTeamE0S1: 'Toute l’équipe est passée en E0S1', toastTeamRecommendedRelics: 'Reliques et ornements planaires recommandés équipés pour toute l’équipe', toastInventoryLightConeUpdated: 'Porteur de {lightcone} mis à jour', confirmDeleteLightCone: 'Supprimer {name} de l’inventaire FreeSR ?', confirmDeleteRelic: 'Supprimer {name} de l’inventaire FreeSR ?',
toastDataSavedServer: '{file} enregistré sur le serveur et dans le cache', toastDataCacheOnlyFailure: '{file} enregistré dans le cache, mais échec de l’enregistrement serveur : {error}', toastDataSavedOffline: '{file} enregistré dans le cache (hors ligne)', toastNoEquippedRelics: 'Aucune relique équipée', toastLightConeChanged: 'Cône de lumière remplacé par {name}', toastCharacterSettingsSaved: 'Paramètres du personnage enregistrés', toastJsonFormatted: 'JSON mis en forme', toastFileDownloaded: '{file} téléchargé', toastEndpointSelected: 'Endpoint sélectionné : {url}', toastDefaultEnergySet: 'Énergie initiale réglée sur {energy} %', toastGlobalSwitchSaved: 'Options globales enregistrées', toastCreativeModeToggled: '{title} : {status}'
},
de: {
toastRelicUnequippedSlot: 'Relikt für {slot} abgelegt', toastRelicUnequipped: 'Relikt abgelegt', toastRelicEquipped: '{name} ausgerüstet!', toastSubstatsSaved: 'Nebenwerte von {name} gespeichert', toastLightConeEquipped: '{lightcone} für {character} ausgerüstet', toastLightConeUnequipped: 'Lichtkegel von {character} abgelegt', toastAllCharactersE0S1: 'Alle Figuren auf E0S1 gesetzt und mit Signatur-Lichtkegeln ausgerüstet', toastLocalRankUpdated: '{name} auf E{rank} gesetzt (lokal gespeichert)',
toastErrorMessage: 'Fehler: {message}', toastClipboardCopyFailed: 'Kopieren in die Zwischenablage fehlgeschlagen', toastCardExporting: 'PNG-Buildkarte wird erstellt…', toastCardDownloaded: 'PNG-Buildkarte heruntergeladen', toastPopupRequired: 'Pop-ups zum Drucken oder Speichern des Bildes zulassen', toastTeamE0S1: 'Das ganze Team wurde auf E0S1 gesetzt', toastTeamRecommendedRelics: 'Empfohlene Relikte und Planare Ornamente für das Team ausgerüstet', toastInventoryLightConeUpdated: 'Träger von {lightcone} aktualisiert', confirmDeleteLightCone: '{name} aus dem FreeSR-Inventar löschen?', confirmDeleteRelic: '{name} aus dem FreeSR-Inventar löschen?',
toastDataSavedServer: '{file} auf Server und im Cache gespeichert', toastDataCacheOnlyFailure: '{file} im Cache gespeichert, aber Server-Speichern fehlgeschlagen: {error}', toastDataSavedOffline: '{file} im Cache gespeichert (offline)', toastNoEquippedRelics: 'Es sind keine Relikte ausgerüstet', toastLightConeChanged: 'Lichtkegel zu {name} geändert', toastCharacterSettingsSaved: 'Figureneinstellungen gespeichert', toastJsonFormatted: 'JSON formatiert', toastFileDownloaded: '{file} heruntergeladen', toastEndpointSelected: 'Endpoint ausgewählt: {url}', toastDefaultEnergySet: 'Startenergie auf {energy} % gesetzt', toastGlobalSwitchSaved: 'Globale Schalter gespeichert', toastCreativeModeToggled: '{title}: {status}'
},
ru: {
toastRelicUnequippedSlot: 'Реликвия для слота «{slot}» снята', toastRelicUnequipped: 'Реликвия снята', toastRelicEquipped: '«{name}» экипирована!', toastSubstatsSaved: 'Дополнительные характеристики «{name}» сохранены', toastLightConeEquipped: '«{lightcone}» экипирован на персонажа «{character}»', toastLightConeUnequipped: 'Световой конус персонажа «{character}» снят', toastAllCharactersE0S1: 'Все персонажи переведены на E0S1 с сигнатурными световыми конусами', toastLocalRankUpdated: '«{name}» установлен E{rank} (сохранено локально)',
toastErrorMessage: 'Ошибка: {message}', toastClipboardCopyFailed: 'Не удалось скопировать в буфер обмена', toastCardExporting: 'Создание PNG-карточки сборки…', toastCardDownloaded: 'PNG-карточка сборки скачана', toastPopupRequired: 'Разрешите всплывающие окна для печати или сохранения изображения', toastTeamE0S1: 'Весь отряд установлен на E0S1', toastTeamRecommendedRelics: 'Отряду экипированы рекомендуемые реликвии и планарные украшения', toastInventoryLightConeUpdated: 'Обновлён персонаж для светового конуса «{lightcone}»', confirmDeleteLightCone: 'Удалить «{name}» из инвентаря FreeSR?', confirmDeleteRelic: 'Удалить «{name}» из инвентаря FreeSR?',
toastDataSavedServer: '«{file}» сохранён на сервере и в кэше', toastDataCacheOnlyFailure: '«{file}» сохранён в кэше, но не на сервере: {error}', toastDataSavedOffline: '«{file}» сохранён в кэше (офлайн)', toastNoEquippedRelics: 'Экипированных реликвий нет', toastLightConeChanged: 'Световой конус изменён на «{name}»', toastCharacterSettingsSaved: 'Настройки персонажа сохранены', toastJsonFormatted: 'JSON отформатирован', toastFileDownloaded: 'Файл «{file}» скачан', toastEndpointSelected: 'Выбрана конечная точка: {url}', toastDefaultEnergySet: 'Начальная энергия установлена на {energy}%', toastGlobalSwitchSaved: 'Глобальные переключатели сохранены', toastCreativeModeToggled: '{title}: {status}'
},
pt: {
toastRelicUnequippedSlot: 'Relíquia do espaço {slot} removida', toastRelicUnequipped: 'Relíquia removida', toastRelicEquipped: '{name} equipado!', toastSubstatsSaved: 'Subatributos de {name} salvos', toastLightConeEquipped: '{lightcone} equipado em {character}', toastLightConeUnequipped: 'Cone de luz removido de {character}', toastAllCharactersE0S1: 'Todos os personagens definidos como E0S1 com seus cones de luz característicos', toastLocalRankUpdated: '{name} definido como E{rank} (salvo localmente)',
toastErrorMessage: 'Erro: {message}', toastClipboardCopyFailed: 'Não foi possível copiar para a área de transferência', toastCardExporting: 'Criando o cartão de build PNG…', toastCardDownloaded: 'Cartão de build PNG baixado', toastPopupRequired: 'Permita pop-ups para imprimir ou salvar a imagem', toastTeamE0S1: 'Toda a equipe foi definida como E0S1', toastTeamRecommendedRelics: 'Relíquias e ornamentos planares recomendados equipados para a equipe', toastInventoryLightConeUpdated: 'Personagem equipado com {lightcone} atualizado', confirmDeleteLightCone: 'Excluir {name} do inventário FreeSR?', confirmDeleteRelic: 'Excluir {name} do inventário FreeSR?',
toastDataSavedServer: '{file} salvo no servidor e no cache', toastDataCacheOnlyFailure: '{file} salvo no cache, mas houve falha ao salvar no servidor: {error}', toastDataSavedOffline: '{file} salvo no cache (modo offline)', toastNoEquippedRelics: 'Nenhuma relíquia equipada', toastLightConeChanged: 'Cone de luz alterado para {name}', toastCharacterSettingsSaved: 'Configurações do personagem salvas', toastJsonFormatted: 'JSON formatado', toastFileDownloaded: '{file} baixado', toastEndpointSelected: 'Endpoint selecionado: {url}', toastDefaultEnergySet: 'Energia inicial definida como {energy}%', toastGlobalSwitchSaved: 'Opções globais salvas', toastCreativeModeToggled: '{title}: {status}'
}
};
const ASSET_AND_ACTION_TRANSLATIONS = {
th: { btnManage: 'จัดการ ➔', characterArtwork: 'ภาพตัวละคร', lightConeArtwork: 'ภาพ Light Cone', lightConeArtworkMissing: '🗡️ ไม่มีภาพตัวอย่าง Light Cone', selectedLightConeLabel: '✓ Light Cone ที่เลือก' },
en: { btnManage: 'Manage ➔', characterArtwork: 'Character artwork', lightConeArtwork: 'Light Cone artwork', lightConeArtworkMissing: '🗡️ Light Cone preview unavailable', selectedLightConeLabel: '✓ Selected Light Cone' },
'zh-CN': { btnManage: '管理 ➔', characterArtwork: '角色立绘', lightConeArtwork: '光锥插图', lightConeArtworkMissing: '🗡️ 暂无光锥预览图', selectedLightConeLabel: '✓ 已选光锥' },
'zh-TW': { btnManage: '管理 ➔', characterArtwork: '角色立繪', lightConeArtwork: '光錐插圖', lightConeArtworkMissing: '🗡️ 暫無光錐預覽圖', selectedLightConeLabel: '✓ 已選光錐' },
ja: { btnManage: '管理 ➔', characterArtwork: 'キャラクター画像', lightConeArtwork: '光円錐のイラスト', lightConeArtworkMissing: '🗡️ 光円錐のプレビュー画像がありません', selectedLightConeLabel: '✓ 選択中の光円錐' },
ko: { btnManage: '관리 ➔', characterArtwork: '캐릭터 아트', lightConeArtwork: '광추 일러스트', lightConeArtworkMissing: '🗡️ 광추 미리보기가 없습니다', selectedLightConeLabel: '✓ 선택한 광추' },
vi: { btnManage: 'Quản lý ➔', characterArtwork: 'Ảnh nhân vật', lightConeArtwork: 'Ảnh nón ánh sáng', lightConeArtworkMissing: '🗡️ Không có ảnh xem trước nón ánh sáng', selectedLightConeLabel: '✓ Nón ánh sáng đã chọn' },
id: { btnManage: 'Kelola ➔', characterArtwork: 'Ilustrasi karakter', lightConeArtwork: 'Ilustrasi Light Cone', lightConeArtworkMissing: '🗡️ Pratinjau Light Cone tidak tersedia', selectedLightConeLabel: '✓ Light Cone dipilih' },
es: { btnManage: 'Gestionar ➔', characterArtwork: 'Ilustración del personaje', lightConeArtwork: 'Ilustración del cono de luz', lightConeArtworkMissing: '🗡️ No hay vista previa del cono de luz', selectedLightConeLabel: '✓ Cono de luz seleccionado' },
fr: { btnManage: 'Gérer ➔', characterArtwork: 'Illustration du personnage', lightConeArtwork: 'Illustration du cône de lumière', lightConeArtworkMissing: '🗡️ Aucun aperçu du cône de lumière', selectedLightConeLabel: '✓ Cône de lumière sélectionné' },
de: { btnManage: 'Verwalten ➔', characterArtwork: 'Charaktergrafik', lightConeArtwork: 'Lichtkegel-Illustration', lightConeArtworkMissing: '🗡️ Keine Lichtkegel-Vorschau verfügbar', selectedLightConeLabel: '✓ Ausgewählter Lichtkegel' },
ru: { btnManage: 'Управление ➔', characterArtwork: 'Изображение персонажа', lightConeArtwork: 'Иллюстрация светового конуса', lightConeArtworkMissing: '🗡️ Нет изображения для просмотра', selectedLightConeLabel: '✓ Выбранный световой конус' },
pt: { btnManage: 'Gerenciar ➔', characterArtwork: 'Ilustração do personagem', lightConeArtwork: 'Ilustração do cone de luz', lightConeArtworkMissing: '🗡️ Prévia do cone de luz indisponível', selectedLightConeLabel: '✓ Cone de luz selecionado' }
};
// Fill a few legacy UI labels that were still left in English in otherwise
// complete language dictionaries. Keep protocol terms and filenames intact.
const LAST_MILE_TRANSLATIONS = {
th: {
inventoryItemId: 'ID ไอเทม', lblApiEndpoint: 'ปลายทาง API Gateway', lblPlaneId: 'ID ระนาบ', lblFloorId: 'ID ชั้น',
miniBreakDmg: 'ทำลายจุดอ่อน / ทำลายจุดอ่อนขั้นสูง', analystDmgBreak: '🔨 ทำลายจุดอ่อน / ทำลายจุดอ่อนขั้นสูง',
substatPresetCrit: '🎯 อัตราคริติคอล/ความเสียหายคริติคอล', substatPresetBreak: '🔨 ประสิทธิภาพการทำลายจุดอ่อน', substatPresetTank: '🛡️ HP/ป้องกัน'
},
en: {},
'zh-CN': {},
'zh-TW': {},
ja: {},
ko: { exrankToggleSuccess: '{name}:Ex-Rank {status}' },
vi: {
lblPlaneId: 'ID mặt phẳng', lblFloorId: 'ID tầng', exrankToggleSuccess: 'Ex-Rank của {name}: {status}'
},
id: {
inventoryItemId: 'ID Item', lblPlaneId: 'ID Planar', lblFloorId: 'ID Lantai',
paths: { Destruction: 'Pemusnahan', Hunt: 'Perburuan', Erudition: 'Erudisi', Harmony: 'Harmoni', Nihility: 'Nihilitas', Preservation: 'Pelestarian', Abundance: 'Kelimpahan', Remembrance: 'Kenangan', Unknown: 'Tidak Diketahui', Elation: 'Kegembiraan' },
persistentTbM7Title: '👤 Perintis & March 7th', tabPersistentFirefly: '👤 Perintis & March 7th',
modalTabStatus: '⚙️ Level & Eidolon', modalSkillUltra: 'Serangan Pamungkas', modalTracesTitle: 'Jejak & Teknik',
lblLevelRange: 'Level (1–80)', statMaxHp: 'HP Maks.', statCritRate: 'Rasio CRIT', statBreakEffect: 'Efek Break',
statHealBoost: 'Bonus Penyembuhan Keluar', statMaxEnergy: 'Energi Maks.', statEnergyRegen: 'Tingkat Pemulihan Energi',
statEhr: 'Tingkat Efek Mengenai', statRes: 'RES Efek', statDmgBoost: 'Bonus DMG {element}', modalColLevel: 'Level',
roleSupport: '⚡ Dukungan / Debuff', analystShareTotal: 'Total 100%', miniBreakDmg: 'Break / Super Break',
analystDmgBreak: '🔨 Break / Super Break', substatPresetCrit: '🎯 Rasio CRIT/DMG CRIT',
substatPresetBreak: '🔨 Efek Break', substatPresetTank: '🛡️ HP/DEF',
exrankToggleSuccess: 'Status Ex-Rank {name}: {status}'
},
es: { toastErrorMessage: 'Error: {message}' },
fr: { exrankToggleSuccess: 'Ex-Rank de {name} : {status}' },
de: { offline: 'Getrennt', exrankToggleSuccess: 'Ex-Rank von {name}: {status}' },
ru: { exrankToggleSuccess: 'Ex-Rank персонажа {name}: {status}' },
pt: { offline: 'Desconectado', exrankToggleSuccess: 'Ex-Rank de {name}: {status}' }
};
const AHA_HELP_TRANSLATIONS = {
th: {
ahaHelpMode: 'โหมด Anomaly Arbitration', ahaHelpTitle: 'ความช่วยเหลือจาก Aha',
ahaHelpDescription: 'เลือกระดับความช่วยเหลือสำหรับการต่อสู้ครั้งถัดไปที่มี Voracity Corruption ค่านี้แยกจาก Aha Global',
ahaHelpLegacyTitle: 'ใช้ค่าจาก FreeSR', ahaHelpLegacyDescription: 'ให้ FreeSR ควบคุมการตั้งค่านี้ (ตอนนี้: {status})',
ahaHelpOffTitle: 'ปิด', ahaHelpOffDescription: 'ไม่เพิ่มระดับ Aha’s Help', ahaHelpProgress: 'เกณฑ์ความคืบหน้า {percent}%',
ahaHelpConnect: 'เชื่อมต่อเซิร์ฟเวอร์ GaC เพื่อเลือกระดับ', ahaHelpLoading: 'กำลังโหลดระดับ…',
ahaHelpNoLevels: 'ไม่พบข้อมูลระดับ Aha’s Help', ahaHelpLoadError: 'โหลดระดับไม่สำเร็จ: {error}',
ahaHelpStatusSaved: 'บันทึกแล้ว · มีผลเมื่อเริ่มการต่อสู้ครั้งถัดไป', ahaHelpStatusUnsaved: 'มีการเปลี่ยนแปลงที่ยังไม่ได้บันทึก',
ahaHelpStatusSaveError: 'บันทึกไม่สำเร็จ: {error}', ahaHelpSave: 'บันทึกการตั้งค่า', ahaHelpSavedToast: 'บันทึก Aha’s Help แล้ว มีผลเมื่อเริ่มการต่อสู้ครั้งถัดไป'
},
en: {
ahaHelpMode: 'ANOMALY ARBITRATION', ahaHelpTitle: 'Aha’s Help',
ahaHelpDescription: 'Choose the support level for the next battle with Voracity Corruption. This is separate from Aha Global.',
ahaHelpLegacyTitle: 'Use FreeSR setting', ahaHelpLegacyDescription: 'Let FreeSR control this setting (currently: {status})',
ahaHelpOffTitle: 'Off', ahaHelpOffDescription: 'Do not add an Aha’s Help level', ahaHelpProgress: '{percent}% progress threshold',
ahaHelpConnect: 'Connect to a GaC server to choose a level', ahaHelpLoading: 'Loading levels…',
ahaHelpNoLevels: 'No Aha’s Help levels were returned', ahaHelpLoadError: 'Could not load levels: {error}',
ahaHelpStatusSaved: 'Saved · applies when the next battle starts', ahaHelpStatusUnsaved: 'You have unsaved changes',
ahaHelpStatusSaveError: 'Could not save: {error}', ahaHelpSave: 'Save settings', ahaHelpSavedToast: 'Aha’s Help saved. It applies when the next battle starts.'
},
'zh-CN': {
ahaHelpMode: '异常仲裁模式', ahaHelpTitle: '阿哈的帮助',
ahaHelpDescription: '选择下一场含有贪欲腐蚀的战斗所用的帮助等级。此设置独立于阿哈全局功能。',
ahaHelpLegacyTitle: '使用 FreeSR 设置', ahaHelpLegacyDescription: '由 FreeSR 控制此设置(当前:{status})',
ahaHelpOffTitle: '关闭', ahaHelpOffDescription: '不添加阿哈的帮助等级', ahaHelpProgress: '进度阈值 {percent}%',
ahaHelpConnect: '连接 GaC 服务器后才能选择等级', ahaHelpLoading: '正在加载等级…',
ahaHelpNoLevels: '未找到阿哈的帮助等级数据', ahaHelpLoadError: '无法加载等级:{error}',
ahaHelpStatusSaved: '已保存 · 下次战斗开始时生效', ahaHelpStatusUnsaved: '有尚未保存的更改',
ahaHelpStatusSaveError: '保存失败:{error}', ahaHelpSave: '保存设置', ahaHelpSavedToast: '阿哈的帮助已保存,将在下次战斗开始时生效。'
},
'zh-TW': {
ahaHelpMode: '異常仲裁模式', ahaHelpTitle: '阿哈的幫助',
ahaHelpDescription: '選擇下一場含有貪欲腐蝕的戰鬥所用的幫助等級。此設定獨立於阿哈全域功能。',
ahaHelpLegacyTitle: '使用 FreeSR 設定', ahaHelpLegacyDescription: '由 FreeSR 控制此設定(目前:{status})',
ahaHelpOffTitle: '關閉', ahaHelpOffDescription: '不新增阿哈的幫助等級', ahaHelpProgress: '進度門檻 {percent}%',
ahaHelpConnect: '連線至 GaC 伺服器後才能選擇等級', ahaHelpLoading: '正在載入等級…',
ahaHelpNoLevels: '找不到阿哈的幫助等級資料', ahaHelpLoadError: '無法載入等級:{error}',
ahaHelpStatusSaved: '已儲存 · 下次戰鬥開始時生效', ahaHelpStatusUnsaved: '有尚未儲存的變更',
ahaHelpStatusSaveError: '儲存失敗:{error}', ahaHelpSave: '儲存設定', ahaHelpSavedToast: '阿哈的幫助已儲存,將於下次戰鬥開始時生效。'
},
ja: {
ahaHelpMode: '異常アービトレーション', ahaHelpTitle: 'アハの助け',
ahaHelpDescription: '貪欲の侵食が発生する次の戦闘で使うサポートレベルを選択します。アハのグローバル設定とは別の設定です。',
ahaHelpLegacyTitle: 'FreeSRの設定を使用', ahaHelpLegacyDescription: 'この設定をFreeSRに任せます(現在:{status})',
ahaHelpOffTitle: 'オフ', ahaHelpOffDescription: 'アハの助けのレベルを追加しません', ahaHelpProgress: '進行度のしきい値 {percent}%',
ahaHelpConnect: 'レベルを選択するにはGaCサーバーに接続してください', ahaHelpLoading: 'レベルを読み込み中…',
ahaHelpNoLevels: 'アハの助けのレベル情報がありません', ahaHelpLoadError: 'レベルを読み込めませんでした:{error}',
ahaHelpStatusSaved: '保存済み · 次の戦闘開始時に反映', ahaHelpStatusUnsaved: '未保存の変更があります',
ahaHelpStatusSaveError: '保存できませんでした:{error}', ahaHelpSave: '設定を保存', ahaHelpSavedToast: 'アハの助けを保存しました。次の戦闘開始時に反映されます。'
},
ko: {
ahaHelpMode: '이상 중재 모드', ahaHelpTitle: '아하의 도움',
ahaHelpDescription: '탐식의 침식이 포함된 다음 전투에서 사용할 지원 레벨을 선택합니다. 아하 전역 설정과는 별개입니다.',
ahaHelpLegacyTitle: 'FreeSR 설정 사용', ahaHelpLegacyDescription: '이 설정을 FreeSR에서 제어합니다 (현재: {status})',
ahaHelpOffTitle: '끔', ahaHelpOffDescription: '아하의 도움 레벨을 추가하지 않습니다', ahaHelpProgress: '진행도 기준 {percent}%',
ahaHelpConnect: '레벨을 선택하려면 GaC 서버에 연결하세요', ahaHelpLoading: '레벨 불러오는 중…',
ahaHelpNoLevels: '아하의 도움 레벨 데이터가 없습니다', ahaHelpLoadError: '레벨을 불러오지 못했습니다: {error}',
ahaHelpStatusSaved: '저장됨 · 다음 전투 시작 시 적용', ahaHelpStatusUnsaved: '저장하지 않은 변경 사항이 있습니다',
ahaHelpStatusSaveError: '저장하지 못했습니다: {error}', ahaHelpSave: '설정 저장', ahaHelpSavedToast: '아하의 도움을 저장했습니다. 다음 전투 시작 시 적용됩니다.'
},
vi: {
ahaHelpMode: 'CHẾ ĐỘ ANOMALY ARBITRATION', ahaHelpTitle: 'Sự trợ giúp của Aha',
ahaHelpDescription: 'Chọn cấp hỗ trợ cho trận chiến tiếp theo có Voracity Corruption. Thiết lập này độc lập với Aha Global.',
ahaHelpLegacyTitle: 'Dùng thiết lập FreeSR', ahaHelpLegacyDescription: 'Để FreeSR điều khiển thiết lập này (hiện tại: {status})',
ahaHelpOffTitle: 'Tắt', ahaHelpOffDescription: 'Không thêm cấp Sự trợ giúp của Aha', ahaHelpProgress: 'Ngưỡng tiến độ {percent}%',
ahaHelpConnect: 'Kết nối máy chủ GaC để chọn cấp', ahaHelpLoading: 'Đang tải các cấp…',
ahaHelpNoLevels: 'Không tìm thấy dữ liệu cấp Sự trợ giúp của Aha', ahaHelpLoadError: 'Không tải được cấp: {error}',
ahaHelpStatusSaved: 'Đã lưu · áp dụng khi bắt đầu trận chiến tiếp theo', ahaHelpStatusUnsaved: 'Bạn có thay đổi chưa lưu',
ahaHelpStatusSaveError: 'Không thể lưu: {error}', ahaHelpSave: 'Lưu thiết lập', ahaHelpSavedToast: 'Đã lưu Sự trợ giúp của Aha. Thiết lập có hiệu lực từ trận chiến tiếp theo.'
},
id: {
ahaHelpMode: 'MODE ANOMALY ARBITRATION', ahaHelpTitle: 'Bantuan Aha',
ahaHelpDescription: 'Pilih level bantuan untuk pertempuran berikutnya yang memiliki Voracity Corruption. Pengaturan ini terpisah dari Aha Global.',
ahaHelpLegacyTitle: 'Gunakan pengaturan FreeSR', ahaHelpLegacyDescription: 'Biarkan FreeSR mengatur opsi ini (saat ini: {status})',
ahaHelpOffTitle: 'Mati', ahaHelpOffDescription: 'Jangan tambahkan level Bantuan Aha', ahaHelpProgress: 'Ambang progres {percent}%',
ahaHelpConnect: 'Hubungkan ke server GaC untuk memilih level', ahaHelpLoading: 'Memuat level…',
ahaHelpNoLevels: 'Data level Bantuan Aha tidak ditemukan', ahaHelpLoadError: 'Gagal memuat level: {error}',
ahaHelpStatusSaved: 'Tersimpan · berlaku saat pertempuran berikutnya dimulai', ahaHelpStatusUnsaved: 'Ada perubahan yang belum disimpan',
ahaHelpStatusSaveError: 'Gagal menyimpan: {error}', ahaHelpSave: 'Simpan pengaturan', ahaHelpSavedToast: 'Bantuan Aha tersimpan. Pengaturan berlaku pada pertempuran berikutnya.'
},
es: {
ahaHelpMode: 'MODO ANOMALY ARBITRATION', ahaHelpTitle: 'Ayuda de Aha',
ahaHelpDescription: 'Elige el nivel de apoyo para el próximo combate con Voracity Corruption. Este ajuste es independiente de Aha Global.',
ahaHelpLegacyTitle: 'Usar ajuste de FreeSR', ahaHelpLegacyDescription: 'Dejar que FreeSR controle este ajuste (ahora: {status})',
ahaHelpOffTitle: 'Desactivado', ahaHelpOffDescription: 'No añadir un nivel de Ayuda de Aha', ahaHelpProgress: 'Umbral de progreso: {percent}%',
ahaHelpConnect: 'Conéctate a un servidor GaC para elegir un nivel', ahaHelpLoading: 'Cargando niveles…',
ahaHelpNoLevels: 'No se encontraron niveles de Ayuda de Aha', ahaHelpLoadError: 'No se pudieron cargar los niveles: {error}',
ahaHelpStatusSaved: 'Guardado · se aplica al comenzar el próximo combate', ahaHelpStatusUnsaved: 'Hay cambios sin guardar',
ahaHelpStatusSaveError: 'No se pudo guardar: {error}', ahaHelpSave: 'Guardar ajustes', ahaHelpSavedToast: 'Ayuda de Aha guardada. Se aplicará al comenzar el próximo combate.'
},
fr: {
ahaHelpMode: 'MODE ANOMALY ARBITRATION', ahaHelpTitle: 'Aide d’Aha',
ahaHelpDescription: 'Choisissez le niveau de soutien pour le prochain combat avec Voracity Corruption. Ce réglage est indépendant d’Aha Global.',
ahaHelpLegacyTitle: 'Utiliser le réglage FreeSR', ahaHelpLegacyDescription: 'Laisser FreeSR gérer ce réglage (actuellement : {status})',
ahaHelpOffTitle: 'Désactivé', ahaHelpOffDescription: 'Ne pas ajouter de niveau d’aide d’Aha', ahaHelpProgress: 'Seuil de progression : {percent} %',
ahaHelpConnect: 'Connectez-vous à un serveur GaC pour choisir un niveau', ahaHelpLoading: 'Chargement des niveaux…',
ahaHelpNoLevels: 'Aucun niveau d’aide d’Aha trouvé', ahaHelpLoadError: 'Impossible de charger les niveaux : {error}',
ahaHelpStatusSaved: 'Enregistré · appliqué au prochain combat', ahaHelpStatusUnsaved: 'Modifications non enregistrées',
ahaHelpStatusSaveError: 'Échec de l’enregistrement : {error}', ahaHelpSave: 'Enregistrer', ahaHelpSavedToast: 'Aide d’Aha enregistrée. Elle sera appliquée au prochain combat.'
},
de: {
ahaHelpMode: 'ANOMALIE-ARBITRATION', ahaHelpTitle: 'Ahas Hilfe',
ahaHelpDescription: 'Wähle die Unterstützungsstufe für den nächsten Kampf mit Voracity Corruption. Diese Einstellung ist unabhängig von Aha Global.',
ahaHelpLegacyTitle: 'FreeSR-Einstellung verwenden', ahaHelpLegacyDescription: 'FreeSR steuert diese Einstellung (aktuell: {status})',
ahaHelpOffTitle: 'Aus', ahaHelpOffDescription: 'Keine Stufe von Ahas Hilfe hinzufügen', ahaHelpProgress: 'Fortschrittsschwelle {percent}%',
ahaHelpConnect: 'Verbinde dich mit einem GaC-Server, um eine Stufe auszuwählen', ahaHelpLoading: 'Stufen werden geladen…',
ahaHelpNoLevels: 'Keine Stufen für Ahas Hilfe gefunden', ahaHelpLoadError: 'Stufen konnten nicht geladen werden: {error}',
ahaHelpStatusSaved: 'Gespeichert · gilt ab dem nächsten Kampf', ahaHelpStatusUnsaved: 'Ungespeicherte Änderungen vorhanden',
ahaHelpStatusSaveError: 'Speichern fehlgeschlagen: {error}', ahaHelpSave: 'Einstellungen speichern', ahaHelpSavedToast: 'Ahas Hilfe gespeichert. Die Einstellung gilt ab dem nächsten Kampf.'
},
ru: {
ahaHelpMode: 'РЕЖИМ АНОМАЛЬНОГО ПРОТИВОСТОЯНИЯ', ahaHelpTitle: 'Помощь Ахи',
ahaHelpDescription: 'Выберите уровень поддержки для следующего боя с «Порчей алчности». Эта настройка не зависит от глобальной функции Ахи.',
ahaHelpLegacyTitle: 'Использовать настройку FreeSR', ahaHelpLegacyDescription: 'Передать управление этой настройкой FreeSR (сейчас: {status})',
ahaHelpOffTitle: 'Выкл.', ahaHelpOffDescription: 'Не добавлять уровень помощи Ахи', ahaHelpProgress: 'Порог прогресса: {percent}%',
ahaHelpConnect: 'Подключитесь к серверу GaC, чтобы выбрать уровень', ahaHelpLoading: 'Загрузка уровней…',
ahaHelpNoLevels: 'Уровни помощи Ахи не найдены', ahaHelpLoadError: 'Не удалось загрузить уровни: {error}',
ahaHelpStatusSaved: 'Сохранено · вступит в силу в следующем бою', ahaHelpStatusUnsaved: 'Есть несохранённые изменения',
ahaHelpStatusSaveError: 'Не удалось сохранить: {error}', ahaHelpSave: 'Сохранить настройки', ahaHelpSavedToast: 'Помощь Ахи сохранена и вступит в силу в следующем бою.'
},
pt: {
ahaHelpMode: 'MODO ANOMALY ARBITRATION', ahaHelpTitle: 'Ajuda de Aha',
ahaHelpDescription: 'Escolha o nível de apoio para a próxima batalha com Voracity Corruption. Esta opção é independente de Aha Global.',
ahaHelpLegacyTitle: 'Usar configuração do FreeSR', ahaHelpLegacyDescription: 'Deixar o FreeSR controlar esta opção (atual: {status})',
ahaHelpOffTitle: 'Desativado', ahaHelpOffDescription: 'Não adicionar um nível de Ajuda de Aha', ahaHelpProgress: 'Limite de progresso: {percent}%',
ahaHelpConnect: 'Conecte-se a um servidor GaC para escolher um nível', ahaHelpLoading: 'Carregando níveis…',
ahaHelpNoLevels: 'Nenhum nível de Ajuda de Aha encontrado', ahaHelpLoadError: 'Não foi possível carregar os níveis: {error}',
ahaHelpStatusSaved: 'Salvo · aplicado ao iniciar a próxima batalha', ahaHelpStatusUnsaved: 'Há alterações não salvas',
ahaHelpStatusSaveError: 'Falha ao salvar: {error}', ahaHelpSave: 'Salvar configuração', ahaHelpSavedToast: 'Ajuda de Aha salva. Será aplicada na próxima batalha.'
}
};
const MONSTER_SETTINGS_TRANSLATIONS = {
en: { tabMonsterSettings:'👾 Monster Setting', monsterSettingsTitle:'👾 Monster Setting', monsterSettingsDescription:'Inspect stage and wave data from the installed Client resources. Custom enemy waves are limited to Golden / Crimson Calyx.', monsterSettingsRule:'Weekly Boss, Stagnant Shadow, Cavern of Corrosion, and Endgame stages use Client data and cannot be changed here.', monsterModeMoc:'Memory of Chaos', monsterModePf:'Pure Fiction', monsterModeAs:'Apocalyptic Shadow', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Custom Enemy', monsterModeSu:'Simulated Universe', monsterSettingsLoading:'Reading stages from Client resources…', monsterSettingsNoStages:'No stages were found in the connected Client resources.', monsterSettingsGroup:'Stage group', monsterSettingsGroupOption:'Group {id} · {count} entries', monsterSettingsChallenge:'Challenge entry', monsterSettingsStageOption:'Entry {id}{boss}', monsterSettingsBoss:'Boss', monsterSettingsStageTitle:'Entry {id}', monsterSettingsDefaultBuff:'Default buff ID {id}', monsterSettingsEncounterTitle:'Encounter stage {id}', monsterSettingsLevel:'Level {level}', monsterSettingsWaveCount:'{count} waves', monsterSettingsWave:'Wave {number}', monsterSettingsSuReadOnly:'Simulated Universe monster editing is not supported by this server. No verified SU monster resources are available here.', monsterSettingsCatalogError:'Could not read Client stage resources: {error}', monsterSettingsReadOnly:'Read-only: connect to the GaC server to load its Client resource catalog.', monsterSettingsLoaded:'Read-only stage data · source: {source}', monsterSettingsClientResources:'Client resources', monsterSettingsDataUnavailable:'FreeSR player data is unavailable', monsterCustomTitle:'Custom Enemy Waves', monsterCustomDescription:'These waves are used only when entering Golden or Crimson Calyx with the GaC-Srtool session active.', monsterCustomCalyxOnly:'This setting never replaces Weekly Boss, Stagnant Shadow, Cavern of Corrosion, MoC, Pure Fiction, Apocalyptic Shadow, or AA enemies.', monsterCustomConnected:'Connected. Changes are saved to the server and apply on a later eligible Calyx entry.', monsterCustomConnect:'Connect to GaC to edit and save custom Calyx waves.', monsterCustomEmpty:'No custom waves are set. “Use Client stages” restores the installed Calyx waves.', monsterCustomAddWave:'Add wave', monsterCustomUseClient:'Use Client stages', monsterCustomSave:'Save custom waves', monsterCustomSaved:'Saved · applies to Golden / Crimson Calyx only', monsterCustomUnsaved:'Unsaved changes', monsterCustomAddEnemy:'Add enemy', monsterCustomRemoveEnemy:'Remove enemy', monsterCustomRemoveWave:'Remove wave', monsterCustomId:'Monster ID', monsterCustomLevel:'Level', monsterCustomMaxHP:'Max HP (optional)', monsterCustomNaturalHP:'Blank = use the monster’s normal HP', monsterCustomEmptyWave:'Wave {number} has no enemies.', monsterCustomInvalidEntry:'Enter a valid Monster ID, Level, and Max HP.', monsterCustomSaveSuccess:'Custom Calyx waves saved.', monsterCustomSaveError:'Could not save custom waves: {error}' },
th: { tabMonsterSettings:'👾 ตั้งค่ามอนสเตอร์', monsterSettingsTitle:'👾 ตั้งค่ามอนสเตอร์', monsterSettingsDescription:'ตรวจดู stage และ wave จาก resource ของ Client ที่ติดตั้งอยู่ Custom Enemy ใช้ได้เฉพาะ Golden / Crimson Calyx', monsterSettingsRule:'Weekly Boss, Stagnant Shadow, Cavern of Corrosion และ Endgame ใช้ข้อมูลด่านจาก Client แก้คลื่นมอนที่นี่ไม่ได้', monsterModeMoc:'ความทรงจำแห่งความโกลาหล', monsterModePf:'โลกมายาคติ', monsterModeAs:'เงาจุติ', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Custom Enemy', monsterModeSu:'จักรวาลจำลอง', monsterSettingsLoading:'กำลังอ่านด่านจาก resource ของ Client…', monsterSettingsNoStages:'ไม่พบ stage ใน resource ของ Client ที่เชื่อมต่อ', monsterSettingsGroup:'กลุ่มด่าน', monsterSettingsGroupOption:'กลุ่ม {id} · {count} รายการ', monsterSettingsChallenge:'รายการท้าทาย', monsterSettingsStageOption:'รายการ {id}{boss}', monsterSettingsBoss:'บอส', monsterSettingsStageTitle:'รายการ {id}', monsterSettingsDefaultBuff:'Buff เริ่มต้น ID {id}', monsterSettingsEncounterTitle:'Stage ต่อสู้ {id}', monsterSettingsLevel:'เลเวล {level}', monsterSettingsWaveCount:'{count} wave', monsterSettingsWave:'Wave {number}', monsterSettingsSuReadOnly:'เซิร์ฟเวอร์นี้ยังไม่รองรับการแก้ monster ใน Simulated Universe และไม่มี resource ที่ยืนยันแล้ว', monsterSettingsCatalogError:'อ่าน resource stage ของ Client ไม่ได้: {error}', monsterSettingsReadOnly:'อ่านได้อย่างเดียว: เชื่อมต่อ GaC เพื่อโหลด catalog จาก resource Client', monsterSettingsLoaded:'ข้อมูลด่านอ่านอย่างเดียว · แหล่งที่มา: {source}', monsterSettingsClientResources:'resource ของ Client', monsterSettingsDataUnavailable:'ไม่มีข้อมูลผู้เล่น FreeSR', monsterCustomTitle:'คลื่นมอน Custom Enemy', monsterCustomDescription:'wave นี้ใช้เฉพาะเมื่อเข้าต่อสู้ Golden หรือ Crimson Calyx ขณะ Srtool เชื่อมต่อกับ GaC', monsterCustomCalyxOnly:'ค่านี้ไม่แทนมอนของ Weekly Boss, Stagnant Shadow, Cavern of Corrosion, MoC, Pure Fiction, Apocalyptic Shadow หรือ AA', monsterCustomConnected:'เชื่อมต่อแล้ว บันทึกไปเซิร์ฟเวอร์และใช้เมื่อเข้า Calyx ที่รองรับครั้งถัดไป', monsterCustomConnect:'เชื่อมต่อ GaC เพื่อแก้และบันทึก wave ของ Calyx', monsterCustomEmpty:'ยังไม่มี custom wave กด “ใช้ stage จาก Client” เพื่อกลับไปใช้ wave ของ Calyx ที่ติดตั้ง', monsterCustomAddWave:'เพิ่ม wave', monsterCustomUseClient:'ใช้ stage จาก Client', monsterCustomSave:'บันทึก custom wave', monsterCustomSaved:'บันทึกแล้ว · ใช้เฉพาะ Golden / Crimson Calyx', monsterCustomUnsaved:'มีการแก้ไขที่ยังไม่บันทึก', monsterCustomAddEnemy:'เพิ่มมอน', monsterCustomRemoveEnemy:'ลบมอน', monsterCustomRemoveWave:'ลบ wave', monsterCustomId:'Monster ID', monsterCustomLevel:'Level', monsterCustomMaxHP:'Max HP (ไม่บังคับ)', monsterCustomNaturalHP:'เว้นว่างเพื่อใช้ HP ปกติของมอน', monsterCustomEmptyWave:'Wave {number} ยังไม่มีมอน', monsterCustomInvalidEntry:'กรอก Monster ID, Level และ Max HP ให้ถูกต้อง', monsterCustomSaveSuccess:'บันทึก wave ของ Calyx แล้ว', monsterCustomSaveError:'บันทึก wave ไม่สำเร็จ: {error}' },
'zh-CN': { tabMonsterSettings:'👾 怪物设置', monsterSettingsTitle:'👾 怪物设置', monsterSettingsDescription:'查看当前客户端资源中的关卡与波次。自定义敌人波次仅适用于 Golden / Crimson Calyx。', monsterSettingsRule:'历战余响、凝滞虚影、侵蚀隧洞和末日幻影等终局关卡使用客户端数据,不能在此修改。', monsterModeMoc:'混沌回忆', monsterModePf:'虚构叙事', monsterModeAs:'末日幻影', monsterModeAa:'异相仲裁', monsterModeCustom:'自定义敌人', monsterModeSu:'模拟宇宙', monsterSettingsLoading:'正在读取客户端关卡资源…', monsterSettingsNoStages:'连接的客户端资源中没有找到关卡。', monsterSettingsGroup:'关卡组', monsterSettingsGroupOption:'组 {id} · {count} 项', monsterSettingsChallenge:'挑战条目', monsterSettingsStageOption:'条目 {id}{boss}', monsterSettingsBoss:'首领', monsterSettingsStageTitle:'条目 {id}', monsterSettingsDefaultBuff:'默认增益 ID {id}', monsterSettingsEncounterTitle:'战斗关卡 {id}', monsterSettingsLevel:'等级 {level}', monsterSettingsWaveCount:'{count} 波', monsterSettingsWave:'第 {number} 波', monsterSettingsSuReadOnly:'此服务器暂不支持编辑模拟宇宙敌人,也没有已验证的模拟宇宙敌人资源。', monsterSettingsCatalogError:'无法读取客户端关卡资源:{error}', monsterSettingsReadOnly:'只读:连接 GaC 服务器以读取客户端资源目录。', monsterSettingsLoaded:'只读关卡数据 · 来源:{source}', monsterSettingsClientResources:'客户端资源', monsterSettingsDataUnavailable:'无法读取 FreeSR 玩家数据', monsterCustomTitle:'自定义敌人波次', monsterCustomDescription:'仅在 GaC-Srtool 会话有效时进入 Golden 或 Crimson Calyx 才会使用这些波次。', monsterCustomCalyxOnly:'此设置不会替换历战余响、凝滞虚影、侵蚀隧洞、混沌回忆、虚构叙事、末日幻影或异相仲裁的敌人。', monsterCustomConnected:'已连接。更改会保存到服务器,并在下次进入符合条件的 Calyx 时生效。', monsterCustomConnect:'连接 GaC 后才能编辑和保存 Calyx 自定义波次。', monsterCustomEmpty:'尚未设置自定义波次。选择“使用客户端关卡”可恢复客户端 Calyx 波次。', monsterCustomAddWave:'添加波次', monsterCustomUseClient:'使用客户端关卡', monsterCustomSave:'保存自定义波次', monsterCustomSaved:'已保存 · 仅用于 Golden / Crimson Calyx', monsterCustomUnsaved:'有未保存的更改', monsterCustomAddEnemy:'添加敌人', monsterCustomRemoveEnemy:'删除敌人', monsterCustomRemoveWave:'删除波次', monsterCustomId:'怪物 ID', monsterCustomLevel:'等级', monsterCustomMaxHP:'最大生命值(可选)', monsterCustomNaturalHP:'留空 = 使用怪物默认生命值', monsterCustomEmptyWave:'第 {number} 波没有敌人。', monsterCustomInvalidEntry:'请输入有效的怪物 ID、等级和最大生命值。', monsterCustomSaveSuccess:'Calyx 自定义波次已保存。', monsterCustomSaveError:'无法保存自定义波次:{error}' },
'zh-TW': { tabMonsterSettings:'👾 怪物設定', monsterSettingsTitle:'👾 怪物設定', monsterSettingsDescription:'檢視目前用戶端資源中的關卡與波次。自訂敵人波次僅適用於 Golden / Crimson Calyx。', monsterSettingsRule:'歷戰餘響、凝滯虛影、侵蝕隧洞與終局關卡使用用戶端資料,無法在此修改。', monsterModeMoc:'混沌回憶', monsterModePf:'虛構敘事', monsterModeAs:'末日幻影', monsterModeAa:'異相仲裁', monsterModeCustom:'自訂敵人', monsterModeSu:'模擬宇宙', monsterSettingsLoading:'正在讀取用戶端關卡資源…', monsterSettingsNoStages:'連線的用戶端資源中找不到關卡。', monsterSettingsGroup:'關卡組', monsterSettingsGroupOption:'組 {id} · {count} 項', monsterSettingsChallenge:'挑戰項目', monsterSettingsStageOption:'項目 {id}{boss}', monsterSettingsBoss:'首領', monsterSettingsStageTitle:'項目 {id}', monsterSettingsDefaultBuff:'預設增益 ID {id}', monsterSettingsEncounterTitle:'戰鬥關卡 {id}', monsterSettingsLevel:'等級 {level}', monsterSettingsWaveCount:'{count} 波', monsterSettingsWave:'第 {number} 波', monsterSettingsSuReadOnly:'此伺服器尚未支援編輯模擬宇宙敵人,也沒有已驗證的模擬宇宙敵人資源。', monsterSettingsCatalogError:'無法讀取用戶端關卡資源:{error}', monsterSettingsReadOnly:'唯讀:連線 GaC 伺服器以讀取用戶端資源目錄。', monsterSettingsLoaded:'唯讀關卡資料 · 來源:{source}', monsterSettingsClientResources:'用戶端資源', monsterSettingsDataUnavailable:'無法讀取 FreeSR 玩家資料', monsterCustomTitle:'自訂敵人波次', monsterCustomDescription:'僅在 GaC-Srtool 工作階段有效時進入 Golden 或 Crimson Calyx 才會使用這些波次。', monsterCustomCalyxOnly:'此設定不會替換歷戰餘響、凝滯虛影、侵蝕隧洞、混沌回憶、虛構敘事、末日幻影或異相仲裁的敵人。', monsterCustomConnected:'已連線。變更會儲存至伺服器,並於下次進入符合條件的 Calyx 時生效。', monsterCustomConnect:'連線 GaC 後才能編輯及儲存 Calyx 自訂波次。', monsterCustomEmpty:'尚未設定自訂波次。選擇「使用用戶端關卡」可還原用戶端 Calyx 波次。', monsterCustomAddWave:'新增波次', monsterCustomUseClient:'使用用戶端關卡', monsterCustomSave:'儲存自訂波次', monsterCustomSaved:'已儲存 · 僅用於 Golden / Crimson Calyx', monsterCustomUnsaved:'有尚未儲存的變更', monsterCustomAddEnemy:'新增敵人', monsterCustomRemoveEnemy:'移除敵人', monsterCustomRemoveWave:'移除波次', monsterCustomId:'怪物 ID', monsterCustomLevel:'等級', monsterCustomMaxHP:'最大生命值(選填)', monsterCustomNaturalHP:'留白 = 使用怪物預設生命值', monsterCustomEmptyWave:'第 {number} 波沒有敵人。', monsterCustomInvalidEntry:'請輸入有效的怪物 ID、等級和最大生命值。', monsterCustomSaveSuccess:'Calyx 自訂波次已儲存。', monsterCustomSaveError:'無法儲存自訂波次:{error}' },
ja: { tabMonsterSettings:'👾 モンスター設定', monsterSettingsTitle:'👾 モンスター設定', monsterSettingsDescription:'現在のクライアントリソースにあるステージとウェーブを確認します。カスタム敵ウェーブはGolden / Crimson Calyxのみで使用できます。', monsterSettingsRule:'週ボス、凝結虚影、侵食トンネル、エンドゲームはクライアントのステージデータを使い、ここから変更できません。', monsterModeMoc:'忘却の庭', monsterModePf:'虚構叙事', monsterModeAs:'末日の幻影', monsterModeAa:'異相仲裁', monsterModeCustom:'カスタム敵', monsterModeSu:'模擬宇宙', monsterSettingsLoading:'クライアントのステージリソースを読み込み中…', monsterSettingsNoStages:'接続中のクライアントリソースにステージがありません。', monsterSettingsGroup:'ステージグループ', monsterSettingsGroupOption:'グループ {id} · {count} 件', monsterSettingsChallenge:'挑戦項目', monsterSettingsStageOption:'項目 {id}{boss}', monsterSettingsBoss:'ボス', monsterSettingsStageTitle:'項目 {id}', monsterSettingsDefaultBuff:'初期バフ ID {id}', monsterSettingsEncounterTitle:'戦闘ステージ {id}', monsterSettingsLevel:'レベル {level}', monsterSettingsWaveCount:'{count} ウェーブ', monsterSettingsWave:'ウェーブ {number}', monsterSettingsSuReadOnly:'このサーバーは模擬宇宙の敵編集に対応していません。確認済みの模擬宇宙リソースもありません。', monsterSettingsCatalogError:'クライアントのステージリソースを読み込めません: {error}', monsterSettingsReadOnly:'読み取り専用です。GaCサーバーに接続するとクライアントリソースを読み込めます。', monsterSettingsLoaded:'ステージデータ(読み取り専用)· ソース: {source}', monsterSettingsClientResources:'クライアントリソース', monsterSettingsDataUnavailable:'FreeSRのプレイヤーデータを読み込めません', monsterCustomTitle:'カスタム敵ウェーブ', monsterCustomDescription:'GaC-Srtoolのセッションが有効な状態でGoldenまたはCrimson Calyxに入る場合のみ適用されます。', monsterCustomCalyxOnly:'週ボス、凝結虚影、侵食トンネル、忘却の庭、虚構叙事、末日の幻影、異相仲裁の敵には適用されません。', monsterCustomConnected:'接続済みです。変更はサーバーに保存され、次回対象のCalyxに入ると適用されます。', monsterCustomConnect:'GaCに接続するとCalyxのカスタムウェーブを編集・保存できます。', monsterCustomEmpty:'カスタムウェーブは未設定です。「クライアントのステージを使用」でCalyxの既定ウェーブに戻します。', monsterCustomAddWave:'ウェーブを追加', monsterCustomUseClient:'クライアントのステージを使用', monsterCustomSave:'カスタムウェーブを保存', monsterCustomSaved:'保存済み · Golden / Crimson Calyxのみ', monsterCustomUnsaved:'未保存の変更があります', monsterCustomAddEnemy:'敵を追加', monsterCustomRemoveEnemy:'敵を削除', monsterCustomRemoveWave:'ウェーブを削除', monsterCustomId:'モンスターID', monsterCustomLevel:'レベル', monsterCustomMaxHP:'最大HP(任意)', monsterCustomNaturalHP:'空欄 = 通常HPを使用', monsterCustomEmptyWave:'ウェーブ {number} に敵がいません。', monsterCustomInvalidEntry:'有効なモンスターID、レベル、最大HPを入力してください。', monsterCustomSaveSuccess:'Calyxのカスタムウェーブを保存しました。', monsterCustomSaveError:'保存できませんでした: {error}' },
ko: { tabMonsterSettings:'👾 몬스터 설정', monsterSettingsTitle:'👾 몬스터 설정', monsterSettingsDescription:'현재 클라이언트 리소스의 스테이지와 웨이브를 확인합니다. 커스텀 적 웨이브는 Golden / Crimson Calyx에서만 사용됩니다.', monsterSettingsRule:'주간 보스, 정체된 허영, 침식된 터널, 엔드게임은 클라이언트 스테이지 데이터를 사용하며 여기서 변경할 수 없습니다.', monsterModeMoc:'혼돈의 기억', monsterModePf:'허구 이야기', monsterModeAs:'종말의 그림자', monsterModeAa:'이상 중재', monsterModeCustom:'커스텀 적', monsterModeSu:'시뮬레이션 우주', monsterSettingsLoading:'클라이언트 스테이지 리소스를 읽는 중…', monsterSettingsNoStages:'연결된 클라이언트 리소스에서 스테이지를 찾지 못했습니다.', monsterSettingsGroup:'스테이지 그룹', monsterSettingsGroupOption:'그룹 {id} · {count}개 항목', monsterSettingsChallenge:'도전 항목', monsterSettingsStageOption:'항목 {id}{boss}', monsterSettingsBoss:'보스', monsterSettingsStageTitle:'항목 {id}', monsterSettingsDefaultBuff:'기본 버프 ID {id}', monsterSettingsEncounterTitle:'전투 스테이지 {id}', monsterSettingsLevel:'레벨 {level}', monsterSettingsWaveCount:'웨이브 {count}개', monsterSettingsWave:'웨이브 {number}', monsterSettingsSuReadOnly:'이 서버는 시뮬레이션 우주 적 편집을 지원하지 않으며 확인된 SU 리소스도 없습니다.', monsterSettingsCatalogError:'클라이언트 스테이지 리소스를 읽을 수 없습니다: {error}', monsterSettingsReadOnly:'읽기 전용입니다. GaC 서버에 연결하면 클라이언트 리소스 카탈로그를 읽습니다.', monsterSettingsLoaded:'읽기 전용 스테이지 데이터 · 출처: {source}', monsterSettingsClientResources:'클라이언트 리소스', monsterSettingsDataUnavailable:'FreeSR 플레이어 데이터를 읽을 수 없습니다', monsterCustomTitle:'커스텀 적 웨이브', monsterCustomDescription:'GaC-Srtool 세션이 활성화된 상태에서 Golden 또는 Crimson Calyx에 입장할 때만 적용됩니다.', monsterCustomCalyxOnly:'주간 보스, 정체된 허영, 침식된 터널, 혼돈의 기억, 허구 이야기, 종말의 그림자, 이상 중재에는 적용되지 않습니다.', monsterCustomConnected:'연결됨. 변경 사항은 서버에 저장되며 다음 대상 Calyx 입장 때 적용됩니다.', monsterCustomConnect:'GaC에 연결하면 Calyx 커스텀 웨이브를 편집하고 저장할 수 있습니다.', monsterCustomEmpty:'커스텀 웨이브가 없습니다. “클라이언트 스테이지 사용”을 선택하면 기본 Calyx 웨이브로 복원됩니다.', monsterCustomAddWave:'웨이브 추가', monsterCustomUseClient:'클라이언트 스테이지 사용', monsterCustomSave:'커스텀 웨이브 저장', monsterCustomSaved:'저장됨 · Golden / Crimson Calyx 전용', monsterCustomUnsaved:'저장하지 않은 변경 사항', monsterCustomAddEnemy:'적 추가', monsterCustomRemoveEnemy:'적 삭제', monsterCustomRemoveWave:'웨이브 삭제', monsterCustomId:'몬스터 ID', monsterCustomLevel:'레벨', monsterCustomMaxHP:'최대 HP (선택)', monsterCustomNaturalHP:'비우면 기본 HP 사용', monsterCustomEmptyWave:'웨이브 {number}에 적이 없습니다.', monsterCustomInvalidEntry:'올바른 몬스터 ID, 레벨, 최대 HP를 입력하세요.', monsterCustomSaveSuccess:'Calyx 커스텀 웨이브를 저장했습니다.', monsterCustomSaveError:'커스텀 웨이브 저장 실패: {error}' },
vi: { tabMonsterSettings:'👾 Cài đặt quái', monsterSettingsTitle:'👾 Cài đặt quái', monsterSettingsDescription:'Xem stage và wave từ tài nguyên Client hiện tại. Wave quái tùy chỉnh chỉ dùng tại Golden / Crimson Calyx.', monsterSettingsRule:'Boss tuần, Bóng Ngưng Đọng, Hang Ăn Mòn và Endgame dùng dữ liệu stage của Client, không thể sửa tại đây.', monsterModeMoc:'Ký Ức Hỗn Độn', monsterModePf:'Hư Cấu Ảo Ảnh', monsterModeAs:'Ảnh Ảo Tận Thế', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Quái tùy chỉnh', monsterModeSu:'Vũ Trụ Mô Phỏng', monsterSettingsLoading:'Đang đọc tài nguyên stage của Client…', monsterSettingsNoStages:'Không tìm thấy stage trong tài nguyên Client đã kết nối.', monsterSettingsGroup:'Nhóm stage', monsterSettingsGroupOption:'Nhóm {id} · {count} mục', monsterSettingsChallenge:'Mục thử thách', monsterSettingsStageOption:'Mục {id}{boss}', monsterSettingsBoss:'Boss', monsterSettingsStageTitle:'Mục {id}', monsterSettingsDefaultBuff:'Buff mặc định ID {id}', monsterSettingsEncounterTitle:'Stage chiến đấu {id}', monsterSettingsLevel:'Cấp {level}', monsterSettingsWaveCount:'{count} wave', monsterSettingsWave:'Wave {number}', monsterSettingsSuReadOnly:'Máy chủ này chưa hỗ trợ sửa quái trong Vũ Trụ Mô Phỏng và chưa có tài nguyên SU được xác minh.', monsterSettingsCatalogError:'Không đọc được tài nguyên stage của Client: {error}', monsterSettingsReadOnly:'Chỉ đọc: kết nối máy chủ GaC để tải danh mục tài nguyên Client.', monsterSettingsLoaded:'Dữ liệu stage chỉ đọc · nguồn: {source}', monsterSettingsClientResources:'tài nguyên Client', monsterSettingsDataUnavailable:'Không có dữ liệu người chơi FreeSR', monsterCustomTitle:'Wave quái tùy chỉnh', monsterCustomDescription:'Chỉ dùng các wave này khi vào Golden hoặc Crimson Calyx với phiên GaC-Srtool đang hoạt động.', monsterCustomCalyxOnly:'Thiết lập này không thay quái của Boss tuần, Bóng Ngưng Đọng, Hang Ăn Mòn, MoC, Pure Fiction, Apocalyptic Shadow hoặc AA.', monsterCustomConnected:'Đã kết nối. Thay đổi được lưu lên máy chủ và áp dụng ở lần vào Calyx hợp lệ tiếp theo.', monsterCustomConnect:'Kết nối GaC để sửa và lưu wave Calyx tùy chỉnh.', monsterCustomEmpty:'Chưa có wave tùy chỉnh. Chọn “Dùng stage Client” để khôi phục wave Calyx đã cài.', monsterCustomAddWave:'Thêm wave', monsterCustomUseClient:'Dùng stage Client', monsterCustomSave:'Lưu wave tùy chỉnh', monsterCustomSaved:'Đã lưu · chỉ áp dụng Golden / Crimson Calyx', monsterCustomUnsaved:'Có thay đổi chưa lưu', monsterCustomAddEnemy:'Thêm quái', monsterCustomRemoveEnemy:'Xóa quái', monsterCustomRemoveWave:'Xóa wave', monsterCustomId:'Monster ID', monsterCustomLevel:'Cấp', monsterCustomMaxHP:'HP tối đa (không bắt buộc)', monsterCustomNaturalHP:'Để trống = HP mặc định', monsterCustomEmptyWave:'Wave {number} chưa có quái.', monsterCustomInvalidEntry:'Nhập Monster ID, cấp và HP tối đa hợp lệ.', monsterCustomSaveSuccess:'Đã lưu wave tùy chỉnh Calyx.', monsterCustomSaveError:'Không lưu được wave tùy chỉnh: {error}' },
id: { tabMonsterSettings:'👾 Pengaturan Monster', monsterSettingsTitle:'👾 Pengaturan Monster', monsterSettingsDescription:'Lihat stage dan wave dari resource Client yang terpasang. Wave musuh kustom hanya berlaku di Golden / Crimson Calyx.', monsterSettingsRule:'Boss mingguan, Stagnant Shadow, Cavern of Corrosion, dan Endgame memakai data stage Client dan tidak dapat diubah di sini.', monsterModeMoc:'Memory of Chaos', monsterModePf:'Pure Fiction', monsterModeAs:'Apocalyptic Shadow', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Musuh Kustom', monsterModeSu:'Simulated Universe', monsterSettingsLoading:'Membaca resource stage Client…', monsterSettingsNoStages:'Tidak ada stage dalam resource Client yang terhubung.', monsterSettingsGroup:'Grup stage', monsterSettingsGroupOption:'Grup {id} · {count} entri', monsterSettingsChallenge:'Entri tantangan', monsterSettingsStageOption:'Entri {id}{boss}', monsterSettingsBoss:'Boss', monsterSettingsStageTitle:'Entri {id}', monsterSettingsDefaultBuff:'Buff default ID {id}', monsterSettingsEncounterTitle:'Stage pertarungan {id}', monsterSettingsLevel:'Level {level}', monsterSettingsWaveCount:'{count} wave', monsterSettingsWave:'Wave {number}', monsterSettingsSuReadOnly:'Server ini belum mendukung pengeditan musuh Simulated Universe dan belum memiliki resource SU terverifikasi.', monsterSettingsCatalogError:'Resource stage Client gagal dibaca: {error}', monsterSettingsReadOnly:'Hanya-baca: sambungkan ke server GaC untuk memuat katalog resource Client.', monsterSettingsLoaded:'Data stage hanya-baca · sumber: {source}', monsterSettingsClientResources:'resource Client', monsterSettingsDataUnavailable:'Data pemain FreeSR tidak tersedia', monsterCustomTitle:'Wave Musuh Kustom', monsterCustomDescription:'Wave ini hanya digunakan saat masuk Golden atau Crimson Calyx dengan sesi GaC-Srtool aktif.', monsterCustomCalyxOnly:'Pengaturan ini tidak mengganti musuh Boss mingguan, Stagnant Shadow, Cavern of Corrosion, MoC, Pure Fiction, Apocalyptic Shadow, atau AA.', monsterCustomConnected:'Terhubung. Perubahan disimpan ke server dan berlaku saat masuk Calyx yang sesuai berikutnya.', monsterCustomConnect:'Sambungkan ke GaC untuk mengedit dan menyimpan wave Calyx kustom.', monsterCustomEmpty:'Belum ada wave kustom. Pilih “Gunakan stage Client” untuk memulihkan wave Calyx bawaan.', monsterCustomAddWave:'Tambah wave', monsterCustomUseClient:'Gunakan stage Client', monsterCustomSave:'Simpan wave kustom', monsterCustomSaved:'Tersimpan · hanya untuk Golden / Crimson Calyx', monsterCustomUnsaved:'Ada perubahan yang belum disimpan', monsterCustomAddEnemy:'Tambah musuh', monsterCustomRemoveEnemy:'Hapus musuh', monsterCustomRemoveWave:'Hapus wave', monsterCustomId:'Monster ID', monsterCustomLevel:'Level', monsterCustomMaxHP:'HP Maks (opsional)', monsterCustomNaturalHP:'Kosong = HP normal monster', monsterCustomEmptyWave:'Wave {number} belum memiliki musuh.', monsterCustomInvalidEntry:'Masukkan Monster ID, Level, dan Max HP yang valid.', monsterCustomSaveSuccess:'Wave kustom Calyx tersimpan.', monsterCustomSaveError:'Wave kustom gagal disimpan: {error}' },
es: { tabMonsterSettings:'👾 Ajustes de monstruos', monsterSettingsTitle:'👾 Ajustes de monstruos', monsterSettingsDescription:'Consulta fases y oleadas de los recursos del cliente instalado. Las oleadas personalizadas solo se aplican en Golden / Crimson Calyx.', monsterSettingsRule:'Los jefes semanales, Sombra estancada, Caverna de la corrosión y Endgame usan datos del cliente y no se modifican aquí.', monsterModeMoc:'Memoria del caos', monsterModePf:'Ficción pura', monsterModeAs:'Sombra apocalíptica', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Enemigo personalizado', monsterModeSu:'Universo Simulado', monsterSettingsLoading:'Leyendo recursos de fases del cliente…', monsterSettingsNoStages:'No se encontraron fases en los recursos del cliente conectado.', monsterSettingsGroup:'Grupo de fases', monsterSettingsGroupOption:'Grupo {id} · {count} entradas', monsterSettingsChallenge:'Entrada del desafío', monsterSettingsStageOption:'Entrada {id}{boss}', monsterSettingsBoss:'Jefe', monsterSettingsStageTitle:'Entrada {id}', monsterSettingsDefaultBuff:'Beneficio predeterminado ID {id}', monsterSettingsEncounterTitle:'Fase de combate {id}', monsterSettingsLevel:'Nivel {level}', monsterSettingsWaveCount:'{count} oleadas', monsterSettingsWave:'Oleada {number}', monsterSettingsSuReadOnly:'Este servidor no permite editar enemigos del Universo Simulado y no dispone de recursos SU verificados.', monsterSettingsCatalogError:'No se pudieron leer los recursos de fases del cliente: {error}', monsterSettingsReadOnly:'Solo lectura: conecta con el servidor GaC para cargar el catálogo del cliente.', monsterSettingsLoaded:'Datos de fase de solo lectura · origen: {source}', monsterSettingsClientResources:'recursos del cliente', monsterSettingsDataUnavailable:'No hay datos de jugador de FreeSR', monsterCustomTitle:'Oleadas de enemigos personalizadas', monsterCustomDescription:'Solo se usan al entrar en Golden o Crimson Calyx con la sesión de GaC-Srtool activa.', monsterCustomCalyxOnly:'No reemplaza enemigos de jefes semanales, Sombra estancada, Caverna de la corrosión, MoC, Pure Fiction, Apocalyptic Shadow ni AA.', monsterCustomConnected:'Conectado. Los cambios se guardan en el servidor y se aplican en la próxima entrada a un Calyx compatible.', monsterCustomConnect:'Conecta con GaC para editar y guardar oleadas personalizadas de Calyx.', monsterCustomEmpty:'No hay oleadas personalizadas. Usa «Usar fases del cliente» para restaurar las oleadas instaladas de Calyx.', monsterCustomAddWave:'Añadir oleada', monsterCustomUseClient:'Usar fases del cliente', monsterCustomSave:'Guardar oleadas', monsterCustomSaved:'Guardado · solo para Golden / Crimson Calyx', monsterCustomUnsaved:'Hay cambios sin guardar', monsterCustomAddEnemy:'Añadir enemigo', monsterCustomRemoveEnemy:'Quitar enemigo', monsterCustomRemoveWave:'Quitar oleada', monsterCustomId:'Monster ID', monsterCustomLevel:'Nivel', monsterCustomMaxHP:'PV máx. (opcional)', monsterCustomNaturalHP:'Vacío = PV normal del enemigo', monsterCustomEmptyWave:'La oleada {number} no tiene enemigos.', monsterCustomInvalidEntry:'Introduce un Monster ID, nivel y PV máx. válidos.', monsterCustomSaveSuccess:'Oleadas personalizadas de Calyx guardadas.', monsterCustomSaveError:'No se pudieron guardar las oleadas: {error}' },
fr: { tabMonsterSettings:'👾 Réglages des monstres', monsterSettingsTitle:'👾 Réglages des monstres', monsterSettingsDescription:'Consultez les stages et vagues des ressources du client installé. Les vagues personnalisées ne s’appliquent qu’aux Golden / Crimson Calyx.', monsterSettingsRule:'Les boss hebdomadaires, Ombre stagnante, Caverne de la corrosion et Endgame utilisent les données du client et ne sont pas modifiables ici.', monsterModeMoc:'Mémoire du chaos', monsterModePf:'Pure Fiction', monsterModeAs:'Apocalyptic Shadow', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Ennemi personnalisé', monsterModeSu:'Univers simulé', monsterSettingsLoading:'Lecture des ressources de stage du client…', monsterSettingsNoStages:'Aucun stage trouvé dans les ressources du client connecté.', monsterSettingsGroup:'Groupe de stages', monsterSettingsGroupOption:'Groupe {id} · {count} entrées', monsterSettingsChallenge:'Entrée de défi', monsterSettingsStageOption:'Entrée {id}{boss}', monsterSettingsBoss:'Boss', monsterSettingsStageTitle:'Entrée {id}', monsterSettingsDefaultBuff:'Bonus par défaut ID {id}', monsterSettingsEncounterTitle:'Stage de combat {id}', monsterSettingsLevel:'Niveau {level}', monsterSettingsWaveCount:'{count} vagues', monsterSettingsWave:'Vague {number}', monsterSettingsSuReadOnly:'Ce serveur ne permet pas de modifier les ennemis de l’Univers simulé et ne dispose pas de ressources SU vérifiées.', monsterSettingsCatalogError:'Impossible de lire les ressources de stage du client : {error}', monsterSettingsReadOnly:'Lecture seule : connectez-vous au serveur GaC pour charger le catalogue du client.', monsterSettingsLoaded:'Données de stage en lecture seule · source : {source}', monsterSettingsClientResources:'ressources du client', monsterSettingsDataUnavailable:'Données joueur FreeSR indisponibles', monsterCustomTitle:'Vagues d’ennemis personnalisées', monsterCustomDescription:'Ces vagues sont utilisées uniquement à l’entrée d’un Golden ou Crimson Calyx avec une session GaC-Srtool active.', monsterCustomCalyxOnly:'Ne remplace pas les ennemis des boss hebdomadaires, Ombre stagnante, Caverne de la corrosion, MoC, Pure Fiction, Apocalyptic Shadow ou AA.', monsterCustomConnected:'Connecté. Les modifications sont enregistrées sur le serveur et s’appliqueront à la prochaine entrée dans un Calyx compatible.', monsterCustomConnect:'Connectez-vous à GaC pour modifier et enregistrer les vagues de Calyx.', monsterCustomEmpty:'Aucune vague personnalisée. « Utiliser les stages du client » restaure les vagues Calyx installées.', monsterCustomAddWave:'Ajouter une vague', monsterCustomUseClient:'Utiliser les stages du client', monsterCustomSave:'Enregistrer les vagues', monsterCustomSaved:'Enregistré · Golden / Crimson Calyx uniquement', monsterCustomUnsaved:'Modifications non enregistrées', monsterCustomAddEnemy:'Ajouter un ennemi', monsterCustomRemoveEnemy:'Supprimer l’ennemi', monsterCustomRemoveWave:'Supprimer la vague', monsterCustomId:'Monster ID', monsterCustomLevel:'Niveau', monsterCustomMaxHP:'PV max (facultatif)', monsterCustomNaturalHP:'Vide = PV normaux du monstre', monsterCustomEmptyWave:'La vague {number} ne contient aucun ennemi.', monsterCustomInvalidEntry:'Saisissez un Monster ID, un niveau et des PV max valides.', monsterCustomSaveSuccess:'Vagues personnalisées de Calyx enregistrées.', monsterCustomSaveError:'Impossible d’enregistrer les vagues : {error}' },
de: { tabMonsterSettings:'👾 Monster-Einstellungen', monsterSettingsTitle:'👾 Monster-Einstellungen', monsterSettingsDescription:'Stages und Wellen aus den installierten Client-Ressourcen anzeigen. Eigene Gegnerwellen gelten nur im Golden / Crimson Calyx.', monsterSettingsRule:'Wöchentliche Bosse, stagnierende Schatten, Höhle der Korrosion und Endgame nutzen Clientdaten und können hier nicht geändert werden.', monsterModeMoc:'Memory of Chaos', monsterModePf:'Pure Fiction', monsterModeAs:'Apocalyptic Shadow', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Eigene Gegner', monsterModeSu:'Simuliertes Universum', monsterSettingsLoading:'Client-Stage-Ressourcen werden gelesen…', monsterSettingsNoStages:'In den verbundenen Client-Ressourcen wurden keine Stages gefunden.', monsterSettingsGroup:'Stage-Gruppe', monsterSettingsGroupOption:'Gruppe {id} · {count} Einträge', monsterSettingsChallenge:'Herausforderungseintrag', monsterSettingsStageOption:'Eintrag {id}{boss}', monsterSettingsBoss:'Boss', monsterSettingsStageTitle:'Eintrag {id}', monsterSettingsDefaultBuff:'Standardbuff-ID {id}', monsterSettingsEncounterTitle:'Kampfstage {id}', monsterSettingsLevel:'Stufe {level}', monsterSettingsWaveCount:'{count} Wellen', monsterSettingsWave:'Welle {number}', monsterSettingsSuReadOnly:'Dieser Server unterstützt keine Bearbeitung von Gegnern im Simulierten Universum; bestätigte SU-Ressourcen fehlen ebenfalls.', monsterSettingsCatalogError:'Client-Stage-Ressourcen konnten nicht gelesen werden: {error}', monsterSettingsReadOnly:'Nur lesbar: Mit dem GaC-Server verbinden, um den Client-Katalog zu laden.', monsterSettingsLoaded:'Stage-Daten, nur lesbar · Quelle: {source}', monsterSettingsClientResources:'Client-Ressourcen', monsterSettingsDataUnavailable:'FreeSR-Spielerdaten sind nicht verfügbar', monsterCustomTitle:'Eigene Gegnerwellen', monsterCustomDescription:'Diese Wellen gelten nur beim Betreten eines Golden oder Crimson Calyx mit aktiver GaC-Srtool-Sitzung.', monsterCustomCalyxOnly:'Ersetzt keine Gegner bei wöchentlichen Bossen, stagnierenden Schatten, Höhle der Korrosion, MoC, Pure Fiction, Apocalyptic Shadow oder AA.', monsterCustomConnected:'Verbunden. Änderungen werden auf dem Server gespeichert und beim nächsten passenden Calyx-Eintritt angewendet.', monsterCustomConnect:'Mit GaC verbinden, um Calyx-Wellen zu bearbeiten und zu speichern.', monsterCustomEmpty:'Keine eigenen Wellen gesetzt. „Client-Stages verwenden“ stellt die installierten Calyx-Wellen wieder her.', monsterCustomAddWave:'Welle hinzufügen', monsterCustomUseClient:'Client-Stages verwenden', monsterCustomSave:'Wellen speichern', monsterCustomSaved:'Gespeichert · nur Golden / Crimson Calyx', monsterCustomUnsaved:'Ungespeicherte Änderungen', monsterCustomAddEnemy:'Gegner hinzufügen', monsterCustomRemoveEnemy:'Gegner entfernen', monsterCustomRemoveWave:'Welle entfernen', monsterCustomId:'Monster-ID', monsterCustomLevel:'Stufe', monsterCustomMaxHP:'Max. LP (optional)', monsterCustomNaturalHP:'Leer = normale Monster-LP', monsterCustomEmptyWave:'Welle {number} enthält keine Gegner.', monsterCustomInvalidEntry:'Gültige Monster-ID, Stufe und maximale LP eingeben.', monsterCustomSaveSuccess:'Eigene Calyx-Wellen gespeichert.', monsterCustomSaveError:'Wellen konnten nicht gespeichert werden: {error}' },
ru: { tabMonsterSettings:'👾 Настройки монстров', monsterSettingsTitle:'👾 Настройки монстров', monsterSettingsDescription:'Просмотр этапов и волн из ресурсов установленного клиента. Свои волны доступны только в Golden / Crimson Calyx.', monsterSettingsRule:'Еженедельные боссы, Застойная тень, Пещера коррозии и эндгейм используют данные клиента и здесь не изменяются.', monsterModeMoc:'Зал забвения', monsterModePf:'Чистый вымысел', monsterModeAs:'Апокалиптическая тень', monsterModeAa:'Аномальное противостояние', monsterModeCustom:'Свои монстры', monsterModeSu:'Виртуальная вселенная', monsterSettingsLoading:'Чтение ресурсов этапов клиента…', monsterSettingsNoStages:'В ресурсах подключённого клиента этапы не найдены.', monsterSettingsGroup:'Группа этапов', monsterSettingsGroupOption:'Группа {id} · записей: {count}', monsterSettingsChallenge:'Запись испытания', monsterSettingsStageOption:'Запись {id}{boss}', monsterSettingsBoss:'Босс', monsterSettingsStageTitle:'Запись {id}', monsterSettingsDefaultBuff:'Базовый эффект ID {id}', monsterSettingsEncounterTitle:'Этап боя {id}', monsterSettingsLevel:'Уровень {level}', monsterSettingsWaveCount:'Волн: {count}', monsterSettingsWave:'Волна {number}', monsterSettingsSuReadOnly:'Сервер не поддерживает редактирование монстров Виртуальной вселенной; проверенных ресурсов SU нет.', monsterSettingsCatalogError:'Не удалось прочитать ресурсы этапов клиента: {error}', monsterSettingsReadOnly:'Только чтение: подключитесь к GaC, чтобы загрузить каталог клиента.', monsterSettingsLoaded:'Данные этапа, только чтение · источник: {source}', monsterSettingsClientResources:'ресурсы клиента', monsterSettingsDataUnavailable:'Данные игрока FreeSR недоступны', monsterCustomTitle:'Свои волны монстров', monsterCustomDescription:'Волны применяются только при входе в Golden или Crimson Calyx с активной сессией GaC-Srtool.', monsterCustomCalyxOnly:'Не заменяет монстров еженедельных боссов, Застойной тени, Пещеры коррозии, MoC, Pure Fiction, Apocalyptic Shadow или AA.', monsterCustomConnected:'Подключено. Изменения сохранены на сервере и применятся при следующем подходящем входе в Calyx.', monsterCustomConnect:'Подключитесь к GaC, чтобы редактировать и сохранять волны Calyx.', monsterCustomEmpty:'Свои волны не заданы. «Использовать этапы клиента» восстановит волны Calyx из клиента.', monsterCustomAddWave:'Добавить волну', monsterCustomUseClient:'Использовать этапы клиента', monsterCustomSave:'Сохранить волны', monsterCustomSaved:'Сохранено · только Golden / Crimson Calyx', monsterCustomUnsaved:'Есть несохранённые изменения', monsterCustomAddEnemy:'Добавить монстра', monsterCustomRemoveEnemy:'Удалить монстра', monsterCustomRemoveWave:'Удалить волну', monsterCustomId:'ID монстра', monsterCustomLevel:'Уровень', monsterCustomMaxHP:'Макс. HP (необязательно)', monsterCustomNaturalHP:'Пусто = обычное HP монстра', monsterCustomEmptyWave:'В волне {number} нет монстров.', monsterCustomInvalidEntry:'Введите корректные ID монстра, уровень и макс. HP.', monsterCustomSaveSuccess:'Свои волны Calyx сохранены.', monsterCustomSaveError:'Не удалось сохранить волны: {error}' },
pt: { tabMonsterSettings:'👾 Configurações de monstros', monsterSettingsTitle:'👾 Configurações de monstros', monsterSettingsDescription:'Consulte fases e ondas dos recursos do Client instalado. Ondas personalizadas só se aplicam em Golden / Crimson Calyx.', monsterSettingsRule:'Chefes semanais, Sombra Estagnada, Caverna da Corrosão e Endgame usam dados do Client e não podem ser alterados aqui.', monsterModeMoc:'Memória do Caos', monsterModePf:'Ficção Pura', monsterModeAs:'Sombra Apocalíptica', monsterModeAa:'Anomaly Arbitration', monsterModeCustom:'Inimigo personalizado', monsterModeSu:'Universo Simulado', monsterSettingsLoading:'Lendo recursos de fase do Client…', monsterSettingsNoStages:'Nenhuma fase encontrada nos recursos do Client conectado.', monsterSettingsGroup:'Grupo de fases', monsterSettingsGroupOption:'Grupo {id} · {count} entradas', monsterSettingsChallenge:'Entrada de desafio', monsterSettingsStageOption:'Entrada {id}{boss}', monsterSettingsBoss:'Chefe', monsterSettingsStageTitle:'Entrada {id}', monsterSettingsDefaultBuff:'Bônus padrão ID {id}', monsterSettingsEncounterTitle:'Fase de combate {id}', monsterSettingsLevel:'Nível {level}', monsterSettingsWaveCount:'{count} ondas', monsterSettingsWave:'Onda {number}', monsterSettingsSuReadOnly:'Este servidor não permite editar inimigos do Universo Simulado e não possui recursos SU verificados.', monsterSettingsCatalogError:'Não foi possível ler recursos de fase do Client: {error}', monsterSettingsReadOnly:'Somente leitura: conecte-se ao servidor GaC para carregar o catálogo do Client.', monsterSettingsLoaded:'Dados de fase somente leitura · origem: {source}', monsterSettingsClientResources:'recursos do Client', monsterSettingsDataUnavailable:'Dados de jogador do FreeSR indisponíveis', monsterCustomTitle:'Ondas de inimigos personalizadas', monsterCustomDescription:'Estas ondas só são usadas ao entrar em Golden ou Crimson Calyx com a sessão GaC-Srtool ativa.', monsterCustomCalyxOnly:'Não substitui inimigos de chefes semanais, Sombra Estagnada, Caverna da Corrosão, MoC, Pure Fiction, Apocalyptic Shadow ou AA.', monsterCustomConnected:'Conectado. As alterações são salvas no servidor e aplicadas na próxima entrada elegível em Calyx.', monsterCustomConnect:'Conecte-se ao GaC para editar e salvar ondas personalizadas de Calyx.', monsterCustomEmpty:'Nenhuma onda personalizada definida. “Usar fases do Client” restaura as ondas instaladas de Calyx.', monsterCustomAddWave:'Adicionar onda', monsterCustomUseClient:'Usar fases do Client', monsterCustomSave:'Salvar ondas', monsterCustomSaved:'Salvo · somente Golden / Crimson Calyx', monsterCustomUnsaved:'Há alterações não salvas', monsterCustomAddEnemy:'Adicionar inimigo', monsterCustomRemoveEnemy:'Remover inimigo', monsterCustomRemoveWave:'Remover onda', monsterCustomId:'Monster ID', monsterCustomLevel:'Nível', monsterCustomMaxHP:'HP máx. (opcional)', monsterCustomNaturalHP:'Vazio = HP normal do monstro', monsterCustomEmptyWave:'A onda {number} não tem inimigos.', monsterCustomInvalidEntry:'Informe Monster ID, nível e HP máx. válidos.', monsterCustomSaveSuccess:'Ondas personalizadas de Calyx salvas.', monsterCustomSaveError:'Não foi possível salvar as ondas: {error}' }
};
for (const [language, additions] of Object.entries(MONSTER_SETTINGS_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
const AA_ROOM_SELECTION_TRANSLATIONS = {
en: { monsterAaRoomTitle:'Use selected AA room', monsterAaRoomDescription:'Queue this Client stage for your next Anomaly Arbitration start from the game. The selection is one-shot and expires with the Srtool session.', monsterAaRoomPending:'Queued for the next AA start: {room} (Entry {id}).', monsterAaRoomUse:'Use this room next', monsterAaRoomClear:'Clear queued room', monsterAaRoomLoading:'Checking for a queued AA room…', monsterAaRoomConnect:'Connect to GaC to queue a room for the game.', monsterAaRoomLoadError:'Could not check the queued room: {error}', monsterAaRoomSavedToast:'AA room queued. Start Anomaly Arbitration from the game to use it.', monsterAaRoomClearedToast:'Queued AA room cleared.', monsterAaRoomSaveError:'Could not update the AA room: {error}' },
th: { monsterAaRoomTitle:'เลือกห้อง AA ที่จะเข้า', monsterAaRoomDescription:'ตั้ง stage ของ Client นี้เป็นห้องที่จะเข้าเมื่อเริ่ม Anomaly Arbitration ครั้งถัดไปจากในเกม การเลือกใช้ครั้งเดียวและหมดอายุตาม session ของ Srtool', monsterAaRoomPending:'ตั้งไว้สำหรับการเข้า AA ครั้งถัดไปแล้ว: {room} (รายการ {id})', monsterAaRoomUse:'ใช้ห้องนี้ครั้งถัดไป', monsterAaRoomClear:'ยกเลิกห้องที่ตั้งไว้', monsterAaRoomLoading:'กำลังตรวจสอบห้อง AA ที่ตั้งไว้…', monsterAaRoomConnect:'เชื่อมต่อ GaC เพื่อตั้งห้องให้เกมเข้า', monsterAaRoomLoadError:'ตรวจสอบห้องที่ตั้งไว้ไม่สำเร็จ: {error}', monsterAaRoomSavedToast:'ตั้งห้อง AA แล้ว ให้เริ่ม Anomaly Arbitration จากในเกมเพื่อเข้าไป', monsterAaRoomClearedToast:'ยกเลิกห้อง AA ที่ตั้งไว้แล้ว', monsterAaRoomSaveError:'เปลี่ยนห้อง AA ไม่สำเร็จ: {error}' },
'zh-CN': { monsterAaRoomTitle:'使用所选异相仲裁关卡', monsterAaRoomDescription:'将此客户端关卡设为下次从游戏内开始异相仲裁时进入的房间。该设置只使用一次,并会随 Srtool 会话过期。', monsterAaRoomPending:'已设为下次异相仲裁进入的房间:{room}(条目 {id})。', monsterAaRoomUse:'下次进入此房间', monsterAaRoomClear:'清除已选房间', monsterAaRoomLoading:'正在检查已选的异相仲裁房间…', monsterAaRoomConnect:'连接 GaC 后才能为游戏设置房间。', monsterAaRoomLoadError:'无法检查已选房间:{error}', monsterAaRoomSavedToast:'已设置异相仲裁房间。请从游戏内开始异相仲裁。', monsterAaRoomClearedToast:'已清除异相仲裁房间设置。', monsterAaRoomSaveError:'无法更新异相仲裁房间:{error}' },
'zh-TW': { monsterAaRoomTitle:'選擇下次進入的 AA 房間', monsterAaRoomDescription:'將此 Client 關卡設為下次從遊戲內開始 Anomaly Arbitration 時進入的房間。此設定僅使用一次,並會隨 Srtool 工作階段到期。', monsterAaRoomPending:'已設定為下次 AA 開始時進入的房間:{room}(項目 {id})。', monsterAaRoomUse:'下次使用此房間', monsterAaRoomClear:'清除已設定的房間', monsterAaRoomLoading:'正在檢查已設定的 AA 房間…', monsterAaRoomConnect:'請連線至 GaC,才能為遊戲設定房間。', monsterAaRoomLoadError:'無法檢查已設定的房間:{error}', monsterAaRoomSavedToast:'已設定 AA 房間。請從遊戲內開始 Anomaly Arbitration 以進入此房間。', monsterAaRoomClearedToast:'已清除 AA 房間設定。', monsterAaRoomSaveError:'無法更新 AA 房間:{error}' },
ja: { monsterAaRoomTitle:'次に入るAAの部屋を選択', monsterAaRoomDescription:'このクライアントのステージを、ゲーム内から次にAnomaly Arbitrationを開始したときの部屋に設定します。設定は1回限りで、Srtoolセッションの期限に合わせて失効します。', monsterAaRoomPending:'次回のAA開始時に入る部屋:{room}(エントリー {id})', monsterAaRoomUse:'次回この部屋に入る', monsterAaRoomClear:'選択した部屋を解除', monsterAaRoomLoading:'選択中のAA部屋を確認中…', monsterAaRoomConnect:'ゲームの部屋を設定するにはGaCに接続してください。', monsterAaRoomLoadError:'選択中の部屋を確認できませんでした:{error}', monsterAaRoomSavedToast:'AAの部屋を設定しました。ゲーム内からAnomaly Arbitrationを開始してください。', monsterAaRoomClearedToast:'AAの部屋設定を解除しました。', monsterAaRoomSaveError:'AAの部屋を更新できませんでした:{error}' },
ko: { monsterAaRoomTitle:'다음에 입장할 AA 방 선택', monsterAaRoomDescription:'이 Client 스테이지를 게임에서 다음 Anomaly Arbitration을 시작할 때 입장할 방으로 설정합니다. 한 번만 적용되며 Srtool 세션과 함께 만료됩니다.', monsterAaRoomPending:'다음 AA 시작 시 입장할 방: {room} (항목 {id})', monsterAaRoomUse:'다음에 이 방 입장', monsterAaRoomClear:'예약된 방 지우기', monsterAaRoomLoading:'예약된 AA 방 확인 중…', monsterAaRoomConnect:'게임에 방을 예약하려면 GaC에 연결하세요.', monsterAaRoomLoadError:'예약된 방을 확인하지 못했습니다: {error}', monsterAaRoomSavedToast:'AA 방을 예약했습니다. 게임에서 Anomaly Arbitration을 시작하세요.', monsterAaRoomClearedToast:'예약된 AA 방을 지웠습니다.', monsterAaRoomSaveError:'AA 방을 변경하지 못했습니다: {error}' },
vi: { monsterAaRoomTitle:'Chọn phòng AA sẽ vào', monsterAaRoomDescription:'Đặt stage của Client này làm phòng sẽ vào khi bắt đầu Anomaly Arbitration tiếp theo trong game. Lựa chọn chỉ dùng một lần và hết hạn cùng phiên Srtool.', monsterAaRoomPending:'Đã đặt cho lần bắt đầu AA tiếp theo: {room} (Mục {id}).', monsterAaRoomUse:'Dùng phòng này tiếp theo', monsterAaRoomClear:'Xóa phòng đã đặt', monsterAaRoomLoading:'Đang kiểm tra phòng AA đã đặt…', monsterAaRoomConnect:'Kết nối GaC để đặt phòng cho game.', monsterAaRoomLoadError:'Không thể kiểm tra phòng đã đặt: {error}', monsterAaRoomSavedToast:'Đã đặt phòng AA. Hãy bắt đầu Anomaly Arbitration trong game để vào phòng.', monsterAaRoomClearedToast:'Đã xóa phòng AA đã đặt.', monsterAaRoomSaveError:'Không thể cập nhật phòng AA: {error}' },
id: { monsterAaRoomTitle:'Pilih ruang AA berikutnya', monsterAaRoomDescription:'Atur stage Client ini sebagai ruang yang dimasuki saat memulai Anomaly Arbitration berikutnya dari dalam game. Pilihan hanya berlaku sekali dan kedaluwarsa bersama sesi Srtool.', monsterAaRoomPending:'Diatur untuk mulai AA berikutnya: {room} (Entri {id}).', monsterAaRoomUse:'Gunakan ruang ini berikutnya', monsterAaRoomClear:'Hapus ruang yang diatur', monsterAaRoomLoading:'Memeriksa ruang AA yang diatur…', monsterAaRoomConnect:'Hubungkan ke GaC untuk mengatur ruang bagi game.', monsterAaRoomLoadError:'Tidak dapat memeriksa ruang yang diatur: {error}', monsterAaRoomSavedToast:'Ruang AA diatur. Mulai Anomaly Arbitration dari dalam game untuk memakainya.', monsterAaRoomClearedToast:'Pengaturan ruang AA dihapus.', monsterAaRoomSaveError:'Tidak dapat memperbarui ruang AA: {error}' },
es: { monsterAaRoomTitle:'Elegir la próxima sala de AA', monsterAaRoomDescription:'Programa esta fase del cliente como la sala para la próxima vez que inicies Anomaly Arbitration desde el juego. La selección se usa una vez y caduca con la sesión de Srtool.', monsterAaRoomPending:'Programada para el próximo inicio de AA: {room} (entrada {id}).', monsterAaRoomUse:'Usar esta sala la próxima vez', monsterAaRoomClear:'Borrar sala programada', monsterAaRoomLoading:'Comprobando la sala de AA programada…', monsterAaRoomConnect:'Conéctate a GaC para programar una sala para el juego.', monsterAaRoomLoadError:'No se pudo comprobar la sala programada: {error}', monsterAaRoomSavedToast:'Sala de AA programada. Inicia Anomaly Arbitration desde el juego para entrar.', monsterAaRoomClearedToast:'Se borró la sala de AA programada.', monsterAaRoomSaveError:'No se pudo actualizar la sala de AA: {error}' },
fr: { monsterAaRoomTitle:'Choisir la prochaine salle AA', monsterAaRoomDescription:'Programmez ce stage du client comme salle à rejoindre au prochain lancement d’Anomaly Arbitration depuis le jeu. Le choix ne sert qu’une fois et expire avec la session Srtool.', monsterAaRoomPending:'Programmée pour le prochain lancement AA : {room} (entrée {id}).', monsterAaRoomUse:'Utiliser cette salle ensuite', monsterAaRoomClear:'Effacer la salle programmée', monsterAaRoomLoading:'Vérification de la salle AA programmée…', monsterAaRoomConnect:'Connectez-vous à GaC pour programmer une salle pour le jeu.', monsterAaRoomLoadError:'Impossible de vérifier la salle programmée : {error}', monsterAaRoomSavedToast:'Salle AA programmée. Lancez Anomaly Arbitration depuis le jeu pour y accéder.', monsterAaRoomClearedToast:'La salle AA programmée a été effacée.', monsterAaRoomSaveError:'Impossible de modifier la salle AA : {error}' },
de: { monsterAaRoomTitle:'Nächsten AA-Raum auswählen', monsterAaRoomDescription:'Diesen Client-Stage als Raum für den nächsten Start von Anomaly Arbitration im Spiel vormerken. Die Auswahl gilt einmalig und läuft mit der Srtool-Sitzung ab.', monsterAaRoomPending:'Für den nächsten AA-Start vorgemerkt: {room} (Eintrag {id}).', monsterAaRoomUse:'Diesen Raum als Nächstes nutzen', monsterAaRoomClear:'Vorgemerkten Raum löschen', monsterAaRoomLoading:'Vorgemerkten AA-Raum wird geprüft…', monsterAaRoomConnect:'Mit GaC verbinden, um einen Raum für das Spiel vorzumerken.', monsterAaRoomLoadError:'Vorgemerkter Raum konnte nicht geprüft werden: {error}', monsterAaRoomSavedToast:'AA-Raum vorgemerkt. Starte Anomaly Arbitration im Spiel, um ihn zu betreten.', monsterAaRoomClearedToast:'Vorgemerkter AA-Raum gelöscht.', monsterAaRoomSaveError:'AA-Raum konnte nicht aktualisiert werden: {error}' },
ru: { monsterAaRoomTitle:'Выбрать следующую комнату AA', monsterAaRoomDescription:'Назначьте этот этап клиента комнатой для следующего запуска Anomaly Arbitration из игры. Выбор действует один раз и истекает вместе с сеансом Srtool.', monsterAaRoomPending:'Назначено для следующего запуска AA: {room} (этап {id}).', monsterAaRoomUse:'Войти в эту комнату в следующий раз', monsterAaRoomClear:'Очистить выбранную комнату', monsterAaRoomLoading:'Проверка выбранной комнаты AA…', monsterAaRoomConnect:'Подключитесь к GaC, чтобы назначить комнату для игры.', monsterAaRoomLoadError:'Не удалось проверить выбранную комнату: {error}', monsterAaRoomSavedToast:'Комната AA назначена. Запустите Anomaly Arbitration в игре, чтобы войти.', monsterAaRoomClearedToast:'Выбор комнаты AA очищен.', monsterAaRoomSaveError:'Не удалось изменить комнату AA: {error}' },
pt: { monsterAaRoomTitle:'Escolher próxima sala de AA', monsterAaRoomDescription:'Agende esta fase do Client como a sala para a próxima vez que iniciar Anomaly Arbitration no jogo. A seleção é usada uma vez e expira com a sessão do Srtool.', monsterAaRoomPending:'Agendada para a próxima entrada em AA: {room} (Entrada {id}).', monsterAaRoomUse:'Usar esta sala na próxima vez', monsterAaRoomClear:'Limpar sala agendada', monsterAaRoomLoading:'Verificando sala AA agendada…', monsterAaRoomConnect:'Conecte-se ao GaC para agendar uma sala para o jogo.', monsterAaRoomLoadError:'Não foi possível verificar a sala agendada: {error}', monsterAaRoomSavedToast:'Sala AA agendada. Inicie Anomaly Arbitration no jogo para entrar nela.', monsterAaRoomClearedToast:'Sala AA agendada removida.', monsterAaRoomSaveError:'Não foi possível atualizar a sala AA: {error}' }
};
for (const [language, additions] of Object.entries(AA_ROOM_SELECTION_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
const AA_ROUND_SELECTION_TRANSLATIONS = {
en: { monsterAaRoundTitle:'Choose the AA round', monsterAaRoundDescription:'Select the round the game should show when its AA data loads again. Choose a room in the game; entries below are only previews.', monsterAaRoundPending:'Selected round: {round} (Group {id}). Reopen Anomaly Arbitration in the game to show it.', monsterAaRoundSelectLabel:'Anomaly Arbitration round', monsterAaRoundDefaultOption:'Use the Client default round', monsterAaRoundDefault:'No round override. The Client default round will be shown.', monsterAaRoundUpdating:'Updating the AA round…', monsterAaRoundLoading:'Loading the saved AA round…', monsterAaRoundConnect:'Connect to GaC to choose the AA round shown in game.', monsterAaRoundLoadError:'Could not load the AA round: {error}', monsterAaRoundSavedToast:'AA round selected. Reopen Anomaly Arbitration in the game to show it.', monsterAaRoundClearedToast:'AA round override cleared. The Client default round will be shown.', monsterAaRoundSaveError:'Could not update the AA round: {error}', monsterAaRoundGroupId:'Round {id}', monsterSettingsAARoomPreview:'Rooms in this round · preview only' },
th: { monsterAaRoundTitle:'เลือกรอบ AA', monsterAaRoundDescription:'เลือกรอบที่จะแสดงในเกมเมื่อโหลดข้อมูล AA อีกครั้ง ส่วนห้องให้เลือกจากในเกม รายการด้านล่างมีไว้ดูตัวอย่างเท่านั้น', monsterAaRoundPending:'เลือกรอบ {round} (กลุ่ม {id}) แล้ว เปิด Anomaly Arbitration ในเกมอีกครั้งเพื่อให้แสดงรอบนี้', monsterAaRoundSelectLabel:'รอบ Anomaly Arbitration', monsterAaRoundDefaultOption:'ใช้รอบเริ่มต้นของ Client', monsterAaRoundDefault:'ไม่ได้แทนรอบ ระบบจะแสดงรอบเริ่มต้นของ Client', monsterAaRoundUpdating:'กำลังเปลี่ยนรอบ AA…', monsterAaRoundLoading:'กำลังโหลดรอบ AA ที่บันทึกไว้…', monsterAaRoundConnect:'เชื่อมต่อ GaC เพื่อเลือกรอบ AA ที่จะแสดงในเกม', monsterAaRoundLoadError:'โหลดรอบ AA ไม่สำเร็จ: {error}', monsterAaRoundSavedToast:'เลือกรอบ AA แล้ว เปิด Anomaly Arbitration ในเกมอีกครั้งเพื่อให้แสดงรอบนี้', monsterAaRoundClearedToast:'ล้างการแทนรอบ AA แล้ว ระบบจะแสดงรอบเริ่มต้นของ Client', monsterAaRoundSaveError:'เปลี่ยนรอบ AA ไม่สำเร็จ: {error}', monsterAaRoundGroupId:'รอบ {id}', monsterSettingsAARoomPreview:'ห้องในรอบนี้ · ตัวอย่างเท่านั้น' },
'zh-CN': { monsterAaRoundTitle:'选择 AA 轮次', monsterAaRoundDescription:'选择游戏重新加载 AA 数据时显示的轮次。具体房间仍在游戏内选择;下方条目仅供预览。', monsterAaRoundPending:'已选择轮次:{round}(组 {id})。请重新打开游戏内的异相仲裁以显示。', monsterAaRoundSelectLabel:'Anomaly Arbitration 轮次', monsterAaRoundDefaultOption:'使用 Client 默认轮次', monsterAaRoundDefault:'未覆盖轮次,将显示 Client 默认轮次。', monsterAaRoundUpdating:'正在更新 AA 轮次…', monsterAaRoundLoading:'正在加载已保存的 AA 轮次…', monsterAaRoundConnect:'连接 GaC 后才能选择游戏中显示的 AA 轮次。', monsterAaRoundLoadError:'无法加载 AA 轮次:{error}', monsterAaRoundSavedToast:'已选择 AA 轮次。请重新打开游戏内的异相仲裁以显示。', monsterAaRoundClearedToast:'已清除 AA 轮次覆盖,将显示 Client 默认轮次。', monsterAaRoundSaveError:'无法更新 AA 轮次:{error}', monsterAaRoundGroupId:'轮次 {id}', monsterSettingsAARoomPreview:'本轮房间 · 仅预览' },
'zh-TW': { monsterAaRoundTitle:'選擇 AA 輪次', monsterAaRoundDescription:'選擇遊戲重新載入 AA 資料時要顯示的輪次。房間仍在遊戲內選擇;下方項目僅供預覽。', monsterAaRoundPending:'已選擇輪次:{round}(組別 {id})。請重新開啟遊戲內的 Anomaly Arbitration 以顯示。', monsterAaRoundSelectLabel:'Anomaly Arbitration 輪次', monsterAaRoundDefaultOption:'使用 Client 預設輪次', monsterAaRoundDefault:'尚未覆寫輪次,將顯示 Client 預設輪次。', monsterAaRoundUpdating:'正在更新 AA 輪次…', monsterAaRoundLoading:'正在載入已儲存的 AA 輪次…', monsterAaRoundConnect:'連線 GaC 後才能選擇遊戲中顯示的 AA 輪次。', monsterAaRoundLoadError:'無法載入 AA 輪次:{error}', monsterAaRoundSavedToast:'已選擇 AA 輪次。請重新開啟遊戲內的 Anomaly Arbitration 以顯示。', monsterAaRoundClearedToast:'已清除 AA 輪次覆寫,將顯示 Client 預設輪次。', monsterAaRoundSaveError:'無法更新 AA 輪次:{error}', monsterAaRoundGroupId:'輪次 {id}', monsterSettingsAARoomPreview:'本輪房間 · 僅供預覽' },
ja: { monsterAaRoundTitle:'AAのラウンドを選択', monsterAaRoundDescription:'ゲームがAAデータを再読み込みしたときに表示するラウンドを選びます。部屋はゲーム内で選択してください。下の項目はプレビューのみです。', monsterAaRoundPending:'選択中のラウンド:{round}(グループ {id})。表示するにはゲーム内でAnomaly Arbitrationを開き直してください。', monsterAaRoundSelectLabel:'Anomaly Arbitrationのラウンド', monsterAaRoundDefaultOption:'Clientのデフォルトを使用', monsterAaRoundDefault:'ラウンドは上書きされていません。Clientのデフォルトを表示します。', monsterAaRoundUpdating:'AAラウンドを更新中…', monsterAaRoundLoading:'保存済みAAラウンドを読み込み中…', monsterAaRoundConnect:'ゲームに表示するAAラウンドを選ぶにはGaCに接続してください。', monsterAaRoundLoadError:'AAラウンドを読み込めませんでした:{error}', monsterAaRoundSavedToast:'AAラウンドを選択しました。表示するにはゲーム内のAnomaly Arbitrationを開き直してください。', monsterAaRoundClearedToast:'AAラウンド設定を解除しました。Clientのデフォルトを表示します。', monsterAaRoundSaveError:'AAラウンドを更新できませんでした:{error}', monsterAaRoundGroupId:'ラウンド {id}', monsterSettingsAARoomPreview:'このラウンドの部屋 · プレビューのみ' },
ko: { monsterAaRoundTitle:'AA 라운드 선택', monsterAaRoundDescription:'게임에서 AA 데이터를 다시 불러올 때 표시할 라운드를 선택하세요. 방은 게임 안에서 선택하며 아래 항목은 미리보기 전용입니다.', monsterAaRoundPending:'선택한 라운드: {round} (그룹 {id}). 게임에서 Anomaly Arbitration을 다시 열어 표시하세요.', monsterAaRoundSelectLabel:'Anomaly Arbitration 라운드', monsterAaRoundDefaultOption:'Client 기본 라운드 사용', monsterAaRoundDefault:'라운드 재정의가 없습니다. Client 기본 라운드를 표시합니다.', monsterAaRoundUpdating:'AA 라운드 업데이트 중…', monsterAaRoundLoading:'저장된 AA 라운드 불러오는 중…', monsterAaRoundConnect:'게임에 표시할 AA 라운드를 선택하려면 GaC에 연결하세요.', monsterAaRoundLoadError:'AA 라운드를 불러오지 못했습니다: {error}', monsterAaRoundSavedToast:'AA 라운드를 선택했습니다. 게임에서 Anomaly Arbitration을 다시 열어 표시하세요.', monsterAaRoundClearedToast:'AA 라운드 재정의를 지웠습니다. Client 기본 라운드를 표시합니다.', monsterAaRoundSaveError:'AA 라운드를 업데이트하지 못했습니다: {error}', monsterAaRoundGroupId:'라운드 {id}', monsterSettingsAARoomPreview:'이 라운드의 방 · 미리보기만' },
vi: { monsterAaRoundTitle:'Chọn vòng AA', monsterAaRoundDescription:'Chọn vòng sẽ hiển thị khi game tải lại dữ liệu AA. Hãy chọn phòng trong game; các mục bên dưới chỉ để xem trước.', monsterAaRoundPending:'Đã chọn vòng: {round} (Nhóm {id}). Mở lại Anomaly Arbitration trong game để hiển thị.', monsterAaRoundSelectLabel:'Vòng Anomaly Arbitration', monsterAaRoundDefaultOption:'Dùng vòng mặc định của Client', monsterAaRoundDefault:'Không ghi đè vòng. Sẽ hiển thị vòng mặc định của Client.', monsterAaRoundUpdating:'Đang cập nhật vòng AA…', monsterAaRoundLoading:'Đang tải vòng AA đã lưu…', monsterAaRoundConnect:'Kết nối GaC để chọn vòng AA hiển thị trong game.', monsterAaRoundLoadError:'Không thể tải vòng AA: {error}', monsterAaRoundSavedToast:'Đã chọn vòng AA. Mở lại Anomaly Arbitration trong game để hiển thị.', monsterAaRoundClearedToast:'Đã xóa ghi đè vòng AA. Sẽ hiển thị vòng mặc định của Client.', monsterAaRoundSaveError:'Không thể cập nhật vòng AA: {error}', monsterAaRoundGroupId:'Vòng {id}', monsterSettingsAARoomPreview:'Phòng trong vòng này · chỉ xem trước' },
id: { monsterAaRoundTitle:'Pilih ronde AA', monsterAaRoundDescription:'Pilih ronde yang ditampilkan saat game memuat ulang data AA. Pilih ruang dari dalam game; entri di bawah hanya pratinjau.', monsterAaRoundPending:'Ronde terpilih: {round} (Grup {id}). Buka kembali Anomaly Arbitration di game untuk menampilkannya.', monsterAaRoundSelectLabel:'Ronde Anomaly Arbitration', monsterAaRoundDefaultOption:'Gunakan ronde default Client', monsterAaRoundDefault:'Tidak ada ronde yang ditimpa. Ronde default Client akan ditampilkan.', monsterAaRoundUpdating:'Memperbarui ronde AA…', monsterAaRoundLoading:'Memuat ronde AA tersimpan…', monsterAaRoundConnect:'Hubungkan ke GaC untuk memilih ronde AA yang ditampilkan di game.', monsterAaRoundLoadError:'Tidak dapat memuat ronde AA: {error}', monsterAaRoundSavedToast:'Ronde AA dipilih. Buka kembali Anomaly Arbitration di game untuk menampilkannya.', monsterAaRoundClearedToast:'Penggantian ronde AA dihapus. Ronde default Client akan ditampilkan.', monsterAaRoundSaveError:'Tidak dapat memperbarui ronde AA: {error}', monsterAaRoundGroupId:'Ronde {id}', monsterSettingsAARoomPreview:'Ruang di ronde ini · pratinjau saja' },
es: { monsterAaRoundTitle:'Elegir ronda de AA', monsterAaRoundDescription:'Elige la ronda que mostrará el juego al volver a cargar los datos de AA. Elige la sala dentro del juego; las entradas de abajo son solo una vista previa.', monsterAaRoundPending:'Ronda elegida: {round} (grupo {id}). Vuelve a abrir Anomaly Arbitration en el juego para mostrarla.', monsterAaRoundSelectLabel:'Ronda de Anomaly Arbitration', monsterAaRoundDefaultOption:'Usar la ronda predeterminada del cliente', monsterAaRoundDefault:'No hay una ronda sobrescrita. Se mostrará la predeterminada del cliente.', monsterAaRoundUpdating:'Actualizando ronda de AA…', monsterAaRoundLoading:'Cargando ronda de AA guardada…', monsterAaRoundConnect:'Conéctate a GaC para elegir la ronda de AA que se muestra en el juego.', monsterAaRoundLoadError:'No se pudo cargar la ronda de AA: {error}', monsterAaRoundSavedToast:'Ronda de AA elegida. Vuelve a abrir Anomaly Arbitration en el juego para mostrarla.', monsterAaRoundClearedToast:'Se borró la sobrescritura de AA. Se mostrará la ronda predeterminada del cliente.', monsterAaRoundSaveError:'No se pudo actualizar la ronda de AA: {error}', monsterAaRoundGroupId:'Ronda {id}', monsterSettingsAARoomPreview:'Salas de esta ronda · solo vista previa' },
fr: { monsterAaRoundTitle:'Choisir le tour AA', monsterAaRoundDescription:'Choisissez le tour que le jeu affichera au prochain chargement des données AA. Choisissez la salle dans le jeu ; les entrées ci-dessous sont des aperçus.', monsterAaRoundPending:'Tour sélectionné : {round} (groupe {id}). Rouvrez Anomaly Arbitration dans le jeu pour l’afficher.', monsterAaRoundSelectLabel:'Tour Anomaly Arbitration', monsterAaRoundDefaultOption:'Utiliser le tour par défaut du client', monsterAaRoundDefault:'Aucun tour forcé. Le tour par défaut du client sera affiché.', monsterAaRoundUpdating:'Mise à jour du tour AA…', monsterAaRoundLoading:'Chargement du tour AA enregistré…', monsterAaRoundConnect:'Connectez-vous à GaC pour choisir le tour AA affiché dans le jeu.', monsterAaRoundLoadError:'Impossible de charger le tour AA : {error}', monsterAaRoundSavedToast:'Tour AA sélectionné. Rouvrez Anomaly Arbitration dans le jeu pour l’afficher.', monsterAaRoundClearedToast:'Remplacement du tour AA effacé. Le tour par défaut du client sera affiché.', monsterAaRoundSaveError:'Impossible de modifier le tour AA : {error}', monsterAaRoundGroupId:'Tour {id}', monsterSettingsAARoomPreview:'Salles de ce tour · aperçu uniquement' },
de: { monsterAaRoundTitle:'AA-Runde auswählen', monsterAaRoundDescription:'Wähle die Runde, die das Spiel beim erneuten Laden der AA-Daten anzeigen soll. Den Raum wählst du im Spiel; die Einträge unten sind nur Vorschauen.', monsterAaRoundPending:'Ausgewählte Runde: {round} (Gruppe {id}). Öffne Anomaly Arbitration im Spiel erneut, damit sie angezeigt wird.', monsterAaRoundSelectLabel:'Anomaly-Arbitration-Runde', monsterAaRoundDefaultOption:'Client-Standardrunde verwenden', monsterAaRoundDefault:'Keine Runde überschrieben. Die Client-Standardrunde wird angezeigt.', monsterAaRoundUpdating:'AA-Runde wird aktualisiert…', monsterAaRoundLoading:'Gespeicherte AA-Runde wird geladen…', monsterAaRoundConnect:'Mit GaC verbinden, um die im Spiel angezeigte AA-Runde auszuwählen.', monsterAaRoundLoadError:'AA-Runde konnte nicht geladen werden: {error}', monsterAaRoundSavedToast:'AA-Runde ausgewählt. Öffne Anomaly Arbitration im Spiel erneut.', monsterAaRoundClearedToast:'AA-Rundenüberschreibung entfernt. Die Client-Standardrunde wird angezeigt.', monsterAaRoundSaveError:'AA-Runde konnte nicht aktualisiert werden: {error}', monsterAaRoundGroupId:'Runde {id}', monsterSettingsAARoomPreview:'Räume dieser Runde · nur Vorschau' },
ru: { monsterAaRoundTitle:'Выбрать раунд AA', monsterAaRoundDescription:'Выберите раунд, который игра покажет при повторной загрузке данных AA. Комнату выбирайте в игре; записи ниже — только предварительный просмотр.', monsterAaRoundPending:'Выбран раунд: {round} (группа {id}). Откройте Anomaly Arbitration в игре повторно, чтобы увидеть его.', monsterAaRoundSelectLabel:'Раунд Anomaly Arbitration', monsterAaRoundDefaultOption:'Использовать раунд клиента по умолчанию', monsterAaRoundDefault:'Раунд не переопределён. Будет показан раунд клиента по умолчанию.', monsterAaRoundUpdating:'Обновление раунда AA…', monsterAaRoundLoading:'Загрузка сохранённого раунда AA…', monsterAaRoundConnect:'Подключитесь к GaC, чтобы выбрать отображаемый в игре раунд AA.', monsterAaRoundLoadError:'Не удалось загрузить раунд AA: {error}', monsterAaRoundSavedToast:'Раунд AA выбран. Повторно откройте Anomaly Arbitration в игре.', monsterAaRoundClearedToast:'Переопределение раунда AA очищено. Будет показан раунд клиента по умолчанию.', monsterAaRoundSaveError:'Не удалось изменить раунд AA: {error}', monsterAaRoundGroupId:'Раунд {id}', monsterSettingsAARoomPreview:'Комнаты этого раунда · только просмотр' },
pt: { monsterAaRoundTitle:'Escolher rodada de AA', monsterAaRoundDescription:'Escolha a rodada que o jogo exibirá ao carregar os dados de AA novamente. Escolha a sala no jogo; as entradas abaixo são apenas prévias.', monsterAaRoundPending:'Rodada selecionada: {round} (grupo {id}). Reabra Anomaly Arbitration no jogo para exibi-la.', monsterAaRoundSelectLabel:'Rodada de Anomaly Arbitration', monsterAaRoundDefaultOption:'Usar rodada padrão do Client', monsterAaRoundDefault:'Nenhuma rodada substituída. A rodada padrão do Client será exibida.', monsterAaRoundUpdating:'Atualizando rodada de AA…', monsterAaRoundLoading:'Carregando rodada de AA salva…', monsterAaRoundConnect:'Conecte-se ao GaC para escolher a rodada de AA exibida no jogo.', monsterAaRoundLoadError:'Não foi possível carregar a rodada de AA: {error}', monsterAaRoundSavedToast:'Rodada de AA selecionada. Reabra Anomaly Arbitration no jogo para exibi-la.', monsterAaRoundClearedToast:'Substituição da rodada de AA removida. A rodada padrão do Client será exibida.', monsterAaRoundSaveError:'Não foi possível atualizar a rodada de AA: {error}', monsterAaRoundGroupId:'Rodada {id}', monsterSettingsAARoomPreview:'Salas desta rodada · apenas prévia' }
};
for (const [language, additions] of Object.entries(AA_ROUND_SELECTION_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
const MONSTER_PICKER_TRANSLATIONS = {
en: 'Search monsters by name or ID',
th: 'ค้นหามอนสเตอร์ด้วยชื่อหรือ ID',
'zh-CN': '按名称或 ID 搜索怪物',
'zh-TW': '依名稱或 ID 搜尋怪物',
ja: '名前またはIDでモンスターを検索',
ko: '이름 또는 ID로 몬스터 검색',
fr: 'Rechercher un monstre par nom ou ID',
de: 'Monster nach Name oder ID suchen',
ru: 'Поиск монстра по имени или ID',
pt: 'Buscar monstros por nome ou ID',
vi: 'Tìm quái vật theo tên hoặc ID',
id: 'Cari monster berdasarkan nama atau ID'
};
for (const [language, label] of Object.entries(MONSTER_PICKER_TRANSLATIONS)) {
if (TRANSLATIONS[language]) TRANSLATIONS[language].monsterCustomSearch = label;
}
const SERVER_MODE_AVAILABILITY_TRANSLATIONS = {
th: { serverModeFireflyPaused: 'FireflyGo — กำลังพัฒนา', serverModeRobinPaused: 'RobinSR — กำลังพัฒนา', serverModesPausedNotice: 'FireflyGo และ RobinSR ปิดใช้งานชั่วคราวระหว่างพัฒนา จึงกลับไปใช้ GaC' },
en: { serverModeFireflyPaused: 'FireflyGo — Under development', serverModeRobinPaused: 'RobinSR — Under development', serverModesPausedNotice: 'FireflyGo and RobinSR are temporarily disabled during development. Switched back to GaC.' },
'zh-CN': { serverModeFireflyPaused: 'FireflyGo — 开发中', serverModeRobinPaused: 'RobinSR — 开发中', serverModesPausedNotice: 'FireflyGo 和 RobinSR 正在开发中,暂时停用。已切回 GaC。' },
'zh-TW': { serverModeFireflyPaused: 'FireflyGo — 開發中', serverModeRobinPaused: 'RobinSR — 開發中', serverModesPausedNotice: 'FireflyGo 和 RobinSR 正在開發中,暫時停用。已切回 GaC。' },
ja: { serverModeFireflyPaused: 'FireflyGo — 開発中', serverModeRobinPaused: 'RobinSR — 開発中', serverModesPausedNotice: 'FireflyGo と RobinSR は開発中のため一時停止しています。GaC に切り替えました。' },
ko: { serverModeFireflyPaused: 'FireflyGo — 개발 중', serverModeRobinPaused: 'RobinSR — 개발 중', serverModesPausedNotice: 'FireflyGo와 RobinSR은 개발 중이라 일시적으로 비활성화되었습니다. GaC로 전환했습니다.' },
vi: { serverModeFireflyPaused: 'FireflyGo — Đang phát triển', serverModeRobinPaused: 'RobinSR — Đang phát triển', serverModesPausedNotice: 'FireflyGo và RobinSR đang được phát triển nên tạm thời bị tắt. Đã chuyển về GaC.' },
id: { serverModeFireflyPaused: 'FireflyGo — Sedang dikembangkan', serverModeRobinPaused: 'RobinSR — Sedang dikembangkan', serverModesPausedNotice: 'FireflyGo dan RobinSR dinonaktifkan sementara selama pengembangan. Kembali ke GaC.' },
es: { serverModeFireflyPaused: 'FireflyGo — En desarrollo', serverModeRobinPaused: 'RobinSR — En desarrollo', serverModesPausedNotice: 'FireflyGo y RobinSR están desactivados temporalmente durante su desarrollo. Se cambió a GaC.' },
fr: { serverModeFireflyPaused: 'FireflyGo — En développement', serverModeRobinPaused: 'RobinSR — En développement', serverModesPausedNotice: 'FireflyGo et RobinSR sont temporairement désactivés pendant leur développement. Retour à GaC.' },
de: { serverModeFireflyPaused: 'FireflyGo — In Entwicklung', serverModeRobinPaused: 'RobinSR — In Entwicklung', serverModesPausedNotice: 'FireflyGo und RobinSR sind während der Entwicklung vorübergehend deaktiviert. Zu GaC gewechselt.' },
ru: { serverModeFireflyPaused: 'FireflyGo — В разработке', serverModeRobinPaused: 'RobinSR — В разработке', serverModesPausedNotice: 'FireflyGo и RobinSR временно отключены на время разработки. Выполнен переход на GaC.' },
pt: { serverModeFireflyPaused: 'FireflyGo — Em desenvolvimento', serverModeRobinPaused: 'RobinSR — Em desenvolvimento', serverModesPausedNotice: 'FireflyGo e RobinSR estão temporariamente desativados durante o desenvolvimento. Voltou para GaC.' }
};
for (const [language, additions] of Object.entries(ADDITIONAL_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(DAMAGE_ANALYST_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(UI_COMPLETION_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(GLOBAL_UI_LABEL_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(ASSET_AND_ACTION_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(INTERACTION_FEEDBACK_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(LAST_MILE_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(AHA_HELP_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
for (const [language, additions] of Object.entries(SERVER_MODE_AVAILABILITY_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
const ITEM_CATALOG_TRANSLATIONS = {
th: {
tabItemCatalog: '📚 สมุดไอเทม', itemCatalogTitle: '📚 สมุดรวมไอเทม',
itemCatalogDescription: 'ค้นชื่อหรือ ID เพื่อดูรูปและรหัสจากตารางเกม รายการที่มีป้าย GaC รองรับใช้จัดการในเครื่องมือกระเป๋าได้ ส่วนรายการอื่นใช้ค้นดู ID เท่านั้น',
itemCatalogSearchPlaceholder: 'ค้นหาชื่อหรือ Item ID...', itemCatalogFilterLabel: 'กรองสมุดไอเทม', itemCatalogFilterAll: 'ทั้งหมด',
itemCatalogFilterSupported: 'GaC รองรับ', itemCatalogFilterItems: 'ไอเทม',
itemCatalogFilterLightCones: 'กรวยแสง', itemCatalogFilterRelics: 'รีลิกส์',
itemCatalogSupportedTag: 'GaC รองรับ', itemCatalogBrowseOnlyTag: 'ดูข้อมูลเท่านั้น',
itemCatalogUnknownName: 'ไม่มีชื่อในตาราง #{id}', itemCatalogNoImage: 'ไม่มีภาพในข้อมูลเกม',
itemCatalogLoading: 'กำลังโหลดสมุดไอเทม...', itemCatalogLoadFailed: 'โหลดสมุดไอเทมไม่สำเร็จ'
},
en: {
tabItemCatalog: '📚 Item Book', itemCatalogTitle: '📚 Item Catalog',
itemCatalogDescription: 'Search game table names or IDs and view their icons. Entries marked GaC supported can be managed in the inventory tool; other entries are browse-only.',
itemCatalogSearchPlaceholder: 'Search by name or item ID...', itemCatalogFilterLabel: 'Filter item catalog', itemCatalogFilterAll: 'All entries',
itemCatalogFilterSupported: 'GaC supported', itemCatalogFilterItems: 'Items',
itemCatalogFilterLightCones: 'Light Cones', itemCatalogFilterRelics: 'Relics',
itemCatalogSupportedTag: 'GaC supported', itemCatalogBrowseOnlyTag: 'Browse only',
itemCatalogUnknownName: 'Unnamed item #{id}', itemCatalogNoImage: 'No icon in game data',
itemCatalogLoading: 'Loading item catalog...', itemCatalogLoadFailed: 'Could not load item catalog'
},
'zh-CN': {
tabItemCatalog: '📚 物品图鉴', itemCatalogTitle: '📚 物品目录',
itemCatalogDescription: '搜索游戏表格中的名称或 ID 并查看图标。标记为 GaC 支持的条目可在背包工具中管理;其他条目仅供查询。',
itemCatalogSearchPlaceholder: '搜索名称或物品 ID...', itemCatalogFilterLabel: '筛选物品目录', itemCatalogFilterAll: '全部条目',
itemCatalogFilterSupported: 'GaC 支持', itemCatalogFilterItems: '物品',
itemCatalogFilterLightCones: '光锥', itemCatalogFilterRelics: '遗器',
itemCatalogSupportedTag: 'GaC 支持', itemCatalogBrowseOnlyTag: '仅供查询',
itemCatalogUnknownName: '未命名物品 #{id}', itemCatalogNoImage: '游戏数据未配置图标',
itemCatalogLoading: '正在加载物品目录...', itemCatalogLoadFailed: '无法加载物品目录'
},
'zh-TW': {
tabItemCatalog: '📚 物品圖鑑', itemCatalogTitle: '📚 物品目錄',
itemCatalogDescription: '搜尋遊戲表格中的名稱或 ID 並查看圖示。標記為 GaC 支援的項目可在背包工具中管理;其他項目僅供查詢。',
itemCatalogSearchPlaceholder: '搜尋名稱或物品 ID...', itemCatalogFilterLabel: '篩選物品目錄', itemCatalogFilterAll: '全部項目',
itemCatalogFilterSupported: 'GaC 支援', itemCatalogFilterItems: '物品',
itemCatalogFilterLightCones: '光錐', itemCatalogFilterRelics: '遺器',
itemCatalogSupportedTag: 'GaC 支援', itemCatalogBrowseOnlyTag: '僅供查詢',
itemCatalogUnknownName: '未命名物品 #{id}', itemCatalogNoImage: '遊戲資料未設定圖示',
itemCatalogLoading: '正在載入物品目錄...', itemCatalogLoadFailed: '無法載入物品目錄'
},
ja: {
tabItemCatalog: '📚 アイテム図鑑', itemCatalogTitle: '📚 アイテム一覧',
itemCatalogDescription: 'ゲームデータの名前や ID を検索してアイコンを確認できます。GaC 対応と表示された項目は所持品ツールで管理でき、その他は閲覧のみです。',
itemCatalogSearchPlaceholder: '名前またはアイテム ID を検索...', itemCatalogFilterLabel: 'アイテム一覧を絞り込む', itemCatalogFilterAll: 'すべて',
itemCatalogFilterSupported: 'GaC 対応', itemCatalogFilterItems: 'アイテム',
itemCatalogFilterLightCones: '光円錐', itemCatalogFilterRelics: '遺物',
itemCatalogSupportedTag: 'GaC 対応', itemCatalogBrowseOnlyTag: '閲覧のみ',
itemCatalogUnknownName: '名前なし #{id}', itemCatalogNoImage: 'ゲームデータに画像なし',
itemCatalogLoading: 'アイテム一覧を読み込み中...', itemCatalogLoadFailed: 'アイテム一覧を読み込めませんでした'
},
ko: {
tabItemCatalog: '📚 아이템 도감', itemCatalogTitle: '📚 아이템 목록',
itemCatalogDescription: '게임 데이터의 이름이나 ID를 검색해 아이콘을 확인하세요. GaC 지원 표시가 있는 항목은 인벤토리 도구에서 관리할 수 있으며, 나머지는 조회 전용입니다.',
itemCatalogSearchPlaceholder: '이름 또는 아이템 ID 검색...', itemCatalogFilterLabel: '아이템 목록 필터', itemCatalogFilterAll: '전체 항목',
itemCatalogFilterSupported: 'GaC 지원', itemCatalogFilterItems: '아이템',
itemCatalogFilterLightCones: '광추', itemCatalogFilterRelics: '유물',
itemCatalogSupportedTag: 'GaC 지원', itemCatalogBrowseOnlyTag: '조회 전용',
itemCatalogUnknownName: '이름 없음 #{id}', itemCatalogNoImage: '게임 데이터에 아이콘 없음',
itemCatalogLoading: '아이템 목록을 불러오는 중...', itemCatalogLoadFailed: '아이템 목록을 불러오지 못했습니다'
},
vi: {
tabItemCatalog: '📚 Sổ tay vật phẩm', itemCatalogTitle: '📚 Danh mục vật phẩm',
itemCatalogDescription: 'Tìm tên hoặc ID trong bảng dữ liệu trò chơi để xem biểu tượng. Mục có nhãn GaC hỗ trợ có thể quản lý trong công cụ túi đồ; mục khác chỉ dùng để tra cứu.',
itemCatalogSearchPlaceholder: 'Tìm theo tên hoặc ID vật phẩm...', itemCatalogFilterLabel: 'Lọc danh mục vật phẩm', itemCatalogFilterAll: 'Tất cả mục',
itemCatalogFilterSupported: 'GaC hỗ trợ', itemCatalogFilterItems: 'Vật phẩm',
itemCatalogFilterLightCones: 'Nón Ánh Sáng', itemCatalogFilterRelics: 'Di Vật',
itemCatalogSupportedTag: 'GaC hỗ trợ', itemCatalogBrowseOnlyTag: 'Chỉ tra cứu',
itemCatalogUnknownName: 'Vật phẩm chưa có tên #{id}', itemCatalogNoImage: 'Dữ liệu game không có biểu tượng',
itemCatalogLoading: 'Đang tải danh mục vật phẩm...', itemCatalogLoadFailed: 'Không tải được danh mục vật phẩm'
},
id: {
tabItemCatalog: '📚 Buku Item', itemCatalogTitle: '📚 Katalog Item',
itemCatalogDescription: 'Cari nama atau ID dari tabel game dan lihat ikonnya. Item berlabel didukung GaC dapat dikelola melalui alat inventaris; item lainnya hanya untuk dilihat.',
itemCatalogSearchPlaceholder: 'Cari nama atau ID item...', itemCatalogFilterLabel: 'Filter katalog item', itemCatalogFilterAll: 'Semua item',
itemCatalogFilterSupported: 'Didukung GaC', itemCatalogFilterItems: 'Item',
itemCatalogFilterLightCones: 'Light Cone', itemCatalogFilterRelics: 'Relik',
itemCatalogSupportedTag: 'Didukung GaC', itemCatalogBrowseOnlyTag: 'Hanya dilihat',
itemCatalogUnknownName: 'Item tanpa nama #{id}', itemCatalogNoImage: 'Tidak ada ikon di data game',
itemCatalogLoading: 'Memuat katalog item...', itemCatalogLoadFailed: 'Katalog item gagal dimuat'
},
es: {
tabItemCatalog: '📚 Catálogo', itemCatalogTitle: '📚 Catálogo de objetos',
itemCatalogDescription: 'Busca nombres o ID de las tablas del juego y consulta sus iconos. Los elementos compatibles con GaC se pueden gestionar en el inventario; los demás solo se pueden consultar.',
itemCatalogSearchPlaceholder: 'Buscar por nombre o ID...', itemCatalogFilterLabel: 'Filtrar catálogo de objetos', itemCatalogFilterAll: 'Todos',
itemCatalogFilterSupported: 'Compatible con GaC', itemCatalogFilterItems: 'Objetos',
itemCatalogFilterLightCones: 'Conos de luz', itemCatalogFilterRelics: 'Reliquias',
itemCatalogSupportedTag: 'Compatible con GaC', itemCatalogBrowseOnlyTag: 'Solo consulta',
itemCatalogUnknownName: 'Objeto sin nombre #{id}', itemCatalogNoImage: 'Sin icono en los datos del juego',
itemCatalogLoading: 'Cargando catálogo...', itemCatalogLoadFailed: 'No se pudo cargar el catálogo'
},
fr: {
tabItemCatalog: '📚 Catalogue', itemCatalogTitle: '📚 Catalogue des objets',
itemCatalogDescription: 'Recherchez les noms ou ID des tables du jeu et consultez leurs icônes. Les éléments compatibles avec GaC peuvent être gérés dans l’inventaire ; les autres sont consultables uniquement.',
itemCatalogSearchPlaceholder: 'Rechercher par nom ou ID...', itemCatalogFilterLabel: 'Filtrer le catalogue', itemCatalogFilterAll: 'Tous les éléments',
itemCatalogFilterSupported: 'Compatible GaC', itemCatalogFilterItems: 'Objets',
itemCatalogFilterLightCones: 'Cônes de lumière', itemCatalogFilterRelics: 'Reliques',
itemCatalogSupportedTag: 'Compatible GaC', itemCatalogBrowseOnlyTag: 'Consultation seule',
itemCatalogUnknownName: 'Objet sans nom #{id}', itemCatalogNoImage: 'Aucune icône dans les données du jeu',
itemCatalogLoading: 'Chargement du catalogue...', itemCatalogLoadFailed: 'Impossible de charger le catalogue'
},
de: {
tabItemCatalog: '📚 Gegenstandsbuch', itemCatalogTitle: '📚 Gegenstandskatalog',
itemCatalogDescription: 'Suche nach Namen oder IDs aus den Spieltabellen und sieh dir die Symbole an. GaC-unterstützte Einträge lassen sich im Inventarwerkzeug verwalten; alle anderen dienen nur zum Nachschlagen.',
itemCatalogSearchPlaceholder: 'Nach Name oder Gegenstands-ID suchen...', itemCatalogFilterLabel: 'Katalog filtern', itemCatalogFilterAll: 'Alle Einträge',
itemCatalogFilterSupported: 'Von GaC unterstützt', itemCatalogFilterItems: 'Gegenstände',
itemCatalogFilterLightCones: 'Lichtkegel', itemCatalogFilterRelics: 'Relikte',
itemCatalogSupportedTag: 'Von GaC unterstützt', itemCatalogBrowseOnlyTag: 'Nur Nachschlagen',
itemCatalogUnknownName: 'Unbenannter Gegenstand #{id}', itemCatalogNoImage: 'Kein Symbol in den Spieldaten',
itemCatalogLoading: 'Gegenstandskatalog wird geladen...', itemCatalogLoadFailed: 'Gegenstandskatalog konnte nicht geladen werden'
},
ru: {
tabItemCatalog: '📚 Каталог предметов', itemCatalogTitle: '📚 Каталог предметов',
itemCatalogDescription: 'Ищите названия или ID из игровых таблиц и просматривайте значки. Предметы с отметкой GaC можно менять в инструменте инвентаря; остальные доступны только для просмотра.',
itemCatalogSearchPlaceholder: 'Поиск по названию или ID...', itemCatalogFilterLabel: 'Фильтр каталога предметов', itemCatalogFilterAll: 'Все записи',
itemCatalogFilterSupported: 'Поддерживается GaC', itemCatalogFilterItems: 'Предметы',
itemCatalogFilterLightCones: 'Световые конусы', itemCatalogFilterRelics: 'Реликвии',
itemCatalogSupportedTag: 'Поддерживается GaC', itemCatalogBrowseOnlyTag: 'Только просмотр',
itemCatalogUnknownName: 'Предмет без названия #{id}', itemCatalogNoImage: 'В игровых данных нет значка',
itemCatalogLoading: 'Загрузка каталога предметов...', itemCatalogLoadFailed: 'Не удалось загрузить каталог предметов'
},
pt: {
tabItemCatalog: '📚 Catálogo de itens', itemCatalogTitle: '📚 Catálogo de itens',
itemCatalogDescription: 'Pesquise nomes ou IDs das tabelas do jogo e veja os ícones. Itens marcados como compatíveis com GaC podem ser gerenciados no inventário; os demais são apenas para consulta.',
itemCatalogSearchPlaceholder: 'Pesquisar por nome ou ID...', itemCatalogFilterLabel: 'Filtrar catálogo de itens', itemCatalogFilterAll: 'Todos os itens',
itemCatalogFilterSupported: 'Compatível com GaC', itemCatalogFilterItems: 'Itens',
itemCatalogFilterLightCones: 'Cones de Luz', itemCatalogFilterRelics: 'Relíquias',
itemCatalogSupportedTag: 'Compatível com GaC', itemCatalogBrowseOnlyTag: 'Somente consulta',
itemCatalogUnknownName: 'Item sem nome #{id}', itemCatalogNoImage: 'Sem ícone nos dados do jogo',
itemCatalogLoading: 'Carregando catálogo de itens...', itemCatalogLoadFailed: 'Não foi possível carregar o catálogo de itens'
}
};
for (const [language, additions] of Object.entries(ITEM_CATALOG_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
const ITEM_CATALOG_DETAIL_TRANSLATIONS = {
th: { itemCatalogDetailTitle: 'รายละเอียดไอเทม', itemCatalogItemId: 'Item ID {id}', itemCatalogSourceTable: 'ตารางต้นทาง', itemCatalogItemDescription: 'คำอธิบาย', itemCatalogLore: 'ข้อมูลเพิ่มเติม', itemCatalogNoDescription: 'ไม่มีคำอธิบายในข้อมูลเกม', itemCatalogNoDetails: 'ไม่มีรายละเอียดเพิ่มเติม', itemCatalogOpenDetails: 'ดูรายละเอียด {name}', itemCatalogQuantity: 'จำนวนที่เลือก', itemCatalogMaxQuantity: 'สูงสุด {count}', itemCatalogClose: 'ปิด', itemCatalogDecrease: 'ลดจำนวน', itemCatalogIncrease: 'เพิ่มจำนวน' },
en: { itemCatalogDetailTitle: 'Item Details', itemCatalogItemId: 'Item ID {id}', itemCatalogSourceTable: 'Source tables', itemCatalogItemDescription: 'Description', itemCatalogLore: 'Additional Details', itemCatalogNoDescription: 'No description in game data', itemCatalogNoDetails: 'No additional details', itemCatalogOpenDetails: 'View details for {name}', itemCatalogQuantity: 'Selected quantity', itemCatalogMaxQuantity: 'Maximum {count}', itemCatalogClose: 'Close', itemCatalogDecrease: 'Decrease quantity', itemCatalogIncrease: 'Increase quantity' },
'zh-CN': { itemCatalogDetailTitle: '物品详情', itemCatalogItemId: '物品 ID {id}', itemCatalogSourceTable: '来源表', itemCatalogItemDescription: '描述', itemCatalogLore: '补充信息', itemCatalogNoDescription: '游戏数据中没有描述', itemCatalogNoDetails: '没有更多信息', itemCatalogOpenDetails: '查看{name}详情', itemCatalogQuantity: '选择数量', itemCatalogMaxQuantity: '最多 {count}', itemCatalogClose: '关闭', itemCatalogDecrease: '减少数量', itemCatalogIncrease: '增加数量' },
'zh-TW': { itemCatalogDetailTitle: '物品詳情', itemCatalogItemId: '物品 ID {id}', itemCatalogSourceTable: '來源表', itemCatalogItemDescription: '說明', itemCatalogLore: '補充資訊', itemCatalogNoDescription: '遊戲資料中沒有說明', itemCatalogNoDetails: '沒有更多資訊', itemCatalogOpenDetails: '查看{name}詳情', itemCatalogQuantity: '選擇數量', itemCatalogMaxQuantity: '最多 {count}', itemCatalogClose: '關閉', itemCatalogDecrease: '減少數量', itemCatalogIncrease: '增加數量' },
ja: { itemCatalogDetailTitle: 'アイテム詳細', itemCatalogItemId: 'アイテム ID {id}', itemCatalogSourceTable: '参照テーブル', itemCatalogItemDescription: '説明', itemCatalogLore: '補足情報', itemCatalogNoDescription: 'ゲームデータに説明がありません', itemCatalogNoDetails: '追加情報はありません', itemCatalogOpenDetails: '{name}の詳細を見る', itemCatalogQuantity: '選択数', itemCatalogMaxQuantity: '上限 {count}', itemCatalogClose: '閉じる', itemCatalogDecrease: '数量を減らす', itemCatalogIncrease: '数量を増やす' },
ko: { itemCatalogDetailTitle: '아이템 상세 정보', itemCatalogItemId: '아이템 ID {id}', itemCatalogSourceTable: '출처 테이블', itemCatalogItemDescription: '설명', itemCatalogLore: '추가 정보', itemCatalogNoDescription: '게임 데이터에 설명이 없습니다', itemCatalogNoDetails: '추가 정보가 없습니다', itemCatalogOpenDetails: '{name} 상세 정보 보기', itemCatalogQuantity: '선택 수량', itemCatalogMaxQuantity: '최대 {count}', itemCatalogClose: '닫기', itemCatalogDecrease: '수량 줄이기', itemCatalogIncrease: '수량 늘리기' },
vi: { itemCatalogDetailTitle: 'Chi tiết vật phẩm', itemCatalogItemId: 'ID vật phẩm {id}', itemCatalogSourceTable: 'Bảng nguồn', itemCatalogItemDescription: 'Mô tả', itemCatalogLore: 'Thông tin thêm', itemCatalogNoDescription: 'Dữ liệu game không có mô tả', itemCatalogNoDetails: 'Không có thông tin thêm', itemCatalogOpenDetails: 'Xem chi tiết {name}', itemCatalogQuantity: 'Số lượng đã chọn', itemCatalogMaxQuantity: 'Tối đa {count}', itemCatalogClose: 'Đóng', itemCatalogDecrease: 'Giảm số lượng', itemCatalogIncrease: 'Tăng số lượng' },
id: { itemCatalogDetailTitle: 'Detail Item', itemCatalogItemId: 'ID item {id}', itemCatalogSourceTable: 'Tabel sumber', itemCatalogItemDescription: 'Deskripsi', itemCatalogLore: 'Info Tambahan', itemCatalogNoDescription: 'Tidak ada deskripsi di data game', itemCatalogNoDetails: 'Tidak ada info tambahan', itemCatalogOpenDetails: 'Lihat detail {name}', itemCatalogQuantity: 'Jumlah dipilih', itemCatalogMaxQuantity: 'Maksimal {count}', itemCatalogClose: 'Tutup', itemCatalogDecrease: 'Kurangi jumlah', itemCatalogIncrease: 'Tambah jumlah' },
es: { itemCatalogDetailTitle: 'Detalles del objeto', itemCatalogItemId: 'ID del objeto {id}', itemCatalogSourceTable: 'Tablas de origen', itemCatalogItemDescription: 'Descripción', itemCatalogLore: 'Información adicional', itemCatalogNoDescription: 'Sin descripción en los datos del juego', itemCatalogNoDetails: 'Sin más detalles', itemCatalogOpenDetails: 'Ver detalles de {name}', itemCatalogQuantity: 'Cantidad seleccionada', itemCatalogMaxQuantity: 'Máximo {count}', itemCatalogClose: 'Cerrar', itemCatalogDecrease: 'Reducir cantidad', itemCatalogIncrease: 'Aumentar cantidad' },
fr: { itemCatalogDetailTitle: 'Détails de l’objet', itemCatalogItemId: 'ID de l’objet {id}', itemCatalogSourceTable: 'Tables sources', itemCatalogItemDescription: 'Description', itemCatalogLore: 'Informations supplémentaires', itemCatalogNoDescription: 'Aucune description dans les données du jeu', itemCatalogNoDetails: 'Aucun autre détail', itemCatalogOpenDetails: 'Voir les détails de {name}', itemCatalogQuantity: 'Quantité choisie', itemCatalogMaxQuantity: 'Maximum {count}', itemCatalogClose: 'Fermer', itemCatalogDecrease: 'Diminuer la quantité', itemCatalogIncrease: 'Augmenter la quantité' },
de: { itemCatalogDetailTitle: 'Gegenstandsdetails', itemCatalogItemId: 'Gegenstands-ID {id}', itemCatalogSourceTable: 'Quelltabellen', itemCatalogItemDescription: 'Beschreibung', itemCatalogLore: 'Zusätzliche Details', itemCatalogNoDescription: 'Keine Beschreibung in den Spieldaten', itemCatalogNoDetails: 'Keine weiteren Details', itemCatalogOpenDetails: 'Details für {name} anzeigen', itemCatalogQuantity: 'Ausgewählte Menge', itemCatalogMaxQuantity: 'Maximum {count}', itemCatalogClose: 'Schließen', itemCatalogDecrease: 'Menge verringern', itemCatalogIncrease: 'Menge erhöhen' },
ru: { itemCatalogDetailTitle: 'Сведения о предмете', itemCatalogItemId: 'ID предмета {id}', itemCatalogSourceTable: 'Исходные таблицы', itemCatalogItemDescription: 'Описание', itemCatalogLore: 'Дополнительная информация', itemCatalogNoDescription: 'В игровых данных нет описания', itemCatalogNoDetails: 'Дополнительных сведений нет', itemCatalogOpenDetails: 'Подробнее: {name}', itemCatalogQuantity: 'Выбранное количество', itemCatalogMaxQuantity: 'Максимум: {count}', itemCatalogClose: 'Закрыть', itemCatalogDecrease: 'Уменьшить количество', itemCatalogIncrease: 'Увеличить количество' },
pt: { itemCatalogDetailTitle: 'Detalhes do item', itemCatalogItemId: 'ID do item {id}', itemCatalogSourceTable: 'Tabelas de origem', itemCatalogItemDescription: 'Descrição', itemCatalogLore: 'Informações adicionais', itemCatalogNoDescription: 'Sem descrição nos dados do jogo', itemCatalogNoDetails: 'Sem detalhes adicionais', itemCatalogOpenDetails: 'Ver detalhes de {name}', itemCatalogQuantity: 'Quantidade selecionada', itemCatalogMaxQuantity: 'Máximo {count}', itemCatalogClose: 'Fechar', itemCatalogDecrease: 'Diminuir quantidade', itemCatalogIncrease: 'Aumentar quantidade' }
};
for (const [language, additions] of Object.entries(ITEM_CATALOG_DETAIL_TRANSLATIONS)) {
Object.assign(TRANSLATIONS[language], additions);
}
const ITEM_CATALOG_INTERACTION_DESCRIPTIONS = {
th: 'ค้นหาชื่อหรือ ID แล้วคลิกรูปเพื่ออ่านรายละเอียดและเลือกจำนวน การเลือกจำนวนในหน้านี้ยังไม่เพิ่มไอเทม รายการที่ GaC รองรับจัดการได้ในแท็บกระเป๋า ส่วนรายการอื่นใช้ดูข้อมูลเท่านั้น',
en: 'Search by name or ID, then click an image to read details and select a quantity. Selecting a quantity here does not add the item. GaC-supported entries can be managed in the inventory tab; other entries are for browsing.',
'zh-CN': '按名称或 ID 搜索,然后点击图片查看详情并选择数量。在此选择数量不会添加物品。GaC 支持的条目可在背包页管理,其他条目仅供查看。',
'zh-TW': '依名稱或 ID 搜尋,再點擊圖片查看詳情並選擇數量。在此選擇數量不會新增物品。GaC 支援的項目可在背包頁管理,其他項目僅供瀏覽。',
ja: '名前または ID で検索し、画像をクリックすると詳細を確認して数量を選べます。この画面で数量を選んでもアイテムは追加されません。GaC 対応アイテムは所持品タブで管理でき、その他は閲覧のみです。',
ko: '이름 또는 ID를 검색한 뒤 이미지를 클릭하면 상세 정보를 확인하고 수량을 선택할 수 있습니다. 여기서 수량을 선택해도 아이템은 추가되지 않습니다. GaC 지원 항목은 인벤토리 탭에서 관리할 수 있고 나머지는 조회 전용입니다.',
vi: 'Tìm theo tên hoặc ID rồi nhấn vào hình để xem chi tiết và chọn số lượng. Việc chọn số lượng ở đây không thêm vật phẩm. Vật phẩm được GaC hỗ trợ có thể quản lý trong tab túi đồ; các mục khác chỉ để tra cứu.',
id: 'Cari berdasarkan nama atau ID, lalu klik gambar untuk melihat detail dan memilih jumlah. Memilih jumlah di sini tidak menambahkan item. Item yang didukung GaC dapat dikelola di tab inventaris; item lainnya hanya untuk dilihat.',
es: 'Busca por nombre o ID y haz clic en una imagen para consultar los detalles y elegir una cantidad. Elegir una cantidad aquí no añade el objeto. Los elementos compatibles con GaC se gestionan en la pestaña de inventario; los demás son solo de consulta.',
fr: 'Recherchez un nom ou un ID, puis cliquez sur une image pour consulter les détails et choisir une quantité. Ce choix n’ajoute pas l’objet. Les éléments compatibles avec GaC se gèrent dans l’inventaire ; les autres sont consultables uniquement.',
de: 'Suche nach Name oder ID und klicke auf ein Bild, um Details anzuzeigen und eine Menge auszuwählen. Dadurch wird der Gegenstand nicht hinzugefügt. GaC-unterstützte Einträge lassen sich im Inventar verwalten; die übrigen dienen nur zum Nachschlagen.',
ru: 'Найдите предмет по названию или ID, затем нажмите на изображение, чтобы посмотреть сведения и выбрать количество. Выбор количества здесь не добавляет предмет. Предметы с поддержкой GaC можно менять во вкладке инвентаря; остальные доступны только для просмотра.',
pt: 'Pesquise por nome ou ID e clique na imagem para ver os detalhes e escolher uma quantidade. Escolher a quantidade aqui não adiciona o item. Itens compatíveis com GaC podem ser gerenciados na aba de inventário; os demais servem apenas para consulta.'
};
for (const [language, description] of Object.entries(ITEM_CATALOG_INTERACTION_DESCRIPTIONS)) {
TRANSLATIONS[language].itemCatalogDescription = description;
}
let currentLang = 'th';
if (typeof localStorage !== 'undefined') {
currentLang = localStorage.getItem('gac_srtool_lang') || 'th';
}
if (typeof document !== 'undefined') {
document.documentElement.lang = currentLang;
}
export function getCurrentLanguage() {
return currentLang;
}
export function setLanguage(langCode) {
if (TRANSLATIONS[langCode]) {
currentLang = langCode;
if (typeof document !== 'undefined') {
document.documentElement.lang = langCode;
}
if (typeof localStorage !== 'undefined') {
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}, {slot}, {mode}, {n}, {count}, {ms}
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;
}