UPDATE: New data
Some checks failed
Gitea Auto Deploy / Deploy-Container (push) Failing after 49s

This commit is contained in:
2026-04-23 16:30:28 +07:00
parent 9314ec3ebd
commit 9a54180c5c
21 changed files with 2082 additions and 67 deletions

View File

@@ -8,18 +8,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out latest code
uses: actions/checkout@v4
- uses: actions/checkout@v4
- name: Stop and remove old containers
- name: Deploy to Container
run: |
docker compose down || true
- name: Remove unused Docker resources
run: |
docker system prune -a --volumes -f
- name: Build and restart containers
run: |
docker compose pull
docker compose up -d --build
docker compose up -d --build --remove-orphans

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,12 +1,12 @@
services:
srtools-live:
srtools:
build:
context: .
dockerfile: Dockerfile
container_name: srtools-live
container_name: srtools
restart: unless-stopped
ports:
- "3009:3000"
- "3006:3000"
networks:
- srtools-network

284
messages/de.json Normal file
View File

@@ -0,0 +1,284 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Firefly-Tools von Firefly Shelter"
},
"DataPage": {
"skillType": "Fähigkeitstyp",
"skillName": "Fähigkeitsname",
"character": "Charakter",
"id": "ID",
"path": "Pfad",
"rarity": "Seltenheit",
"element": "Element",
"technique": "Technik",
"talent": "Talent",
"basic": "Standardangriff",
"skill": "Fähigkeit",
"ultimate": "Ultimate",
"servant": "Diener",
"damage": "Schaden",
"type": "Typ",
"warrior": "Die Zerstörung",
"knight": "Die Bewahrung",
"mage": "Die Gelehrsamkeit",
"priest": "Der Überfluss",
"rogue": "Die Jagd",
"shaman": "Die Harmonie",
"warlock": "Die Nichtigkeit",
"memory": "Die Erinnerung",
"elation": "Die Freude",
"fire": "Feuer",
"ice": "Eis",
"imaginary": "Imaginär",
"physical": "Physisch",
"quantum": "Quanten",
"thunder": "Blitz",
"wind": "Wind",
"hp": "LP",
"atk": "ANG",
"speed": "GES",
"critRate": "Krit. Rate",
"critDmg": "Krit. SCH",
"breakEffect": "Brucheffekt",
"effectRes": "Effekt-WDS",
"energyRegenerationRate": "Energie-Regenerationsrate",
"effectHitRate": "Effekttrefferquote",
"outgoingHealingBoost": "Ausgehender Heilungsbonus",
"fireDmgBoost": "Feuer-SCH-Bonus",
"iceDmgBoost": "Eis-SCH-Bonus",
"imaginaryDmgBoost": "Imaginär-SCH-Bonus",
"physicalDmgBoost": "Physisch-SCH-Bonus",
"quantumDmgBoost": "Quanten-SCH-Bonus",
"thunderDmgBoost": "Blitz-SCH-Bonus",
"windDmgBoost": "Wind-SCH-Bonus",
"pursued": "Zusätzlicher Schaden",
"true damage": "Wahrer Schaden",
"elationdamage": "Freude-Schaden",
"follow-up": "Folgeangriff-Schaden",
"elemental damage": "Bruch- und Superbruch-Schaden",
"dot": "Schaden über Zeit",
"qte": "QTE-Fähigkeit",
"level": "Stufe",
"relics": "Relikte",
"eidolons": "Eidolons",
"lightcones": "Lichtkegel",
"loadData": "Daten laden",
"exportData": "Daten exportieren",
"connectSetting": "Verbindungseinstellungen",
"connected": "Verbunden",
"unconnected": "Nicht verbunden",
"psConnection": "PS-Verbindung",
"connectionType": "Verbindungstyp",
"status": "Status",
"connectPs": "Mit PS verbinden",
"disconnect": "Trennen",
"other": "Andere",
"freeSr": "FreeSR",
"database": "Datenbank",
"enka": "Enka",
"monsterSetting": "Monstereinstellungen",
"serverUrl": "Server-URL",
"privateType": "Privater Typ",
"local": "Lokal",
"server": "Server",
"username": "Benutzername",
"password": "Passwort",
"placeholderServerUrl": "Server-URL eingeben",
"placeholderUsername": "Benutzernamen eingeben",
"placeholderPassword": "Passwort eingeben",
"connectedSuccess": "Erfolgreich mit PS verbunden",
"connectedFailed": "Verbindung zu PS fehlgeschlagen",
"syncSuccess": "Daten erfolgreich mit PS synchronisiert",
"syncFailed": "Fehler beim Synchronisieren",
"sync": "Synchronisieren",
"importSetting": "Import-Einstellungen",
"profile": "Profil",
"default": "Standard",
"copyProfiles": "Profile kopieren",
"addNewProfile": "Neues Profil hinzufügen",
"createNewProfile": "Neues Profil erstellen",
"editProfile": "Profil bearbeiten",
"placeholderProfileName": "Profilnamen eingeben",
"profileName": "Profilname",
"create": "Erstellen",
"update": "Aktualisieren",
"characterInformation": "Charakterinformationen",
"skills": "Fähigkeiten",
"showcaseCard": "Showcase-Karte",
"comingSoon": "Demnächst",
"characterName": "Charaktername",
"placeholderCharacter": "Charakternamen eingeben",
"characterSettings": "Charaktereinstellungen",
"levelConfiguration": "Stufenkonfiguration",
"characterLevel": "Charakterstufe",
"max": "MAX",
"ultimateEnergy": "Ultimate-Energie",
"currentEnergy": "Aktuelle Energie",
"setTo50": "Auf 50% setzen",
"battleConfiguration": "Kampfkonfiguration",
"useTechnique": "Technik verwenden",
"techniqueNote": "Technikeffekte vor dem Kampf aktivieren",
"enhancement": "Verbesserung",
"enhancementLevel": "Verbesserungsstufe",
"origin": "Ursprung",
"enhancedNote": "Höhere Verbesserungen schalten Fähigkeiten frei",
"lightconeEquipment": "Lichtkegel-Ausrüstung",
"lightconeSettings": "Lichtkegel-Einstellungen",
"placeholderLevel": "Stufe eingeben",
"superimpositionRank": "Überlagerungsrang",
"ranksNote": "Höhere Ränge bieten stärkere Effekte",
"changeLightcone": "Lichtkegel wechseln",
"removeLightcone": "Lichtkegel entfernen",
"equipLightcone": "Lichtkegel ausrüsten",
"noLightconeEquipped": "Kein Lichtkegel ausgerüstet",
"equipLightconeNote": "Rüste einen Lichtkegel aus, um deinen Charakter zu stärken",
"filter": "Filter",
"selectedCharacters": "Ausgewählte Charaktere",
"selectedProfiles": "Ausgewählte Profile",
"clearAll": "Alles löschen",
"selectAll": "Alles auswählen",
"copy": "Kopieren",
"copied": "Kopiert",
"noAvatarSelected": "Kein Charakter ausgewählt",
"noAvatarToCopySelected": "Kein Charakter zum Kopieren ausgewählt",
"pleaseSelectAtLeastOneProfile": "Bitte wähle mindestens ein Profil aus",
"pleaseEnterUid": "Bitte UID eingeben",
"failedToFetchEnkaData": "Fehler beim Abrufen der Enka-Daten",
"pleaseSelectAtLeastOneCharacter": "Bitte wähle mindestens einen Charakter aus",
"noDataToImport": "Keine Daten zum Importieren",
"pleaseSelectAFile": "Bitte wähle eine Datei",
"fileMustBeAValidJsonFile": "Die Datei muss eine gültige JSON-Datei sein",
"importEnkaDataSuccess": "Enka-Daten erfolgreich importiert",
"importFreeSRDataSuccess": "FreeSR-Daten erfolgreich importiert",
"importDatabaseSuccess": "Datenbank erfolgreich importiert",
"getData": "Daten abrufen",
"import": "Importieren",
"freeSRImport": "FreeSR-Import",
"onlySupportFreeSRJsonFile": "Unterstützt nur FreeSR-JSON-Dateien",
"pickAFile": "Datei auswählen",
"lightConeSetting": "Lichtkegel-Einstellung",
"relicMaker": "Relikt-Ersteller",
"pleaseSelectAllOptions": "Bitte wähle alle Optionen",
"relicSavedSuccessfully": "Relikt erfolgreich gespeichert",
"mainSettings": "Haupteinstellungen",
"mainStat": "Hauptwert",
"set": "Set",
"pleaseSelectASet": "Bitte wähle ein Set",
"effectBonus": "Effektbonus",
"totalRoll": "Gesamte Aufwertungen",
"randomizeStats": "Werte zufällig",
"randomizeRolls": "Aufwertungen zufällig",
"selectASubStat": "Wähle einen Nebenwert",
"selectASet": "Wähle ein Set",
"selectAMainStat": "Wähle einen Hauptwert",
"save": "Speichern",
"reset": "Zurücksetzen",
"roll": "Aufwertung",
"step": "Schritt",
"memoryOfChaos": "Vergessene Halle",
"pureFiction": "Reine Fiktion",
"apocalypticShadow": "Apokalyptischer Schatten",
"customEnemy": "Benutzerdefinierter Feind",
"simulatedUniverse": "Universum-Simulation",
"floor": "Ebene",
"side": "Seite",
"wave": "Welle",
"stage": "Phase",
"useCycleCount": "Zyklen-Zählung verwenden?",
"useTurbulenceBuff": "Turbulenz-Buff verwenden?",
"firstHalfEnemies": "Gegner erste Hälfte",
"secondHalfEnemies": "Gegner zweite Hälfte",
"listEnemies": "Gegnerliste",
"turbulenceBuff": "Turbulenz-Buff",
"noEventSelected": "Kein Ereignis ausgewählt",
"noTurbulenceBuff": "Kein Turbulenz-Buff",
"upper": "Oben",
"lower": "Unten",
"upperToLower": "Oben -> Unten",
"lowerToUpper": "Unten -> Oben",
"selectMOCEvent": "MOC-Ereignis wählen",
"selectPFEvent": "PF-Ereignis wählen",
"selectASEvent": "AS-Ereignis wählen",
"selectCEEvent": "CE-Ereignis wählen",
"selectEvent": "Ereignis wählen",
"selectFloor": "Ebene wählen",
"selectSide": "Seite wählen",
"selectBuff": "Buff wählen",
"selectStage": "Phase wählen",
"previous": "Zurück",
"next": "Weiter",
"noMonstersFound": "Keine Monster gefunden",
"addNewWave": "Neue Welle hinzufügen",
"searchStage": "Phase suchen...",
"noStageFound": "Keine Phase gefunden",
"searchMonster": "Monster suchen...",
"changeRelic": "Relikt wechseln",
"deleteRelic": "Relikt löschen",
"deleteRelicConfirm": "Möchtest du das Relikt auf diesem Platz wirklich löschen?",
"setEffects": "Effekte einstellen",
"details": "Details",
"normal": "Standardangriff",
"bpskill": "Fähigkeit",
"maze": "Technik",
"ultra": "Ultimate",
"servantskill": "Memosprite-Fähigkeit",
"severaltalent": "Memosprite-Talent",
"singleattack": "Einzelangriff",
"enhance": "Verbessern",
"summon": "Beschwören",
"mazeattack": "Technik-Angriff",
"blast": "Explosion",
"restore": "Wiederherstellen",
"support": "Unterstützung",
"aoeattack": "Flächenangriff",
"impair": "Beeinträchtigen",
"bounce": "Abprallen",
"active": "Aktiv",
"defence": "Verteidigung",
"inactive": "Inaktiv",
"maxAll": "Alles maximieren",
"maxAllSuccess": "Fähigkeiten erfolgreich maximiert.",
"maxAllFailed": "Fehler beim Maximieren.",
"noRelicEquipped": "Kein Relikt ausgerüstet",
"anomalyArbitration": "Anomalie-Schiedsgericht",
"normalMode": "Normaler Modus",
"hardMode": "Schwerer Modus",
"selectPEAKEvent": "PEAK-Ereignis wählen",
"mode": "Modus",
"selectMode": "Modus wählen",
"rollBack": "Rückgängig",
"upRoll": "Aufwertung hoch",
"downRoll": "Aufwertung runter",
"actions": "Aktionen",
"avatars": "Avatare",
"quickView": "Schnellansicht",
"extraSetting": "Extra-Einstellungen",
"disableCensorship": "Zensur deaktivieren",
"hideUI": "UI verstecken",
"theoryCraftMode": "Theorycraft-Modus",
"cycleCount": "Zyklen-Anzahl",
"pleaseSelectAllSubStats": "Bitte alle Nebenwerte auswählen",
"subStatRollCountCannotBeZero": "Nebenwert-Aufwertungen dürfen nicht null sein",
"theoryCraft": "Theorycraft",
"multipathCharacter": "Mehrpfad-Charakter",
"mainPath": "Hauptpfad",
"march7Path": "Pfad 7. März",
"challenge": "Herausforderung",
"skipNode": "Knoten überspringen",
"disableSkip": "Überspringen deaktivieren",
"skipNode1": "Knoten 1 überspringen",
"skipNode2": "Knoten 2 überspringen",
"extraFeatures": "Zusatzfunktionen",
"detailTheoryCraft": "Ermöglicht die Anpassung der Zykluszahl und der Gegner-LP.",
"detailSkipNode": "Ermöglicht das Überspringen (Knoten 1/2) im Memory of Chaos oder Pure Fiction.",
"detailChallengePeak": "Ändert die Peak-Saison in der aktuellen Anomalie.",
"detailHiddenUi": "Versteckt die Spiel-Benutzeroberfläche.",
"detailDisableCensorship": "Deaktiviert die Zensur im Spiel.",
"detailMultipathCharacter": "Ermöglicht das Ändern des Pfades bestimmter Charaktere.",
"trailblazer": "Trailblazer",
"listExtraEffect": "Liste Zusatzeffekte",
"extra": "Extra",
"customLineup": "Benutzerdefinierte Aufstellung"
}
}

284
messages/es.json Normal file
View File

@@ -0,0 +1,284 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Herramientas Firefly por Firefly Shelter"
},
"DataPage": {
"skillType": "Tipo de habilidad",
"skillName": "Nombre de la habilidad",
"character": "Personaje",
"id": "Id",
"path": "Vía",
"rarity": "Rareza",
"element": "Elemento",
"technique": "Técnica",
"talent": "Talento",
"basic": "Ataque Básico",
"skill": "Habilidad",
"ultimate": "Habilidad Definitiva",
"servant": "Mnemoduende",
"damage": "Daño",
"type": "Tipo",
"warrior": "La Destrucción",
"knight": "La Conservación",
"mage": "La Erudición",
"priest": "La Abundancia",
"rogue": "La Cacería",
"shaman": "La Armonía",
"warlock": "La Nihilidad",
"memory": "La Reminiscencia",
"elation": "La Exultación",
"fire": "Fuego",
"ice": "Hielo",
"imaginary": "Imaginario",
"physical": "Físico",
"quantum": "Cuántico",
"thunder": "Rayo",
"wind": "Viento",
"hp": "PV",
"atk": "ATQ",
"speed": "VEL",
"critRate": "Prob. CRIT",
"critDmg": "Daño CRIT",
"breakEffect": "Efecto de Ruptura",
"effectRes": "RES a Efecto",
"energyRegenerationRate": "Recuperación de Energía",
"effectHitRate": "Acierto de Efecto",
"outgoingHealingBoost": "Bono de Curación",
"fireDmgBoost": "Aumento de Daño de Fuego",
"iceDmgBoost": "Aumento de Daño de Hielo",
"imaginaryDmgBoost": "Aumento de Daño Imaginario",
"physicalDmgBoost": "Aumento de Daño Físico",
"quantumDmgBoost": "Aumento de Daño Cuántico",
"thunderDmgBoost": "Aumento de Daño de Rayo",
"windDmgBoost": "Aumento de Daño de Viento",
"pursued": "Daño adicional",
"true damage": "Daño verdadero",
"elationdamage": "Daño de Exultación",
"follow-up": "Daño de Ataque Adicional",
"elemental damage": "Daño de Ruptura y Superruptura",
"dot": "Daño con el tiempo",
"qte": "Habilidad QTE",
"level": "Nivel",
"relics": "Artefactos",
"eidolons": "Eidolones",
"lightcones": "Conos de Luz",
"loadData": "Cargar datos",
"exportData": "Exportar datos",
"connectSetting": "Ajustes de conexión",
"connected": "Conectado",
"unconnected": "Desconectado",
"psConnection": "Conexión PS",
"connectionType": "Tipo de conexión",
"status": "Estado",
"connectPs": "Conectar PS",
"disconnect": "Desconectar",
"other": "Otro",
"freeSr": "FreeSR",
"database": "Base de datos",
"enka": "Enka",
"monsterSetting": "Ajuste de Monstruos",
"serverUrl": "URL del Servidor",
"privateType": "Tipo privado",
"local": "Local",
"server": "Servidor",
"username": "Usuario",
"password": "Contraseña",
"placeholderServerUrl": "Introducir URL del servidor",
"placeholderUsername": "Introducir usuario",
"placeholderPassword": "Introducir contraseña",
"connectedSuccess": "Conectado a PS exitosamente",
"connectedFailed": "Fallo al conectar a PS",
"syncSuccess": "Datos sincronizados a PS exitosamente",
"syncFailed": "Fallo al sincronizar datos a PS",
"sync": "Sincronizar",
"importSetting": "Ajustes de Importación",
"profile": "Perfil",
"default": "Por defecto",
"copyProfiles": "Copiar perfiles",
"addNewProfile": "Añadir nuevo perfil",
"createNewProfile": "Crear nuevo perfil",
"editProfile": "Editar perfil",
"placeholderProfileName": "Introducir nombre de perfil",
"profileName": "Nombre del perfil",
"create": "Crear",
"update": "Actualizar",
"characterInformation": "Información del personaje",
"skills": "Habilidades",
"showcaseCard": "Tarjeta de presentación del personaje",
"comingSoon": "Próximamente",
"characterName": "Nombre del personaje",
"placeholderCharacter": "Introducir nombre del personaje",
"characterSettings": "Ajustes del Personaje",
"levelConfiguration": "Configuración de Nivel",
"characterLevel": "Nivel de Personaje",
"max": "MÁX",
"ultimateEnergy": "Energía de Habilidad Definitiva",
"currentEnergy": "Energía al inicio del combate",
"setTo50": "Ajustar al 50%",
"battleConfiguration": "Configuración de Batalla",
"useTechnique": "Usar Técnica",
"techniqueNote": "Activar efectos de técnica pre-batalla",
"enhancement": "Mejora",
"enhancementLevel": "Nivel de Mejora",
"origin": "Original",
"enhancedNote": "Niveles superiores desbloquean más habilidades",
"lightconeEquipment": "Equipamiento de Cono de Luz",
"lightconeSettings": "Ajustes de Cono de Luz",
"placeholderLevel": "Introducir nivel",
"superimpositionRank": "Rango de Superposición",
"ranksNote": "Rangos mayores ofrecen efectos más fuertes",
"changeLightcone": "Cambiar Cono de Luz",
"removeLightcone": "Quitar Cono de Luz",
"equipLightcone": "Equipar Cono de Luz",
"noLightconeEquipped": "Sin Cono de Luz",
"equipLightconeNote": "Equipa un cono de luz para mejorar tu personaje",
"filter": "Filtro",
"selectedCharacters": "Personajes Seleccionados",
"selectedProfiles": "Perfiles Seleccionados",
"clearAll": "Limpiar Todo",
"selectAll": "Seleccionar Todo",
"copy": "Copiar",
"copied": "Copiado",
"noAvatarSelected": "Ningún personaje seleccionado",
"noAvatarToCopySelected": "Ningún personaje seleccionado para copiar",
"pleaseSelectAtLeastOneProfile": "Por favor, selecciona al menos un perfil",
"pleaseEnterUid": "Por favor, introduce UID",
"failedToFetchEnkaData": "Fallo al obtener datos de Enka",
"pleaseSelectAtLeastOneCharacter": "Por favor, selecciona al menos un personaje",
"noDataToImport": "Sin datos para importar",
"pleaseSelectAFile": "Por favor, selecciona un archivo",
"fileMustBeAValidJsonFile": "El archivo debe ser un JSON válido",
"importEnkaDataSuccess": "Datos de Enka importados con éxito",
"importFreeSRDataSuccess": "Datos de FreeSR importados con éxito",
"importDatabaseSuccess": "Base de datos importada con éxito",
"getData": "Obtener Datos",
"import": "Importar",
"freeSRImport": "Importar FreeSR",
"onlySupportFreeSRJsonFile": "Solo soporta archivos JSON de FreeSR",
"pickAFile": "Elegir un archivo",
"lightConeSetting": "Ajuste de Cono de Luz",
"relicMaker": "Creador de Artefactos",
"pleaseSelectAllOptions": "Por favor selecciona todas las opciones",
"relicSavedSuccessfully": "Artefacto guardado exitosamente",
"mainSettings": "Ajustes Principales",
"mainStat": "Estadística Principal",
"set": "Conjunto",
"pleaseSelectASet": "Por favor, selecciona un conjunto",
"effectBonus": "Bono de Efecto",
"totalRoll": "Total de Mejoras",
"randomizeStats": "Estadísticas Aleatorias",
"randomizeRolls": "Mejoras Aleatorias",
"selectASubStat": "Seleccionar estadística secundaria",
"selectASet": "Seleccionar conjunto",
"selectAMainStat": "Seleccionar estadística principal",
"save": "Guardar",
"reset": "Reiniciar",
"roll": "Mejora",
"step": "Paso",
"memoryOfChaos": "Memoria del Caos",
"pureFiction": "Pura Ficción",
"apocalypticShadow": "Sombra Apocalíptica",
"customEnemy": "Enemigo Personalizado",
"simulatedUniverse": "Universo Simulado",
"floor": "Piso",
"side": "Lado",
"wave": "Oleada",
"stage": "Etapa",
"useCycleCount": "¿Usar conteo de ciclos?",
"useTurbulenceBuff": "¿Usar buff de turbulencia?",
"firstHalfEnemies": "Enemigos primera mitad",
"secondHalfEnemies": "Enemigos segunda mitad",
"listEnemies": "Lista de enemigos",
"turbulenceBuff": "Buff de Turbulencia",
"noEventSelected": "Ningún evento seleccionado",
"noTurbulenceBuff": "Sin Buff de Turbulencia",
"upper": "Superior",
"lower": "Inferior",
"upperToLower": "Superior -> Inferior",
"lowerToUpper": "Inferior -> Superior",
"selectMOCEvent": "Seleccionar evento de MOC",
"selectPFEvent": "Seleccionar evento de PF",
"selectASEvent": "Seleccionar evento de AS",
"selectCEEvent": "Seleccionar evento de CE",
"selectEvent": "Seleccionar Evento",
"selectFloor": "Seleccionar Piso",
"selectSide": "Seleccionar Lado",
"selectBuff": "Seleccionar Buff",
"selectStage": "Seleccionar Etapa",
"previous": "Anterior",
"next": "Siguiente",
"noMonstersFound": "No se encontraron monstruos",
"addNewWave": "Añadir Nueva Oleada",
"searchStage": "Buscar etapa...",
"noStageFound": "No se encontró etapa",
"searchMonster": "Buscar monstruo...",
"changeRelic": "Cambiar artefacto",
"deleteRelic": "Borrar artefacto",
"deleteRelicConfirm": "¿Seguro que quieres borrar el artefacto en este espacio?",
"setEffects": "Configurar Efectos",
"details": "Detalles",
"normal": "Ataque Básico",
"bpskill": "Habilidad",
"maze": "Técnica",
"ultra": "Habilidad Definitiva",
"servantskill": "Habilidad de Mnemoduende",
"severaltalent": "Talento de Mnemoduende",
"singleattack": "Ataque Individual",
"enhance": "Mejorar",
"summon": "Invocar",
"mazeattack": "Ataque de Técnica",
"blast": "Ráfaga",
"restore": "Restaurar",
"support": "Soporte",
"aoeattack": "Ataque en Área",
"impair": "Debilitación",
"bounce": "Rebote",
"active": "Activo",
"defence": "Defensa",
"inactive": "Inactivo",
"maxAll": "Maximizar Todo",
"maxAllSuccess": "Habilidades maximizadas con éxito.",
"maxAllFailed": "Fallo al maximizar habilidades.",
"noRelicEquipped": "Sin artefacto equipado",
"anomalyArbitration": "Arbitraje Atípico",
"normalMode": "Modo Normal",
"hardMode": "Modo Difícil",
"selectPEAKEvent": "Seleccionar evento PEAK",
"mode": "Modo",
"selectMode": "Seleccionar un modo",
"rollBack": "Retroceder",
"upRoll": "Subir Mejora",
"downRoll": "Bajar Mejora",
"actions": "Acciones",
"avatars": "Avatares",
"quickView": "Vista Rápida",
"extraSetting": "Ajustes Extra",
"disableCensorship": "Desactivar Censura",
"hideUI": "Ocultar UI",
"theoryCraftMode": "Modo Theorycraft",
"cycleCount": "Conteo de Ciclos",
"pleaseSelectAllSubStats": "Por favor selecciona todas las sub-estadísticas",
"subStatRollCountCannotBeZero": "El conteo de mejoras no puede ser cero",
"theoryCraft": "Theorycraft",
"multipathCharacter": "Personaje Multivía",
"mainPath": "Vía Principal",
"march7Path": "Vía de Siete de Marzo",
"challenge": "Desafío",
"skipNode": "Saltar Nodo",
"disableSkip": "Desactivar salto",
"skipNode1": "Saltar nodo 1",
"skipNode2": "Saltar nodo 2",
"extraFeatures": "Características Extra",
"detailTheoryCraft": "Permite personalizar los ciclos y la vida del enemigo en los ajustes.",
"detailSkipNode": "Permite saltar el Nodo 1 o 2 en Memoria del Caos o Pura Ficción.",
"detailChallengePeak": "Permite cambiar la temporada actual de Arbitraje Atípico.",
"detailHiddenUi": "Oculta la interfaz del juego.",
"detailDisableCensorship": "Desactiva la censura dentro del juego.",
"detailMultipathCharacter": "Permite cambiar la Vía de algunos personajes.",
"trailblazer": "Trazacaminos",
"listExtraEffect": "Lista de Efectos Extra",
"extra": "Extra",
"customLineup": "Alineación de equipo personalizada"
}
}

284
messages/fr.json Normal file
View File

@@ -0,0 +1,284 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Outils Firefly par Firefly Shelter"
},
"DataPage": {
"skillType": "Type de Compétence",
"skillName": "Nom de Compétence",
"character": "Personnage",
"id": "Id",
"path": "Voie",
"rarity": "Rareté",
"element": "Élément",
"technique": "Technique",
"talent": "Talent",
"basic": "Attaque Normale",
"skill": "Compétence",
"ultimate": "Ultime",
"servant": "Serviteur",
"damage": "Dégâts",
"type": "Type",
"warrior": "La Destruction",
"knight": "La Préservation",
"mage": "L'Érudition",
"priest": "L'Abondance",
"rogue": "La Chasse",
"shaman": "L'Harmonie",
"warlock": "La Nihilité",
"memory": "Le Souvenir",
"elation": "L'Allégresse",
"fire": "Feu",
"ice": "Glace",
"imaginary": "Imaginaire",
"physical": "Physique",
"quantum": "Quantique",
"thunder": "Foudre",
"wind": "Vent",
"hp": "PV",
"atk": "ATQ",
"speed": "VIT",
"critRate": "Taux CRIT",
"critDmg": "DGT CRIT",
"breakEffect": "Effet de Rupture",
"effectRes": "RÉS aux effets",
"energyRegenerationRate": "Taux de régénération d'énergie",
"effectHitRate": "Chances d'application d'effets",
"outgoingHealingBoost": "Augmentation des soins",
"fireDmgBoost": "Bonus de dégâts de Feu",
"iceDmgBoost": "Bonus de dégâts de Glace",
"imaginaryDmgBoost": "Bonus de dégâts Imaginaire",
"physicalDmgBoost": "Bonus de dégâts Physique",
"quantumDmgBoost": "Bonus de dégâts Quantique",
"thunderDmgBoost": "Bonus de dégâts de Foudre",
"windDmgBoost": "Bonus de dégâts de Vent",
"pursued": "Dégâts additionnels",
"true damage": "Dégâts bruts",
"elationdamage": "Dégâts d'Allégresse",
"follow-up": "Dégâts d'attaque de suivi",
"elemental damage": "Dégâts de Rupture et Super Rupture",
"dot": "Dégâts sur la durée",
"qte": "Compétence QTE",
"level": "Niveau",
"relics": "Reliques",
"eidolons": "Eidolons",
"lightcones": "Cônes de Lumière",
"loadData": "Charger les données",
"exportData": "Exporter les données",
"connectSetting": "Paramètres de connexion",
"connected": "Connecté",
"unconnected": "Déconnecté",
"psConnection": "Connexion PS",
"connectionType": "Type de connexion",
"status": "Statut",
"connectPs": "Connecter PS",
"disconnect": "Déconnecter",
"other": "Autre",
"freeSr": "FreeSR",
"database": "Base de données",
"enka": "Enka",
"monsterSetting": "Paramètre de monstres",
"serverUrl": "URL du Serveur",
"privateType": "Type privé",
"local": "Local",
"server": "Serveur",
"username": "Nom d'utilisateur",
"password": "Mot de passe",
"placeholderServerUrl": "Entrer l'URL du serveur",
"placeholderUsername": "Entrer le nom d'utilisateur",
"placeholderPassword": "Entrer le mot de passe",
"connectedSuccess": "Connecté au PS avec succès",
"connectedFailed": "Échec de connexion au PS",
"syncSuccess": "Données synchronisées au PS avec succès",
"syncFailed": "Échec de synchronisation au PS",
"sync": "Synchroniser",
"importSetting": "Paramètres d'importation",
"profile": "Profil",
"default": "Défaut",
"copyProfiles": "Copier les profils",
"addNewProfile": "Ajouter un nouveau profil",
"createNewProfile": "Créer un nouveau profil",
"editProfile": "Éditer le profil",
"placeholderProfileName": "Entrer le nom du profil",
"profileName": "Nom du profil",
"create": "Créer",
"update": "Mettre à jour",
"characterInformation": "Informations du personnage",
"skills": "Compétences",
"showcaseCard": "Carte de présentation",
"comingSoon": "Bientôt disponible",
"characterName": "Nom du personnage",
"placeholderCharacter": "Entrer le nom du personnage",
"characterSettings": "Paramètres du personnage",
"levelConfiguration": "Configuration de niveau",
"characterLevel": "Niveau du personnage",
"max": "MAX",
"ultimateEnergy": "Énergie de l'Ultime",
"currentEnergy": "Énergie actuelle",
"setTo50": "Régler sur 50%",
"battleConfiguration": "Configuration de combat",
"useTechnique": "Utiliser Technique",
"techniqueNote": "Activer les effets de technique avant le combat",
"enhancement": "Amélioration",
"enhancementLevel": "Niveau d'amélioration",
"origin": "Origine",
"enhancedNote": "Les améliorations élevées débloquent des compétences",
"lightconeEquipment": "Équipement de Cône de Lumière",
"lightconeSettings": "Paramètres de Cône de Lumière",
"placeholderLevel": "Entrer le niveau",
"superimpositionRank": "Rang de Superposition",
"ranksNote": "Les rangs élevés offrent des effets plus forts",
"changeLightcone": "Changer de Cône de Lumière",
"removeLightcone": "Retirer le Cône de Lumière",
"equipLightcone": "Équiper un Cône de Lumière",
"noLightconeEquipped": "Aucun Cône de Lumière",
"equipLightconeNote": "Équipez un cône pour renforcer votre personnage",
"filter": "Filtre",
"selectedCharacters": "Personnages sélectionnés",
"selectedProfiles": "Profils sélectionnés",
"clearAll": "Tout effacer",
"selectAll": "Tout sélectionner",
"copy": "Copier",
"copied": "Copié",
"noAvatarSelected": "Aucun personnage sélectionné",
"noAvatarToCopySelected": "Aucun personnage à copier sélectionné",
"pleaseSelectAtLeastOneProfile": "Veuillez sélectionner au moins un profil",
"pleaseEnterUid": "Veuillez entrer un UID",
"failedToFetchEnkaData": "Échec de récupération des données Enka",
"pleaseSelectAtLeastOneCharacter": "Veuillez sélectionner au moins un personnage",
"noDataToImport": "Aucune donnée à importer",
"pleaseSelectAFile": "Veuillez sélectionner un fichier",
"fileMustBeAValidJsonFile": "Le fichier doit être un JSON valide",
"importEnkaDataSuccess": "Importation Enka réussie",
"importFreeSRDataSuccess": "Importation FreeSR réussie",
"importDatabaseSuccess": "Importation de base de données réussie",
"getData": "Obtenir des données",
"import": "Importer",
"freeSRImport": "Importation FreeSR",
"onlySupportFreeSRJsonFile": "Supporte uniquement les fichiers JSON FreeSR",
"pickAFile": "Choisir un fichier",
"lightConeSetting": "Paramètre de Cône de Lumière",
"relicMaker": "Créateur de Reliques",
"pleaseSelectAllOptions": "Veuillez sélectionner toutes les options",
"relicSavedSuccessfully": "Relique sauvegardée avec succès",
"mainSettings": "Paramètres principaux",
"mainStat": "Statistique principale",
"set": "Set",
"pleaseSelectASet": "Veuillez sélectionner un set",
"effectBonus": "Bonus d'effet",
"totalRoll": "Total d'améliorations",
"randomizeStats": "Statistiques aléatoires",
"randomizeRolls": "Améliorations aléatoires",
"selectASubStat": "Sélectionner une stat secondaire",
"selectASet": "Sélectionner un set",
"selectAMainStat": "Sélectionner une stat principale",
"save": "Sauvegarder",
"reset": "Réinitialiser",
"roll": "Amélioration",
"step": "Étape",
"memoryOfChaos": "Mémoire du Chaos",
"pureFiction": "Pure Fiction",
"apocalypticShadow": "Ombre Apocalyptique",
"customEnemy": "Ennemi personnalisé",
"simulatedUniverse": "Univers Simulé",
"floor": "Étage",
"side": "Côté",
"wave": "Vague",
"stage": "Niveau",
"useCycleCount": "Utiliser le compteur de cycles ?",
"useTurbulenceBuff": "Utiliser le buff de turbulence ?",
"firstHalfEnemies": "Ennemis première moitié",
"secondHalfEnemies": "Ennemis deuxième moitié",
"listEnemies": "Liste des ennemis",
"turbulenceBuff": "Buff de Turbulence",
"noEventSelected": "Aucun événement sélectionné",
"noTurbulenceBuff": "Aucun Buff de Turbulence",
"upper": "Supérieur",
"lower": "Inférieur",
"upperToLower": "Supérieur -> Inférieur",
"lowerToUpper": "Inférieur -> Supérieur",
"selectMOCEvent": "Sélectionner un événement MOC",
"selectPFEvent": "Sélectionner un événement PF",
"selectASEvent": "Sélectionner un événement AS",
"selectCEEvent": "Sélectionner un événement CE",
"selectEvent": "Sélectionner un événement",
"selectFloor": "Sélectionner un étage",
"selectSide": "Sélectionner un côté",
"selectBuff": "Sélectionner un buff",
"selectStage": "Sélectionner un niveau",
"previous": "Précédent",
"next": "Suivant",
"noMonstersFound": "Aucun monstre trouvé",
"addNewWave": "Ajouter une nouvelle vague",
"searchStage": "Chercher un niveau...",
"noStageFound": "Aucun niveau trouvé",
"searchMonster": "Chercher un monstre...",
"changeRelic": "Changer de relique",
"deleteRelic": "Supprimer la relique",
"deleteRelicConfirm": "Êtes-vous sûr de vouloir supprimer la relique de cet emplacement ?",
"setEffects": "Définir les effets",
"details": "Détails",
"normal": "Attaque Normale",
"bpskill": "Compétence",
"maze": "Technique",
"ultra": "Ultime",
"servantskill": "Compétence de Mémolutin",
"severaltalent": "Talent de Mémolutin",
"singleattack": "Attaque à cible unique",
"enhance": "Renforcement",
"summon": "Invocation",
"mazeattack": "Attaque de Technique",
"blast": "Diffusion",
"restore": "Restauration",
"support": "Soutien",
"aoeattack": "Attaque de zone",
"impair": "Malus",
"bounce": "Rebond",
"active": "Actif",
"defence": "Défense",
"inactive": "Inactif",
"maxAll": "Tout maximiser",
"maxAllSuccess": "Compétences maximisées avec succès.",
"maxAllFailed": "Échec de maximisation.",
"noRelicEquipped": "Aucune relique équipée",
"anomalyArbitration": "Arbitrage d'Anomalie",
"normalMode": "Mode Normal",
"hardMode": "Mode Difficile",
"selectPEAKEvent": "Sélectionner un événement PEAK",
"mode": "Mode",
"selectMode": "Sélectionner un mode",
"rollBack": "Annuler l'étape",
"upRoll": "Augmenter l'amélioration",
"downRoll": "Diminuer l'amélioration",
"actions": "Actions",
"avatars": "Avatars",
"quickView": "Aperçu rapide",
"extraSetting": "Paramètres supplémentaires",
"disableCensorship": "Désactiver la censure",
"hideUI": "Cacher l'UI",
"theoryCraftMode": "Mode Theorycraft",
"cycleCount": "Nombre de cycles",
"pleaseSelectAllSubStats": "Veuillez sélectionner toutes les stats secondaires",
"subStatRollCountCannotBeZero": "Les améliorations de stat secondaire ne peuvent être à zéro",
"theoryCraft": "Theorycraft",
"multipathCharacter": "Personnage Multi-Voies",
"mainPath": "Voie Principale",
"march7Path": "Voie de March 7th",
"challenge": "Défi",
"skipNode": "Passer le nœud",
"disableSkip": "Désactiver le passage",
"skipNode1": "Passer le nœud 1",
"skipNode2": "Passer le nœud 2",
"extraFeatures": "Fonctionnalités supplémentaires",
"detailTheoryCraft": "Permet de personnaliser le nombre de cycles et d'ajuster les PV ennemis.",
"detailSkipNode": "Permet de passer le nœud (1 ou 2) dans Mémoire du Chaos ou Pure Fiction.",
"detailChallengePeak": "Permet de changer la saison de Peak dans l'anomalie actuelle.",
"detailHiddenUi": "Cachera l'interface du jeu.",
"detailDisableCensorship": "Désactivera la censure du jeu.",
"detailMultipathCharacter": "Permet de changer la Voie de certains personnages.",
"trailblazer": "Pionnier",
"listExtraEffect": "Liste des effets supplémentaires",
"extra": "Extra",
"customLineup": "Composition personnalisée"
}
}

284
messages/id.json Normal file
View File

@@ -0,0 +1,284 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Alat Firefly oleh Firefly Shelter"
},
"DataPage": {
"skillType": "Tipe Skill",
"skillName": "Nama Skill",
"character": "Karakter",
"id": "Id",
"path": "Path",
"rarity": "Rarity",
"element": "Elemen",
"technique": "Technique",
"talent": "Talent",
"basic": "Basic Attack",
"skill": "Skill",
"ultimate": "Ultimate",
"servant": "Servant",
"damage": "Damage",
"type": "Tipe",
"warrior": "The Destruction",
"knight": "The Preservation",
"mage": "The Erudition",
"priest": "The Abundance",
"rogue": "The Hunt",
"shaman": "The Harmony",
"warlock": "The Nihility",
"memory": "The Remembrance",
"elation": "The Elation",
"fire": "Fire",
"ice": "Ice",
"imaginary": "Imaginary",
"physical": "Physical",
"quantum": "Quantum",
"thunder": "Lightning",
"wind": "Wind",
"hp": "HP",
"atk": "ATK",
"speed": "SPD",
"critRate": "CRIT Rate",
"critDmg": "CRIT DMG",
"breakEffect": "Break Effect",
"effectRes": "Effect RES",
"energyRegenerationRate": "Energy Regeneration Rate",
"effectHitRate": "Effect Hit Rate",
"outgoingHealingBoost": "Outgoing Healing Boost",
"fireDmgBoost": "Fire DMG Boost",
"iceDmgBoost": "Ice DMG Boost",
"imaginaryDmgBoost": "Imaginary DMG Boost",
"physicalDmgBoost": "Physical DMG Boost",
"quantumDmgBoost": "Quantum DMG Boost",
"thunderDmgBoost": "Lightning DMG Boost",
"windDmgBoost": "Wind DMG Boost",
"pursued": "Additional Damage",
"true damage": "True Damage",
"elationdamage": "Elation Damage",
"follow-up": "Follow-up Attack Damage",
"elemental damage": "Break dan Super Break Damage",
"dot": "Damage Over Time",
"qte": "QTE Skill",
"level": "Level",
"relics": "Relic",
"eidolons": "Eidolon",
"lightcones": "Light Cone",
"loadData": "Muat data",
"exportData": "Ekspor data",
"connectSetting": "Pengaturan Koneksi",
"connected": "Terhubung",
"unconnected": "Tidak terhubung",
"psConnection": "Koneksi PS",
"connectionType": "Tipe Koneksi",
"status": "Status",
"connectPs": "Hubungkan PS",
"disconnect": "Putuskan sambungan",
"other": "Lainnya",
"freeSr": "FreeSR",
"database": "Database",
"enka": "Enka",
"monsterSetting": "Pengaturan Monster",
"serverUrl": "URL Server",
"privateType": "Tipe Private",
"local": "Lokal",
"server": "Server",
"username": "Username",
"password": "Password",
"placeholderServerUrl": "Masukkan URL server",
"placeholderUsername": "Masukkan username",
"placeholderPassword": "Masukkan password",
"connectedSuccess": "Berhasil terhubung ke PS",
"connectedFailed": "Gagal terhubung ke PS",
"syncSuccess": "Berhasil sinkronisasi data ke PS",
"syncFailed": "Gagal sinkronisasi data ke PS",
"sync": "Sinkronisasi",
"importSetting": "Pengaturan Impor",
"profile": "Profil",
"default": "Default",
"copyProfiles": "Salin profil",
"addNewProfile": "Tambah profil baru",
"createNewProfile": "Buat profil baru",
"editProfile": "Edit profil",
"placeholderProfileName": "Masukkan nama profil",
"profileName": "Nama profil",
"create": "Buat",
"update": "Perbarui",
"characterInformation": "Informasi Karakter",
"skills": "Skill",
"showcaseCard": "Showcase Card",
"comingSoon": "Segera hadir",
"characterName": "Nama Karakter",
"placeholderCharacter": "Masukkan nama karakter",
"characterSettings": "Pengaturan Karakter",
"levelConfiguration": "Konfigurasi Level",
"characterLevel": "Level Karakter",
"max": "MAX",
"ultimateEnergy": "Energy Ultimate",
"currentEnergy": "Energy Saat Ini",
"setTo50": "Atur ke 50%",
"battleConfiguration": "Konfigurasi Pertempuran",
"useTechnique": "Gunakan Technique",
"techniqueNote": "Aktifkan efek technique sebelum pertempuran",
"enhancement": "Enhancement",
"enhancementLevel": "Level Enhancement",
"origin": "Asli",
"enhancedNote": "Enhancement lebih tinggi membuka kemampuan tambahan",
"lightconeEquipment": "Peralatan Light Cone",
"lightconeSettings": "Pengaturan Light Cone",
"placeholderLevel": "Masukkan level",
"superimpositionRank": "Superimposition Rank",
"ranksNote": "Rank lebih tinggi memberikan efek lebih kuat",
"changeLightcone": "Ganti Light Cone",
"removeLightcone": "Lepas Light Cone",
"equipLightcone": "Pakai Light Cone",
"noLightconeEquipped": "Tidak Ada Light Cone",
"equipLightconeNote": "Pakai light cone untuk memperkuat karaktermu",
"filter": "Filter",
"selectedCharacters": "Karakter Dipilih",
"selectedProfiles": "Profil Dipilih",
"clearAll": "Bersihkan Semua",
"selectAll": "Pilih Semua",
"copy": "Salin",
"copied": "Tersalin",
"noAvatarSelected": "Tidak ada karakter dipilih",
"noAvatarToCopySelected": "Tidak ada karakter untuk disalin",
"pleaseSelectAtLeastOneProfile": "Pilih setidaknya satu profil",
"pleaseEnterUid": "Silakan masukkan UID",
"failedToFetchEnkaData": "Gagal mengambil data Enka",
"pleaseSelectAtLeastOneCharacter": "Pilih setidaknya satu karakter",
"noDataToImport": "Tidak ada data untuk diimpor",
"pleaseSelectAFile": "Silakan pilih file",
"fileMustBeAValidJsonFile": "File harus berupa file JSON yang valid",
"importEnkaDataSuccess": "Impor data Enka berhasil",
"importFreeSRDataSuccess": "Impor data FreeSR berhasil",
"importDatabaseSuccess": "Impor database berhasil",
"getData": "Dapatkan Data",
"import": "Impor",
"freeSRImport": "Impor FreeSR",
"onlySupportFreeSRJsonFile": "Hanya mendukung file JSON FreeSR",
"pickAFile": "Pilih sebuah file",
"lightConeSetting": "Pengaturan Light Cone",
"relicMaker": "Pembuat Relic",
"pleaseSelectAllOptions": "Silakan pilih semua opsi",
"relicSavedSuccessfully": "Relic berhasil disimpan",
"mainSettings": "Pengaturan Utama",
"mainStat": "Statistik Utama",
"set": "Set",
"pleaseSelectASet": "Pilih sebuah set",
"effectBonus": "Bonus Efek",
"totalRoll": "Total Roll",
"randomizeStats": "Acak Statistik",
"randomizeRolls": "Acak Roll",
"selectASubStat": "Pilih sub stat",
"selectASet": "Pilih sebuah set",
"selectAMainStat": "Pilih stat utama",
"save": "Simpan",
"reset": "Reset",
"roll": "Roll",
"step": "Langkah",
"memoryOfChaos": "Memory of Chaos",
"pureFiction": "Pure Fiction",
"apocalypticShadow": "Apocalyptic Shadow",
"customEnemy": "Musuh Kustom",
"simulatedUniverse": "Simulated Universe",
"floor": "Lantai",
"side": "Sisi",
"wave": "Gelombang",
"stage": "Tahap",
"useCycleCount": "Gunakan hitungan siklus?",
"useTurbulenceBuff": "Gunakan buff turbulence?",
"firstHalfEnemies": "Musuh paruh pertama",
"secondHalfEnemies": "Musuh paruh kedua",
"listEnemies": "Daftar musuh",
"turbulenceBuff": "Turbulence Buff",
"noEventSelected": "Tidak ada event dipilih",
"noTurbulenceBuff": "Tanpa Turbulence Buff",
"upper": "Atas",
"lower": "Bawah",
"upperToLower": "Atas -> Bawah",
"lowerToUpper": "Bawah -> Atas",
"selectMOCEvent": "Pilih Event MOC",
"selectPFEvent": "Pilih Event PF",
"selectASEvent": "Pilih Event AS",
"selectCEEvent": "Pilih Event CE",
"selectEvent": "Pilih Event",
"selectFloor": "Pilih Lantai",
"selectSide": "Pilih Sisi",
"selectBuff": "Pilih Buff",
"selectStage": "Pilih Tahap",
"previous": "Sebelumnya",
"next": "Selanjutnya",
"noMonstersFound": "Tidak ada monster ditemukan",
"addNewWave": "Tambah Gelombang Baru",
"searchStage": "Cari tahap...",
"noStageFound": "Tahap tidak ditemukan",
"searchMonster": "Cari monster...",
"changeRelic": "Ganti relic",
"deleteRelic": "Hapus relic",
"deleteRelicConfirm": "Yakin ingin menghapus relic di slot ini?",
"setEffects": "Atur Efek",
"details": "Detail",
"normal": "Basic ATK",
"bpskill": "Skill",
"maze": "Technique",
"ultra": "Ultimate",
"servantskill": "Skill Memosprite",
"severaltalent": "Talent Memosprite",
"singleattack": "Single Attack",
"enhance": "Enhance",
"summon": "Summon",
"mazeattack": "Technique Attack",
"blast": "Blast",
"restore": "Restore",
"support": "Support",
"aoeattack": "AoE Attack",
"impair": "Impair",
"bounce": "Bounce",
"active": "Aktif",
"defence": "Defence",
"inactive": "Nonaktif",
"maxAll": "Maksimalkan Semua",
"maxAllSuccess": "Berhasil memaksimalkan level skill.",
"maxAllFailed": "Gagal memaksimalkan level skill.",
"noRelicEquipped": "Tidak ada relic dipakai",
"anomalyArbitration": "Anomaly Arbitration",
"normalMode": "Mode Normal",
"hardMode": "Mode Sulit",
"selectPEAKEvent": "Pilih Event PEAK",
"mode": "Mode",
"selectMode": "Pilih Mode",
"rollBack": "Roll Back",
"upRoll": "Up Roll",
"downRoll": "Down Roll",
"actions": "Aksi",
"avatars": "Avatar",
"quickView": "Tampilan Cepat",
"extraSetting": "Pengaturan Ekstra",
"disableCensorship": "Nonaktifkan Sensor",
"hideUI": "Sembunyikan UI",
"theoryCraftMode": "Mode Theorycraft",
"cycleCount": "Hitungan Siklus",
"pleaseSelectAllSubStats": "Pilih semua sub statistik",
"subStatRollCountCannotBeZero": "Hitungan roll sub stat tidak boleh nol",
"theoryCraft": "Theorycraft",
"multipathCharacter": "Karakter Multipath",
"mainPath": "Path Utama",
"march7Path": "Path March 7th",
"challenge": "Tantangan",
"skipNode": "Lewati Node",
"disableSkip": "Nonaktifkan lewati",
"skipNode1": "Lewati node 1",
"skipNode2": "Lewati node 2",
"extraFeatures": "Fitur Ekstra",
"detailTheoryCraft": "Mengaktifkan fitur ini memungkinkan Anda menyesuaikan jumlah siklus dan menyesuaikan HP musuh.",
"detailSkipNode": "Memungkinkan Anda melewati (Node 1/Node 2) di Memory of Chaos atau Pure Fiction.",
"detailChallengePeak": "Memungkinkan perubahan musim Peak dalam Anomaly saat ini.",
"detailHiddenUi": "Mengaktifkan fitur ini akan menyembunyikan UI game.",
"detailDisableCensorship": "Mengaktifkan fitur ini akan mematikan sensor dalam game.",
"detailMultipathCharacter": "Memungkinkan perubahan Path untuk karakter tertentu.",
"trailblazer": "Trailblazer",
"listExtraEffect": "Daftar Efek Ekstra",
"extra": "Ekstra",
"customLineup": "Lineup Kustom"
}
}

284
messages/pt.json Normal file
View File

@@ -0,0 +1,284 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Ferramentas Firefly por Firefly Shelter"
},
"DataPage": {
"skillType": "Tipo de Habilidade",
"skillName": "Nome da Habilidade",
"character": "Personagem",
"id": "Id",
"path": "Caminho",
"rarity": "Raridade",
"element": "Elemento",
"technique": "Técnica",
"talent": "Talento",
"basic": "Ataque Básico",
"skill": "Perícia",
"ultimate": "Perícia Suprema",
"servant": "Servo",
"damage": "Dano",
"type": "Tipo",
"warrior": "A Destruição",
"knight": "A Preservação",
"mage": "A Erudição",
"priest": "A Abundância",
"rogue": "A Caça",
"shaman": "A Harmonia",
"warlock": "A Inexistência",
"memory": "A Lembrança",
"elation": "A Alegria",
"fire": "Fogo",
"ice": "Gelo",
"imaginary": "Imaginário",
"physical": "Físico",
"quantum": "Quântico",
"thunder": "Raio",
"wind": "Vento",
"hp": "PV",
"atk": "ATQ",
"speed": "VEL",
"critRate": "Taxa CRIT",
"critDmg": "Dano CRIT",
"breakEffect": "Efeito de Quebra",
"effectRes": "RES a Efeito",
"energyRegenerationRate": "Taxa de Regeneração de Energia",
"effectHitRate": "Taxa de Acerto de Efeito",
"outgoingHealingBoost": "Bônus de Cura",
"fireDmgBoost": "Bônus de Dano de Fogo",
"iceDmgBoost": "Bônus de Dano de Gelo",
"imaginaryDmgBoost": "Bônus de Dano Imaginário",
"physicalDmgBoost": "Bônus de Dano Físico",
"quantumDmgBoost": "Bônus de Dano Quântico",
"thunderDmgBoost": "Bônus de Dano de Raio",
"windDmgBoost": "Bônus de Dano de Vento",
"pursued": "Dano Adicional",
"true damage": "Dano Verdadeiro",
"elationdamage": "Dano de Alegria",
"follow-up": "Dano de Ataque Extra",
"elemental damage": "Dano de Quebra e Superquebra",
"dot": "Dano Contínuo",
"qte": "Habilidade QTE",
"level": "Nível",
"relics": "Relíquias",
"eidolons": "Eidolons",
"lightcones": "Cones de Luz",
"loadData": "Carregar dados",
"exportData": "Exportar dados",
"connectSetting": "Configuração de Conexão",
"connected": "Conectado",
"unconnected": "Desconectado",
"psConnection": "Conexão PS",
"connectionType": "Tipo de Conexão",
"status": "Status",
"connectPs": "Conectar PS",
"disconnect": "Desconectar",
"other": "Outro",
"freeSr": "FreeSR",
"database": "Banco de dados",
"enka": "Enka",
"monsterSetting": "Configuração de Monstros",
"serverUrl": "URL do Servidor",
"privateType": "Tipo Privado",
"local": "Local",
"server": "Servidor",
"username": "Usuário",
"password": "Senha",
"placeholderServerUrl": "Digite o URL do servidor",
"placeholderUsername": "Digite o usuário",
"placeholderPassword": "Digite a senha",
"connectedSuccess": "Conectado ao PS com sucesso",
"connectedFailed": "Falha ao conectar ao PS",
"syncSuccess": "Dados sincronizados com o PS com sucesso",
"syncFailed": "Falha ao sincronizar dados com o PS",
"sync": "Sincronizar",
"importSetting": "Configuração de Importação",
"profile": "Perfil",
"default": "Padrão",
"copyProfiles": "Copiar perfis",
"addNewProfile": "Adicionar novo perfil",
"createNewProfile": "Criar novo perfil",
"editProfile": "Editar perfil",
"placeholderProfileName": "Digite o nome do perfil",
"profileName": "Nome do perfil",
"create": "Criar",
"update": "Atualizar",
"characterInformation": "Informação do Personagem",
"skills": "Habilidades",
"showcaseCard": "Cartão de Exibição",
"comingSoon": "Em breve",
"characterName": "Nome do personagem",
"placeholderCharacter": "Digite o nome do personagem",
"characterSettings": "Configurações de Personagem",
"levelConfiguration": "Configuração de Nível",
"characterLevel": "Nível do Personagem",
"max": "MÁX",
"ultimateEnergy": "Energia da Perícia Suprema",
"currentEnergy": "Energia Atual",
"setTo50": "Definir para 50%",
"battleConfiguration": "Configuração de Batalha",
"useTechnique": "Usar Técnica",
"techniqueNote": "Ativar efeitos de técnica pré-batalha",
"enhancement": "Aprimoramento",
"enhancementLevel": "Nível de Aprimoramento",
"origin": "Origem",
"enhancedNote": "Níveis altos desbloqueiam habilidades",
"lightconeEquipment": "Equipamento de Cone de Luz",
"lightconeSettings": "Configurações de Cone de Luz",
"placeholderLevel": "Digite o nível",
"superimpositionRank": "Rank de Sobreposição",
"ranksNote": "Ranks maiores dão efeitos mais fortes",
"changeLightcone": "Mudar Cone de Luz",
"removeLightcone": "Remover Cone de Luz",
"equipLightcone": "Equipar Cone de Luz",
"noLightconeEquipped": "Sem Cone de Luz",
"equipLightconeNote": "Equipe um cone de luz para melhorar o personagem",
"filter": "Filtro",
"selectedCharacters": "Personagens Selecionados",
"selectedProfiles": "Perfis Selecionados",
"clearAll": "Limpar Tudo",
"selectAll": "Selecionar Tudo",
"copy": "Copiar",
"copied": "Copiado",
"noAvatarSelected": "Nenhum personagem selecionado",
"noAvatarToCopySelected": "Nenhum personagem para copiar",
"pleaseSelectAtLeastOneProfile": "Por favor, selecione ao menos um perfil",
"pleaseEnterUid": "Por favor, insira o UID",
"failedToFetchEnkaData": "Falha ao obter dados Enka",
"pleaseSelectAtLeastOneCharacter": "Selecione ao menos um personagem",
"noDataToImport": "Sem dados para importar",
"pleaseSelectAFile": "Por favor, selecione um arquivo",
"fileMustBeAValidJsonFile": "O arquivo deve ser um JSON válido",
"importEnkaDataSuccess": "Dados Enka importados com sucesso",
"importFreeSRDataSuccess": "Dados FreeSR importados com sucesso",
"importDatabaseSuccess": "Banco de dados importado com sucesso",
"getData": "Obter Dados",
"import": "Importar",
"freeSRImport": "Importação FreeSR",
"onlySupportFreeSRJsonFile": "Suporta apenas arquivos JSON FreeSR",
"pickAFile": "Escolher um arquivo",
"lightConeSetting": "Configuração de Cone de Luz",
"relicMaker": "Criador de Relíquias",
"pleaseSelectAllOptions": "Por favor selecione todas as opções",
"relicSavedSuccessfully": "Relíquia salva com sucesso",
"mainSettings": "Configurações Principais",
"mainStat": "Atributo Principal",
"set": "Conjunto",
"pleaseSelectASet": "Selecione um conjunto",
"effectBonus": "Bônus de Efeito",
"totalRoll": "Total de Melhorias",
"randomizeStats": "Atributos Aleatórios",
"randomizeRolls": "Melhorias Aleatórias",
"selectASubStat": "Selecionar sub-atributo",
"selectASet": "Selecionar conjunto",
"selectAMainStat": "Selecionar atributo principal",
"save": "Salvar",
"reset": "Redefinir",
"roll": "Melhoria",
"step": "Passo",
"memoryOfChaos": "Memória do Caos",
"pureFiction": "Pura Ficção",
"apocalypticShadow": "Sombra Apocalíptica",
"customEnemy": "Inimigo Personalizado",
"simulatedUniverse": "Universo Simulado",
"floor": "Andar",
"side": "Lado",
"wave": "Onda",
"stage": "Fase",
"useCycleCount": "Usar contagem de ciclos?",
"useTurbulenceBuff": "Usar buff de turbulência?",
"firstHalfEnemies": "Inimigos da primeira metade",
"secondHalfEnemies": "Inimigos da segunda metade",
"listEnemies": "Lista de inimigos",
"turbulenceBuff": "Buff de Turbulência",
"noEventSelected": "Nenhum evento selecionado",
"noTurbulenceBuff": "Sem Buff de Turbulência",
"upper": "Superior",
"lower": "Inferior",
"upperToLower": "Superior -> Inferior",
"lowerToUpper": "Inferior -> Superior",
"selectMOCEvent": "Selecionar Evento MOC",
"selectPFEvent": "Selecionar Evento PF",
"selectASEvent": "Selecionar Evento AS",
"selectCEEvent": "Selecionar Evento CE",
"selectEvent": "Selecionar Evento",
"selectFloor": "Selecionar Andar",
"selectSide": "Selecionar Lado",
"selectBuff": "Selecionar Buff",
"selectStage": "Selecionar Fase",
"previous": "Anterior",
"next": "Próximo",
"noMonstersFound": "Nenhum monstro encontrado",
"addNewWave": "Adicionar Nova Onda",
"searchStage": "Buscar fase...",
"noStageFound": "Fase não encontrada",
"searchMonster": "Buscar monstro...",
"changeRelic": "Mudar relíquia",
"deleteRelic": "Deletar relíquia",
"deleteRelicConfirm": "Tem certeza que deseja deletar a relíquia neste slot?",
"setEffects": "Definir Efeitos",
"details": "Detalhes",
"normal": "Ataque Básico",
"bpskill": "Perícia",
"maze": "Técnica",
"ultra": "Perícia Suprema",
"servantskill": "Habilidade do Memoespirito",
"severaltalent": "Talento do Memoespirito",
"singleattack": "Ataque Único",
"enhance": "Aprimorar",
"summon": "Invocar",
"mazeattack": "Ataque de Técnica",
"blast": "Explosão",
"restore": "Restaurar",
"support": "Suporte",
"aoeattack": "Ataque em Área",
"impair": "Enfraquecer",
"bounce": "Rebote",
"active": "Ativo",
"defence": "Defesa",
"inactive": "Inativo",
"maxAll": "Maximizar Tudo",
"maxAllSuccess": "Habilidades maximizadas com sucesso.",
"maxAllFailed": "Falha ao maximizar habilidades.",
"noRelicEquipped": "Sem relíquia equipada",
"anomalyArbitration": "Arbitragem de Anomalia",
"normalMode": "Modo Normal",
"hardMode": "Modo Difícil",
"selectPEAKEvent": "Selecionar Evento PEAK",
"mode": "Modo",
"selectMode": "Selecionar um modo",
"rollBack": "Reverter",
"upRoll": "Aumentar Melhoria",
"downRoll": "Diminuir Melhoria",
"actions": "Ações",
"avatars": "Avatares",
"quickView": "Visualização Rápida",
"extraSetting": "Configurações Extras",
"disableCensorship": "Desativar Censura",
"hideUI": "Ocultar UI",
"theoryCraftMode": "Modo Theorycraft",
"cycleCount": "Contagem de Ciclos",
"pleaseSelectAllSubStats": "Selecione todos os sub-atributos",
"subStatRollCountCannotBeZero": "As melhorias do sub-atributo não podem ser zero",
"theoryCraft": "Theorycraft",
"multipathCharacter": "Personagem Multicaminho",
"mainPath": "Caminho Principal",
"march7Path": "Caminho de 7 de Março",
"challenge": "Desafio",
"skipNode": "Pular Nó",
"disableSkip": "Desativar pulo",
"skipNode1": "Pular nó 1",
"skipNode2": "Pular nó 2",
"extraFeatures": "Recursos Extras",
"detailTheoryCraft": "Ativar isso permite personalizar os ciclos e ajustar o HP dos inimigos.",
"detailSkipNode": "Permite pular (Nó 1/Nó 2) em Memória do Caos ou Pura Ficção.",
"detailChallengePeak": "Permite mudar a temporada de Peak na Anomalia atual.",
"detailHiddenUi": "Irá esconder a interface do jogo.",
"detailDisableCensorship": "Desativa a censura no jogo.",
"detailMultipathCharacter": "Permite mudar o Caminho de certos personagens.",
"trailblazer": "Desbravador",
"listExtraEffect": "Lista de Efeitos Extras",
"extra": "Extra",
"customLineup": "Formação Personalizada"
}
}

284
messages/ru.json Normal file
View File

@@ -0,0 +1,284 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "Инструменты Firefly от Firefly Shelter"
},
"DataPage": {
"skillType": "Тип навыка",
"skillName": "Название навыка",
"character": "Персонаж",
"id": "ID",
"path": "Путь",
"rarity": "Редкость",
"element": "Элемент",
"technique": "Техника",
"talent": "Талант",
"basic": "Базовая атака",
"skill": "Навык",
"ultimate": "Сверхспособность",
"servant": "Слуга",
"damage": "Урон",
"type": "Тип",
"warrior": "Разрушение",
"knight": "Сохранение",
"mage": "Эрудиция",
"priest": "Изобилие",
"rogue": "Охота",
"shaman": "Гармония",
"warlock": "Небытие",
"memory": "Память",
"elation": "Радость",
"fire": "Огонь",
"ice": "Лед",
"imaginary": "Мнимый",
"physical": "Физический",
"quantum": "Квантовый",
"thunder": "Электрический",
"wind": "Ветряной",
"hp": "HP",
"atk": "Сила атаки",
"speed": "Скорость",
"critRate": "Крит. шанс",
"critDmg": "Крит. урон",
"breakEffect": "Эффект пробития",
"effectRes": "Сопротивление эффектам",
"energyRegenerationRate": "Скорость восст. энергии",
"effectHitRate": "Шанс попадания эффектов",
"outgoingHealingBoost": "Бонус исходящего исцеления",
"fireDmgBoost": "Бонус огненного урона",
"iceDmgBoost": "Бонус ледяного урона",
"imaginaryDmgBoost": "Бонус мнимого урона",
"physicalDmgBoost": "Бонус физ. урона",
"quantumDmgBoost": "Бонус квантового урона",
"thunderDmgBoost": "Бонус электр. урона",
"windDmgBoost": "Бонус ветряного урона",
"pursued": "Дополнительный урон",
"true damage": "Истинный урон",
"elationdamage": "Урон радости",
"follow-up": "Урон бонус-атаки",
"elemental damage": "Урон пробития и суперпробития",
"dot": "Периодический урон",
"qte": "QTE Навык",
"level": "Уровень",
"relics": "Реликвии",
"eidolons": "Эйдолоны",
"lightcones": "Световые конусы",
"loadData": "Загрузить данные",
"exportData": "Экспортировать данные",
"connectSetting": "Настройки подключения",
"connected": "Подключено",
"unconnected": "Не подключено",
"psConnection": "Подключение к PS",
"connectionType": "Тип подключения",
"status": "Статус",
"connectPs": "Подключить PS",
"disconnect": "Отключить",
"other": "Другое",
"freeSr": "FreeSR",
"database": "База данных",
"enka": "Enka",
"monsterSetting": "Настройки монстров",
"serverUrl": "URL сервера",
"privateType": "Приватный тип",
"local": "Локальный",
"server": "Сервер",
"username": "Имя пользователя",
"password": "Пароль",
"placeholderServerUrl": "Введите URL сервера",
"placeholderUsername": "Введите имя пользователя",
"placeholderPassword": "Введите пароль",
"connectedSuccess": "Успешное подключение к PS",
"connectedFailed": "Ошибка подключения к PS",
"syncSuccess": "Данные успешно синхронизированы с PS",
"syncFailed": "Ошибка синхронизации данных",
"sync": "Синхронизация",
"importSetting": "Настройки импорта",
"profile": "Профиль",
"default": "По умолчанию",
"copyProfiles": "Копировать профили",
"addNewProfile": "Добавить новый профиль",
"createNewProfile": "Создать новый профиль",
"editProfile": "Редактировать профиль",
"placeholderProfileName": "Введите имя профиля",
"profileName": "Имя профиля",
"create": "Создать",
"update": "Обновить",
"characterInformation": "Информация о персонаже",
"skills": "Навыки",
"showcaseCard": "Карточка персонажа",
"comingSoon": "Скоро",
"characterName": "Имя персонажа",
"placeholderCharacter": "Введите имя персонажа",
"characterSettings": "Настройки персонажа",
"levelConfiguration": "Конфигурация уровня",
"characterLevel": "Уровень персонажа",
"max": "МАКС",
"ultimateEnergy": "Энергия сверхспособности",
"currentEnergy": "Текущая энергия",
"setTo50": "Установить на 50%",
"battleConfiguration": "Конфигурация боя",
"useTechnique": "Использовать технику",
"techniqueNote": "Включить эффекты техники до боя",
"enhancement": "Усиление",
"enhancementLevel": "Уровень усиления",
"origin": "Оригинал",
"enhancedNote": "Высокие уровни открывают новые способности",
"lightconeEquipment": "Снаряжение конуса",
"lightconeSettings": "Настройки светового конуса",
"placeholderLevel": "Введите уровень",
"superimpositionRank": "Уровень наложения",
"ranksNote": "Высокие ранги дают более сильные эффекты",
"changeLightcone": "Изменить световой конус",
"removeLightcone": "Снять световой конус",
"equipLightcone": "Экипировать конус",
"noLightconeEquipped": "Световой конус не экипирован",
"equipLightconeNote": "Наденьте конус для усиления персонажа",
"filter": "Фильтр",
"selectedCharacters": "Выбранные персонажи",
"selectedProfiles": "Выбранные профили",
"clearAll": "Очистить всё",
"selectAll": "Выбрать всё",
"copy": "Копировать",
"copied": "Скопировано",
"noAvatarSelected": "Персонаж не выбран",
"noAvatarToCopySelected": "Нет персонажа для копирования",
"pleaseSelectAtLeastOneProfile": "Пожалуйста, выберите хотя бы один профиль",
"pleaseEnterUid": "Пожалуйста, введите UID",
"failedToFetchEnkaData": "Не удалось получить данные Enka",
"pleaseSelectAtLeastOneCharacter": "Пожалуйста, выберите хотя бы одного персонажа",
"noDataToImport": "Нет данных для импорта",
"pleaseSelectAFile": "Пожалуйста, выберите файл",
"fileMustBeAValidJsonFile": "Файл должен быть в формате JSON",
"importEnkaDataSuccess": "Успешный импорт из Enka",
"importFreeSRDataSuccess": "Успешный импорт из FreeSR",
"importDatabaseSuccess": "Успешный импорт базы данных",
"getData": "Получить данные",
"import": "Импорт",
"freeSRImport": "Импорт FreeSR",
"onlySupportFreeSRJsonFile": "Поддерживаются только JSON от FreeSR",
"pickAFile": "Выберите файл",
"lightConeSetting": "Настройки конуса",
"relicMaker": "Создатель реликвий",
"pleaseSelectAllOptions": "Пожалуйста, выберите все параметры",
"relicSavedSuccessfully": "Реликвия успешно сохранена",
"mainSettings": "Основные настройки",
"mainStat": "Основная характеристика",
"set": "Набор",
"pleaseSelectASet": "Выберите набор",
"effectBonus": "Бонус эффекта",
"totalRoll": "Всего улучшений",
"randomizeStats": "Случайные статы",
"randomizeRolls": "Случайные улучшения",
"selectASubStat": "Выберите доп. стат",
"selectASet": "Выберите набор",
"selectAMainStat": "Выберите основной стат",
"save": "Сохранить",
"reset": "Сброс",
"roll": "Улучшение",
"step": "Шаг",
"memoryOfChaos": "Зал забвения",
"pureFiction": "Чистый вымысел",
"apocalypticShadow": "Апокалиптическая тень",
"customEnemy": "Свой противник",
"simulatedUniverse": "Виртуальная вселенная",
"floor": "Этаж",
"side": "Половина",
"wave": "Волна",
"stage": "Стадия",
"useCycleCount": "Использовать счетчик циклов?",
"useTurbulenceBuff": "Использовать бафф турбулентности?",
"firstHalfEnemies": "Враги первой половины",
"secondHalfEnemies": "Враги второй половины",
"listEnemies": "Список врагов",
"turbulenceBuff": "Бафф турбулентности",
"noEventSelected": "Событие не выбрано",
"noTurbulenceBuff": "Нет баффа турбулентности",
"upper": "Верх",
"lower": "Низ",
"upperToLower": "Верх -> Низ",
"lowerToUpper": "Низ -> Верх",
"selectMOCEvent": "Выбрать событие MOC",
"selectPFEvent": "Выбрать событие PF",
"selectASEvent": "Выбрать событие AS",
"selectCEEvent": "Выбрать событие CE",
"selectEvent": "Выбрать событие",
"selectFloor": "Выбрать этаж",
"selectSide": "Выбрать половину",
"selectBuff": "Выбрать бафф",
"selectStage": "Выбрать стадию",
"previous": "Назад",
"next": "Вперед",
"noMonstersFound": "Монстры не найдены",
"addNewWave": "Добавить новую волну",
"searchStage": "Поиск стадии...",
"noStageFound": "Стадия не найдена",
"searchMonster": "Поиск монстра...",
"changeRelic": "Изменить реликвию",
"deleteRelic": "Удалить реликвию",
"deleteRelicConfirm": "Удалить реликвию в этом слоте?",
"setEffects": "Настроить эффекты",
"details": "Детали",
"normal": "Базовая атака",
"bpskill": "Навык",
"maze": "Техника",
"ultra": "Сверхспособность",
"servantskill": "Навык мемоспрайта",
"severaltalent": "Талант мемоспрайта",
"singleattack": "Одиночная атака",
"enhance": "Усиление",
"summon": "Призыв",
"mazeattack": "Атака в технике",
"blast": "Взрыв",
"restore": "Восстановление",
"support": "Поддержка",
"aoeattack": "АоЕ атака",
"impair": "Ослабление",
"bounce": "Отскок",
"active": "Активен",
"defence": "Защита",
"inactive": "Неактивен",
"maxAll": "Улучшить всё",
"maxAllSuccess": "Уровни навыков улучшены до максимума.",
"maxAllFailed": "Не удалось улучшить навыки.",
"noRelicEquipped": "Нет экипированных реликвий",
"anomalyArbitration": "Аномальный арбитраж",
"normalMode": "Обычный режим",
"hardMode": "Сложный режим",
"selectPEAKEvent": "Выбрать событие PEAK",
"mode": "Режим",
"selectMode": "Выбрать режим",
"rollBack": "Отменить шаг",
"upRoll": "Повысить улучшение",
"downRoll": "Понизить улучшение",
"actions": "Действия",
"avatars": "Персонажи",
"quickView": "Быстрый просмотр",
"extraSetting": "Дополнительные настройки",
"disableCensorship": "Отключить цензуру",
"hideUI": "Скрыть интерфейс",
"theoryCraftMode": "Режим Theorycraft",
"cycleCount": "Счетчик циклов",
"pleaseSelectAllSubStats": "Пожалуйста, выберите все саб-статы",
"subStatRollCountCannotBeZero": "Количество улучшений саб-стата не может быть нулем",
"theoryCraft": "Theorycraft",
"multipathCharacter": "Многопутевой персонаж",
"mainPath": "Основной Путь",
"march7Path": "Путь Март 7",
"challenge": "Испытание",
"skipNode": "Пропустить узел",
"disableSkip": "Отключить пропуск",
"skipNode1": "Пропустить узел 1",
"skipNode2": "Пропустить узел 2",
"extraFeatures": "Дополнительные функции",
"detailTheoryCraft": "Включение этой функции позволяет настроить количество циклов и здоровье противников.",
"detailSkipNode": "Позволяет пропустить (Узел 1/Узел 2) в Зале забвения или Чистом вымысле.",
"detailChallengePeak": "Позволяет изменить сезон Peak в текущей Аномалии.",
"detailHiddenUi": "Скрывает игровой интерфейс.",
"detailDisableCensorship": "Отключает внутриигровую цензуру.",
"detailMultipathCharacter": "Позволяет изменить Путь некоторых персонажей.",
"trailblazer": "Первопроходец",
"listExtraEffect": "Список доп. эффектов",
"extra": "Экстра",
"customLineup": "Пользовательский отряд"
}
}

284
messages/th.json Normal file
View File

@@ -0,0 +1,284 @@
{
"TabTitle": {
"title": "Firefly Tools",
"description": "เครื่องมือ Firefly โดย Firefly Shelter"
},
"DataPage": {
"skillType": "ประเภทสกิล",
"skillName": "ชื่อสกิล",
"character": "ตัวละคร",
"id": "ไอดี",
"path": "Path",
"rarity": "ระดับความหายาก",
"element": "ธาตุ",
"technique": "เทคนิค",
"talent": "พรสวรรค์",
"basic": "โจมตีปกติ",
"skill": "สกิลต่อสู้",
"ultimate": "ท่าไม้ตาย",
"servant": "ผู้ติดตาม",
"damage": "ความเสียหาย",
"type": "ประเภท",
"warrior": "ทำลายล้าง",
"knight": "อนุรักษ์",
"mage": "ปัญญา",
"priest": "เฟื่องฟู",
"rogue": "ล่าสังหาร",
"shaman": "ประสาน",
"warlock": "ลบล้าง",
"memory": "ลบล้าง",
"elation": "ปิติสุข",
"fire": "ไฟ",
"ice": "น้ำแข็ง",
"imaginary": "จินตภาพ",
"physical": "กายภาพ",
"quantum": "ควอนตัม",
"thunder": "สายฟ้า",
"wind": "ลม",
"hp": "HP",
"atk": "ATK",
"speed": "ความเร็ว",
"critRate": "อัตราคริติคอล",
"critDmg": "ความเสียหายคริติคอล",
"breakEffect": "เอฟเฟกต์ทำลายล้าง",
"effectRes": "ต้านทานสถานะ",
"energyRegenerationRate": "อัตราฟื้นฟูพลังงาน",
"effectHitRate": "อัตราสร้างสถานะ",
"outgoingHealingBoost": "โบนัสการรักษา",
"fireDmgBoost": "โบนัสความเสียหายไฟ",
"iceDmgBoost": "โบนัสความเสียหายน้ำแข็ง",
"imaginaryDmgBoost": "โบนัสความเสียหายจินตภาพ",
"physicalDmgBoost": "โบนัสความเสียหายกายภาพ",
"quantumDmgBoost": "โบนัสความเสียหายควอนตัม",
"thunderDmgBoost": "โบนัสความเสียหายสายฟ้า",
"windDmgBoost": "โบนัสความเสียหายลม",
"pursued": "ความเสียหายเพิ่มเติม",
"true damage": "ความเสียหายจริง",
"elationdamage": "ความเสียหายปิติสุข",
"follow-up": "ความเสียหายโจมตีต่อเนื่อง",
"elemental damage": "ความเสียหายทำลายล้างและซูเปอร์",
"dot": "ความเสียหายต่อเนื่อง",
"qte": "สกิล QTE",
"level": "เลเวล",
"relics": "รีลิกส์",
"eidolons": "Eidolon",
"lightcones": "Light Cone",
"loadData": "โหลดข้อมูล",
"exportData": "ส่งออกข้อมูล",
"connectSetting": "การตั้งค่าการเชื่อมต่อ",
"connected": "เชื่อมต่อแล้ว",
"unconnected": "ไม่ได้เชื่อมต่อ",
"psConnection": "การเชื่อมต่อ PS",
"connectionType": "ประเภทการเชื่อมต่อ",
"status": "สถานะ",
"connectPs": "เชื่อมต่อ PS",
"disconnect": "ยกเลิกการเชื่อมต่อ",
"other": "อื่นๆ",
"freeSr": "FreeSR",
"database": "ฐานข้อมูล",
"enka": "Enka",
"monsterSetting": "ตั้งค่ามอนสเตอร์",
"serverUrl": "URL เซิร์ฟเวอร์",
"privateType": "ประเภทเซิร์ฟเวอร์ส่วนตัว",
"local": "ในเครื่อง",
"server": "เซิร์ฟเวอร์",
"username": "ชื่อผู้ใช้",
"password": "รหัสผ่าน",
"placeholderServerUrl": "ป้อน URL เซิร์ฟเวอร์",
"placeholderUsername": "ป้อนชื่อผู้ใช้",
"placeholderPassword": "ป้อนรหัสผ่าน",
"connectedSuccess": "เชื่อมต่อกับ PS สำเร็จ",
"connectedFailed": "ล้มเหลวในการเชื่อมต่อกับ PS",
"syncSuccess": "ซิงค์ข้อมูลกับ PS สำเร็จ",
"syncFailed": "ล้มเหลวในการซิงค์ข้อมูลกับ PS",
"sync": "ซิงค์",
"importSetting": "การตั้งค่าการนำเข้า",
"profile": "โปรไฟล์",
"default": "ค่าเริ่มต้น",
"copyProfiles": "คัดลอกโปรไฟล์",
"addNewProfile": "เพิ่มโปรไฟล์ใหม่",
"createNewProfile": "สร้างโปรไฟล์ใหม่",
"editProfile": "แก้ไขโปรไฟล์",
"placeholderProfileName": "ป้อนชื่อโปรไฟล์",
"profileName": "ชื่อโปรไฟล์",
"create": "สร้าง",
"update": "อัปเดต",
"characterInformation": "ข้อมูลตัวละคร",
"skills": "สกิล",
"showcaseCard": "การ์ดแสดง",
"comingSoon": "เร็วๆ นี้",
"characterName": "ชื่อตัวละคร",
"placeholderCharacter": "ป้อนชื่อตัวละคร",
"characterSettings": "การตั้งค่าตัวละคร",
"levelConfiguration": "การกำหนดระดับเลเวล",
"characterLevel": "เลเวลตัวละคร",
"max": "สูงสุด",
"ultimateEnergy": "พลังงานท่าไม้ตาย",
"currentEnergy": "พลังงานปัจจุบัน",
"setTo50": "ตั้งค่าเป็น 50%",
"battleConfiguration": "การกำหนดค่าการต่อสู้",
"useTechnique": "ใช้เทคนิค",
"techniqueNote": "เปิดใช้เอฟเฟกต์เทคนิคก่อนการต่อสู้",
"enhancement": "การเสริมพลัง",
"enhancementLevel": "ระดับการเสริมพลัง",
"origin": "ดั้งเดิม",
"enhancedNote": "การเสริมพลังที่สูงขึ้นจะปลดล็อกความสามารถ",
"lightconeEquipment": "สวมใส่ Light Cone",
"lightconeSettings": "การตั้งค่า Light Cone",
"placeholderLevel": "ป้อนเลเวล",
"superimpositionRank": "ระดับการขัดเกลา",
"ranksNote": "ระดับที่สูงขึ้นให้เอฟเฟกต์ที่แข็งแกร่งกว่า",
"changeLightcone": "เปลี่ยน Light Cone",
"removeLightcone": "ถอด Light Cone",
"equipLightcone": "สวมใส่ Light Cone",
"noLightconeEquipped": "ไม่ได้สวมใส่ Light Cone",
"equipLightconeNote": "สวมใส่ Light Cone เพื่อเพิ่มพลัง",
"filter": "กรอง",
"selectedCharacters": "ตัวละครที่เลือก",
"selectedProfiles": "โปรไฟล์ที่เลือก",
"clearAll": "ล้างทั้งหมด",
"selectAll": "เลือกทั้งหมด",
"copy": "คัดลอก",
"copied": "คัดลอกแล้ว",
"noAvatarSelected": "ไม่ได้เลือกตัวละคร",
"noAvatarToCopySelected": "ไม่ได้เลือกตัวละครที่จะคัดลอก",
"pleaseSelectAtLeastOneProfile": "โปรดเลือกอย่างน้อยหนึ่งโปรไฟล์",
"pleaseEnterUid": "โปรดป้อน UID",
"failedToFetchEnkaData": "ไม่สามารถดึงข้อมูล Enka ได้",
"pleaseSelectAtLeastOneCharacter": "โปรดเลือกอย่างน้อยหนึ่งตัวละคร",
"noDataToImport": "ไม่มีข้อมูลที่จะนำเข้า",
"pleaseSelectAFile": "โปรดเลือกไฟล์",
"fileMustBeAValidJsonFile": "ไฟล์ต้องเป็นไฟล์ JSON ที่ถูกต้อง",
"importEnkaDataSuccess": "นำเข้าข้อมูล Enka สำเร็จ",
"importFreeSRDataSuccess": "นำเข้าข้อมูล FreeSR สำเร็จ",
"importDatabaseSuccess": "นำเข้าฐานข้อมูลสำเร็จ",
"getData": "รับข้อมูล",
"import": "นำเข้า",
"freeSRImport": "นำเข้า FreeSR",
"onlySupportFreeSRJsonFile": "รองรับเฉพาะไฟล์ JSON ของ FreeSR",
"pickAFile": "เลือกไฟล์",
"lightConeSetting": "การตั้งค่า Light Cone",
"relicMaker": "สร้างรีลิกส์",
"pleaseSelectAllOptions": "โปรดเลือกตัวเลือกทั้งหมด",
"relicSavedSuccessfully": "บันทึกรีลิกส์สำเร็จ",
"mainSettings": "การตั้งค่าหลัก",
"mainStat": "ค่าสเตตัสหลัก",
"set": "เซ็ต",
"pleaseSelectASet": "โปรดเลือกเซ็ต",
"effectBonus": "โบนัสเอฟเฟกต์",
"totalRoll": "จำนวนการอัปเกรด",
"randomizeStats": "สุ่มสเตตัส",
"randomizeRolls": "สุ่มอัปเกรด",
"selectASubStat": "เลือกสเตตัสรอง",
"selectASet": "เลือกเซ็ต",
"selectAMainStat": "เลือกสเตตัสหลัก",
"save": "บันทึก",
"reset": "รีเซ็ต",
"roll": "อัปเกรด",
"step": "ขั้น",
"memoryOfChaos": "Memory of Chaos",
"pureFiction": "Pure Fiction",
"apocalypticShadow": "Apocalyptic Shadow",
"customEnemy": "ศัตรูกำหนดเอง",
"simulatedUniverse": "Simulated Universe",
"floor": "ชั้น",
"side": "ฝั่ง",
"wave": "เวฟ",
"stage": "ด่าน",
"useCycleCount": "ใช้การนับรอบหรือไม่?",
"useTurbulenceBuff": "ใช้บัฟบรรยากาศหรือไม่?",
"firstHalfEnemies": "ศัตรูครึ่งแรก",
"secondHalfEnemies": "ศัตรูครึ่งหลัง",
"listEnemies": "รายการศัตรู",
"turbulenceBuff": "บัฟบรรยากาศ",
"noEventSelected": "ไม่ได้เลือกอีเวนต์",
"noTurbulenceBuff": "ไม่มีบัฟบรรยากาศ",
"upper": "บน",
"lower": "ล่าง",
"upperToLower": "บน -> ล่าง",
"lowerToUpper": "ล่าง -> บน",
"selectMOCEvent": "เลือกอีเวนต์ MOC",
"selectPFEvent": "เลือกอีเวนต์ PF",
"selectASEvent": "เลือกอีเวนต์ AS",
"selectCEEvent": "เลือกอีเวนต์ CE",
"selectEvent": "เลือกอีเวนต์",
"selectFloor": "เลือกชั้น",
"selectSide": "เลือกฝั่ง",
"selectBuff": "เลือกบัฟ",
"selectStage": "เลือกด่าน",
"previous": "ก่อนหน้า",
"next": "ถัดไป",
"noMonstersFound": "ไม่พบมอนสเตอร์",
"addNewWave": "เพิ่มเวฟใหม่",
"searchStage": "ค้นหาด่าน...",
"noStageFound": "ไม่พบด่าน",
"searchMonster": "ค้นหามอนสเตอร์...",
"changeRelic": "เปลี่ยนรีลิกส์",
"deleteRelic": "ลบรีลิกส์",
"deleteRelicConfirm": "คุณแน่ใจหรือไม่ว่าต้องการลบรีลิกส์ในช่องนี้?",
"setEffects": "ตั้งค่าเอฟเฟกต์",
"details": "รายละเอียด",
"normal": "โจมตีปกติ",
"bpskill": "สกิลต่อสู้",
"maze": "เทคนิค",
"ultra": "ท่าไม้ตาย",
"servantskill": "สกิล Memosprite",
"severaltalent": "พรสวรรค์ Memosprite",
"singleattack": "โจมตีเป้าหมายเดียว",
"enhance": "เสริมพลัง",
"summon": "อัญเชิญ",
"mazeattack": "โจมตีแบบเทคนิค",
"blast": "กระจาย",
"restore": "ฟื้นฟู",
"support": "สนับสนุน",
"aoeattack": "โจมตีหมู่",
"impair": "ป่วน",
"bounce": "ชิ่ง",
"active": "เปิดใช้งาน",
"defence": "ป้องกัน",
"inactive": "ปิดใช้งาน",
"maxAll": "อัปเกรดทั้งหมด",
"maxAllSuccess": "อัปเกรดสกิลถึงระดับสูงสุดสำเร็จ",
"maxAllFailed": "อัปเกรดสกิลล้มเหลว",
"noRelicEquipped": "ไม่ได้สวมใส่รีลิกส์",
"anomalyArbitration": "Anomaly Arbitration",
"normalMode": "โหมดปกติ",
"hardMode": "โหมดยาก",
"selectPEAKEvent": "เลือกอีเวนต์ PEAK",
"mode": "โหมด",
"selectMode": "เลือกโหมด",
"rollBack": "ย้อนกลับ",
"upRoll": "เพิ่มอัปเกรด",
"downRoll": "ลดอัปเกรด",
"actions": "แอ็กชัน",
"avatars": "อวตาร",
"quickView": "ดูแบบด่วน",
"extraSetting": "การตั้งค่าเพิ่มเติม",
"disableCensorship": "ปิดการเซ็นเซอร์",
"hideUI": "ซ่อน UI",
"theoryCraftMode": "โหมด Theorycraft",
"cycleCount": "จำนวนรอบ",
"pleaseSelectAllSubStats": "โปรดเลือกสเตตัสรองทั้งหมด",
"subStatRollCountCannotBeZero": "จำนวนการอัปเกรดสเตตัสรองต้องไม่เป็นศูนย์",
"theoryCraft": "Theorycraft",
"multipathCharacter": "ตัวละครหลาย Path",
"mainPath": "Path หลัก",
"march7Path": "Path March 7th",
"challenge": "ท้าทาย",
"skipNode": "ข้ามโหนด",
"disableSkip": "ปิดใช้งานการข้าม",
"skipNode1": "ข้ามโหนด 1",
"skipNode2": "ข้ามโหนด 2",
"extraFeatures": "คุณสมบัติพิเศษ",
"detailTheoryCraft": "การเปิดคุณสมบัตินี้จะช่วยให้คุณปรับแต่งจำนวนรอบและปรับ HP ของศัตรูได้",
"detailSkipNode": "ช่วยให้ข้าม (โหนด 1/โหนด 2) ใน Memory of Chaos หรือ Pure Fiction",
"detailChallengePeak": "อนุญาตให้เปลี่ยนฤดูกาล Peak ใน Anomaly ปัจจุบัน",
"detailHiddenUi": "ซ่อนอินเทอร์เฟซของเกม",
"detailDisableCensorship": "ปิดการเซ็นเซอร์ในเกม",
"detailMultipathCharacter": "อนุญาตให้เปลี่ยน Path ของตัวละครบางตัว",
"trailblazer": "ผู้บุกเบิก",
"listExtraEffect": "รายการเอฟเฟกต์พิเศษ",
"extra": "พิเศษ",
"customLineup": "จัดทีมแบบกำหนดเอง"
}
}

View File

@@ -8,9 +8,9 @@
"skillName": "技能名称",
"character": "角色",
"id": "ID",
"path": "命",
"path": "命",
"rarity": "稀有度",
"element": "元素",
"element": "属性",
"technique": "秘技",
"talent": "天赋",
"basic": "普通攻击",
@@ -20,10 +20,10 @@
"damage": "伤害",
"type": "类型",
"warrior": "毁灭",
"knight": "护",
"mage": "博学",
"knight": "护",
"mage": "智识",
"priest": "丰饶",
"rogue": "猎",
"rogue": "猎",
"shaman": "同谐",
"warlock": "虚无",
"memory": "记忆",
@@ -41,7 +41,7 @@
"critRate": "暴击率",
"critDmg": "暴击伤害",
"breakEffect": "击破伤害",
"effectRes": "效果抗",
"effectRes": "效果抗",
"energyRegenerationRate": "能量恢复速率",
"effectHitRate": "效果命中率",
"outgoingHealingBoost": "治疗增强",
@@ -55,7 +55,7 @@
"pursued": "附加伤害",
"true damage": "真实伤害",
"elationdamage": "欢愉伤害",
"follow-up": "后续伤害",
"follow-up": "追加攻击",
"elemental damage": "击破与超击破伤害",
"dot": "持续伤害",
"qte": "QTE 技能",
@@ -113,20 +113,20 @@
"levelConfiguration": "等级配置",
"characterLevel": "角色等级",
"max": "最大",
"ultimateEnergy": "终极能量",
"ultimateEnergy": "终极能量",
"currentEnergy": "当前能量",
"setTo50": "设为50%",
"battleConfiguration": "战斗配置",
"useTechnique": "使用秘",
"techniqueNote": "启用战前秘效果",
"useTechnique": "使用秘",
"techniqueNote": "启用战前秘效果",
"enhancement": "强化",
"enhancementLevel": "强化等级",
"origin": "来源",
"origin": "关闭",
"enhancedNote": "强化更高可解锁额外技能",
"lightconeEquipment": "光锥装备",
"lightconeSettings": "光锥设置",
"placeholderLevel": "输入等级",
"superimpositionRank": "叠等级",
"superimpositionRank": "叠等级",
"ranksNote": "更高等级提供更强效果",
"changeLightcone": "更换光锥",
"removeLightcone": "移除光锥",
@@ -166,7 +166,7 @@
"set": "套装",
"pleaseSelectASet": "请选择一个套装",
"effectBonus": "效果加成",
"totalRoll": "总数",
"totalRoll": "总词条数",
"randomizeStats": "随机属性",
"randomizeRolls": "随机次数",
"selectASubStat": "选择副属性",
@@ -174,9 +174,9 @@
"selectAMainStat": "选择主属性",
"save": "保存",
"reset": "重置",
"roll": "滚动",
"roll": "词条数",
"step": "步数",
"memoryOfChaos": "混沌忆",
"memoryOfChaos": "混沌忆",
"pureFiction": "虚构叙事",
"apocalypticShadow": "末日幻影",
"customEnemy": "自定义敌人",
@@ -186,12 +186,12 @@
"wave": "波次",
"stage": "关卡",
"useCycleCount": "使用轮次数?",
"useTurbulenceBuff": "使用紊乱增益",
"useTurbulenceBuff": "使用记忆紊流",
"firstHalfEnemies": "上半场敌人",
"secondHalfEnemies": "下半场敌人",
"turbulenceBuff": "紊乱增益",
"turbulenceBuff": "增益效果",
"noEventSelected": "未选择事件",
"noTurbulenceBuff": "未选择紊乱增益",
"noTurbulenceBuff": "未选择增益效果",
"upper": "上半",
"lower": "下半",
"upperToLower": "上半 -> 下半",
@@ -219,28 +219,28 @@
"details": "详情",
"normal": "普通攻击",
"bpskill": "技能",
"maze": "技",
"maze": "技",
"ultra": "终结技",
"servantskill": "灵技能",
"severaltalent": "灵天赋",
"servantskill": "灵技能",
"severaltalent": "灵天赋",
"singleattack": "单体攻击",
"enhance": "强化",
"summon": "召唤",
"blast": "爆裂",
"blast": "扩散",
"restore": "恢复",
"support": "支援",
"aoeattack": "范围攻击",
"support": "辅助",
"aoeattack": "群攻",
"mazeattack": "迷宫秘技",
"impair": "削弱",
"bounce": "弹",
"active": "活跃",
"impair": "妨害",
"bounce": "弹",
"active": "开启",
"defence": "防御",
"inactive": "不活跃",
"inactive": "关闭",
"maxAll": "全部最大化",
"maxAllSuccess": "技能等级已成功设置为最大。",
"maxAllFailed": "设置技能等级为最大失败。",
"noRelicEquipped": "未装备圣遗物",
"anomalyArbitration": "异相",
"anomalyArbitration": "异相仲裁",
"normalMode": "普通模式",
"hardMode": "困难模式",
"selectPEAKEvent": "选择 PEAK 事件",
@@ -261,7 +261,7 @@
"subStatRollCountCannotBeZero": "副属性的行数不能为0",
"theoryCraft": "Theory Craft",
"multipathCharacter": "多命途角色",
"mainPath": "主角命途",
"mainPath": "开拓者命途",
"march7Path": "三月七命途",
"challenge": "挑战",
"skipNode": "跳过节点",

View File

@@ -3,7 +3,7 @@
import { downloadJson } from "@/helper";
import { converterToFreeSRJson } from "@/helper/converterToFreeSRJson";
import { useChangeTheme } from "@/hooks/useChangeTheme";
import { listCurrentLanguage } from "@/constant/constant";
import { listCurrentLanguage, listCurrentLanguageApi } from "@/constant/constant";
import useLocaleStore from "@/stores/localeStore";
import useUserDataStore from "@/stores/userDataStore";
import { motion } from "framer-motion";
@@ -77,7 +77,7 @@ export default function Header() {
?.split("=")[1];
if (cookieLocale) {
if (!listCurrentLanguage.hasOwnProperty(cookieLocale)) {
if (!listCurrentLanguageApi.hasOwnProperty(cookieLocale)) {
setLocale("en")
} else {
setLocale(cookieLocale)
@@ -86,7 +86,7 @@ export default function Header() {
} else {
let browserLocale = navigator.language.slice(0, 2);
if (!listCurrentLanguage.hasOwnProperty(browserLocale)) {
if (!listCurrentLanguageApi.hasOwnProperty(browserLocale)) {
browserLocale = "en"
}
setLocale(browserLocale);
@@ -485,23 +485,46 @@ export default function Header() {
{/* Language selector - REFINED */}
<div className="dropdown dropdown-end">
<div className="flex items-center gap-1 border border-base-300 rounded text-sm px-1.5 py-0.5 hover:bg-base-200 cursor-pointer transition-all duration-200">
{/* Nút bấm hiển thị */}
<div
tabIndex={0}
role="button"
className="flex items-center gap-1 border border-base-300 rounded text-sm px-2 py-0.5 hover:bg-base-200 transition-all duration-200 uppercase font-medium"
>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" strokeWidth={1.5} stroke="currentColor" className="size-4">
<path strokeLinecap="round" strokeLinejoin="round" d="m10.5 21 5.25-11.25L21 21m-9-3h7.5M3 5.621a48.474 48.474 0 0 1 6-.371m0 0c1.12 0 2.233.038 3.334.114M9 5.25V3m3.334 2.364C11.176 10.658 7.69 15.08 3 17.502m9.334-12.138c.896.061 1.785.147 2.666.257m-4.589 8.495a18.023 18.023 0 0 1-3.827-5.802" />
</svg>
<select
className="outline-none bg-base-200 cursor-pointer text-sm pr-0"
value={locale}
onChange={(e) => changeLocale(e.target.value)}
>
{Object.entries(listCurrentLanguage).map(([key, value]) => (
<option key={key} value={key}>{value}</option>
))}
</select>
</div>
{listCurrentLanguage[locale as keyof typeof listCurrentLanguage]?.flag || "EN"}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" className="size-4 opacity-50">
<path fillRule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clipRule="evenodd" />
</svg>
</div>
<ul
tabIndex={0}
className="dropdown-content z-10 menu p-2 shadow bg-base-100 rounded-box w-52 mt-2"
>
{Object.entries(listCurrentLanguage).map(([key, value]) => (
<li key={key}>
<button
className={`flex justify-between ${locale === key ? "active" : ""}`}
onClick={() => {
changeLocale(key);
const elem = document.activeElement;
if (elem instanceof HTMLElement) {
elem.blur();
}
}}
>
<span className="font-bold">{value.flag}</span>
<span>{value.label}</span>
</button>
</li>
))}
</ul>
</div>
<div className="dropdown dropdown-end">
<div tabIndex={0} role="button" className="btn btn-ghost btn-sm hover:bg-base-200 transition-all duration-200 px-2">
<svg

View File

@@ -1,9 +1,16 @@
export const listCurrentLanguage = {
ja: "JP",
ko: "KR",
en: "EN",
vi: "VN",
zh: "CN"
en: { label: "English", flag: "🇬🇧" },
vi: { label: "Tiếng Việt", flag: "🇻🇳" },
ja: { label: "日本語", flag: "🇯🇵" },
ko: { label: "한국어", flag: "🇰🇷" },
zh: { label: "中文", flag: "🇨🇳" },
de: { label: "Deutsch", flag: "🇩🇪" },
es: { label: "Español", flag: "🇪🇸" },
fr: { label: "Français", flag: "🇫🇷" },
id: { label: "Bahasa Indonesia", flag: "🇮🇩" },
pt: { label: "Português", flag: "🇵🇹" },
ru: { label: "Русский", flag: "🇷🇺" },
th: { label: "ไทย", flag: "🇹🇭" }
};
export const listCurrentLanguageApi : Record<string, string> = {
@@ -11,7 +18,14 @@ export const listCurrentLanguageApi : Record<string, string> = {
ko: "kr",
en: "en",
vi: "vi",
zh: "cn"
zh: "cn",
de: "de",
es: "es",
fr: "fr",
id: "id",
pt: "pt",
ru: "ru",
th: "th"
};
export const mappingStats = <Record<string, {name: string, icon: string, unit: string, baseStat: string}> > {