diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 6181b12..0f1b04d 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -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 \ No newline at end of file + docker compose up -d --build --remove-orphans \ No newline at end of file diff --git a/data/as.json.br b/data/as.json.br index 6173cc9..5fcdff7 100644 Binary files a/data/as.json.br and b/data/as.json.br differ diff --git a/data/avatar.json.br b/data/avatar.json.br index 428d4b1..1ef18e0 100644 Binary files a/data/avatar.json.br and b/data/avatar.json.br differ diff --git a/data/lightcone.json.br b/data/lightcone.json.br index 22d60e6..d167301 100644 Binary files a/data/lightcone.json.br and b/data/lightcone.json.br differ diff --git a/data/metadata.json.br b/data/metadata.json.br index 5a62c27..afe3236 100644 Binary files a/data/metadata.json.br and b/data/metadata.json.br differ diff --git a/data/moc.json.br b/data/moc.json.br index ab53572..560cf0d 100644 Binary files a/data/moc.json.br and b/data/moc.json.br differ diff --git a/data/monster.json.br b/data/monster.json.br index f98d83a..5cf9b01 100644 Binary files a/data/monster.json.br and b/data/monster.json.br differ diff --git a/data/peak.json.br b/data/peak.json.br index 2bfb20a..14b0909 100644 Binary files a/data/peak.json.br and b/data/peak.json.br differ diff --git a/data/pf.json.br b/data/pf.json.br index f09bcae..b4fa767 100644 Binary files a/data/pf.json.br and b/data/pf.json.br differ diff --git a/data/relic.json.br b/data/relic.json.br index 451a587..3ddb0df 100644 Binary files a/data/relic.json.br and b/data/relic.json.br differ diff --git a/docker-compose.yml b/docker-compose.yml index e65025f..d24db9f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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 diff --git a/messages/de.json b/messages/de.json new file mode 100644 index 0000000..871d1aa --- /dev/null +++ b/messages/de.json @@ -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" + } +} \ No newline at end of file diff --git a/messages/es.json b/messages/es.json new file mode 100644 index 0000000..5157145 --- /dev/null +++ b/messages/es.json @@ -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" + } +} \ No newline at end of file diff --git a/messages/fr.json b/messages/fr.json new file mode 100644 index 0000000..d71e356 --- /dev/null +++ b/messages/fr.json @@ -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" + } +} \ No newline at end of file diff --git a/messages/id.json b/messages/id.json new file mode 100644 index 0000000..13b56d8 --- /dev/null +++ b/messages/id.json @@ -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" + } +} \ No newline at end of file diff --git a/messages/pt.json b/messages/pt.json new file mode 100644 index 0000000..a333a4a --- /dev/null +++ b/messages/pt.json @@ -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" + } +} \ No newline at end of file diff --git a/messages/ru.json b/messages/ru.json new file mode 100644 index 0000000..d0f9603 --- /dev/null +++ b/messages/ru.json @@ -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": "Пользовательский отряд" + } +} \ No newline at end of file diff --git a/messages/th.json b/messages/th.json new file mode 100644 index 0000000..96aca71 --- /dev/null +++ b/messages/th.json @@ -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": "จัดทีมแบบกำหนดเอง" + } +} \ No newline at end of file diff --git a/messages/zh.json b/messages/zh.json index 9f4c314..6cbbacf 100644 --- a/messages/zh.json +++ b/messages/zh.json @@ -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": "跳过节点", diff --git a/src/components/header/index.tsx b/src/components/header/index.tsx index 893ff63..a7107cc 100644 --- a/src/components/header/index.tsx +++ b/src/components/header/index.tsx @@ -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 */}
-
+ {/* Nút bấm hiển thị */} +
- -
-
+ {listCurrentLanguage[locale as keyof typeof listCurrentLanguage]?.flag || "EN"} + + + +
+ + +
= { @@ -11,7 +18,14 @@ export const listCurrentLanguageApi : Record = { 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 = > {