# -*- coding: utf-8 -*-
"""Traducciones focalizadas del dock y herramienta de mapa interactivo."""
from __future__ import annotations

from .i18n import LANG_DE, LANG_EN, LANG_FR, register_language

_TO_EN = {
    "Mapa interactivo · Velantis Wind": "Interactive map · Velantis Wind",
    "Capa de turbinas": "Turbine layer",
    "Editar capa:": "Edit layer:",
    "Actualizar lista de capas de turbinas editables.": "Refresh the list of editable turbine layers.",
    "Sin capas editables": "No editable layers",
    "Click izq: añadir · Click der: borrar · ESC: salir": "Left click: add · Right click: delete · ESC: exit",
    "Volver al diálogo": "Back to dialog",
    "Vuelve al diálogo principal sin salir del modo interactivo.": "Return to the main dialog without leaving interactive mode.",
    "Vuelve al diálogo principal de Velantis Wind sin perder la edición.": "Return to the Velantis Wind main dialog without losing edits.",
    "Física PyWake": "PyWake physics",
    "Motor WFM": "WFM engine",
    "Estela": "Wake",
    "Bloqueo": "Blockage",
    "Turbulencia (modelo)": "Turbulence model",
    "TI ambiente (raster)": "Ambient TI (raster)",
    "Elegir raster TI…": "Choose TI raster…",
    "Limpiar": "Clear",
    "Alturas [m]:": "Heights [m]:",
    "p.ej. 90;120 (opcional)": "e.g. 90;120 (optional)",
    "Acciones": "Actions",
    "Calcular / Recalcular AEP": "Calculate / recalculate AEP",
    "Guardar layout (CSV)…": "Save layout (CSV)…",
    "Graficar estelas": "Plot wakes",
    "Esc. A": "Scenario A",
    "Esc. B": "Scenario B",
    "Comparar escenarios A vs B.": "Compare scenarios A vs B.",
    "Guarda el último cálculo como escenario A.": "Save the latest calculation as scenario A.",
    "Guarda el último cálculo como escenario B.": "Save the latest calculation as scenario B.",
    "Salir": "Exit",
    "Salir del modo interactivo (ESC también funciona).": "Exit interactive mode (ESC also works).",
    "Calcula AEP con la capa de turbinas activa y los modelos seleccionados.": "Calculate AEP with the active turbine layer and selected models.",
    "Exporta los puntos editados de la capa activa a CSV. No sobrescribe el CSV original sin confirmar.": "Export edited points from the active layer to CSV. The original CSV is not overwritten without confirmation.",
    "Dibuja mapas de estelas (N/E/S/O) con los modelos seleccionados.": "Draw wake maps (N/E/S/W) with the selected models.",
    "Selecciona uno o varios raster(s) .asc/.tif de TI ambiente (p.ej. de Vortex). Si no hay ninguno, se usa TI=10% como fallback.": "Select one or more ambient-TI .asc/.tif rasters (e.g. Vortex). If none is selected, TI=10% is used as fallback.",
    "Deja la lista de raster(s) TI vacía.": "Clear the TI raster list.",
    "Elige qué capa/modelo editas con el click izquierdo/derecho del mapa. Esto permite modificar cualquiera de las capas cargadas, no solo la última creada.": "Choose the layer/model edited with left/right map clicks. Any loaded turbine layer can be edited, not only the most recently created one.",
    "Sin capa activa": "No active layer",
    "Selecciónala en el panel de capas, o usa «Generar capas de puntos» en el diálogo.": "Select it in the layer panel, or use “Generate point layers” in the dialog.",
    "Hay": "There are",
    "capa(s) con": "layer(s) with",
    "turbina(s) disponibles para calcular.": "turbine(s) available for calculation.",
    "Aún no hay turbinas en esta capa: haz click izq en el mapa para añadirlas.": "There are no turbines in this layer yet: left-click the map to add them.",
    "Puedes calcular igualmente con": "You can still calculate with",
    "capa(s) ya cargada(s),": "already loaded layer(s),",
    "turbina(s) en total.": "turbine(s) in total.",
    "editada": "edited",
    "activa": "active",
    "No se pudo activar la capa seleccionada:": "Could not activate the selected layer:",
    "Mapa interactivo": "Interactive map",
    "No hay turbina cerca del clic.": "No turbine was found near the click.",
    "No se pudo añadir turbina:": "Could not add turbine:",
    "No se pudo borrar turbina:": "Could not delete turbine:",
    "La capa activa no es de puntos.": "The active layer is not a point layer.",
    "La capa activa no es vectorial.": "The active layer is not a vector layer.",
    "Ya existe una turbina en ese punto.": "A turbine already exists at that point.",
    "No hay una capa de turbinas válida activa para el mapa interactivo.": "There is no valid active turbine layer for the interactive map.",
    "Click izq = añadir turbina | Click der = borrar turbina cercana": "Left click = add turbine | Right click = delete nearby turbine",
}

_TO_FR = {
    "Mapa interactivo · Velantis Wind": "Carte interactive · Velantis Wind",
    "Capa de turbinas": "Couche d’éoliennes",
    "Editar capa:": "Modifier la couche :",
    "Actualizar lista de capas de turbinas editables.": "Actualiser la liste des couches d’éoliennes modifiables.",
    "Sin capas editables": "Aucune couche modifiable",
    "Click izq: añadir · Click der: borrar · ESC: salir": "Clic gauche : ajouter · clic droit : supprimer · Échap : quitter",
    "Volver al diálogo": "Retour au dialogue",
    "Vuelve al diálogo principal sin salir del modo interactivo.": "Revenir au dialogue principal sans quitter le mode interactif.",
    "Vuelve al diálogo principal de Velantis Wind sin perder la edición.": "Revenir au dialogue principal de Velantis Wind sans perdre les modifications.",
    "Física PyWake": "Physique PyWake",
    "Motor WFM": "Moteur WFM",
    "Estela": "Sillage",
    "Bloqueo": "Blocage",
    "Turbulencia (modelo)": "Modèle de turbulence",
    "TI ambiente (raster)": "TI ambiante (raster)",
    "Elegir raster TI…": "Choisir un raster TI…",
    "Limpiar": "Effacer",
    "Alturas [m]:": "Hauteurs [m] :",
    "p.ej. 90;120 (opcional)": "p. ex. 90;120 (facultatif)",
    "Acciones": "Actions",
    "Calcular / Recalcular AEP": "Calculer / recalculer l’AEP",
    "Guardar layout (CSV)…": "Enregistrer l’implantation (CSV)…",
    "Graficar estelas": "Tracer les sillages",
    "Esc. A": "Scénario A",
    "Esc. B": "Scénario B",
    "Comparar escenarios A vs B.": "Comparer les scénarios A et B.",
    "Guarda el último cálculo como escenario A.": "Enregistrer le dernier calcul comme scénario A.",
    "Guarda el último cálculo como escenario B.": "Enregistrer le dernier calcul comme scénario B.",
    "Salir": "Quitter",
    "Salir del modo interactivo (ESC también funciona).": "Quitter le mode interactif (Échap fonctionne aussi).",
    "Calcula AEP con la capa de turbinas activa y los modelos seleccionados.": "Calculer l’AEP avec la couche d’éoliennes active et les modèles sélectionnés.",
    "Exporta los puntos editados de la capa activa a CSV. No sobrescribe el CSV original sin confirmar.": "Exporter les points modifiés de la couche active en CSV. Le CSV original n’est pas remplacé sans confirmation.",
    "Dibuja mapas de estelas (N/E/S/O) con los modelos seleccionados.": "Tracer des cartes de sillages (N/E/S/O) avec les modèles sélectionnés.",
    "Selecciona uno o varios raster(s) .asc/.tif de TI ambiente (p.ej. de Vortex). Si no hay ninguno, se usa TI=10% como fallback.": "Sélectionnez un ou plusieurs rasters .asc/.tif de TI ambiante (p. ex. Vortex). Sans raster, TI=10 % est utilisée par défaut.",
    "Deja la lista de raster(s) TI vacía.": "Vider la liste des rasters TI.",
    "Elige qué capa/modelo editas con el click izquierdo/derecho del mapa. Esto permite modificar cualquiera de las capas cargadas, no solo la última creada.": "Choisissez la couche ou le modèle modifié avec les clics gauche/droit. Toutes les couches chargées peuvent être modifiées.",
    "Sin capa activa": "Aucune couche active",
    "Selecciónala en el panel de capas, o usa «Generar capas de puntos» en el diálogo.": "Sélectionnez-la dans le panneau des couches ou utilisez « Générer les couches de points ».",
    "Hay": "Il y a",
    "capa(s) con": "couche(s) avec",
    "turbina(s) disponibles para calcular.": "éolienne(s) disponibles pour le calcul.",
    "Aún no hay turbinas en esta capa: haz click izq en el mapa para añadirlas.": "Cette couche ne contient pas encore d’éoliennes : cliquez avec le bouton gauche pour en ajouter.",
    "Puedes calcular igualmente con": "Vous pouvez tout de même calculer avec",
    "capa(s) ya cargada(s),": "couche(s) déjà chargée(s),",
    "turbina(s) en total.": "éolienne(s) au total.",
    "editada": "modifiée",
    "activa": "active",
    "No se pudo activar la capa seleccionada:": "Impossible d’activer la couche sélectionnée :",
    "Mapa interactivo": "Carte interactive",
    "No hay turbina cerca del clic.": "Aucune éolienne près du clic.",
    "No se pudo añadir turbina:": "Impossible d’ajouter l’éolienne :",
    "No se pudo borrar turbina:": "Impossible de supprimer l’éolienne :",
    "La capa activa no es de puntos.": "La couche active n’est pas une couche de points.",
    "La capa activa no es vectorial.": "La couche active n’est pas vectorielle.",
    "Ya existe una turbina en ese punto.": "Une éolienne existe déjà à cet emplacement.",
    "No hay una capa de turbinas válida activa para el mapa interactivo.": "Aucune couche d’éoliennes active valide pour la carte interactive.",
    "Click izq = añadir turbina | Click der = borrar turbina cercana": "Clic gauche = ajouter · clic droit = supprimer l’éolienne proche",
}

_TO_DE = {
    "Mapa interactivo · Velantis Wind": "Interaktive Karte · Velantis Wind",
    "Capa de turbinas": "Windturbinen-Layer",
    "Editar capa:": "Layer bearbeiten:",
    "Actualizar lista de capas de turbinas editables.": "Liste bearbeitbarer Windturbinen-Layer aktualisieren.",
    "Sin capas editables": "Keine bearbeitbaren Layer",
    "Click izq: añadir · Click der: borrar · ESC: salir": "Linksklick: hinzufügen · Rechtsklick: löschen · ESC: beenden",
    "Volver al diálogo": "Zurück zum Dialog",
    "Vuelve al diálogo principal sin salir del modo interactivo.": "Zum Hauptdialog zurückkehren, ohne den interaktiven Modus zu verlassen.",
    "Vuelve al diálogo principal de Velantis Wind sin perder la edición.": "Zum Velantis-Wind-Hauptdialog zurückkehren, ohne Änderungen zu verlieren.",
    "Física PyWake": "PyWake-Physik",
    "Motor WFM": "WFM-Engine",
    "Estela": "Nachlauf",
    "Bloqueo": "Blockage",
    "Turbulencia (modelo)": "Turbulenzmodell",
    "TI ambiente (raster)": "Umgebungs-TI (Raster)",
    "Elegir raster TI…": "TI-Raster wählen…",
    "Limpiar": "Leeren",
    "Alturas [m]:": "Höhen [m]:",
    "p.ej. 90;120 (opcional)": "z. B. 90;120 (optional)",
    "Acciones": "Aktionen",
    "Calcular / Recalcular AEP": "AEP berechnen / neu berechnen",
    "Guardar layout (CSV)…": "Layout speichern (CSV)…",
    "Graficar estelas": "Nachläufe darstellen",
    "Esc. A": "Szenario A",
    "Esc. B": "Szenario B",
    "Comparar escenarios A vs B.": "Szenarien A und B vergleichen.",
    "Guarda el último cálculo como escenario A.": "Letzte Berechnung als Szenario A speichern.",
    "Guarda el último cálculo como escenario B.": "Letzte Berechnung als Szenario B speichern.",
    "Salir": "Beenden",
    "Salir del modo interactivo (ESC también funciona).": "Interaktiven Modus beenden (ESC funktioniert ebenfalls).",
    "Calcula AEP con la capa de turbinas activa y los modelos seleccionados.": "AEP mit aktivem Windturbinen-Layer und ausgewählten Modellen berechnen.",
    "Exporta los puntos editados de la capa activa a CSV. No sobrescribe el CSV original sin confirmar.": "Bearbeitete Punkte des aktiven Layers als CSV exportieren. Die ursprüngliche CSV wird nicht ohne Bestätigung überschrieben.",
    "Dibuja mapas de estelas (N/E/S/O) con los modelos seleccionados.": "Nachlaufkarten (N/O/S/W) mit den ausgewählten Modellen zeichnen.",
    "Selecciona uno o varios raster(s) .asc/.tif de TI ambiente (p.ej. de Vortex). Si no hay ninguno, se usa TI=10% como fallback.": "Ein oder mehrere .asc/.tif-Raster der Umgebungs-TI wählen (z. B. Vortex). Ohne Raster wird TI=10 % verwendet.",
    "Deja la lista de raster(s) TI vacía.": "Liste der TI-Raster leeren.",
    "Elige qué capa/modelo editas con el click izquierdo/derecho del mapa. Esto permite modificar cualquiera de las capas cargadas, no solo la última creada.": "Wählen Sie den Layer bzw. das Modell, das mit Links-/Rechtsklick bearbeitet wird. Jeder geladene Layer kann bearbeitet werden.",
    "Sin capa activa": "Kein aktiver Layer",
    "Selecciónala en el panel de capas, o usa «Generar capas de puntos» en el diálogo.": "Wählen Sie ihn im Layer-Panel oder verwenden Sie „Punkt-Layer erzeugen“ im Dialog.",
    "Hay": "Es gibt",
    "capa(s) con": "Layer mit",
    "turbina(s) disponibles para calcular.": "Windturbine(n) für die Berechnung.",
    "Aún no hay turbinas en esta capa: haz click izq en el mapa para añadirlas.": "Dieser Layer enthält noch keine Windturbinen: Linksklick auf die Karte fügt welche hinzu.",
    "Puedes calcular igualmente con": "Sie können trotzdem berechnen mit",
    "capa(s) ya cargada(s),": "bereits geladenen Layer(n),",
    "turbina(s) en total.": "Windturbine(n) insgesamt.",
    "editada": "bearbeitet",
    "activa": "aktiv",
    "No se pudo activar la capa seleccionada:": "Der ausgewählte Layer konnte nicht aktiviert werden:",
    "Mapa interactivo": "Interaktive Karte",
    "No hay turbina cerca del clic.": "Keine Windturbine in der Nähe des Klicks.",
    "No se pudo añadir turbina:": "Windturbine konnte nicht hinzugefügt werden:",
    "No se pudo borrar turbina:": "Windturbine konnte nicht gelöscht werden:",
    "La capa activa no es de puntos.": "Der aktive Layer ist kein Punkt-Layer.",
    "La capa activa no es vectorial.": "Der aktive Layer ist kein Vektor-Layer.",
    "Ya existe una turbina en ese punto.": "An diesem Punkt existiert bereits eine Windturbine.",
    "No hay una capa de turbinas válida activa para el mapa interactivo.": "Kein gültiger aktiver Windturbinen-Layer für die interaktive Karte.",
    "Click izq = añadir turbina | Click der = borrar turbina cercana": "Linksklick = Windturbine hinzufügen | Rechtsklick = nahe Windturbine löschen",
}


# Dynamic labels and status fragments used after the dock is built.
_TO_EN.update({
    "Rotor-avg": "Rotor averaging",
    "de turbinas": "of turbines",
    "turbina(s)": "turbine(s)",
    "turb.": "turb.",
    "gen.": "gen.",
    "Sin raster TI": "No TI raster",
    "respaldo TI=10%": "TI=10% fallback",
    "más": "more",
    "falló:": "failed:",
    "Calcular AEP": "Calculate AEP",
    "A/B": "A/B",
})
_TO_FR.update({
    "Rotor-avg": "Moyenne rotor",
    "de turbinas": "d’éoliennes",
    "turbina(s)": "éolienne(s)",
    "turb.": "éol.",
    "gen.": "gén.",
    "Sin raster TI": "Aucun raster TI",
    "respaldo TI=10%": "TI=10 % par défaut",
    "más": "de plus",
    "falló:": "a échoué :",
    "Calcular AEP": "Calculer l’AEP",
    "A/B": "A/B",
})
_TO_DE.update({
    "Rotor-avg": "Rotormittelung",
    "de turbinas": "der Windturbinen",
    "turbina(s)": "Windturbine(n)",
    "turb.": "WT",
    "gen.": "Gen.",
    "Sin raster TI": "Kein TI-Raster",
    "respaldo TI=10%": "Fallback TI=10 %",
    "más": "weitere",
    "falló:": "fehlgeschlagen:",
    "Calcular AEP": "AEP berechnen",
    "A/B": "A/B",
})


def register() -> None:
    register_language(LANG_EN, _TO_EN, _TO_EN, label="English")
    register_language(LANG_FR, _TO_FR, _TO_FR, label="Français")
    register_language(LANG_DE, _TO_DE, _TO_DE, label="Deutsch")


__all__ = ["register"]
