# -*- coding: utf-8 -*-


class Strings_pt_BR:
    """ "Strings for Brazilian Portuguese (pt-BR)"""

    # General
    APP_NAME = "Cadmus"
    PLUGIN_LANGUAGE = "Idioma do Plugin"

    # About
    ABOUT_CADMUS = "Sobre o Cadmus"
    VERSION = "Versão"
    UPDATED_ON = "Atualizada em"
    CREATED_ON = "Criado em"
    CREATOR = "Criador"
    LOCATION = "Local"

    # Buttons
    CLOSE = "Fechar"
    SAVE = "Salvar"
    LOAD_FILES = "Carregar Arquivos"
    EXPORT = "Exportar"
    CANCEL = "Cancelar"
    OK = "OK"
    EXECUTE = "Executar"
    COPIED = "Copiado"
    COPY = "Copiar"
    SELECT = "Selecionar"
    REMOVE = "Remover"
    INVERT = "Inverter"
    ENABLE = "Ativar"
    INFO = "Info"
    INSTRUCTIONS = "Instruções"
    AUTO_DETECT = "Auto-detectar"

    # Common labels
    PRECISION = "Precisao"
    CONTINUE_ANYWAY = "Continuar mesmo assim"
    MENU_SYSTEM = "Sistema"
    MENU_LAYOUTS = "Layouts"
    MENU_FOLDER = "Pasta"
    MENU_VECTOR = "Vetor"
    MENU_AGRICULTURE = "Agricultura"
    MENU_RASTER = "Raster"
    OPTIONS = "Opções"
    SAVING = "Salvamento"
    STYLES = "Estilos"
    WARNING = "Aviso"
    ERROR = "Erro"
    ADVANCED_PARAMETERS = "Parâmetros Avançados"
    APP_PREFERENCES = "Preferências do Aplicativo"
    OPEN_PREFERENCES_FOLDER = "Abrir Pasta de Preferências"
    FILE_TYPES = "Tipos de Arquivo"
    ROOT_FOLDER = "Pasta raiz:"
    OUTPUT_FOLDER = "Pasta de saída:"
    INPUT_LINE_LAYER = "Camada de Linhas (INPUT):"
    SOURCE_LAYER = "Camada de Origem:"
    TARGET_LAYER = "Camada de Destino:"
    RANGE = "Intervalo"
    IMPLEMENT_SIZE = "Tamanho implemento: (sempre em metros)"
    VECTOR_CALCULATION_METHOD = "Método de Cálculo Vetorial"
    VECTOR_FIELDS_PRECISION = "Precisão de campos vetoriais (casas decimais):"
    ASYNC_THRESHOLD = "Limiar assíncrono (nº de feições):"
    CALCULATION_METHOD_LABEL = "Método de cálculo vetorial:"
    SEARCH_TEXT = "Texto a buscar:"
    REPLACE_WITH_NEW_TEXT = "Texto a substituir (novo):"
    SOURCE_LAYER_ATTRIBUTES = "Atributos da camada origem"
    ATTRIBUTES = "Atributos"
    USE_ALL_ATTRIBUTES = "Usar todos os atributos"
    EXPORT_OPTIONS = "Opções de Exportação"
    MAX_WIDTH_PNG = "Max Width para PNG (px):"
    USE_PROJECT_FOLDER = "Usar pasta do projeto"
    EXPORT_PDF = "Exportar PDF"
    EXPORT_PNG = "Exportar PNG"
    MERGE_PDFS_FINAL = "Unir PDFs em PDF final"
    MERGE_PNGS_FINAL = "Unir PNGs em PDF final"
    REPLACE_EXISTING_FILES = "Substituir arquivos existentes"
    WGS84_EPSG4326 = "WGS 84 (EPSG:4326)"
    UTM_SIRGAS_2000 = "UTM SIRGAS 2000"
    ALTIMETRY_OPENTOPO = "Altimetria (OpenTopoData)"
    APPROX_ALTITUDE_METERS = "Altitude aproximada (m)"
    LATITUDE_DECIMAL = "Latitude (Decimal)"
    LONGITUDE_DECIMAL = "Longitude (Decimal)"
    LATITUDE_DMS = "Latitude (DMS)"
    LONGITUDE_DMS = "Longitude (DMS)"
    EASTING_X = "Easting (X)"
    NORTHING_Y = "Northing (Y)"
    ADDRESS_OSM = "Endereço (OSM):"
    COPY_WGS84_FULL = "Copiar WGS 84 (Completo)"
    COPY_UTM_FULL = "Copiar UTM (Completo)"
    COPY_LOCATION_FULL = "Copiar Localização (Completo)"
    POINT_COORDINATES = "Coordenadas do Ponto"
    ZONE = "Zona"
    HEMISPHERE = "Hemisfério"
    CITY = "Município"
    FILE_NOT_FOUND = "Arquivo não encontrado"
    INTERMEDIATE_REGION = "Região Intermediária"
    STATE = "Estado"
    REGION = "Região"
    COUNTRY = "País"
    LOADING = "Carregando..."
    LOADING_LOWER = "carregando..."
    UNAVAILABLE = "Indisponível"
    NO_PATH_SELECTED = "Nenhum caminho selecionado"
    FILES_SELECTED = "arquivo(s) selecionado(s)"
    ITEMS_SELECTED = "item(s)"
    ONLY_SELECTED_FEATURES = "Somente feições selecionadas"
    APPLY_QML_STYLE = "Aplicar estilo QML"
    QML_LABEL = "QML:"
    SAVE_TO_FILE = "Salvar em arquivo:"
    SELECT_PATH = "Selecionar Caminho"
    BUTTON = "Botão"
    SAVE_FILE = "Salvar arquivo"
    SELECT_FILE = "Selecionar arquivo"
    POINTS = "Pontos"
    TRACK = "Rastro"

    # Common option labels
    CASE_SENSITIVE = "Diferenciar maiúsculas/minúsculas"
    FULL_LABEL_REPLACE = "Substituir o label inteiro quando encontrar o texto"
    LOAD_ONLY_MISSING_FILES = "Carregar apenas arquivos ainda NÃO carregados no projeto"
    PRESERVE_FOLDER_STRUCTURE = "Criar grupos conforme estrutura de pastas/subpastas"
    DO_NOT_GROUP_LAST_FOLDER = "Não agrupar a última pasta"
    CREATE_PROJECT_BACKUP_IF_SAVED = (
        "Criar backup do projeto antes de carregar (somente se salvo)"
    )

    # Common messages
    SUCCESS_MESSAGE = "Processamento executado com sucesso."
    ERROR_LAYER_NOT_FOUND = "Erro: Camada não encontrada."
    SELECT_VALID_FOLDER = "Selecione uma pasta válida."
    SELECT_AT_LEAST_ONE_FILE_TYPE = "Selecione pelo menos um tipo de arquivo."
    SELECT_AT_LEAST_ONE_EXPORT_FORMAT = "Selecione pelo menos um formato (PDF ou PNG)"
    SELECT_VALID_LINE_LAYER = "Selecione uma camada de linhas válida."
    INVALID_SOURCE_LAYER = "Camada de origem inválida"
    INVALID_TARGET_LAYER = "Camada de destino inválida"
    INVALID_INPUT_LAYER = "Camada de entrada inválida."
    FINAL_LAYER_NOT_FOUND = "Erro: camada final não encontrada no contexto."
    BUFFER_CANNOT_BE_ZERO = "Buffer não pode ser 0"
    ASYNC_STARTED = "Execução em background iniciada. Verifique o log para progresso."
    ASYNC_START_ERROR = "Erro iniciando execução assíncrona:"
    ASYNC_FINISHED = "Execução assíncrona concluída."
    ASYNC_EXECUTION_ERROR = "Erro na execução assíncrona:"
    FILES_LOADED_PREFIX = "Foram carregados"
    FILES_SUFFIX = "arquivos."
    SETTINGS_SAVED_TITLE = "Configurações Salvas"
    SETTINGS_SAVED_MESSAGE = "As configurações foram salvas com sucesso."
    PREFERENCES_FOLDER_NOT_FOUND = "Pasta de preferências não encontrada:"
    ENTER_TEXT_TO_SEARCH = "Informe o texto a buscar."
    CONFIRM_REPLACEMENTS = "Confirme substituições"
    SEARCH_LABEL = "Buscar:"
    REPLACE_WITH_LABEL = "Substituir por:"
    DESTRUCTIVE_OPERATION_WARNING = "Atenção - operação destrutiva"
    LAYOUTS_ANALYZED = "Layouts analisados:"
    CHANGES_APPLIED = "Substituições aplicadas:"
    REPLACEMENT_COMPLETED_TITLE = "Substituição concluída"
    PROJECT_BACKUP_INFO = "Backup: será criada uma cópia do projeto (.qgz) na pasta backup ao lado do arquivo do projeto."
    LAYER_MUST_BE_EDITABLE = "A camada precisa estar em edição"
    NO_ATTRIBUTE_SELECTED = "Nenhum atributo selecionado"
    ATTRIBUTES_COPIED_SUCCESS = "Atributos copiados com sucesso (alterações não salvas)"
    REQUIRED_LIBRARY = "Biblioteca necessária"
    PYPDF2_REQUIRED_MESSAGE = "Para unir PDFs é necessário instalar o pacote PyPDF2.\n\nDeseja instalar agora?"
    PILLOW_REQUIRED_MESSAGE = "Para unir PNGs em PDF é necessário instalar o pacote Pillow.\n\nDeseja instalar agora?"
    EXPORTING_LAYOUTS = "Exportando layouts..."
    FAILED_EXPORT_PDF = "Falha ao exportar PDF:"
    FAILED_EXPORT_PNG = "Falha ao exportar PNG:"
    ERROR_EXPORTING = "Erro exportando"
    FAILED_MERGE_PDFS = "Falha ao unir PDFs:"
    FAILED_MERGE_PNGS = "Falha ao unir PNGs:"
    ERRORS_FOUND = "Erros encontrados:"
    LAYOUTS_EXPORTED_SUCCESS = "layout(s) exportado(s) com sucesso!"
    PDFS_MERGED = "PDFs unidos"
    PNGS_MERGED = "PNGs unidos"
    EXPORT_LAYOUTS_COMPLETED = "Exportação de Layouts Concluída"
    LOCATION_COPIED_TO_CLIPBOARD = "Localização copiada para a área de transferência"
    ADDRESS_COPIED_TO_CLIPBOARD = "Endereço copiado para a área de transferência"

    SELECT_VECTOR_LAYER = "Selecione uma camada vetorial"
    SELECT_EDITABLE_VECTOR_LAYER = "Selecione uma camada vetorial editável"
    LAYER_HAS_NO_FEATURES = "A camada não possui feições"
    OPERATION_CANCELLED_BY_USER = "Operação cancelada pelo usuário"
    GEOMETRY_TYPE_NOT_SUPPORTED = "Tipo de geometria não suportado"
    ERROR_IN_PREPARATION = "Erro na preparação:"
    KML_FILES_ARE_NOT_EDITABLE = "Arquivos KML não são editáveis."
    CONVERT_LAYER_TO_GPKG_OR_SHP_BEFORE_USING = "Converta a camada para GeoPackage (.gpkg) ou Shapefile (.shp) antes de usar esta ferramenta."
    LAYER_USES_GEOGRAPHIC_CRS = "Camada usa CRS Geográfico"
    CARTESIAN_MODE_RESULTS_IN_DEGREES2 = (
        "Modo 'Cartesiano' resultaria em valores em graus²."
    )
    CALCULATING_BOTH_MODES_AUTOMATICALLY = "Calculando ambos os modos automaticamente."
    XY_FIELDS_CALCULATED_SUCCESS = "Campos X/Y calculados com sucesso"
    LINE_LENGTH_CALCULATED_SUCCESS = "Comprimento de linhas calculado com sucesso"
    POLYGON_AREA_CALCULATED_SUCCESS = "Área de polígonos calculada com sucesso"
    ERROR_STARTING_CALCULATION = "Erro ao iniciar cálculo:"
    UNKNOWN_ERROR = "Erro desconhecido"
    CALCULATION_FAILED = "Falha no cálculo:"
    GEOMETRIES_CONVERTED_TO_MULTIPART_NOT_SAVED = (
        "Geometrias convertidas para multipart (não salvas)"
    )
    CONVERT_SELECTED_FEATURES_TO_MULTIPART = (
        "Converter apenas as feições selecionadas para multipart?"
    )
    CONVERT_ALL_FEATURES_TO_MULTIPART = "Converter todas as feições para multipart?"

    # Dependencies
    INSTALLING_DEPENDENCY = "Instalando dependência..."
    INSTALLING_DEPENDENCIES = "Instalando dependências"
    DEPENDENCY = "Dependência"
    INSTALLED_SUCCESSFULLY = "instalada com sucesso."
    SUCCESS = "Sucesso"
    INSTALL_DEPENDENCY_FAILED = "Falha ao iniciar a instalação da biblioteca."
    KML_FIELDS_REMOVED_SUCCESS = "Campos KML removidos com sucesso"
    NO_KML_FIELDS_FOUND = "Nenhum campo KML encontrado para remover"
    ERROR_REMOVING_KML_FIELDS = "Erro ao remover campos KML:"

    RASTERS = "Rasters"
    INPUT_POINTS = "Pontos de entrada"
    REPROJECT_OUTPUT_LAYER_OPTIONAL = "Reprojetar camada de saída (opcional)"
    SAMPLED_VALUES = "Valores_Amostrados"
    OPEN_OUTPUT_FOLDER = "Abrir pasta de saída"
    DISPLAY_HELP_FIELD = "Exibir campo de ajuda (Necessario executar e reiniciar)"
    OUTPUT_CRS_LABEL = "CRS de saída:"
    NONE = "None"
    FILE_SAVED_IN = "Arquivo salvo em:"
    RASTER_MASS_SAMPLER_TITLE = "Amostragem Massiva de Rasters"
    RASTER_WEIGHTED_AVERAGE_TITLE = "Média Ponderada de Rasters"
    RASTER_MASS_CLIPPER_TITLE = "Recorte Massivo de Rasters"
    RASTER_MASS_SAMPLER_TOOLTIP = (
        "Executa amostragem em lote de varios rasters sobre uma camada vetorial.\n"
        "Abre o algoritmo do provider do Cadmus no Processing,\n"
        "permitindo configurar entradas, campos e saidas pela interface padrao."
    )
    RASTER_MASS_CLIPPER_TOOLTIP = (
        "Recorta em lote varios rasters usando uma camada poligonal como mascara.\n"
        "Abre o algoritmo do provider do Cadmus no Processing,\n"
        "com suporte a recorte por feicao, buffer de correcao e pasta de saida."
    )
    RASTER_DIFFERENCE_STATISTICS_TITLE = "Processar Diferença de Rasters"
    INPUT_MASK_POLYGON_LAYER = "Camada máscara (polígono)"
    CLIP_PER_EACH_POLYGON = "Recortar por cada polígono"
    APPLY_CORRECTION_BUFFER_PIXEL_1_1 = "Aplicar buffer de correção (pixel * 1.1)"
    RASTER_FOLDER_OR_SELECT_RASTER_LAYERS = (
        "Pasta de rasters ou selecione camadas raster"
    )
    QGIS_RASTER_LAYERS_OR_SELECT_RASTER_FOLDER = (
        "Camadas de raster QGIS ou selecione pasta de rasters"
    )
    OUTPUT_FOLDER_FOR_GENERATED_RASTERS = "Pasta de saída para rasters gerados"
    NO_OUTPUT_FOLDER_PROVIDED_USING_TEMP = (
        "Nenhuma pasta de saída informada. Usando temporária:"
    )
    INVALID_FOLDER = "Pasta inválida"
    NO_RASTER_FOUND_IN_SPECIFIED_FOLDER = (
        "Nenhum raster encontrado na pasta especificada."
    )
    INVALID_RASTER_IGNORED = "Raster inválido ignorado"
    PROCESSING_RASTER_DIFFERENCE_BY_FOLDER_OR_LAYERS = (
        "Processando diferença de rasters por pasta/camadas..."
    )
    INFORM_RASTER_FOLDER_OR_SELECT_LAYER = (
        "Informe uma pasta de rasters ou selecione ao menos uma camada raster."
    )
    AT_LEAST_2_RASTERS_REQUIRED = (
        "É necessário ao menos 2 rasters para calcular diferenças."
    )
    FOUND_RASTER_COMBINATIONS_FOR_DIFFERENCE = (
        "Encontradas combinações de rasters para diferenciação:"
    )
    PROCESSING = "Processando"
    NO_OVERLAP_BETWEEN = "Sem sobreposição entre"
    AND = "e"
    SKIPPING = "Pulando"
    CALCULATION_ERROR_FOR = "Erro no cálculo para"
    DIFFERENCE_RASTER_CREATED = "Raster diferença criado:"
    STATS_GENERATED_FOR = "Stats gerados para"
    FAILED_TO_GENERATE_STATS_FOR = "Falha ao gerar stats para"
    CONSOLIDATED_REPORT_GENERATED = "Relatório consolidado gerado:"
    DIFFERENCE_STATISTICS_SUMMARY_TITLE = (
        "Resumo de Estatísticas de Diferença de Rasters"
    )
    TOTAL_PROCESSED_PAIRS = "Total de pares processados:"
    RASTER = "Raster"
    STATISTICS = "Estatísticas"
    VECTOR = "Vetor"
    INTERVAL = "Intervalo"
    GEOMETRY_LINE_FROM_POINTS_TITLE = "Linha de Diferença entre Pontos"
    POINT_LAYER_MODE1_FIRST_LAYER_MODE2 = (
        "Camada de Pontos (Modo 1) / Primeira Camada (Modo 2)"
    )
    BASE_ATTRIBUTE_LAYER_A = "Atributo base - camada A"
    USE_SECOND_LAYER_MODE2 = "Usar segunda camada (modo 2)"
    SECOND_POINT_LAYER_MODE2_OPTIONAL = "Segunda Camada de Pontos (Modo 2 - opcional)"
    BASE_ATTRIBUTE_LAYER_B_MODE2 = "Atributo base - camada B (modo 2)"
    DIFFERENCE_LINES = "Linhas de diferenças"
    INVALID_LAYER_A = "Camada A inválida."
    MODE2_REQUIRES_SECOND_POINT_LAYER = "Modo 2 requisita uma segunda camada de pontos."
    MODE2_INFORM_GROUP_FIELD_LAYER_B = (
        "No modo 2 informe o campo de agrupamento da camada B."
    )
    ERROR_CREATING_OUTPUT_LAYER = "Erro ao criar camada de saída."
    PROCESS_COMPLETED_LINES_GENERATED_SUCCESS = (
        "Processo concluído: linhas geradas com sucesso."
    )
    GRID_GENERATOR_TITLE = "Gerador de Grade"
    GRID_GENERATOR_INPUT_LAYER = "Camada de Entrada (Polígono)"
    HORIZONTAL_SPACING = "Espaçamento Horizontal"
    VERTICAL_SPACING = "Espaçamento Vertical"
    GRID_TYPE = "Tipo de Grade"
    OUTPUT_GRID = "Grade de Saída"
    VERBOSE_LOG = "Log Detalhado"
    ATTRIBUTE_STATISTICS_TITLE = "Estatísticas de Atributos"
    INPUT_LAYER = "Camada de entrada"
    EXCLUDE_FIELDS_OPTIONAL = "Campos a excluir (opcional)"
    PRECISION_DECIMAL_PLACES = "Precisão (casas decimais)"
    LOAD_CSV_AUTOMATICALLY_AFTER_EXECUTION = (
        "Carregar CSV automaticamente após execução"
    )
    FORCE_CSV_PTBR_FORMAT = "Forçar CSV no formato PT-BR (usar ; e ,)"
    CALCULATE = "Calcular"
    OUTPUT_CSV_FILE = "Arquivo CSV de saída"
    INVALID_LAYER = "Camada inválida."
    NO_NUMERIC_FIELD_FOUND = "Nenhum campo numérico encontrado."
    FIELD = "Campo"
    COUNT = "Contagem"
    ERROR_SAVING_CSV = "Erro ao salvar CSV:"
    FILE_LOADED_AS_LAYER = "Arquivo carregado como camada:"
    CSV_FILE_GENERATED = "Arquivo CSV gerado:"
    MEAN = "Media"
    MEAN_ABSOLUTE = "Media Absoluta"
    STD_POP = "Desvio Padrao (Pop.)"
    STD_SAMPLE = "Desvio Padrao (Amostra)"
    MINIMUM = "Minimo"
    MAXIMUM = "Maximo"
    MEDIAN = "Mediana"
    PERCENTILE_5 = "Percentil 5%"
    PERCENTILE_95 = "Percentil 95%"
    MODE = "Moda"
    VARIANCE = "Variancia"
    SUM = "Soma"
    COEFFICIENT_OF_VARIATION = "Coeficiente de Variação"
    SKEWNESS = "Assimetria"
    KURTOSIS = "Curtose"
    DIFFERENCE_FIELDS_TITLE = "Gerador de Diferenças entre Campos"
    POINT_LAYER = "Camada de Pontos"
    BASE_FIELD_SUBTRAHEND = "Campo Base (subtraendo)"
    FIELDS_TO_EXCLUDE_FROM_CALCULATION = "Campos a EXCLUIR do cálculo"
    PREFIX_FOR_NEW_FIELDS = "Prefixo para novos campos"
    DIFFERENCE = "Diferenca"
    NO_EXCLUDED_FIELD_USING_ALL_NUMERIC = (
        "Nenhum campo excluído → usando todos os campos numéricos."
    )
    BASE = "Base"
    EXCLUDED_FIELDS = "Campos EXCLUÍDOS"
    FIELDS_USED_IN_CALCULATION = "Campos utilizados no cálculo"
    PREFIX = "Prefixo"
    PROCESS_FINISHED_SUCCESS = "Processo finalizado com sucesso."

    # plugins/DroneCoordinates.py
    DRONE_COORDINATES_TITLE = "DJI Coordenadas de Drone"
    DRONE_COORDINATES_TOOLTIP = (
        "Le arquivos MRK de drone para gerar pontos das fotos e o rastro do voo.\n"
        "Pode cruzar os pontos com metadados das imagens,\n"
        "salvar os resultados em arquivo e aplicar estilos QML\n"
        "aos pontos e ao trajeto gerados."
    )
    RECURSIVE_SEARCH = "Vasculhar subpastas"
    USE_MRK_DATA = "Obter dados MRK"
    PHOTOS_METADATA = "Cruzar com metadados das fotos"
    PHOTOS_METADATA_REQUIRED_MESSAGE = "Para cruzar com metadados das fotos é necessário instalar o pacote Pillow.\n\nDeseja instalar agora?"
    GENERATE_REPORT = "Gerar relatório"
    MRK_FOLDER = "Pasta MRK:"
    SAVE_POINTS_CHECKBOX = "Salvar pontos MRK em arquivo?"
    SAVE_IN = "Salvar em:"
    SAVE_TRACK_CHECKBOX = "Salvar rastro em arquivo?"
    USE_LOGO = "Usar logotipo?"
    LOGO_LABEL = "Logotipo:"
    PROJECT_TITLE = "Título do Projeto"
    PROJECT_TITLE_HINT = "Ex: Fazenda Esperança"
    APPLY_STYLE_POINTS = "Aplicar estilo (QML) nos pontos?"
    QML_POINTS = "QML pontos:"
    APPLY_STYLE_TRACK = "Aplicar estilo (QML) no rastro?"
    QML_TRACK = "QML:"
    MRK_DROP_START = "Arquivo MRK detectado. Iniciando conversao."
    CONVERT_FILE_SUCCESS = "Arquivo convertido com sucesso."
    LOADED_EXISTING_GPKG = "Saidas GPKG existentes carregadas com sucesso."
    CONVERT_FILE_ERROR = "Falha ao converter arquivo."
    REPORT_METADATA_TITLE = "Relatorio de Metadata"
    REPORT_METADATA_TOOLTIP = (
        "Lista JSONs temporarios de metadata e permite regerar o relatorio HTML.\n"
        "Tambem oferece atalho para abrir a pasta de relatorios gerados."
    )
    REFRESH_JSON_LIST = "Atualizar lista de JSON"
    OPEN_REPORTS_FOLDER = "Abrir pasta de relatorios"
    OPEN_JSONS_FOLDER = "Abrir pasta de JSON"
    VECTOR_WITHOUT_MRK_BLOCK_TITLE = "Gerar Vetor Sem MRK"
    VETORIZE_FLIGHT = "Vetorizar voo"
    VETORIZE_FLIGHT_TOOLTIP = (
        "Gera camada vetorial de pontos e rastro a partir do JSON de metadata selecionado.\n"
        "Equivalente a executar o pipeline de coordenadas de drone apenas com o JSON."
    )
    NO_JSON_FOUND = "Nenhum JSON temporario encontrado."

    # plugins/SettingsPlugin.py
    SETTINGS_TITLE = "Configurações Cadmus"
    SETTINGS_TOOLTIP = (
        "Abre as configurações globais do Cadmus.\n"
        "Permite definir o método padrão de cálculo vetorial,\n"
        "a precisão dos campos vetoriais e o limiar de feições\n"
        "usado para processamento assíncrono."
    )
    GENERAL = "Geral"
    DEFAULT_CRS = "SRC padrao"
    PROJECTS_FOLDER = "Pasta de projetos"
    TOOLBAR_VISIBLE_CATEGORIES = "Toolbar - Categorias Visiveis"
    VECTOR_CALCULATIONS_PLUGIN = "Plugin de Calculos Vetoriais"
    CARTESIAN_SUFFIX = "Sulfixo Cartesiano"
    ELLIPSOIDAL_SUFFIX = "Sulfixo Elipsoidal"
    AREA_SUFFIXES_CANNOT_MATCH = (
        "Os sulfixos cartesiano e elipsoidal nao podem ser iguais."
    )
    ELLIPSOIDAL = "Elipsoidal"
    CARTESIAN = "Cartesiana"
    BOTH = "Ambos"

    # plugins/ReplaceInLayouts.py
    REPLACE_IN_LAYOUTS_TITLE = "Substituir Texto em Layouts"
    REPLACE_IN_LAYOUTS_TOOLTIP = (
        "Procura textos nos labels dos layouts do projeto\n"
        "e substitui pelo novo valor informado.\n"
        "Pode fazer substituição parcial ou trocar o conteúdo\n"
        "inteiro do label quando houver correspondência."
    )
    REPLACE_IN_LAYOUTS_SWAP = "Inverter"
    REPLACE_IN_LAYOUTS_RUN = "Executar substituição"

    # plugins/LoadFolderLayers.py
    LOAD_FOLDER_LAYERS_TITLE = "Carregar Pasta de Arquivos"
    CREATE_PROJECT_TITLE = "Novo Projeto"
    CREATE_PROJECT_TOOLTIP = (
        "Cria uma nova estrutura de projeto em uma pasta dedicada.\n"
        "Se ainda nao houver pasta padrao definida, solicita esse caminho,\n"
        "depois cria a pasta do projeto, o arquivo .qgz\n"
        "e as subpastas vectors e rasters."
    )
    DEFAULT_PROJECTS_FOLDER_TITLE = "Pasta padrao dos projetos"
    DEFAULT_PROJECTS_FOLDER_PROMPT = (
        "Defina a pasta padrao onde os novos projetos do Cadmus serao criados."
    )
    PROJECT_NAME_TITLE = "Novo projeto"
    PROJECT_NAME_PROMPT = (
        "Informe o nome do projeto. Se deixar em branco, sera usado o nome sugerido."
    )
    PROJECT_NAME_LABEL = "Nome do projeto"
    PROJECTS_DEFAULT_FOLDER_MISSING = (
        "Nenhuma pasta padrao para projetos foi definida.\n\n"
        "Deseja definir uma pasta padrao agora?"
    )
    PROJECTS_DEFAULT_FOLDER_MISSING_TITLE = "Pasta padrao nao definida"
    PROJECT_FOLDER_ALREADY_EXISTS = "A pasta do projeto ja existe:"
    PROJECT_FOLDER_CREATE_ERROR = "Nao foi possivel criar a estrutura do projeto:"
    PROJECT_FILE_CREATE_ERROR = "Nao foi possivel criar o projeto QGIS:"
    PROJECT_DEFAULT_FOLDER_PREPARE_ERROR = "Nao foi possivel preparar a pasta padrao:"
    PROJECT_DEFAULT_FOLDER_ACCESS_ERROR = "Nao foi possivel acessar a pasta padrao:"
    CURRENT_PROJECT_SAVE_TO_NEW_DESTINATION_ERROR = (
        "O QGIS nao conseguiu salvar o projeto atual no novo destino."
    )
    NEW_PROJECT_FILE_WRITE_ERROR = "O QGIS nao conseguiu gravar o novo arquivo .qgz."
    OPEN_NEW_QGIS_WINDOW_ERROR = (
        "O projeto foi criado, mas nao foi possivel abrir outra janela do QGIS."
    )
    PROJECT_CREATED_TITLE = "Projeto criado"
    PROJECT_CREATED_SUCCESS = "Projeto '{project_name}' criado com sucesso"
    PROJECT_CREATED_OPENED_NEW_WINDOW = (
        "Projeto '{project_name}' criado e aberto em outra janela"
    )
    LOAD_FOLDER_LAYERS_TOOLTIP = (
        "Carrega em lote arquivos vetoriais e raster de uma pasta\n"
        "e de suas subpastas para o projeto QGIS.\n"
        "Pode filtrar por tipo de arquivo, evitar duplicados\n"
        "e organizar as camadas conforme a estrutura de pastas."
    )

    # plugins/GenerateTrailPlugin.py
    GENERATE_TRAIL_TITLE = "Gerar Rastro de Máquinas"
    GENERATE_TRAIL_TOOLTIP = (
        "Gera a faixa ocupada por um implemento a partir de uma camada de linhas.\n"
        "Converte a largura informada para a unidade da camada,\n"
        "aplica buffer usando metade desse valor e cria\n"
        "uma nova camada com o rastro resultante."
    )

    # plugins/CopyAttributesPlugin.py
    COPY_ATTRIBUTES_TITLE = "Copiar Atributos de Vetor"
    COPY_ATTRIBUTES_TOOLTIP = (
        "Copia a estrutura de campos de uma camada vetorial de origem\n"
        "para uma camada vetorial de destino.\n"
        "Permite selecionar quais atributos criar e tratar conflitos\n"
        "de nome quando um campo já existe na camada destino."
    )

    # plugins/ExportAllLayouts.py
    EXPORT_ALL_LAYOUTS_TITLE = "Exportar Todos os Layouts"
    EXPORT_ALL_LAYOUTS_TOOLTIP = (
        "Exporta todos os layouts do projeto em PDF, PNG ou ambos.\n"
        "Pode unir os PDFs gerados em um arquivo final,\n"
        "converter os PNGs em PDF e controlar sobrescrita\n"
        "dos arquivos na pasta de saída."
    )

    # plugins/VectorMultipartPlugin.py
    CONVERTER_MULTIPART_TITLE = "Converter Multipart"
    CONVERTER_MULTIPART_TOOLTIP = (
        "Processa feições multipart da camada vetorial ativa\n"
        "e separa cada parte em feições simples.\n"
        "Pode atuar apenas nas feições selecionadas\n"
        "ou em toda a camada, preservando os atributos."
    )

    # plugins/CoordClickTool.py
    COORD_CLICK_TOOL_TITLE = "Capturar Coordenadas"
    COORD_CLICK_TOOL_TOOLTIP = (
        "Permite clicar no mapa para consultar coordenadas do ponto.\n"
        "Abre um dialogo com WGS84, UTM, altitude aproximada\n"
        "e endereco estimado, alem de opcoes de copia\n"
        "para a area de transferencia."
    )

    # core/ToolRegistry.py
    RESTART_QGIS_TITLE = "Salvar, Fechar e Reabrir Projeto"
    RESTART_QGIS_TOOLTIP = (
        "Salva o projeto atual, fecha o QGIS e reabre o mesmo projeto.\n"
        "E util para recuperar a sessao apos travamentos\n"
        "ou problemas visuais sem perder o trabalho."
    )
    LOGCAT_TITLE = "Logcat Viewer"
    LOGCAT_TOOLTIP = (
        "Abre o visualizador de logs do plugin.\n"
        "Permite inspecionar mensagens, erros e eventos internos\n"
        "registrados pelo Cadmus."
    )
    ABOUT_DIALOG_TOOLTIP = (
        f"Abre a janela {ABOUT_CADMUS} do {APP_NAME}.\n"
        "Mostra informacoes gerais sobre o plugin,\n"
        "como versao, autoria e contexto do projeto."
    )
    LAYER_NOT_EDITABLE_ASK = "A camada '{layer_name}' não está no modo de edição.\n\nDeseja torná-la editável agora?"
    LAYER_NOW_EDITABLE = "Camada colocada em modo de edição automaticamente."
    VECTOR_FIELDS_TITLE = "Calcular Campos Vetoriais"
    VECTOR_FIELDS_TOOLTIP = (
        "Calcula automaticamente campos vetoriais como area,\n"
        "comprimento ou coordenadas X/Y na camada ativa.\n"
        "E util para gerar atributos tecnicos sem editar campo por campo."
    )
    REMOVE_KML_FIELDS_TITLE = "Remover Campos KML"
    REMOVE_KML_FIELDS_TOOLTIP = (
        "Remove da camada ativa os campos de atributos tipicos de KML.\n"
        "A ferramenta so executa se a camada estiver em edicao\n"
        "e nao salva nem encerra o modo de edicao."
    )

    # plugins/VectorToSvgPlugin.py
    VECTOR_TO_SVG_TITLE = "Conversor de Vetor para SVG"
    VECTOR_TO_SVG_TOOLTIP = (
        "Exporta uma camada vetorial do projeto para SVG.\n"
        "Permite configurar fundo, borda e rótulo,\n"
        "além de gerar um único arquivo ou um SVG\n"
        "separado para cada feição."
    )
    VECTOR_LAYER_LABEL = "Camada Vetorial"
    BACKGROUND_COLOR = "Cor Fundo"
    BORDER_COLOR = "Cor Borda"
    BORDER_WIDTH = "Espessura Borda"
    LABEL_COLOR = "Cor Rotulo"
    LABEL_SIZE = "Tamanho Rotulo"
    SELECT_FILL_COLOR = "Selecione a cor de preenchimento"
    SELECT_BORDER_COLOR = "Selecione a cor da borda"
    SELECT_LABEL_COLOR = "Selecione a cor do rotulo"
    TRANSPARENT_BACKGROUND = "Fundo transparente"
    SHOW_BORDER = "Mostrar Borda"
    SHOW_LABEL = "Mostrar Rotulo"
    GENERATE_SVG_FOR_EACH_FEATURE = "Gerar SVG para cada feicao"
    SVGS_GENERATED_SUCCESS = "SVG(s) gerado(s) com sucesso."
    DIVIDE_POINTS_BY_STRIPS_TITLE = "Dividir Vetor de Pontos por Faixas"
    DIVIDE_POINTS_BY_STRIPS_TOOLTIP = (
        "Prepara a configuração para segmentar uma camada de pontos em faixas.\n"
        "Nesta primeira etapa a ferramenta cadastra a interface,\n"
        "organiza os parâmetros operacionais e de sensibilidade\n"
        "e deixa a execução pronta para a lógica da próxima fase."
    )
    DIVIDE_POINTS_BY_STRIPS_INTRO = (
        "Configure a camada de pontos e os parâmetros iniciais da divisão por faixas."
    )
    OPERATIONAL_PARAMETERS = "Parâmetros Operacionais"
    SENSITIVITY_PARAMETERS = "Parâmetros de Sensibilidade"
    UNIQUE_SEQUENTIAL_ID_FIELD = "Campo ID único/sequencial"
    TIMESTAMP_FIELD = "Campo de timestamp"
    EXPECTED_POINT_FREQUENCY_SECONDS = "Frequência (s)"
    EXPECTED_LATERAL_WIDTH_METERS = "Largura (m)"
    AZIMUTH_MOVING_WINDOW = "Janela de azimute"
    LIGHT_AZIMUTH_DEVIATION_THRESHOLD = "Limiar leve (°)"
    SEVERE_AZIMUTH_DEVIATION_THRESHOLD = "Limiar grave (°)"
    MINIMUM_BREAK_SCORE = "Pontuação mínima"
    MINIMUM_POINT_COUNT = "Pontos mínimos"
    TIME_TOLERANCE_MULTIPLIER = "Tolerância de tempo"
    SELECT_POINT_VECTOR_LAYER = "Selecione uma camada vetorial de pontos."
    SELECT_FILE_BASED_POINT_LAYER = "Selecione uma camada de pontos baseada em arquivo."
    SELECT_REQUIRED_FIELDS = "Selecione os campos obrigatórios de ID e timestamp."
    SAVE_AND_STOP_EDITING_LAYER = (
        "Salve e encerre a edição da camada antes de executar esta ferramenta."
    )
    SHOT_SEGMENTATION_COMPLETED = "Segmentação concluída. Pontos: {total_points} | Tiros: {total_shots} | Válidos: {valid_shots} | Inválidos: {invalid_shots}"
    SHOT_SEGMENTATION_BUFFER_COMPLETED = "Segmentação concluída no buffer de edição. Pontos: {total_points} | Tiros: {total_shots} | Válidos: {valid_shots} | Inválidos: {invalid_shots}"
    DIVIDE_POINTS_BY_STRIPS_UI_ONLY_MESSAGE = "A interface foi criada. A rotina de divisão por faixas será implementada na próxima etapa."

    # processing/RasterOptimizer.py
    RASTER_OPTIMIZER_TITLE = "Otimizar Raster (Overviews)"
    RASTER_OPTIMIZER_TOOLTIP = (
        "Cria ou reconstrói pirâmides (overviews) em rasters TIFF.\n"
        "Permite selecionar pasta com rasters ou camadas individuais,\n"
        "escolher os níveis de overview, método de reamostragem\n"
        "e algoritmo de compressão (LZW, DEFLATE, ZSTD)."
    )
    INPUT_RASTER_LAYERS = "Camadas Raster de Entrada"
    INPUT_RASTER_FOLDER = "Pasta com Rasters"
    OVERVIEW_LEVELS = "Níveis de Overview"
    RESAMPLING_METHOD = "Método de Reamostragem"
    COMPRESS_OVERVIEW = "Compressão das Overviews"
    PREDICTOR = "Predictor"
    ZLEVEL = "ZLevel (compressão)"
    DELETE_EXISTING_OVERVIEWS = "Deletar overviews existentes antes de recriar"
    OVERVIEWS_CREATED_SUCCESS = "Overviews criadas/atualizadas com sucesso."
    OVERVIEWS_ERROR = "Erro ao criar overviews: {error}"
    RASTER_OPTIMIZER_COMPLETED = "Otimização de rasters concluída."
    USE_RECURSIVE_SEARCH = "Incluir subpastas"
    SEARCHING_RASTERS = "Buscando rasters..."
    BIGTIFF_YES = "Forçar BIGTIFF (necessário para arquivos >4GB)"
    RGB_MOSAIC_CREATOR_TITLE = "Criador de Mosaico RGB"
    INPUT_RASTER_RED_BAND = "Raster Banda Vermelha (R)"
    INPUT_RASTER_GREEN_BAND = "Raster Banda Verde (G)"
    INPUT_RASTER_BLUE_BAND = "Raster Banda Azul (B)"
    BAND_RED_LABEL = "Banda R"
    BAND_GREEN_LABEL = "Banda G"
    BAND_BLUE_LABEL = "Banda B"
    CREATE_ALPHA_BAND = "Criar banda alpha para NoData"
    ALPHA_NODATA_VALUE = "Valor NoData para alpha"
    RGB_COMPOSITE = "Composicao RGB"
    NDVI_CALCULATOR_TITLE = "Calculadora NDVI"
    INPUT_RASTER_NIR = "Raster Infravermelho Proximo (NIR)"
    INPUT_RASTER_RED = "Raster Vermelho (RED)"
    BAND_NIR = "Banda NIR"
    BAND_RED = "Banda RED"
    SENTINEL_BANDS_INFO = "Sentinel-2: Banda 8 (NIR) e Banda 4 (Red)"
    LANDSAT_BANDS_INFO = "Landsat 8/9: Banda 5 (NIR) e Banda 4 (Red) | Landsat 5/7: Banda 4 (NIR) e Banda 3 (Red)"
    NDVI = "NDVI"
    NDRE_CALCULATOR_TITLE = "Calculadora NDRE (Red Edge)"
    INPUT_RASTER_NIR_NDRE = "Raster Infravermelho Proximo (NIR) para NDRE"
    INPUT_RASTER_REDEDGE = "Raster Borda Vermelha (RedEdge)"
    BAND_REDEDGE = "Banda RedEdge"
    NDRE = "NDRE"
    GLI_CALCULATOR_TITLE = "Calculadora GLI (Green Leaf Index)"
    INPUT_RASTER_RGB_GLI = "Raster RGB de entrada (3 ou 4 bandas)"
    GLI = "GLI"
    GLI_STYLE_PATH = "Caminho do estilo QML GLI"
    GLI_INTERPRETATION = """Interpretacao dos valores GLI:
  -1.0 a 0.0  : Solo exposto, agua, superficies nao vegetadas
   0.0 a 0.2  : Vegetacao esparsa ou estressada
   0.2 a 0.5  : Vegetacao moderada
   0.5 a 1.0  : Vegetacao densa e saudavel"""
    RGB_STYLE_STANDARDIZER_TITLE = "Padronizar Estilo RGB (Percentil)"
    INPUT_RASTER_RGB = "Raster RGB de entrada"
    RGB_STANDARDIZER_OUTPUT = "Raster RGB padronizado"
    SEGMENTATION_MODE = "Modo de Segmentação"
    CURVE = "Curva"
    STRAIGHT = "Reta"
    BOTH_PATH = "Ambas"

    PATH = "Path"

    # plugins/PathExtensionPlugin.py
    PATH_EXTENSION_TITLE = "Remover/Restaurar Extensão"
    PATH_EXTENSION_TOOLTIP = (
        "Remove ou restaura a extensão de arquivos nos paths das feições"
    )
    MODE_REMOVE = "Remover extensão"
    MODE_RESTORE = "Restaurar extensão"
    MODE_ZIP = "Zipar arquivos"
    MODE_UNZIP = "Deszipar arquivos"

    # Registry
    REG_TITLE = "Gerenciar"
    REGISTRY_SAVED_SUCCESS = "Salvo e validado com sucesso."
    REGISTRY_DELETED_SUCCESS = "Removido com sucesso."
    REGISTRY_INVALID = "Inválido."
    REGISTRY_EMPTY = "Preencha o campo."
    NO_KEY = "sem chave"
    EXPIRATION_DATE = "Validade"
    REMAINING_DAYS = "dias restantes"
    STATUS = "Status"
    LEVEL = "Nível"
    ACTIVE = "Ativa"
    INACTIVE = "Inativa"
    VALIDATE = "Validar"

    # plugins/SaveTemporaryLayersPlugin.py
    SAVE_TEMPORARY_LAYER_TITLE = "Salvar Temporárias"
    SAVE_TEMPORARY_LAYER_TOOLTIP = (
        "Salva camadas temporárias (memory) do projeto em arquivos permanentes no disco"
    )
    PREFIX = "Prefixo"
    SUFFIX = "Sufixo"
    EXTENSION_VECTOR = "Extensão Vetor"
    EXTENSION_RASTER = "Extensão Raster"
    VECTORS_FOLDER = "Pasta de Vetores"
    RASTERS_FOLDER = "Pasta de Rasters"
    SEPARATOR = "Separador"
    VECTOR_EXTENSIONS = "Extensões Vetor"
    RASTER_EXTENSIONS = "Extensões Raster"
    OUTPUT_CONFIG = "Configuração de Saída"
    CONVERTER_FILE_TYPE = "Tipo de Arquivo"
    SELECT_OUTPUT_FOLDER = "Selecionar Pasta de Saída"
    USE_PROJECT_FOLDER = "Usar Pasta do Projeto"
    OPEN_OUTPUT_FOLDER = "Abrir Pasta de Saída"
