export default {
  // Navigation
  nav: {
    printers: 'Impressoras',
    archives: 'Arquivos',
    queue: 'Fila',
    stats: 'Estatísticas',
    profiles: 'Perfis',
    maintenance: 'Manutenção',
    projects: 'Projetos',
    inventory: 'Inventário',
    files: 'Gerenciador de Arquivos',
    settings: 'Configurações',
    system: 'Sistema',
    collapseSidebar: 'Recolher barra lateral',
    expandSidebar: 'Expandir barra lateral',
    update: 'Atualizar',
    updateAvailable: 'Atualização disponível: v{{version}}',
    updateAvailableBanner: 'Versão {{version}} está disponível!',
    viewUpdate: 'Ver atualização',
    viewOnGithub: 'Ver no GitHub',
    keyboardShortcuts: 'Atalhos de teclado (?)',
    switchToLight: 'Mudar para modo claro',
    switchToDark: 'Mudar para modo escuro',
    smartSwitches: 'Interruptores inteligentes',
    logout: 'Sair',
  },

  // Common
  common: {
    save: 'Salvar',
    saving: 'Salvando...',
    cancel: 'Cancelar',
    delete: 'Excluir',
    edit: 'Editar',
    add: 'Adicionar',
    close: 'Fechar',
    confirm: 'Confirmar',
    loading: 'Carregando...',
    error: 'Erro',
    success: 'Sucesso',
    warning: 'Aviso',
    enabled: 'Ativado',
    disabled: 'Desativado',
    yes: 'Sim',
    no: 'Não',
    on: 'Ligado',
    off: 'Desligado',
    all: 'Todos',
    none: 'Nenhum',
    search: 'Pesquisar',
    filter: 'Filtrar',
    sort: 'Ordenar',
    refresh: 'Atualizar',
    download: 'Baixar',
    upload: 'Enviar',
    actions: 'Ações',
    status: 'Status',
    name: 'Nome',
    description: 'Descrição',
    date: 'Data',
    time: 'Hora',
    hours: 'Horas',
    minutes: 'Minutos',
    seconds: 'Segundos',
    days: 'Dias',
    enable: 'Ativar',
    disable: 'Desativar',
    permissions: 'Permissões',
    noPrinters: 'Nenhuma impressora configurada',
    noData: 'Nenhum dado disponível',
    linkNotFound: 'Link não encontrado',
    required: 'Obrigatório',
    optional: 'Opcional',
    dismiss: 'Dispensar',
    apply: 'Aplicar',
    reset: 'Redefinir',
    export: 'Exportar',
    import: 'Importar',
    clear: 'Limpar',
    selectAll: 'Selecionar tudo',
    deselectAll: 'Desmarcar tudo',
    noChange: '— Sem alterações —',
    unchanged: 'Inalterado',
    unassigned: 'Não atribuído',
    unknown: 'Desconhecido',
    unknownError: 'Erro desconhecido',
    today: 'Hoje',
    tomorrow: 'Amanhã',
    asap: 'O mais rápido possível',
    overdue: 'Atrasado',
    now: 'Agora',
    collapse: 'Recolher',
    expand: 'Expandir',
    viewArchive: 'Ver arquivo',
    viewInFileManager: 'Ver no Gerenciador de Arquivos',
    addedBy: 'Adicionado por {{username}}',
    prints: 'impressões',
    more: '+{{count}} mais',
    ascending: 'Crescente',
    descending: 'Decrescente',
    printer: 'Impressora',
    remove: 'Remover',
    type: 'Tipo',
    print: 'Imprimir',
    rename: 'Renomear',
    move: 'Mover',
    create: 'Criar',
    duplicate: 'Duplicar',
    left: 'Esquerda',
    right: 'Direita',
  },

  // Printers page
  printers: {
    title: 'Impressoras',
    addPrinter: 'Adicionar Impressora',
    editPrinter: 'Editar Impressora',
    deletePrinter: 'Excluir Impressora',
    printerName: 'Nome da Impressora',
    serialNumber: 'Número de Série',
    ipAddress: 'Endereço IP / Nome do Host',
    accessCode: 'Código de Acesso',
    model: 'Modelo',
    nozzleCount: 'Número de Bicos',
    autoArchive: 'Arquivamento Automático',
    status: {
      available: 'Disponível',
      idle: 'Ocioso',
      printing: 'Imprimindo',
      paused: 'Pausado',
      offline: 'Offline',
      error: 'Erro',
      finished: 'Concluído',
      unknown: 'Desconhecido',
    },
    temperatures: {
      nozzle: 'Bico',
      bed: 'Cama',
      chamber: 'Câmara',
    },
    progress: '{{percent}}% concluído',
    timeRemaining: '{{time}} restante',
    deleteConfirm: 'Tem certeza de que deseja excluir "{{name}}"?',
    maintenanceOk: 'Manutenção OK',
    maintenanceWarning: '{{count}} aviso',
    maintenanceWarning_plural: '{{count}} avisos',
    maintenanceDue: '{{count}} devido',
    maintenanceDue_plural: '{{count}} devido',
    // Sort options
    sort: {
      name: 'Nome',
      status: 'Status',
      model: 'Modelo',
      location: 'Localização',
      ascending: 'Ordem crescente',
      descending: 'Ordem decrescente',
    },
    // Card size
    cardSize: {
      small: 'Cartões pequenos',
      medium: 'Cartões médios',
      large: 'Cartões grandes',
      extraLarge: 'Cartões extra grandes',
    },
    // Controls
    hideOffline: 'Ocultar offline',
    nextAvailable: 'Próximo disponível',
    powerOn: 'Ligar',
    offlinePrintersWithPlugs: 'Impressoras offline com tomadas inteligentes',
    noPrintersConfigured: 'Nenhuma impressora configurada ainda',
    // Printer card
    readyToPrint: 'Pronto para imprimir',
    external: 'Externo',
    extL: 'Ext-L',
    extR: 'Ext-R',
    deleteArchives: 'Excluir arquivos de impressão',
    noLabel: 'Sem etiqueta',
    printPreview: 'Pré-visualização de impressão',
    width: 'Largura',
    height: 'Altura',
    noObjectsFound: 'Nenhum objeto encontrado',
    objectsLoadedOnPrintStart: 'Objetos são carregados quando uma impressão começa',
    willBeSkipped: 'Será ignorado',
    name: 'Nome',
    serialCannotBeChanged: 'Número de série não pode ser alterado',
    locationHelp: 'Usado para agrupar impressoras e filtrar trabalhos na fila',
    // WiFi signal strength
    wifiSignal: {
      veryWeak: 'Muito fraco',
      weak: 'Fraco',
      fair: 'Regular',
      good: 'Bom',
      excellent: 'Excelente',
    },
    // Maintenance
    maintenanceUpToDate: 'Toda a manutenção está em dia - Clique para ver',
    // Chamber light
    chamberLightOn: 'Ligar luz da câmara',
    chamberLightOff: 'Desligar luz da câmara',
    // Files
    browseFiles: 'Procurar arquivos da impressora',
    // Smart plug
    autoOffAfterPrint: 'Desligamento automático após impressão',
    autoOffExecuted: 'Desligamento automático executado - ligue a impressora para reiniciar',
    // HMS errors
    hmsErrors: 'Erros HMS',
    viewHmsErrors: 'Ver {{count}} erro(s) HMS',
    // Actions
    resume: 'Retomar',
    pause: 'Pausar',
    stop: 'Parar',
    camera: 'âmera',
    skipObject: 'Ignorar objeto',
    reconnect: 'Reconectar',
    mqttDebug: 'Depuração MQTT',
    activeNozzle: 'Ativo: {{nozzle}} bico',
    nozzleRack: 'Suporte de bicos',
    nozzleDocked: 'Acoplado',
    nozzleMounted: 'Montado',
    nozzleActive: 'Ativo',
    nozzleIdle: 'Ocioso',
    nozzleDiameter: 'Diâmetro',
    nozzleType: 'Tipo',
    nozzleStatus: 'Status',
    nozzleFilament: 'Filamento',
    nozzleWear: 'Desgaste',
    nozzleMaxTemp: 'Temp Máx',
    nozzleSerial: 'Serial',
    nozzleHardenedSteel: 'Aço Endurecido',
    nozzleStainlessSteel: 'Aço Inoxidável',
    nozzleTungstenCarbide: 'Carboneto de Tungstênio',
    nozzleFlow: 'Fluxo',
    nozzleHighFlow: 'Alto Fluxo',
    nozzleStandardFlow: 'Fluxo Padrão',
    // Firmware
    firmwareUpdate: 'Atualização de Firmware',
    firmwareInstructions: 'No visor da impressora, vá para',
    firmwareNav: 'Navegar para',
    settings: 'Configurações',
    firmware: 'Firmware',
    // Discovery
    discoverPrinters: 'Descobrir Impressoras',
    searching: 'Procurando...',
    manualEntry: 'Entrada Manual',
    addFromCloud: 'Adicionar da Nuvem',
    // Toast messages
    toast: {
      printerDeleted: 'Impressora excluída',
      printerAdded: 'Impressora adicionada',
      printerUpdated: 'Impressora atualizada',
      failedToDelete: 'Falha ao excluir impressora',
      failedToAdd: 'Falha ao adicionar impressora',
      failedToUpdate: 'Falha ao atualizar impressora',
      commandSent: 'Comando enviado',
      failedToSendCommand: 'Falha ao enviar comando',
      turnedOn: '{{name}} ligado',
      failedToPowerOn: 'Falha ao ligar {{name}}',
      scriptTriggered: 'Script acionado',
      printStopped: 'Impressão parada',
      printPaused: 'Impressão pausada',
      printResumed: 'Impressão retomada',
      referenceDeleted: 'Referência excluída',
      detectionAreaSaved: 'Área de detecção salva',
      failedToRunScript: 'Falha ao executar script',
      failedToStopPrint: 'Falha ao parar impressão',
      failedToPausePrint: 'Falha ao pausar impressão',
      failedToResumePrint: 'Falha ao retomar impressão',
      failedToControlChamberLight: 'Falha ao controlar a luz da câmara',
      failedToUpdateSetting: 'Falha ao atualizar configuração',
      failedToSkipObjects: 'Falha ao ignorar objetos',
      failedToRereadRfid: 'Falha ao reler RFID',
      failedToCheckPlate: 'Falha ao verificar a placa',
      failedToUpdateLabel: 'Falha ao atualizar etiqueta',
      failedToDeleteReference: 'Falha ao excluir referência',
      failedToSaveDetectionArea: 'Falha ao salvar área de detecção',
      plateCheckEnabled: 'Verificação da placa ativada',
      plateCheckDisabled: 'Verificação da placa desativada',
      calibrationSaved: 'Calibração salva!',
      calibrationFailed: 'Falha na calibração',
      rfidRereadInitiated: 'Releitura de RFID iniciada',
    },
    // Connection status
    connection: {
      connected: 'Conectado',
      offline: 'Offline',
    },
    // Queue info
    queue: {
      inQueue: '{{count}} impressão na fila',
      inQueue_plural: '{{count}} impressões na fila',
    },
    // Controls section
    controls: 'Controles',
    // RFID
    rfid: {
      reread: 'Releitura de RFID',
    },
    // Permissions
    permission: {
      noAdd: 'Você não tem permissão para adicionar impressoras',
      noEdit: 'Você não tem permissão para editar impressoras',
      noDelete: 'Você não tem permissão para excluir impressoras',
      noControl: 'Você não tem permissão para controlar impressoras',
      noFiles: 'Você não tem permissão para acessar arquivos de impressora',
      noAmsRfid: 'Você não tem permissão para reler RFID AMS',
      noSmartPlugControl: 'Você não tem permissão para controlar tomadas inteligentes',
      noCamera: 'Você não tem permissão para visualizar câmeras',
    },
    // Add/Edit modal
    modal: {
      addTitle: 'Adicionar Impressora',
      editTitle: 'Editar Impressora',
      myPrinter: 'Minha Impressora',
      selectModel: 'Selecionar modelo...',
      locationGroup: 'Localização / Grupo (opcional)',
      locationPlaceholder: 'ex.: Oficina, Escritório, Porão',
      autoArchiveLabel: 'Arquivar automaticamente impressões concluídas',
      fromPrinterSettings: 'A partir das configurações da impressora',
      modelOptional: 'Modelo (opcional)',
      saveChanges: 'Salvar alterações',
    },
    // Skip objects
    skipObjects: {
      tooltip: 'Ignorar objetos',
      onlyWhilePrinting: 'Ignorar objetos (apenas durante a impressão)',
      requiresMultiple: 'Ignorar objetos (requer 2+ objetos)',
      title: 'Ignorar Objetos',
      matchIdsInfo: 'Correspondência de IDs com o display da sua impressora',
      printerShowsIds: 'A tela da impressora mostra os IDs dos objetos na placa de construção',
      skipSelected: 'Ignorar Selecionados',
      skipping: 'Ignorando...',
      noObjectsSelected: 'Nenhum objeto selecionado',
      selectObjectsToSkip: 'Selecione os objetos que deseja ignorar na impressão atual',
      skipped: 'Ignorado',
      objectsSkipped: 'Objetos ignorados',
      activeCount: '{{count}} ativo',
      waitForLayer: 'Aguarde a camada 2+ para ignorar objetos (atualmente na camada {{layer}})',
      skip: 'Ignorar',
      confirmTitle: 'Ignorar Objeto?',
      confirmMessage: 'Tem certeza de que deseja ignorar "{{name}}"? Isso não pode ser desfeito.',
    },
    // Confirm modals
    confirm: {
      deleteTitle: 'Excluir Impressora',
      deleteMessage: 'Tem certeza de que deseja excluir "{{name}}"? Isso removerá todas as configurações de conexão.',
      deleteArchivesNote: 'Todo o histórico de impressão desta impressora será permanentemente excluído.',
      keepArchivesNote: 'O histórico de impressão será mantido, mas não estará mais associado a esta impressora.',
      stopTitle: 'Parar Impressão',
      stopMessage: 'Tem certeza de que deseja parar a impressão atual em "{{name}}"? Isso cancelará o trabalho de impressão.',
      stopButton: 'Parar Impressão',
      pauseTitle: 'Pausar Impressão',
      pauseMessage: 'Tem certeza de que deseja pausar a impressão atual em "{{name}}"?',
      pauseButton: 'Pausar Impressão',
      resumeTitle: 'Retomar Impressão',
      resumeMessage: 'Tem certeza de que deseja retomar a impressão em "{{name}}"?',
      resumeButton: 'Retomar Impressão',
      powerOnTitle: 'Ligar Impressora',
      powerOnMessage: 'Tem certeza de que deseja ligar a impressora "{{name}}"?',
      powerOnButton: 'Ligar',
      powerOffTitle: 'Desligar Impressora',
      powerOffMessage: 'Tem certeza de que deseja desligar a impressora "{{name}}"?',
      powerOffWarning: 'AVISO: "{{name}}" está imprimindo no momento! Tem certeza de que deseja desligar a impressora? Isso interromperá a impressão e pode danificar a impressora.',
      powerOffButton: 'Desligar',
    },
    // Discovery
    discovery: {
      title: 'Descobrir Impressoras',
      searching: 'Procurando...',
      scanning: 'Escaneando...',
      scanProgress: 'Escaneando... {{scanned}}/{{total}}',
      foundPrinters: '{{count}} impressora(s) encontrada(s)',
      noPrintersFound: 'Nenhuma impressora encontrada',
      noPrintersFoundSubnet: 'Nenhuma impressora encontrada na sub-rede especificada.',
      noPrintersFoundNetwork: 'Nenhuma impressora encontrada na rede.',
      allConfigured: 'Todas as impressoras descobertas já estão configuradas.',
      alreadyAdded: 'Já adicionada',
      select: 'Selecionar',
      manualEntry: 'Entrada Manual',
      addFromCloud: 'Adicionar da Nuvem',
      subnetToScan: 'Sub-rede para escanear',
      dockerNote: 'Docker detectado. Insira a sub-rede da sua impressora em notação CIDR. Requer network_mode: host no docker-compose.yml.',
      scanSubnet: 'Escanear Sub-rede para Impressoras',
      discoverNetwork: 'Descobrir Impressoras na Rede',
      scanningSubnet: 'Escaneando sub-rede para impressoras Bambu...',
      scanningNetwork: 'Escaneando rede...',
      serialRequired: 'Serial necessário',
      unknown: 'Desconhecido',
      failedToStart: 'Falha ao iniciar a descoberta',
    },
    // Filaments section
    filaments: 'Filamentos',
    // Camera
    openCameraOverlay: 'Abrir sobreposição da câmera',
    openCameraWindow: 'Abrir câmera em nova janela',
    // Firmware
    firmwareUpdateAvailable: 'Atualização de firmware disponível: {{current}} → {{latest}}',
    firmwareUpToDate: 'Firmware {{version}} — Atualizado',
    firmwareUpdateButton: 'Atualizar',
    // Plate detection
    plateDetection: {
      noPermission: 'Você não tem permissão para atualizar impressoras',
      enabledClick: 'Verificação da placa ativada - Clique para desativar',
      disabledClick: 'Verificação da placa desativada - Clique para ativar',
      manageCalibration: 'Gerenciar calibração da detecção da placa',
      calibrationRequired: 'Calibração necessária',
      calibrationInstructions: 'Certifique-se de que a placa de construção esteja <strong>completamente vazia</strong>, em seguida clique em Calibrar.',
      calibrationDescription: 'A calibração captura uma imagem de referência da placa vazia. Verificações futuras compararão com esta referência para detectar objetos.',
      calibrationTip: '<strong>Dica:</strong> Você pode armazenar até 5 calibrações para diferentes placas. O sistema usa automaticamente a melhor correspondência ao verificar.',
      plateEmpty: 'A placa parece vazia',
      objectsDetected: 'Objetos detectados na placa',
      confidence: 'Confiança',
      difference: 'Diferença',
      analysisPreview: 'Pré-visualização da análise:',
      analysisLegend: 'Caixa verde = área de detecção, Sobreposição vermelha = diferenças em relação à calibração',
      savedReferences: 'Referências salvas ({{count}}/{{max}})',
      deleteReference: 'Excluir referência',
      labelPlaceholder: 'Etiqueta...',
      clickToEdit: '{{label}} - Clique para editar',
      clickToAddLabel: 'Clique para adicionar etiqueta',
    },
    // Fans
    fans: {
      partCooling: 'Ventilador de resfriamento da peça',
      auxiliary: 'Ventilador auxiliar',
      chamber: 'Ventilador da câmara',
    },
    // HMS errors
    clickToViewHmsErrors: 'Clique para ver erros do HMS',
    estimatedCompletion: 'Tempo estimado de conclusão',
    slotOptions: 'Opções de slot',
    // Firmware modal
    firmwareModal: {
      title: 'Atualização de Firmware',
      titleUpToDate: 'Informações do Firmware',
      currentVersion: 'Atual:',
      latestVersion: 'Última:',
      releaseNotes: 'Notas de Lançamento',
      checkingPrereqs: 'Verificando pré-requisitos...',
      sdCardReady: 'Cartão SD pronto. Clique abaixo para enviar o firmware.',
      uploadedSuccess: 'Firmware enviado para o cartão SD!',
      applyInstructions: 'Para aplicar a atualização na sua impressora:',
      step1: 'Na tela sensível ao toque da impressora, vá para <strong>Configurações</strong>',
      step2: 'Navegue até <strong>Firmware</strong>',
      step3: 'Selecione <strong>Atualizar a partir do cartão SD</strong>',
      step4: 'A atualização levará de 10 a 20 minutos',
      done: 'Concluído',
      starting: 'Iniciando...',
      uploadFirmware: 'Enviar Firmware',
      uploadFailed: 'Falha ao iniciar o envio: {{error}}',
      uploadedToast: 'Firmware enviado! Inicie a atualização na tela da impressora.',
    },
    accessCodePlaceholder: 'Deixe vazio para manter o atual',
    // ROI editor
    roi: {
      title: 'Área de Detecção (ROI)',
      xStart: 'Início X',
      yStart: 'Início Y',
      width: 'Largura',
      height: 'Altura',
      instruction: 'Ajuste a área de detecção para focar na placa de construção. A caixa verde na pré-visualização mostra a área atual.',
    },
    developerModeWarning: 'O modo desenvolvedor LAN não está ativado em: {{names}}. Alguns recursos podem não funcionar.',
    howToEnable: 'Como ativar',
  },

  // Archives page
  archives: {
    title: 'Arquivos de Impressão',
    searchPlaceholder: 'Pesquisar arquivos...',
    filterByPrinter: 'Filtrar por impressora',
    filterByStatus: 'Filtrar por status',
    sortBy: 'Ordenar por',
    sortNewest: 'Mais recentes primeiro',
    sortOldest: 'Mais antigos primeiro',
    sortName: 'Nome',
    sortDuration: 'Duração',
    sortLargest: 'Maiores primeiro',
    sortSmallest: 'Menores primeiro',
    sortSize: 'Tamanho',
    noArchives: 'Nenhum arquivo encontrado',
    noArchivesSearch: 'Nenhum arquivo corresponde à sua pesquisa',
    noArchivesYet: 'Ainda não há arquivos',
    loadingArchives: 'Carregando arquivos...',
    releaseToUpload: 'Solte para enviar',
    showAll: 'Mostrar todos',
    showFavoritesOnly: 'Mostrar apenas favoritos',
    gridView: 'Visualização em grade',
    listView: 'Visualização em lista',
    calendarView: 'Visualização em calendário',
    logView: 'Registro de impressão',
    manageTags: 'Gerenciar etiquetas',
    showFailedPrints: 'Mostrar impressões falhas',
    hideFailedPrints: 'Ocultar impressões falhas',
    printTime: 'Tempo de impressão',
    filamentUsed: 'Filamento usado',
    cost: 'Custo',
    reprint: 'Reimprimir',
    preview: 'Pré-visualizar',
    deleteArchive: 'Excluir arquivo',
    deleteConfirm: 'Tem certeza de que deseja excluir este arquivo?',
    favorite: 'Favorito',
    unfavorite: 'Remover dos favoritos',
    viewDetails: 'Ver detalhes',
    status: {
      completed: 'Concluído',
      failed: 'Falhou',
      stopped: 'Parado',
    },
    toast: {
      source3mfAttached: 'Arquivo de origem 3MF anexado: {{filename}}',
      failedUploadSource3mf: 'Falha ao enviar arquivo de origem 3MF',
      source3mfRemoved: 'Arquivo de origem 3MF removido',
      failedRemoveSource3mf: 'Falha ao remover arquivo de origem 3MF',
      f3dAttached: 'F3D anexado: {{filename}}',
      failedUploadF3d: 'Falha ao enviar F3D',
      f3dRemoved: 'F3D removido',
      failedRemoveF3d: 'Falha ao remover F3D',
      timelapseAttached: 'Timelapse anexado: {{filename}}',
      timelapseAlreadyAttached: 'Timelapse já anexado',
      noMatchingTimelapse: 'Nenhum timelapse correspondente encontrado',
      failedScanTimelapse: 'Falha ao escanear timelapse',
      failedAttachTimelapse: 'Falha ao anexar timelapse',
      timelapseRemoved: 'Timelapse removido',
      failedRemoveTimelapse: 'Falha ao remover timelapse',
      timelapseUploaded: 'Timelapse enviado: {{filename}}',
      failedUploadTimelapse: 'Falha ao enviar timelapse',
      archiveDeleted: 'Arquivo excluído',
      failedDeleteArchive: 'Falha ao excluir arquivo',
      addedToFavorites: 'Adicionado aos favoritos',
      removedFromFavorites: 'Removido dos favoritos',
      projectUpdated: 'Projeto atualizado',
      failedUpdateProject: 'Falha ao atualizar projeto',
      linkCopied: 'Link copiado para a área de transferência',
      failedCopyLink: 'Falha ao copiar link',
      photoDeleted: 'Foto excluída',
      failedDeletePhoto: 'Falha ao excluir foto',
      failedDeleteArchives: 'Falha ao excluir arquivos',
      failedUpdateFavorites: 'Falha ao atualizar favoritos',
      exportDownloaded: 'Exportação baixada',
      exportFailed: 'Falha na exportação',
    },
    menu: {
      print: 'Imprimir',
      schedule: 'Agendar',
      openInBambuStudio: 'Abrir no Slicer',
      slice: 'Fatiar',
      externalLink: 'Link externo',
      viewOnMakerWorld: 'Ver no MakerWorld',
      preview3d: 'Pré-visualização 3D',
      viewTimelapse: 'Ver Timelapse',
      scanForTimelapse: 'Escanear Timelapse',
      uploadTimelapse: 'Enviar Timelapse',
      removeTimelapse: 'Remover Timelapse',
      downloadSource3mf: 'Baixar Source 3MF',
      uploadSource3mf: 'Enviar Source 3MF',
      replaceSource3mf: 'Substituir Source 3MF',
      removeSource3mf: 'Remover Source 3MF',
      uploadF3d: 'Enviar F3D',
      replaceF3d: 'Substituir F3D',
      downloadF3d: 'Baixar F3D',
      removeF3d: 'Remover F3D',
      download: 'Baixar',
      copyDownloadLink: 'Copiar link de download',
      qrCode: 'Qr Code',
      viewPhotos: 'Ver fotos',
      viewPhotosCount: 'Ver fotos ({{count}})',
      projectPage: 'Página do projeto',
      addToFavorites: 'Adicionar aos favoritos',
      removeFromFavorites: 'Remover dos favoritos',
      edit: 'Editar',
      goToProject: 'Ir para o projeto: {{name}}',
      addToProject: 'Adicionar ao projeto',
      removeFromProject: 'Remover do projeto',
      loading: 'Carregando...',
      noProjectsAvailable: 'Nenhum projeto disponível',
      select: 'Selecionar',
      deselect: 'Desmarcar',
      delete: 'Excluir',
    },
    permission: {
      noReprint: 'Você não tem permissão para reimprimir este arquivo',
      noAddToQueue: 'Você não tem permissão para adicionar à fila',
      noUpdateArchives: 'Você não tem permissão para atualizar arquivos',
      noUploadFiles: 'Você não tem permissão para enviar arquivos',
      noDownload: 'Você não tem permissão para baixar arquivos',
      noCopyLink: 'Você não tem permissão para copiar links de download',
      noDelete: 'Você não tem permissão para excluir este arquivo',
      noCreate: 'Você não tem permissão para criar arquivos',
    },
    card: {
      previousPlate: 'Placa anterior',
      nextPlate: 'Próxima placa',
      plateNumber: 'Placa {{index}}',
      moreOptions: 'Clique com o botão direito para mais opções',
      addToFavorites: 'Adicionar aos favoritos',
      removeFromFavorites: 'Remover dos favoritos',
      cancelled: 'cancelado',
      failed: 'falha',
      duplicate: 'duplicado',
      duplicateTitle: 'Este modelo já foi impresso antes',
      openSource3mf: 'Abrir source 3MF no Bambu Studio (clique com o botão direito para mais opções)',
      downloadF3d: 'Baixar arquivo de design do Fusion 360',
      viewTimelapse: 'Ver timelapse',
      viewPhoto: 'Ver 1 foto',
      viewPhotos: 'Ver {{count}} fotos',
      openFolder: 'Abrir pasta: {{name}}',
      slicedFile: 'Arquivo fatiado - pronto para imprimir',
      sourceFile: 'Apenas arquivo fonte - nenhum mapeamento AMS disponível',
      gcode: 'GCODE',
      source: 'SOURCE',
      project: 'Projeto: {{name}}',
      estimated: 'Estimado: {{time}}',
      actual: 'Real: {{time}}',
      accuracy: 'Precisão: {{percent}}%',
      filament: '{{weight}}g',
      layer: '{{count}} camada',
      layers: '{{count}} camadas',
      object: '{{count}} objeto',
      objects: '{{count}} objetos',
      slicedFor: 'Fatiado para {{model}}',
      uploadedBy: 'Enviado por',
      noPermissionReprint: 'Você não tem permissão para reimprimir',
      noFileForReprint: 'Nenhum arquivo 3MF disponível — o arquivo não pôde ser baixado da impressora quando a impressão foi registrada',
      noPermissionEdit: 'Você não tem permissão para editar arquivos',
      noPermissionDelete: 'Você não tem permissão para excluir arquivos',
      reprint: 'Reimprimir',
      schedulePrint: 'Agendar impressão',
      schedule: 'Agendar',
      openInBambuStudio: 'Abrir no Bambu Studio',
      openInBambuStudioToSlice: 'Abrir no Bambu Studio para fatiar',
      slice: 'Fatiar',
      externalLink: 'Link externo',
      makerWorld: 'MakerWorld: {{designer}}',
      viewProject: 'Ver projeto',
      noExternalLink: 'Nenhum link externo',
      preview3d: 'Visualização 3D',
      download: 'Baixar',
      edit: 'Editar',
      delete: 'Excluir',
    },
    modal: {
      deleteArchive: 'Excluir Arquivo',
      deleteConfirm: 'Tem certeza de que deseja excluir "{{name}}"? Esta ação não pode ser desfeita.',
      deleteButton: 'Excluir',
      removeSource3mf: 'Remover Source 3MF',
      removeSource3mfConfirm: 'Tem certeza de que deseja remover o arquivo source 3MF de "{{name}}"? Isso excluirá o arquivo original do projeto do fatiador.',
      removeButton: 'Remover',
      removeF3d: 'Remover F3D',
      removeF3dConfirm: 'Tem certeza de que deseja remover o arquivo de design do Fusion 360 de "{{name}}"?',
      removeTimelapse: 'Remover Timelapse',
      removeTimelapseConfirm: 'Tem certeza de que deseja remover o vídeo timelapse de "{{name}}"?',
      timelapse: '{{name}} - Timelapse',
      selectTimelapse: 'Selecionar Timelapse',
      selectTimelapseDesc: 'Nenhuma correspondência automática encontrada. Selecione o timelapse para esta impressão:',
      deleteArchives: 'Excluir Arquivos',
      deleteArchivesConfirm: 'Tem certeza de que deseja excluir {{count}} arquivo(s)? Esta ação não pode ser desfeita.',
      deleteCount: 'Excluir {{count}}',
    },
    page: {
      title: 'Arquivos',
      printsCount: '{{filtered}} de {{total}} impressões',
      dropFilesHere: 'Solte arquivos .3mf aqui',
      releaseToUpload: 'Solte para enviar',
      only3mfSupported: 'Apenas arquivos .3mf são suportados',
      close: 'Fechar',
      selected: '{{count}} selecionado(s)',
      selectAll: 'Selecionar Todos',
      tags: 'Tags',
      project: 'Projeto',
      favorite: 'Favorito',
      delete: 'Excluir',
      toggledFavorites: 'Favoritos alternados para {{count}} arquivo(s)',
      failedUpdateFavorites: 'Falha ao atualizar favoritos',
      archivesDeleted: '{{count}} arquivo(s) excluído(s)',
      failedDeleteArchives: 'Falha ao excluir arquivos',
      photoDeleted: 'Foto excluída',
      failedDeletePhoto: 'Falha ao excluir foto',
    },
    list: {
      name: 'Nome',
      printer: 'Impressora',
      date: 'Data',
      size: 'Tamanho',
      actions: 'Ações',
      hasTimelapse: 'Possui timelapse',
    },
    log: {
      date: 'Data',
      printName: 'Nome da Impressão',
      printer: 'Impressora',
      user: 'Usuário',
      status: 'Status',
      duration: 'Duração',
      filament: 'Filamento',
      allPrinters: 'Todas as Impressoras',
      allUsers: 'Todos os Usuários',
      allStatuses: 'Todos os Status',
      cancelled: 'Cancelado',
      skipped: 'Ignorado',
      dateFrom: 'De',
      dateTo: 'Até',
      noEntries: 'Nenhuma entrada de registro de impressão encontrada',
      showing: 'Mostrando {{count}} de {{total}} entradas',
      rowsPerPage: 'Linhas',
      page: 'Página',
      prev: 'Anterior',
      next: 'Próxima',
      clearLog: 'Limpar Registro',
      clearLogTitle: 'Limpar Registro de Impressão',
      clearLogConfirm: 'Todas as entradas do registro de impressão serão permanentemente excluídas. Arquivos e itens da fila não serão afetados. Esta ação não pode ser desfeita. Tem certeza?',
      clearLogButton: 'Limpar Tudo',
      cleared: '{{count}} entradas do registro de impressão limpas',
      clearFailed: 'Falha ao limpar o registro de impressão',
    },
  },

  // Queue page
  queue: {
    title: 'Fila de Impressão',
    subtitle: 'Agende e gerencie seus trabalhos de impressão',
    addToQueue: 'Adicionar à Fila',
    // Print modal
    print: 'Imprimir',
    reprint: 'Reimprimir',
    schedulePrint: 'Agendar Impressão',
    editQueueItem: 'Editar Item da Fila',
    printToPrinters: 'Imprimir para {{count}} Impressoras',
    queueToPrinters: 'Adicionar à Fila para {{count}} Impressoras',
    sending: 'Enviando...',
    sendingProgress: 'Enviando {{current}}/{{total}}...',
    adding: 'Adicionando...',
    addingProgress: 'Adicionando {{current}}/{{total}}...',
    savingProgress: 'Salvando {{current}}/{{total}}...',
    clearQueue: 'Limpar Fila',
    clearHistory: 'Limpar Histórico',
    emptyQueue: 'Fila vazia',
    position: 'Posição',
    scheduledTime: 'Hora Agendada',
    moveUp: 'Mover para Cima',
    moveDown: 'Mover para Baixo',
    startNow: 'Iniciar Agora',
    printingInProgress: 'Impressão em andamento...',
    viewArchive: 'Ver Arquivo',
    viewInFileManager: 'Ver no Gerenciador de Arquivos',
    itemCount: '{{count}} item',
    itemCount_plural: '{{count}} itens',
    dragToReorder: 'Arraste para reordenar (apenas ASAP)',
    reorderHint: 'A posição afeta apenas itens ASAP. Itens agendados são executados no horário definido.',
    addedBy: 'Adicionado por {{name}}',
    nextInQueue: 'Próximo na fila',
    clearPlate: 'Limpar Placa e Iniciar Próximo',
    clearPlateSuccess: 'Placa limpa — pronta para a próxima impressão',
    plateReady: 'Placa limpa — pronta para a próxima impressão',
    plateNumber: 'Placa {{index}}',
    // Sections
    sections: {
      currentlyPrinting: 'Imprimindo Atualmente',
      queued: 'Na Fila',
      history: 'Histórico',
    },
    // Status
    status: {
      pending: 'Pendente',
      waiting: 'Aguardando',
      printing: 'Imprimindo',
      paused: 'Pausado',
      completed: 'Concluído',
      failed: 'Falhou',
      skipped: 'Ignorado',
      cancelled: 'Cancelado',
    },
    // Summary cards
    summary: {
      printing: 'Imprimindo',
      queued: 'Na Fila',
      totalTime: 'Tempo Total da Fila',
      totalWeight: 'Peso Total da Fila',
      history: 'Histórico',
    },
    // Filters
    filter: {
      allPrinters: 'Todas as Impressoras',
      unassigned: 'Não Atribuído',
      allStatus: 'Todos os Status',
      allLocations: 'Todos os Locais',
      any: 'Qualquer',
    },
    // Sort
    sort: {
      byPosition: 'Ordenar por Posição',
      byName: 'Ordenar por Nome',
      byPrinter: 'Ordenar por Impressora',
      bySchedule: 'Ordenar por Agendamento',
      byDate: 'Ordenar por Data',
      ascendingOldest: 'Crescente (mais antigo primeiro)',
      descendingNewest: 'Decrescente (mais recente primeiro)',
    },
    // Badges
    badges: {
      staged: 'Preparado (início manual)',
      requiresPrevious: 'Requer sucesso anterior',
      autoPowerOff: 'Desligamento automático',
    },
    // Empty state
    empty: {
      title: 'Nenhuma impressão agendada',
      description: 'Agende uma impressão a partir da página de Arquivos usando a opção "Agendar" no menu de contexto, ou arraste e solte arquivos para começar.',
    },
    // Time
    time: {
      asap: 'ASAP',
      overdue: 'Atrasado',
      now: 'Agora',
      lessThanMinute: 'Em menos de um minuto',
      inMinutes: 'Em {{count}} min',
      inHours: 'Em {{count}} horas',
    },
    // Actions
    actions: {
      stopPrint: 'Parar Impressão',
      startPrint: 'Iniciar Impressão',
      requeue: 'Reenfileirar',
    },
    // Bulk edit
    bulkEdit: {
      title: 'Editar {{count}} Item',
      title_plural: 'Editar {{count}} Itens',
      description: 'Apenas as configurações alteradas serão aplicadas aos itens selecionados.',
      printer: 'Impressora',
      noChange: '— Sem alterações —',
      queueOptions: 'Opções de Fila',
      staged: 'Preparado (início manual)',
      autoPowerOff: 'Desligamento automático após impressão',
      requirePrevious: 'Requer sucesso anterior',
      printOptions: 'Opções de Impressão',
      bedLevelling: 'Nivelamento da Mesa',
      flowCalibration: 'Calibração de Fluxo',
      vibrationCalibration: 'Calibração de Vibração',
      layerInspection: 'Inspeção da Primeira Camada',
      timelapse: 'Timelapse',
      useAms: 'Usar AMS',
      applyChanges: 'Aplicar Alterações',
      selectAll: 'Selecionar Todos',
      deselectAll: 'Desmarcar Todos',
      selected: '{{count}} selecionado(s)',
      editSelected: 'Editar Selecionados',
      cancelSelected: 'Cancelar Selecionados',
    },
    // Confirmations
    confirm: {
      cancelTitle: 'Cancelar Impressão Agendada',
      cancelMessage: 'Tem certeza de que deseja cancelar "{{name}}"?',
      stopTitle: 'Parar Impressão',
      stopMessage: 'Tem certeza de que deseja parar a impressão atual "{{name}}"? Isso cancelará o trabalho de impressão na impressora.',
      removeTitle: 'Remover do Histórico',
      removeMessage: 'Tem certeza de que deseja remover "{{name}}" do histórico da fila?',
      clearHistoryTitle: 'Limpar Histórico',
      clearHistoryMessage: 'Tem certeza de que deseja remover todos os {{count}} itens do histórico?',
      cancelButton: 'Cancelar Impressão',
      stopButton: 'Parar Impressão',
      thisPrint: 'esta impressão',
      thisItem: 'este item',
    },
    // Toast messages
    toast: {
      cancelled: 'Item da fila cancelado',
      cancelFailed: 'Falha ao cancelar item',
      removed: 'Item da fila removido',
      removeFailed: 'Falha ao remover item',
      stopped: 'Impressão parada',
      stopFailed: 'Falha ao parar impressão',
      released: 'Impressão liberada para a fila',
      startFailed: 'Falha ao iniciar impressão',
      reorderFailed: 'Falha ao reordenar fila',
      historyCleared: 'Limpar {{count}} item(s) do histórico',
      clearHistoryFailed: 'Falha ao limpar histórico',
      updateFailed: 'Falha ao atualizar itens',
      bulkCancelled: 'Cancelado {{count}} item(s)',
      bulkCancelFailed: 'Falha ao cancelar itens',
    },
    // Permissions
    permissions: {
      noStopPrint: 'Você não tem permissão para parar impressões',
      noStartPrint: 'Você não tem permissão para iniciar impressões',
      noEdit: 'Você não tem permissão para editar este item da fila',
      noCancel: 'Você não tem permissão para cancelar este item da fila',
      noRequeue: 'Você não tem permissão para reenfileirar itens',
      noRemove: 'Você não tem permissão para remover este item da fila',
      noClearHistory: 'Você não tem permissão para limpar todo o histórico',
      noEditItems: 'Você não tem permissão para editar itens da fila',
      noCancelItems: 'Você não tem permissão para cancelar itens da fila',
    },
  },

  backgroundDispatch: {
    unknownFile: 'Unknown file',
    unknownPrinter: 'Unknown printer',
    startingPrints: 'Starting prints',
    progressSummary: '{{complete}}/{{total}} complete • Dispatched: {{dispatched}} • Processing: {{processing}}',
    expandDetails: 'Expand dispatch details',
    collapseDetails: 'Collapse dispatch details',
    dismissToast: 'Dismiss dispatch toast',
    cancelDispatchJob: 'Cancel dispatch job',
    cancel: 'Cancel',
    cancelling: 'Cancelling…',
    status: {
      dispatched: 'Dispatched',
      processing: 'Processing',
      completed: 'Completed',
      failed: 'Failed',
      cancelled: 'Cancelled',
    },
    toast: {
      cancellingUpload: 'Cancelling upload...',
      cancelled: 'Dispatch cancelled',
      cancelFailed: 'Failed to cancel dispatch',
      completeWithFailures: 'Background dispatch complete: {{completed}} succeeded, {{failed}} failed',
      completeSuccess: 'Background dispatch complete: {{completed}} succeeded',
    },
  },

  // Statistics page
  stats: {
    title: 'Dashboard',
    subtitle: 'Arraste os widgets para reorganizar. Clique no ícone de olho para ocultar.',
    overview: 'Visão Geral',
    totalPrints: 'Total de Impressões',
    successRate: 'Taxa de Sucesso',
    totalPrintTime: 'Tempo Total de Impressão',
    printTime: 'Tempo de Impressão',
    totalFilament: 'Filamento Total Utilizado',
    filamentUsed: 'Filamento Utilizado',
    filamentCost: 'Custo do Filamento',
    totalCost: 'Custo Total',
    energyUsed: 'Energia Utilizada',
    energyCost: 'Custo da Energia',
    averagePrintTime: 'Tempo Médio de Impressão',
    printsPerDay: 'Impressões por Dia',
    byPrinter: 'Por Impressora',
    printsByPrinter: 'Impressões por Impressora',
    byMaterial: 'Por Material',
    byMonth: 'Por Mês',
    last7Days: 'Últimos 7 Dias',
    last30Days: 'Últimos 30 Dias',
    last90Days: 'Últimos 90 Dias',
    allTime: 'Todo o Tempo',
    // Widgets
    quickStats: 'Estatísticas Rápidas',
    printActivity: 'Atividade de Impressão',
    filamentTypes: 'Tipos de Filamento',
    filamentTrends: 'Tendências de Filamento',
    failureAnalysis: 'Análise de Falhas',
    timeAccuracy: 'Precisão do Tempo',
    successful: 'Bem-sucedido:',
    failed: 'Falhou:',
    perfectEstimate: '100% = estimativa perfeita',
    noTimeAccuracyData: 'Nenhum dado de precisão de tempo disponível',
    noFilamentData: 'Nenhum dado de filamento disponível',
    noPrinterData: 'Nenhum dado de impressora disponível',
    noPrintData: 'Nenhum dado de impressão disponível',
    noPrintDataLast30Days: 'Nenhum dado de impressão nos últimos 30 dias',
    failureReasons: 'Razões de Falha',
    topFailureReasons: 'Principais Razões de Falha',
    failedPrintsCount: '{{failed}} / {{total}} impressões falharam',
    lastWeekRate: 'Última semana: {{rate}}%',
    // Actions
    resetLayout: 'Redefinir Layout',
    recalculateCosts: 'Recalcular Custos',
    recalculateCostsHint: 'Recalcular todos os custos do arquivo usando os preços atuais do filamento',
    exportStats: 'Exportar Estatísticas',
    exportAsCsv: 'Exportar como CSV',
    exportAsExcel: 'Exportar como Excel',
    hiddenCount: '{{count}} Oculto',
    // Toast
    exportDownloaded: 'Exportação baixada',
    exportFailed: 'Falha na exportação',
    layoutReset: 'Layout redefinido',
    recalculatedCosts: 'Custos recalculados para {{count}} arquivos',
    recalculateFailed: 'Falha ao recalcular custos',
    // Loading
    loadingStats: 'Carregando estatísticas...',
    // Permissions
    noPermissionResetLayout: 'Você não tem permissão para redefinir o layout',
    noPermissionRecalculate: 'Você não tem permissão para recalcular custos',
    noPrintDataInRange: 'Sem dados no período selecionado',
    periodFilament: 'Filamento usado',
    periodCost: 'Custo',
    avgPerPrint: 'Média por impressão',
    usageOverTime: 'Uso ao longo do tempo',
    filamentByWeight: 'Peso',
    printDuration: 'Duração da impressão',
    printerUtilization: 'Utilização da impressora',
    filamentSuccess: 'Sucesso por material',
    printHabits: 'Hábitos de impressão',
    printTimeOfDay: 'Horário de impressão',
    colorDistribution: 'Distribuição de cores',
    noColorData: 'Nenhum dado de cor disponível',
    records: 'Recordes',
    longestPrint: 'Impressão mais longa',
    heaviestPrint: 'Impressão mais pesada',
    mostExpensivePrint: 'Mais cara',
    busiestDay: 'Dia mais movimentado',
    successStreak: 'Sequência de sucesso',
    streakPrint: 'impressão consecutiva',
    streakPrints: '{{count}} impressões consecutivas',
    printerStats: 'Estatísticas da impressora',
    hours: 'horas',
    avgPrints: 'Méd. impressões',
    noArchiveData: 'Nenhum dado de impressão disponível',
    filamentByTime: 'Tempo',
    avgWeight: 'Méd. peso',
    avgTime: 'Méd. tempo',
    filamentByPrints: 'Impressões',
    timeframe: {
      'today': 'Hoje',
      'this-week': 'Esta semana',
      'this-month': 'Este mês',
      'last-7': 'Últimos 7 dias',
      'last-30': 'Últimos 30 dias',
      'last-90': 'Últimos 90 dias',
      'this-year': 'Este ano',
      'all-time': 'Todo o período',
      'custom': 'Personalizado',
      from: 'De',
      to: 'Até',
    },
  },

  // Maintenance page
  maintenance: {
    title: 'Manutenção',
    overview: 'Visão Geral',
    allOk: 'Todas as manutenções estão em dia',
    dueCount: '{{count}} item pendente',
    dueCount_plural: '{{count}} itens pendentes',
    warningCount: '{{count}} aviso',
    warningCount_plural: '{{count}} avisos',
    totalPrintTime: 'Tempo Total de Impressão',
    nextMaintenance: 'Próxima Manutenção',
    nothingDue: 'Nada pendente',
    tasks: 'Tarefas',
    lastPerformed: 'Última execução',
    interval: 'Intervalo',
    hoursRemaining: '{{hours}}h restantes',
    hoursOverdue: '{{hours}}h atrasadas',
    markDone: 'Marcar como Concluída',
    performMaintenance: 'Realizar Manutenção',
    history: 'Histórico',
    noHistory: 'Nenhum histórico de manutenção',
    editPrintHours: 'Editar Horas de Impressão',
    currentHours: 'Horas Atuais',
    // Tabs
    statusTab: 'Status',
    settingsTab: 'Configurações',
    // Status
    overdueCount: '{{count}} atrasado',
    dueSoonCount: '{{count}} prestes a vencer',
    dueSoon: 'Prestes a vencer',
    allGood: 'Tudo certo',
    overdueBy: 'Atrasado por {{duration}}',
    dueIn: 'Vence em {{duration}}',
    timeLeft: '{{duration}} restantes',
    // Duration formats
    day: '1 dia',
    days: '{{count}} dias',
    week: '1 semana',
    weeks: '{{count}} semanas',
    month: '1 mês',
    months: '{{count}} meses',
    year: '1 ano',
    // Settings
    maintenanceTypes: 'Tipos de Manutenção',
    maintenanceTypesDescription: 'Tipos de sistema e suas tarefas de manutenção personalizadas',
    addCustomType: 'Adicionar Tipo Personalizado',
    restoreDefaults: 'Restaurar Tarefas Padrão',
    intervalType: 'Tipo de Intervalo',
    intervalValue: 'Intervalo ({{type}})',
    icon: 'Icon',
    documentationLink: 'Link da Documentação (opcional)',
    assignToPrinters: 'Atribuir a Impressoras',
    selectAtLeastOnePrinter: 'Selecione pelo menos uma impressora',
    addType: 'Adicionar Tipo',
    custom: 'Personalizado',
    printHours: 'Horas de Impressão',
    calendarDays: 'Dias de Calendário',
    exampleName: 'ex., Substituir Filtro HEPA',
    viewDocumentation: 'Ver documentação',
    timeBasedInterval: 'Intervalo baseado em tempo',
    // Interval overrides
    intervalOverrides: 'Substituições de Intervalo',
    intervalOverridesDescription: 'Personalize os intervalos para impressoras específicas',
    // Printer assignment
    assignedToPrinters: 'Atribuído a impressoras:',
    noPrintersAssigned: 'Nenhuma impressora atribuída',
    addPrinterShort: 'Adicionar:',
    printersAssignedClick: '{{count}} impressora(s) atribuída(s) - clique para gerenciar',
    removeFromPrinter: 'Remover desta impressora',
    // Types
    types: {
      lubricateCarbonRods: 'Lubricar Barras de Carbono',
      lubricateRails: 'Lubricar Trilhos Lineares',
      cleanNozzle: 'Limpar Bico/Hotend',
      checkBelts: 'Verificar Tensão das Correias',
      cleanBuildPlate: 'Limpar Plataforma de Impressão',
      checkExtruder: 'Verificar Engrenagens do Extrusor',
      checkCooling: 'Verificar Ventiladores de Resfriamento',
      generalInspection: 'Inspeção Geral',
      cleanCarbonRods: 'Limpar Barras de Carbono',
      cleanLinearRails: 'Limpar Trilhos Lineares',
      checkPtfeTube: 'Verificar Tubo PTFE',
      replaceHepaFilter: 'Substituir Filtro HEPA',
      replaceCarbonFilter: 'Substituir Filtro de Carbono',
      lubricateLeftNozzleRail: 'Lubrificar Trilho do Bico Esquerdo',
    },
    // Toast
    maintenanceComplete: 'Manutenção marcada como concluída',
    typeUpdated: 'Tipo de manutenção atualizado',
    typeDeleted: 'Tipo de manutenção excluído',
    defaultsRestored: 'Restauradas {{count}} tarefa(s) padrão',
    printHoursUpdated: 'Horas de impressão atualizadas',
    printerAssigned: 'Impressora atribuída',
    printerRemoved: 'Impressora removida',
    // Confirmation
    deleteTypeConfirm: 'Excluir "{{name}}"?',
    deleteSystemTypeTitle: 'Excluir tarefa de manutenção padrão?',
    deleteSystemTypeMessage: 'Tem certeza de que deseja excluir a tarefa de manutenção padrão "{{name}}"?',
    // Permissions
    noPermissionUpdate: 'Você não tem permissão para atualizar itens de manutenção',
    noPermissionPerform: 'Você não tem permissão para realizar manutenção',
    noPermissionEditTypes: 'Você não tem permissão para editar tipos de manutenção',
    noPermissionDeleteTypes: 'Você não tem permissão para excluir tipos de manutenção',
    noPermissionEditHours: 'Você não tem permissão para editar horas de impressão',
    noPermissionRemovePrinter: 'Você não tem permissão para remover atribuições de impressora',
    noPermissionAssignPrinter: 'Você não tem permissão para atribuir impressoras',
    noPermissionEditIntervals: 'Você não tem permissão para editar intervalos',
    // Configure link
    configureSettings: 'Configure tipos de manutenção e intervalos',
  },

  // Settings page
  settings: {
    title: 'Configurações',
    general: 'Geral',
    // Tab names
    tabs: {
      general: 'Geral',
      smartPlugs: 'Tomadas Inteligentes',
      notifications: 'Notificações',
      filament: 'Filamento',
      network: 'Rede',
      apiKeys: 'Chaves API',
      virtualPrinter: 'Impressora Virtual',
      users: 'Autenticação',
      backup: 'Backup',
      emailAuth: 'Autenticação por Email',
    },
    // Email settings
    email: {
      smtpSettings: 'Configuração SMTP',
      smtpHost: 'Servidor SMTP',
      smtpPort: 'Porta SMTP',
      security: 'Segurança',
      authentication: 'Autenticação',
      username: 'Nome de Usuário',
      password: 'Senha',
      fromEmail: 'Email de Remetente',
      fromName: 'Nome de Remetente',
      testConnection: 'Testar Conexão SMTP',
      testRecipient: 'Email de Teste',
      sendTest: 'Enviar Email de Teste',
      sending: 'Enviando...',
      save: 'Salvar Configurações',
      saving: 'Salvando...',
      advancedAuth: 'Autenticação Avançada',
      advancedAuthEnabled: 'Autenticação Avançada está habilitada',
      advancedAuthEnabledDesc: 'Recursos de gerenciamento de usuários baseados em email estão ativos. Novos usuários receberão senhas geradas automaticamente por email, e os usuários podem redefinir suas senhas através do recurso de esqueci minha senha.',
      advancedAuthDisabled: 'Autenticação Avançada está desabilitada',
      advancedAuthDisabledDesc: 'Habilite a autenticação avançada para ativar recursos baseados em email para gerenciamento de usuários.',
      enable: 'Habilitar',
      disable: 'Desabilitar',
      feature1: 'Senhas são geradas automaticamente e enviadas por email para novos usuários',
      feature2: 'Usuários podem fazer login com nome de usuário ou email',
      feature3: 'Recurso de esqueci minha senha está disponível',
      feature4: 'Administradores podem redefinir senhas de usuários via email',
      // Error messages
      errors: {
        requiredFields: 'Por favor, preencha todos os campos obrigatórios',
        usernameRequired: 'Nome de usuário é obrigatório quando a autenticação está habilitada',
        enterTestEmail: 'Por favor, insira um endereço de email de teste',
        smtpServerAndEmail: 'Por favor, preencha o servidor SMTP e o email de remetente antes de testar',
        usernamePasswordRequired: 'Nome de usuário e senha são obrigatórios quando a autenticação está habilitada',
        configureSmtpFirst: 'Por favor, configure e teste as configurações SMTP primeiro',
      },
      // Success messages
      success: {
        settingsSaved: 'Configurações SMTP salvas com sucesso',
      },
      // Security options
      securityOptions: {
        starttls: 'STARTTLS (Porta 587)',
        ssl: 'SSL/TLS (Porta 465)',
        none: 'Nenhuma (Porta 25)',
      },
      // Authentication options
      authOptions: {
        enabled: 'Habilitado',
        disabled: 'Desabilitado',
      },
    },
    appearance: 'Aparência',
    notifications: 'Notificações',
    smartPlugs: 'Tomadas Inteligentes',
    spoolman: 'Spoolman',
    updates: 'Atualizações',
    language: 'Idioma',
    languageDescription: 'Selecione seu idioma preferido',
    theme: 'Tema',
    themeLight: 'Claro',
    themeDark: 'Escuro',
    themeSystem: 'Sistema',
    defaultView: 'Visualização Padrão',
    defaultViewDescription: 'Página a ser exibida ao abrir o aplicativo',
    checkForUpdates: 'Verificar Atualizações',
    autoUpdate: 'Atualização Automática',
    currentVersion: 'Versão Atual',
    latestVersion: 'Última Versão',
    upToDate: 'Você está atualizado',
    updateAvailable: 'Atualização disponível',
    // Notifications
    notificationLanguage: 'Idioma das Notificações',
    notificationLanguageDescription: 'Idioma para notificações push',
    bedCooledThreshold: 'Limite de Resfriamento da Cama',
    bedCooledThresholdDescription: 'Temperatura abaixo da qual a cama é considerada resfriada após uma impressão',
    notificationProviders: 'Provedores de Notificação',
    addProvider: 'Adicionar Provedor',
    editProvider: 'Editar Provedor',
    providerType: 'Tipo de Provedor',
    testNotification: 'Testar Notificação',
    testSuccess: 'Notificação de teste enviada com sucesso',
    testFailed: 'Falha ao enviar notificação de teste',
    quietHours: 'Horas de Silêncio',
    quietHoursDescription: 'Não perturbe durante essas horas',
    quietHoursStart: 'Início',
    quietHoursEnd: 'Fim',
    events: {
      title: 'Eventos de Notificação',
      printStart: 'Impressão Iniciada',
      printComplete: 'Impressão Concluída',
      printFailed: 'Falha na Impressão',
      printStopped: 'Impressão Interrompida',
      printProgress: 'Marcos de Progresso',
      printProgressDescription: 'Notificar em 25%, 50%, 75%',
      printerOffline: 'Impressora Offline',
      printerError: 'Erro na Impressora',
      filamentLow: 'Filamento Baixo',
      maintenanceDue: 'Manutenção Pendente',
      maintenanceDueDescription: 'Notificar quando a manutenção for necessária',
    },
    // Smart Plugs
    smartPlug: {
      title: 'Tomadas Inteligentes',
      add: 'Adicionar Tomada Inteligente',
      edit: 'Editar Tomada Inteligente',
      name: 'Nome',
      ipAddress: 'Endereço IP',
      linkedPrinter: 'Impressora Vinculada',
      autoOn: 'Ligar Automaticamente',
      autoOnDescription: 'Ligar quando a impressão começar',
      autoOff: 'Desligar Automaticamente',
      autoOffDescription: 'Desligar após a conclusão da impressão',
      offDelay: 'Atraso para Desligar',
      offDelayMinutes: 'Minutos após a impressão',
      offDelayTemp: 'Quando o bico estiver abaixo da temperatura',
      currentState: 'Estado Atual',
      turnOn: 'Ligar',
      turnOff: 'Desligar',
    },
    // Filament Tracking Mode
    filamentTracking: 'Rastreamento de Filamento',
    filamentTrackingDesc: 'Escolha como rastrear seus rolos de filamento. Você pode usar o inventário interno ou conectar a um servidor Spoolman externo.',
    trackingModeBuiltIn: 'Inventário Interno',
    trackingModeBuiltInDesc: 'Correspondência automática de RFID e rastreamento de uso incluídos',
    trackingModeSpoolmanDesc: 'Servidor de gerenciamento de filamento externo',
    builtInFeatureRfid: 'Detecta automaticamente rolos RFID da Bambu Lab no AMS',
    builtInFeatureUsage: 'Rastreia o consumo de filamento por impressão',
    builtInFeatureCatalog: 'Gerencia rolos, cores e perfis de fator K',
    builtInFeatureThirdParty: 'Rolos de terceiros podem ser atribuídos aos rolos do inventário',
    amsSyncButton: 'Sincronizar Pesos do AMS',
    amsSyncTitle: 'Sincronizar Pesos dos Rolos do AMS',
    amsSyncMessage: 'Isso substituirá todos os pesos dos rolos do inventário pelos valores atuais de % restante do AMS das impressoras conectadas. Use isso para recuperar dados de peso corrompidos. As impressoras devem estar online.',
    amsSyncing: 'Sincronizando...',
    amsSyncSuccess: '{{synced}} rolo(s) sincronizado(s), {{skipped}} ignorado(s)',
    amsSyncError: 'Falha ao sincronizar pesos do AMS',
    // Spoolman settings
    spoolmanUrl: 'Spoolman URL',
    spoolmanUrlHint: 'URL do seu servidor Spoolman (por exemplo, http://localhost:7912)',
    spoolmanConnected: 'Conectado',
    spoolmanDisconnected: 'Desconectado',
    status: 'Status',
    connect: 'Conectar',
    disconnect: 'Desconectar',
    howSyncWorks: 'Como a Sincronização Funciona',
    syncInfoRfidOnly: 'Apenas rolos oficiais da Bambu Lab com RFID são sincronizados',
    syncInfoAutoCreate: 'Novos rolos são criados automaticamente no Spoolman na primeira sincronização',
    syncInfoThirdPartySkipped: 'Rolos não oficiais da Bambu Lab (terceiros, reabastecidos) são ignorados',
    linkingExistingSpools: 'Vinculando Rolos Existentes',
    linkingExistingSpoolsDesc: 'Para vincular rolos existentes do Spoolman ao seu AMS, passe o mouse sobre um slot do AMS e clique em "Vincular ao Spoolman".',
    syncMode: 'Modo de Sincronização',
    syncModeAuto: 'Automático',
    syncModeManual: 'Apenas Manual',
    syncModeAutoDesc: 'Os dados do AMS são sincronizados automaticamente quando alterações são detectadas',
    syncModeManualDesc: 'Somente sincronize quando acionado manualmente',
    syncAmsData: 'Sincronizar Dados do AMS',
    syncAmsDataDesc: 'Sincronize manualmente os dados do AMS da impressora com o Spoolman',
    allPrinters: 'Todas as Impressoras',
    // Default printer
    noDefaultPrinter: 'Sem padrão (perguntar a cada vez)',
    // Sidebar
    sidebarOrder: 'Ordem da barra lateral',
    // Camera
    saveThumbnails: 'Salvar miniaturas',
    captureFinishPhoto: 'Capturar foto de conclusão',
    noPrintersConfigured: 'Nenhuma impressora configurada',
    // Archive settings
    archiveMode: {
      always: 'Sempre criar entrada de arquivo',
      never: 'Nunca criar entrada de arquivo',
      ask: 'Perguntar a cada vez',
    },
    // Updates
    checkForUpdatesLabel: 'Verificar atualizações',
    checkPrinterFirmware: 'Verificar firmware da impressora',
    includeBetaUpdates: 'Incluir versões beta',
    includeBetaUpdatesDesc: 'Notificar sobre versões beta e pré-lançamento ao verificar atualizações',
    // Queue
    enableRetry: 'Habilitar tentativa',
    // Home Assistant
    homeAssistantDescription: 'Controlar tomadas inteligentes via Home Assistant',
    environmentManagedLabel: '(Gerenciado pelo Ambiente)',
    autoEnabledViaEnv: 'Habilitado automaticamente via variáveis de ambiente',
    urlFromEnvReadOnly: 'Valor definido pela variável de ambiente HA_URL (somente leitura)',
    tokenFromEnvReadOnly: 'Valor definido pela variável de ambiente HA_TOKEN (somente leitura)',
    // MQTT
    mqttConnectedTo: 'Conectado a',
    // Prometheus
    prometheusDescription: 'Expor dados da impressora no formato Prometheus',
    // Smart plugs empty state
    noSmartPlugsTitle: 'Nenhuma tomada inteligente configurada',
    noSmartPlugsDescription: 'Adicione uma tomada inteligente baseada em Tasmota para monitorar o consumo de energia e automatizar o controle de energia.',
    // Notifications empty state
    noProvidersTitle: 'Nenhum provedor configurado',
    noProvidersDescription: 'Adicione um provedor para receber alertas.',
    noTemplatesAvailable: 'Nenhum modelo disponível. Reinicie o backend para gerar os modelos padrão.',
    // API permissions
    apiPermissionView: 'Visualizar status da impressora e fila',
    apiPermissionEdit: 'Adicionar e remover itens da fila de impressão',
    // API keys
    apiKeysEmptyTitle: 'Nenhuma chave API',
    apiKeysEmptyDescription: 'Crie uma chave API para integrar com serviços externos.',
    // Users
    noUsersFound: 'Nenhum usuário encontrado',
    noGroupsFound: 'Nenhum grupo encontrado',
    noGroupsAvailable: 'Nenhum grupo disponível',
    passwordsDoNotMatch: 'As senhas não coincidem',
    systemGroupWarning: 'Os nomes dos grupos do sistema não podem ser alterados',
    // Auth disabled
    authDisabledTitle: 'Autenticação Desativada',
    authDisabledFeature1: 'Exigir login para acessar o sistema',
    authDisabledFeature2: 'Criar múltiplos usuários com permissões baseadas em grupos',
    authDisabledFeature3: 'Controlar acesso com mais de 50 permissões granulares',
    // User deletion
    userHasCreated: 'Este usuário criou:',
    userItemsQuestion: 'O que você gostaria de fazer com esses itens?',
    deleteUserConfirm: 'Tem certeza de que deseja excluir este usuário?',
    actionCannotBeUndone: 'Esta ação não pode ser desfeita.',
    // Smart plugs
    addFirstSmartPlug: 'Adicione sua primeira tomada inteligente',
    // Notifications
    providers: 'Provedores',
    log: 'Registro',
    testAll: 'Testar tudo',
    testResults: 'Resultados do teste',
    testPassedCount: '{{count}} aprovado',
    testFailedCount: '{{count}} falhou',
    messageTemplates: 'Modelos de mensagem',
    messageTemplatesDescription: 'Personalize as mensagens de notificação para cada evento.',
    // API Keys section
    apiKeys: 'Chaves API',
    apiKeysDescription: 'Crie chaves API para integrações externas e webhooks.',
    createKey: 'Criar Chave',
    apiKeyCreated: 'Chave API criada com sucesso',
    apiKeyCopyWarning: "Copie esta chave agora - ela não será exibida novamente!",
    useInApiBrowser: 'Usar no Navegador API',
    createNewApiKey: 'Criar Nova Chave API',
    keyName: 'Nome da Chave',
    keyNamePlaceholder: 'e.g., Home Assistant, OctoPrint',
    readStatus: 'Status de Leitura',
    readStatusDescription: 'Visualizar status da impressora e fila',
    manageQueue: 'Gerenciar Fila',
    manageQueueDescription: 'Adicionar e remover itens da fila de impressão',
    controlPrinter: 'Controlar Impressora',
    controlPrinterDescription: 'Pausar, retomar e parar impressões',
    unnamedKey: 'Chave Sem Nome',
    lastUsed: 'Último uso',
    read: 'Ler',
    control: 'Controlar',
    createFirstKey: 'Crie sua primeira chave',
    webhookEndpoints: 'Endpoints de Webhook',
    webhookApiKeyHint: 'Use sua chave API no cabeçalho X-API-Key.',
    webhook: {
      getAllStatus: 'Obter status de todas as impressoras',
      getSpecificStatus: 'Obter status de uma impressora específica',
      addToQueue: 'Adicionar à fila de impressão',
      pausePrint: 'Pausar impressão',
      resumePrint: 'Retomar impressão',
      stopPrint: 'Parar impressão',
    },
    apiBrowser: 'Navegador API',
    apiBrowserDescription: 'Explore e teste todos os endpoints de API disponíveis.',
    apiKeyForTesting: 'Chave API para Teste',
    apiKeyPlaceholder: 'Cole sua chave API aqui para testar endpoints autenticados...',
    apiKeyHint: 'Esta chave será enviada como cabeçalho X-API-Key nas solicitações.',
    deleteApiKeyTitle: 'Excluir Chave API',
    deleteApiKeyMessage: 'Tem certeza de que deseja excluir esta chave API? Quaisquer integrações usando esta chave deixarão de funcionar.',
    deleteKey: 'Excluir Chave',
    // Filament tab
    amsDisplayThresholds: 'Limiares de Exibição AMS',
    amsThresholdsDescription: 'Configure os limiares de cores para os indicadores de umidade e temperatura do AMS.',
    humidity: 'Umidade',
    goodGreen: 'Bom (verde)',
    fairOrange: 'Razoável (laranja)',
    aboveFairBad: 'Acima do limiar razoável mostra como vermelho (ruim)',
    temperature: 'Temperatura',
    goodBlue: 'Bom (azul)',
    aboveFairHot: 'Acima do limiar razoável mostra como vermelho (quente)',
    historyRetention: 'Retenção de Histórico',
    keepSensorHistory: 'Manter histórico do sensor por',
    historyRetentionDescription: 'Dados antigos de umidade e temperatura serão automaticamente excluídos',
    printModal: 'Modal de Impressão',
    expandCustomMapping: 'Expandir mapeamento personalizado por padrão',
    expandCustomMappingDescription: 'Ao imprimir em várias impressoras, mostrar o mapeamento AMS por impressora expandido',
    // User management
    authentication: 'Autenticação',
    authEnabledDescription: 'Sua instância está protegida com autenticação de usuário',
    authDisabledDescription: 'Ative para exigir login e gerenciar o acesso dos usuários',
    authDisabledMessage: 'Ative a autenticação para criar contas de usuário, gerenciar permissões e proteger sua instância do Bambuddy.',
    enableAuthentication: 'Ativar Autenticação',
    currentUser: 'Usuário Atual',
    changePassword: 'Alterar Senha',
    admin: 'Administrador',
    users: 'Usuários',
    addUser: 'Adicionar Usuário',
    groups: 'Grupos',
    addGroup: 'Adicionar Grupo',
    system: 'Sistema',
    noDescription: 'Sem descrição',
    userCount: '{{count}} usuários',
    permissionCount: '{{count}} permissões',
    createUser: 'Criar Usuário',
    username: 'Nome de Usuário',
    enterUsername: 'Digite o nome de usuário',
    password: 'Senha',
    enterPassword: 'Digite a senha (mínimo 6 caracteres)',
    confirmPassword: 'Confirmar Senha',
    confirmPasswordPlaceholder: 'Confirme a senha',
    // Title tooltips
    viewReleaseOnGitHub: 'Ver lançamento no GitHub',
    turnAllPlugsOn: 'Ligar todas as tomadas',
    turnAllPlugsOff: 'Desligar todas as tomadas',
    // Modal: Clear logs
    clearNotificationLogs: 'Limpar Logs de Notificação',
    clearLogsMessage: 'Isso excluirá permanentemente todos os logs de notificação com mais de 30 dias. Esta ação não pode ser desfeita.',
    clearLogs: 'Limpar Logs',
    // Modal: Reset UI
    resetUiPreferences: 'Redefinir Preferências de UI',
    resetUiPreferencesMessage: 'Isso redefinirá todas as preferências de UI para os padrões: ordem da barra lateral, tema, layout do painel, modos de exibição e preferências de classificação. Suas impressoras, arquivos e configurações do servidor NÃO serão afetados. A página será recarregada após a limpeza.',
    resetPreferences: 'Redefinir Preferências',
    // Modal: Delete group
    deleteGroupTitle: 'Excluir Grupo',
    deleteGroupMessage: 'Tem certeza de que deseja excluir este grupo? Usuários neste grupo perderão essas permissões.',
    deleteGroup: 'Excluir Grupo',
    // Modal: Disable auth
    disableAuthenticationTitle: 'Desativar Autenticação',
    disableAuthenticationMessage: 'Tem certeza de que deseja desativar a autenticação? Isso tornará sua instância do Bambuddy acessível sem login. Todos os usuários permanecerão no banco de dados, mas a autenticação será desativada.',
    disableAuthentication: 'Desativar Autenticação',
    // Additional settings
    configureBambuddy: 'Configurar Bambuddy',
    systemDefault: 'Padrão do Sistema',
    archiveSettings: 'Configurações de Arquivo',
    newWindow: 'Nova Janela',
    embeddedOverlay: 'Sobreposição Incorporada',
    preferredSlicer: 'Fatiador Preferido',
    preferredSlicerDescription: 'Escolha qual aplicativo de fatiamento abrirá os arquivos',
    externalCameras: 'Câmeras Externas',
    costTracking: 'Rastreamento de Custos',
    printsOnly: 'Apenas Impressões',
    totalConsumption: 'Consumo Total',
    dataManagement: 'Gerenciamento de Dados',
    storageUsage: 'Uso de Armazenamento',
    storageUsageDescription: 'Detalhamento do uso de dados por categoria',
    storageUsageTotal: 'Total',
    storageUsageErrors: 'Erros',
    storageUsageOtherBreakdown: 'Outros (inclui ativos estáticos, scripts e arquivos de configuração)',
    storageUsageSystem: 'Sistema',
    storageUsageData: 'Dados',
    storageUsageUnavailable: 'Informações de uso de armazenamento indisponíveis',
    clearNotificationLogsDescription: 'Excluir logs de notificação com mais de 30 dias',
    resetUiPreferencesDescription: 'Redefinir ordem da barra lateral, tema, modos de exibição e preferências de layout. Impressoras, arquivos e configurações não são afetados.',
    enableHomeAssistant: 'Ativar Home Assistant',
    enableMqtt: 'Ativar MQTT',
    useTls: 'Usar TLS',
    enableMetricsEndpoint: 'Ativar Endpoint de Métricas',
    availableMetrics: 'Métricas Disponíveis',
    editUser: 'Editar Usuário',
    deleteUserTitle: 'Excluir Usuário',
    groupName: 'Nome do Grupo',
    // Placeholders
    leaveEmptyForAnonymous: 'Deixe vazio para anônimo',
    leaveEmptyForNoAuth: 'Deixe vazio para sem autenticação',
    enterNewPassword: 'Digite a nova senha',
    confirmNewPassword: 'Confirme a nova senha',
    enterGroupName: 'Digite o nome do grupo',
    enterDescriptionOptional: 'Digite a descrição (opcional)',
    enterCurrentPassword: 'Digite a senha atual',
    enterNewPasswordMin6: 'Digite a nova senha (mínimo 6 caracteres)',
    toast: {
      keyCopied: 'Chave copiada para a área de transferência',
      copyFailed: 'Falha ao copiar a chave',
      keyAddedToBrowser: 'Chave adicionada ao Navegador de API',
      clearLogsFailed: 'Falha ao limpar logs',
      uiPreferencesReset: 'Preferências de UI redefinidas. Atualizando...',
      authDisabled: 'Autenticação desativada com sucesso',
      authDisableFailed: 'Falha ao desativar a autenticação',
      apiKeyCreated: 'Chave de API criada',
      apiKeyDeleted: 'Chave de API excluída',
      userCreated: 'Usuário criado com sucesso',
      userUpdated: 'Usuário atualizado com sucesso',
      userDeleted: 'Usuário excluído com sucesso',
      groupCreated: 'Grupo criado com sucesso',
      groupUpdated: 'Grupo atualizado com sucesso',
      groupDeleted: 'Grupo excluído com sucesso',
      fillRequiredFields: 'Por favor, preencha todos os campos obrigatórios',
      passwordsDoNotMatch: 'As senhas não coincidem',
      passwordTooShort: 'A senha deve ter pelo menos 6 caracteres',
      enterGroupName: 'Por favor, insira um nome de grupo',
      settingsSaved: 'Configurações salvas',
      cameraSettingsSaved: 'Configurações da câmera salvas',
      enterCameraUrl: 'Por favor, insira a URL da câmera',
      passwordChanged: 'Senha alterada com sucesso',
      connectionFailed: 'Falha na conexão',
      testFailed: 'Falha no teste',
      cameraConnected: 'Câmera conectada{{resolution}}',
    },
    testConnection: 'Testar Conexão',
    catalog: {
      spoolCatalog: 'Catálogo de Carretéis',
      spoolCatalogDescription: 'Pesos de carretéis vazios por marca/tipo. Usado para pesquisa automática de peso ao adicionar carretéis.',
      searchCatalog: 'Pesquisar no catálogo...',
      addNewEntry: 'Adicionar Nova Entrada',
      namePlaceholder: 'Nome (ex.: Bambu Lab - Plástico)',
      weight: 'Peso',
      type: 'Tipo',
      default: 'Padrão',
      custom: 'Personalizado',
      noMatch: 'Nenhuma entrada corresponde à sua pesquisa',
      empty: 'Nenhuma entrada no catálogo',
      deleteEntry: 'Excluir Entrada',
      deleteConfirm: 'Tem certeza de que deseja excluir "{{name}}"?',
      resetCatalog: 'Redefinir Catálogo',
      resetConfirm: 'Redefinir catálogo para os padrões? Isso removerá todas as entradas personalizadas.',
      loadFailed: 'Falha ao carregar o catálogo de carretéis',
      nameWeightRequired: 'Nome e peso são obrigatórios',
      entryAdded: 'Entrada adicionada',
      addFailed: 'Falha ao adicionar entrada',
      entryUpdated: 'Entrada atualizada',
      updateFailed: 'Falha ao atualizar entrada',
      entryDeleted: 'Entrada excluída',
      deleteFailed: 'Falha ao excluir entrada',
      resetSuccess: 'Catálogo redefinido para os padrões',
      resetFailed: 'Falha ao redefinir catálogo',
      exported: 'Exportadas {{count}} entradas',
      imported: 'Importadas {{added}} entradas ({{skipped}} ignoradas)',
      importFailed: 'Falha ao importar: formato JSON inválido',
      exportTooltip: 'Exportar catálogo para JSON',
      importTooltip: 'Importar catálogo de JSON',
      resetTooltip: 'Redefinir para os padrões',
    },
    colorCatalog: {
      title: 'Catálogo de Cores',
      description: 'Cores de filamento por fabricante/material. Usado para pesquisa automática de cores ao adicionar carretéis.',
      searchColors: 'Pesquisar cores...',
      allManufacturers: 'Todos os fabricantes',
      addNewColor: 'Adicionar Nova Cor',
      manufacturer: 'Fabricante',
      colorName: 'Nome da Cor',
      hex: 'Hex',
      materialOptional: 'Material (opcional)',
      showing: 'Mostrando {{filtered}} de {{total}} cores',
      noMatch: 'Nenhuma cor corresponde à sua pesquisa',
      empty: 'Nenhuma cor no catálogo',
      deleteColor: 'Excluir Cor',
      deleteConfirm: 'Tem certeza de que deseja excluir "{{name}}"?',
      resetCatalog: 'Redefinir Catálogo de Cores',
      resetConfirm: 'Redefinir catálogo para os padrões? Isso removerá todas as cores personalizadas.',
      sync: 'Sincronizar',
      starting: 'Iniciando...',
      syncTooltip: 'Sincronizar do FilamentColors.xyz (2000+ cores, pode levar um minuto)',
      loadFailed: 'Falha ao carregar o catálogo de cores',
      fieldsRequired: 'Fabricante, nome da cor e cor hex são obrigatórios',
      colorAdded: 'Cor adicionada',
      addFailed: 'Falha ao adicionar cor',
      colorUpdated: 'Cor atualizada',
      updateFailed: 'Falha ao atualizar cor',
      colorDeleted: 'Cor excluída',
      deleteFailed: 'Falha ao excluir cor',
      resetSuccess: 'Catálogo de cores redefinido para os padrões',
      resetFailed: 'Falha ao redefinir catálogo',
      syncUpToDate: 'Já está atualizado ({{count}} cores verificadas)',
      syncComplete: 'Adicionadas {{added}} novas cores ({{skipped}} já existiam)',
      syncError: 'Erro de sincronização',
      syncFailed: 'Falha ao sincronizar do FilamentColors.xyz',
      exported: 'Exportadas {{count}} cores',
      imported: 'Importadas {{added}} cores ({{skipped}} ignoradas)',
      importFailed: 'Falha ao importar: formato JSON inválido',
    },
  },

  // Notifications (for push notifications)
  notification: {
    printStarted: {
      title: 'Impressão Iniciada',
      body: '{{printer}}: {{filename}} iniciou a impressão',
    },
    printCompleted: {
      title: 'Impressão Concluída',
      body: '{{printer}}: {{filename}} foi concluída com sucesso',
    },
    printFailed: {
      title: 'Falha na Impressão',
      body: '{{printer}}: {{filename}} falhou',
    },
    printStopped: {
      title: 'Impressão Interrompida',
      body: '{{printer}}: {{filename}} foi interrompida',
    },
    printProgress: {
      title: 'Progresso da Impressão',
      body: '{{printer}}: {{filename}} está {{percent}}% concluída',
    },
    printerOffline: {
      title: 'Impressora Offline',
      body: '{{printer}} está offline',
    },
    printerError: {
      title: 'Erro na Impressora',
      body: '{{printer}}: {{error}}',
    },
    filamentLow: {
      title: 'Filamento Baixo',
      body: '{{printer}}: O filamento está acabando',
    },
    maintenanceDue: {
      title: 'Manutenção Pendente',
      body: '{{printer}}: {{items}} precisam de atenção',
    },
  },

  // Errors
  errors: {
    generic: 'Algo deu errado',
    networkError: 'Erro de rede. Por favor, verifique sua conexão.',
    notFound: 'Não encontrado',
    unauthorized: 'Não autorizado',
    serverError: 'Erro no servidor',
    validationError: 'Por favor, verifique sua entrada',
    printerConnectionFailed: 'Falha ao conectar à impressora',
    saveFailed: 'Falha ao salvar alterações',
    deleteFailed: 'Falha ao excluir',
    loadFailed: 'Falha ao carregar dados',
  },

  // HMS Errors modal
  hmsErrors: {
    title: 'Erros - {{name}}',
    noErrors: 'Nenhum erro',
    viewOnWiki: 'Ver no Bambu Lab Wiki',
    clearInstructions: 'Limpe os erros na impressora para descartá-los aqui.',
    clearErrors: 'Limpar Erros',
    clearSuccess: 'Erros HMS limpos',
    clearFailed: 'Falha ao limpar erros HMS',
  },

  // MQTT Debug modal
  mqttDebug: {
    title: 'MQTT Log de Depuração',
    searchPlaceholder: 'Pesquisar tópico ou payload...',
    noMessages: 'Nenhuma mensagem registrada ainda',
    startLoggingHint: 'Clique em "Iniciar Registro" para começar a capturar mensagens MQTT',
    noMessagesMatch: 'Nenhuma mensagem corresponde ao seu filtro',
    adjustFilterHint: 'Tente ajustar seus critérios de pesquisa ou filtro',
    incoming: 'Entrada',
    outgoing: 'Saída',
    loggingStopped: 'Registro interrompido',
    loggingActive: 'Registro ativo - as mensagens serão atualizadas automaticamente',
    startLogging: 'Iniciar Registro',
    stopLogging: 'Parar Registro',
    clearLog: 'Limpar Registro',
    topic: 'ópico',
    timestamp: 'Carimbo de Data/Hora',
    direction: 'Direção',
    all: 'Todos',
  },

  // Printer File Manager modal (printer internal storage)
  printerFiles: {
    title: 'Gerenciador de Arquivos',
    storageUsed: 'Usado:',
    storageFree: 'Livre:',
    filterPlaceholder: 'Filtrar arquivos...',
    deleteButton: 'Excluir',
    deleteFiles: 'Excluir {{count}} arquivos',
    deleteFileConfirm: 'Excluir "{{name}}"? Isso não pode ser desfeito.',
    deleteFilesConfirm: 'Excluir {{count}} arquivos selecionados? Isso não pode ser desfeito.',
    noFiles: 'Nenhum arquivo na impressora',
    loadingFiles: 'Carregando arquivos...',
    failedToLoad: 'Falha ao carregar arquivos',
    toast: {
      filesDeleted: 'Arquivos excluídos: {{count}}',
      deleteFailed: 'Falha ao excluir: {{error}}',
    },
  },

  // Confirmations
  confirm: {
    delete: 'Tem certeza de que deseja excluir isso?',
    unsavedChanges: 'Você tem alterações não salvas. Tem certeza de que deseja sair?',
    clearQueue: 'Tem certeza de que deseja limpar a fila?',
  },

  // Login page
  login: {
    title: 'Bambuddy Login',
    subtitle: 'Faça login na sua conta',
    username: 'Nome de usuário',
    usernamePlaceholder: 'Digite seu nome de usuário',
    usernameOrEmail: 'Nome de usuário ou Email',
    usernameOrEmailPlaceholder: 'Nome de usuário ou Email',
    password: 'Senha',
    passwordPlaceholder: 'Digite sua senha',
    signIn: 'Entrar',
    signingIn: 'Entrando...',
    forgotPassword: 'Esqueceu sua senha?',
    loginSuccess: 'Login realizado com sucesso',
    loginFailed: 'Falha no login',
    enterCredentials: 'Por favor, insira nome de usuário e senha',
    forgotPasswordTitle: 'Esqueceu a Senha',
    forgotPasswordMessage: "Se você esqueceu sua senha, entre em contato com o administrador do sistema para redefini-la.",
    forgotPasswordEmailMessage: "Digite seu endereço de email e enviaremos uma nova senha.",
    emailAddress: 'Endereço de Email',
    emailPlaceholder: 'seu.email@exemplo.com',
    cancel: 'Cancelar',
    sending: 'Enviando...',
    sendResetEmail: 'Enviar Email de Redefinição',
    howToReset: 'Como redefinir sua senha:',
    resetStep1: 'Entre em contato com o administrador do Bambuddy',
    resetStep2: 'Peça para redefinir sua senha na Gestão de Usuários',
    resetStep3: 'Eles podem definir uma nova senha temporária para você',
    resetStep4: 'Faça login com a nova senha e altere-a nas Configurações',
    gotIt: 'Entendi',
  },

  // Setup page
  setup: {
    title: 'Bambuddy Configuração',
    subtitle: 'Configure a autenticação para sua instância do Bambuddy',
    enableAuth: 'Ativar Autenticação',
    adminAccount: 'Conta de Administrador',
    adminAccountDesc: 'Se usuários administradores já existirem, a autenticação será ativada usando as contas de administrador existentes. Deixe os campos abaixo vazios para usar os administradores existentes ou insira novas credenciais para criar um novo usuário administrador.',
    adminUsername: 'Nome de usuário do administrador',
    adminPassword: 'Senha do administrador',
    optionalIfAdminExists: '(opcional se usuários administradores existirem)',
    adminUsernamePlaceholder: 'Digite o nome de usuário do administrador (opcional)',
    adminPasswordPlaceholder: 'Digite a senha do administrador (opcional)',
    confirmPassword: 'Confirmar Senha',
    confirmPasswordPlaceholder: 'Confirme a senha do administrador',
    settingUp: 'Configurando...',
    completeSetup: 'Concluir Configuração',
    toast: {
      authEnabledAdminCreated: 'Autenticação ativada e usuário administrador criado',
      authEnabledExistingAdmins: 'Autenticação ativada usando usuários administradores existentes',
      setupCompleted: 'Configuração concluída',
      enterBothCredentials: 'Por favor, insira o nome de usuário e a senha do administrador, ou deixe ambos vazios para usar os usuários administradores existentes',
      passwordsDoNotMatch: 'As senhas não coincidem',
      passwordTooShort: 'A senha deve ter pelo menos 6 caracteres',
    },
  },

  // Password change
  changePassword: {
    title: 'Alterar Senha',
    currentPassword: 'Senha Atual',
    currentPasswordPlaceholder: 'Digite a senha atual',
    newPassword: 'Nova Senha',
    newPasswordPlaceholder: 'Digite a nova senha (mínimo 6 caracteres)',
    confirmPassword: 'Confirmar Senha',
    confirmPasswordPlaceholder: 'Confirme a nova senha',
    passwordsDoNotMatch: 'As senhas não coincidem',
    passwordTooShort: 'A senha deve ter pelo menos 6 caracteres',
    changing: 'Alterando...',
    success: 'Senha alterada com sucesso',
    failed: 'Falha ao alterar a senha',
  },

  // Plate detection alert
  plateAlert: {
    title: 'Impressão Pausada!',
    message: 'Objetos detectados na mesa de impressão. A impressão foi automaticamente pausada. Por favor, limpe a mesa e retome a impressão.',
    understand: 'Entendi',
  },

  // Camera page
  camera: {
    title: 'Visualização da Câmera',
    invalidPrinterId: 'ID da impressora inválido',
    live: 'Ao Vivo',
    snapshot: 'Captura',
    restartStream: 'Reiniciar transmissão',
    refreshSnapshot: 'Atualizar captura',
    fullscreen: 'Tela Cheia',
    exitFullscreen: 'Sair da Tela Cheia',
    connectingToCamera: 'Conectando à câmera...',
    capturingSnapshot: 'Capturando imagem...',
    connectionLost: 'Conexão perdida',
    connectionFailed: 'Falha na conexão com a câmera',
    reconnecting: 'Reconectando em {{countdown}}s... (tentativa {{attempt}}/{{max}})',
    reconnectNow: 'Reconectar agora',
    cameraUnavailable: 'Câmera indisponível',
    cameraUnavailableDesc: 'Certifique-se de que a impressora está ligada e conectada.',
    noCamera: 'Nenhuma câmera disponível',
    retry: 'Tentar novamente',
    cameraStream: 'Transmissão da câmera',
    zoomOut: 'Reduzir zoom',
    zoomIn: 'Aumentar zoom',
    resetZoom: 'Redefinir zoom',
    recording: 'Gravando',
    startRecording: 'Iniciar gravação',
    stopRecording: 'Parar gravação',
    chamberLight: 'Alternar luz da câmara',
  },

  // Groups management
  groups: {
    title: 'Gerenciamento de Grupos',
    subtitle: 'Gerenciar grupos de permissão para controle de acesso',
    backToSettings: 'Voltar para Configurações',
    createGroup: 'Criar Grupo',
    noPermission: 'Você não tem permissão para acessar esta página.',
    system: 'Sistema',
    noDescription: 'Sem descrição',
    usersCount: '{{count}} usuários',
    permissionsCount: '{{count}} permissões',
    edit: 'Editar',
    delete: 'Excluir',
    toast: {
      created: 'Grupo criado com sucesso',
      updated: 'Grupo atualizado com sucesso',
      deleted: 'Grupo excluído com sucesso',
      enterGroupName: 'Por favor, insira um nome para o grupo',
    },
    modal: {
      editGroup: 'Editar Grupo',
      createGroup: 'Criar Grupo',
      cancel: 'Cancelar',
      saving: 'Salvando...',
      creating: 'Criando...',
      saveChanges: 'Salvar Alterações',
    },
    form: {
      groupName: 'Nome do Grupo',
      groupNamePlaceholder: 'Insira o nome do grupo',
      systemGroupWarning: 'Os nomes dos grupos do sistema não podem ser alterados',
      description: 'Descrição',
      descriptionPlaceholder: 'Insira a descrição (opcional)',
      permissions: 'Permissões ({{count}} selecionadas)',
    },
    deleteModal: {
      title: 'Excluir Grupo',
      message: 'Tem certeza de que deseja excluir este grupo? Os usuários deste grupo perderão essas permissões.',
      confirm: 'Excluir Grupo',
    },
    editor: {
      title: 'Editar Grupo',
      createTitle: 'Criar Grupo',
      search: 'Pesquisar permissões...',
      selectAll: 'Selecionar Tudo',
      clearAll: 'Limpar Tudo',
      permissionsSelected: '{{count}} selecionada(s)',
      noResults: 'Nenhuma permissão corresponde à sua pesquisa',
    },
  },

  // Users management
  users: {
    title: 'Gerenciamento de Usuários',
    subtitle: 'Gerenciar usuários e seu acesso à sua instância do Bambuddy',
    backToSettings: 'Voltar para Configurações',
    createUser: 'Criar Usuário',
    noPermission: 'Você não tem permissão para acessar esta página.',
    admin: 'Admin',
    noGroups: 'Sem grupos',
    active: 'Ativo',
    inactive: 'Inativo',
    edit: 'Editar',
    delete: 'Excluir',
    system: 'Sistema',
    noGroupsAvailable: 'Nenhum grupo disponível',
    table: {
      username: 'Nome de Usuário',
      groups: 'Grupos',
      status: 'Status',
      actions: 'Ações',
    },
    toast: {
      created: 'Usuário criado com sucesso',
      updated: 'Usuário atualizado com sucesso',
      deleted: 'Usuário excluído com sucesso',
      fillRequired: 'Por favor, preencha todos os campos obrigatórios',
      passwordsDoNotMatch: 'As senhas não coincidem',
      passwordTooShort: 'A senha deve ter pelo menos 6 caracteres',
    },
    modal: {
      createUser: 'Criar Usuário',
      editUser: 'Editar Usuário',
      cancel: 'Cancelar',
      creating: 'Criando...',
      saving: 'Salvando...',
      saveChanges: 'Salvar Alterações',
      advancedAuthSubtitle: 'com Autenticação Avançada',
    },
    form: {
      username: 'Nome de Usuário',
      usernamePlaceholder: 'Insira o nome de usuário',
      email: 'Email',
      emailPlaceholder: 'user@example.com',
      password: 'Senha',
      passwordPlaceholder: 'Insira a senha',
      confirmPassword: 'Confirmar Senha',
      confirmPasswordPlaceholder: 'Confirme a senha',
      newPasswordPlaceholder: 'Insira a nova senha',
      confirmNewPasswordPlaceholder: 'Confirme a nova senha',
      leaveBlankToKeep: 'deixe em branco para manter a atual',
      groups: 'Grupos',
      optional: 'opcional',
      autoGeneratedPassword: 'Uma senha segura será gerada automaticamente e enviada por e-mail ao usuário.',
      passwordManagedByAdvancedAuth: 'A senha é gerenciada pela Autenticação Avançada. Use "Redefinir Senha" para enviar uma nova senha ao usuário por e-mail.',
      resetPassword: 'Redefinir Senha',
      resettingPassword: 'Redefinindo Senha...',
    },
    deleteModal: {
      title: 'Excluir Usuário',
      message: 'Tem certeza de que deseja excluir este usuário? Esta ação não pode ser desfeita.',
      confirm: 'Excluir Usuário',
    },
  },

  // Stream overlay
  streamOverlay: {
    title: 'Stream Overlay',
    invalidPrinterId: 'ID da impressora inválido',
    cameraStream: 'Transmissão da câmera',
    progress: 'Progresso da impressão',
    eta: 'ETA',
    printerIdle: 'Impressora ociosa',
    printerOffline: 'Impressora offline',
    status: {
      printing: 'Imprimindo',
      paused: 'Pausado',
      finished: 'Concluído',
      failed: 'Falhou',
      idle: 'Ocioso',
      unknown: 'Desconhecido',
    },
  },

  // Profiles
  profiles: {
    title: 'Perfis',
    subtitle: 'Gerencie seus presets de fatiador e calibrações de avanço de pressão',
    tabs: {
      cloud: 'Perfis na Nuvem',
      local: 'Perfis Locais',
      kprofiles: 'K-Perfis',
    },
    localProfiles: {
      title: 'Perfis Locais',
      subtitle: 'Importe e gerencie presets de fatiador do OrcaSlicer',
      import: 'Importar Perfis',
      importDesc: 'Solte arquivos .bbscfg, .bbsflmt, .orca_filament, .zip ou .json aqui',
      importing: 'Importando...',
      search: 'Pesquisar presets locais...',
      noPresets: 'Nenhum preset local ainda',
      badge: 'Local',
      edit: 'Editar',
      delete: 'Excluir',
      cancel: 'Cancelar',
      deleteConfirmTitle: 'Excluir Preset',
      deleteConfirm: 'Tem certeza de que deseja excluir este preset? Esta ação não pode ser desfeita.',
      source: 'Fonte',
      inheritsFrom: 'Herdado de',
      filamentType: 'Tipo',
      vendor: 'Fornecedor',
      compatiblePrinters: 'Impressoras Compatíveis',
      nozzleTemp: 'Temperatura do Bico',
      cost: 'Custo',
      density: 'Densidade',
      pressureAdvance: 'Avanço de Pressão',
      filament: 'Filamento',
      process: 'Processo',
      printer: 'Impressora',
      toast: {
        importSuccess: '{{count}} preset(s) importada(s)',
        importSkipped: '{{count}} preset(s) ignorada(s) (duplicadas)',
        importError: '{{count}} erro(s) durante a importação',
        deleted: 'Preset excluído',
        updated: 'Preset atualizado',
      },
    },
    connectedAs: 'Conectado como',
    logout: 'Sair',
    noLogoutPermission: 'Você não tem permissão para sair',
    failedToLoad: 'Falha ao carregar perfis',
    retry: 'Tentar novamente',
    time: {
      justNow: 'Agora mesmo',
      minsAgo: 'há {{count}} minutos',
      hoursAgo: 'há {{count}} horas',
      daysAgo: 'há {{count}} dias',
    },
    toast: {
      loggedOut: 'Desconectado',
    },
    login: {
      title: 'Conectar ao Bambu Cloud',
      subtitle: 'Sincronize seus presets de fatiador entre dispositivos',
      email: 'Email',
      password: 'Senha',
      region: 'Região',
      regionGlobal: 'Global',
      regionChina: 'China',
      verificationCode: 'Código de Verificação',
      totpCode: 'Código do Autenticador',
      checkEmail: 'Verifique seu email ({{email}}) para um código de 6 dígitos',
      enterTotpHint: 'Digite o código de 6 dígitos do seu aplicativo autenticador',
      accessToken: 'Token de Acesso',
      accessTokenHint: 'Cole seu token de acesso Bambu Lab (do Bambu Studio)',
      back: 'Voltar',
      loginButton: 'Entrar',
      verifyButton: 'Verificar',
      setTokenButton: 'Definir Token',
      useToken: 'Usar token de acesso em vez disso',
      useEmail: 'Entrar com email em vez disso',
      toast: {
        loggedIn: 'Conectado com sucesso',
        codeSent: 'Código de verificação enviado para seu email',
        enterTotp: 'Digite o código do seu aplicativo autenticador',
        tokenSet: 'Token definido com sucesso',
      },
    },
    presets: {
      myPreset: 'Meu preset (editável)',
      duplicate: 'Duplicar',
      editable: 'Editável',
      failedToLoadDetails: 'Falha ao carregar detalhes do preset',
      deleteConfirm: 'Excluir este preset?',
      deleteWarning: 'Isso excluirá permanentemente "{{name}}" do Bambu Cloud. Esta ação não pode ser desfeita.',
      noDuplicatePermission: 'Você não tem permissão para duplicar presets',
      noEditPermission: 'Você não tem permissão para editar presets',
      noDeletePermission: 'Você não tem permissão para excluir presets',
      types: {
        filament: 'Preset de filamento',
        printer: 'Preset de impressora',
        process: 'Preset de processo',
      },
      toast: {
        deleted: 'Preset excluído',
        created: 'Preset criado',
        updated: 'Preset atualizado',
        duplicated: 'Preset duplicado',
        fieldAdded: 'Campo "{{key}}" adicionado',
        exported: 'Preset exportado',
      },
      baseLabel: 'Base: {{name}}',
      currentLabel: 'Atual: {{name}}',
      newPreset: 'Novo Preset',
      editPreset: 'Editar Preset',
      duplicatePreset: 'Duplicar Preset',
      createNewPreset: 'Criar Novo Preset',
      customizeSettings: 'Personalizar configurações para seu novo preset',
      compareWithBase: 'Comparar com o preset base',
      compare: 'Comparar',
      // CreatePresetModal - Basic Info
      basePreset: 'Preset Base',
      selectBasePreset: 'Selecionar preset base...',
      presetName: 'Nome do Preset',
      myCustomPreset: 'Meu preset personalizado',
      inheritsFrom: 'Herdado de',
      dropJsonToImport: 'Solte o arquivo JSON para importar',
      // CreatePresetModal - Tabs
      tabs: {
        common: 'Comum',
        allFields: 'Todos os Campos',
      },
      // CreatePresetModal - All Fields Tab
      availableFields: 'Campos Disponíveis',
      searchFieldsPlaceholder: 'Pesquisar campos...',
      noMatchingFields: 'Nenhum campo correspondente',
      allFieldsAdded: 'Todos os campos adicionados',
      addCustomField: 'Adicionar campo personalizado',
      yourOverrides: 'Suas Substituições',
      noOverridesYet: 'Nenhuma substituição ainda',
      clickFieldsToAdd: 'Clique nos campos à esquerda para adicioná-los',
      saveAsTemplate: 'Salvar como modelo',
      jsonTip: 'Dica: Arraste e solte um arquivo .json em qualquer lugar deste modal para importar configurações',
    },
    cloudView: {
      searchPlaceholder: 'Pesquisar presets...',
      templates: 'Modelos',
      refresh: 'Atualizar',
      newPreset: 'Novo Preset',
      clearFilters: 'Limpar filtros',
      // Compare mode
      compareMode: 'Modo de Comparação',
      selectAnotherPreset: 'Selecionar outro preset {{type}}',
      clickTwoPresets: 'Clique em dois presets do mesmo tipo para comparar',
      selectFirst: '1. Selecionar primeiro',
      selectSecond: '2. Selecionar segundo',
      compareNow: 'Comparar Agora',
      // Status row
      lastSynced: 'Última sincronização:',
      showingCount: 'Mostrando {{showing}} de {{total}} presets',
      noPresetsFound: 'Nenhum preset encontrado',
      // Column headers
      columns: {
        filament: 'Filamento',
        process: 'Processo',
        printer: 'Impressora',
      },
      noFilamentPresets: 'Nenhum preset de filamento',
      noProcessPresets: 'Nenhum preset de processo',
      noPrinterPresets: 'Nenhum preset de impressora',
      // Filters
      filters: {
        type: 'Tipo',
        owner: 'Proprietário',
        printer: 'Impressora',
        nozzle: 'Bico',
        filament: 'Filamento',
        layer: 'Camada',
        all: 'Todos',
        myPresets: 'Meus Presets',
        builtIn: 'Integrado',
        process: 'Processo',
      },
      // Permissions
      noTemplatesPermission: 'Você não tem permissão para gerenciar modelos',
      noRefreshPermission: 'Você não tem permissão para atualizar perfis',
      noCreatePermission: 'Você não tem permissão para criar presets',
    },
    templates: {
      title: 'Modelos Rápidos',
      noTemplates: 'Nenhum modelo ainda',
      createFirst: 'Crie modelos a partir do editor de presets',
      typeFilter: 'Tipo:',
      deleteTitle: 'Excluir Modelo',
      deleteWarning: 'Esta ação não pode ser desfeita',
      deleteConfirm: 'Tem certeza de que deseja excluir "{{name}}"?',
      namePlaceholder: 'Nome do modelo',
      descriptionPlaceholder: 'Descrição',
      settingsJson: 'Configurações (JSON)',
      fieldsCount: '{{count}} campos',
      shownInModals: 'Exibido em modais',
      hiddenInModals: 'Oculto em modais',
      apply: 'Aplicar',
      toast: {
        deleted: 'Modelo excluído',
        updated: 'Modelo atualizado',
        created: 'Modelo criado',
        applied: 'Modelo aplicado',
      },
    },
  },

  // Support/Debug
  support: {
    debugLoggingActive: 'Registro de depuração ativo',
    manageLogs: 'Gerenciar',
    collectItem7: 'Conectividade da impressora e versões de firmware',
    collectItem8: 'Status de integração (Spoolman, MQTT, HA)',
    collectItem9: 'Interfaces de rede (somente sub-redes)',
    collectItem10: 'Versões de pacotes Python',
    collectItem11: 'Verificações de integridade do banco de dados',
    collectItem12: 'Detalhes do ambiente Docker',
  },

  // File manager
  fileManager: {
    title: 'Gerenciador de Arquivos',
    subtitle: 'Organize e gerencie seus arquivos de impressão',
    uploadFiles: 'Enviar Arquivos',
    newFolder: 'Nova Pasta',
    folderName: 'Nome da Pasta',
    folderNamePlaceholder: 'ex.: Peças Funcionais',
    renameFile: 'Renomear Arquivo',
    renameFolder: 'Renomear Pasta',
    moveFiles: 'Mover {{count}} Arquivo(s)',
    rootNoFolder: 'Raiz (Sem Pasta)',
    current: 'Atual',
    linkFolder: 'Vincular Pasta',
    linkFolderDescription: 'Vincular "{{name}}" a um projeto ou arquivo para acesso rápido.',
    project: 'Projeto',
    archive: 'Arquivo',
    noProjectsFound: 'Nenhum projeto encontrado',
    noArchivesFound: 'Nenhum arquivo encontrado',
    unlink: 'Desvincular',
    link: 'Vincular',
    dragDropFiles: 'Arraste e solte os arquivos aqui',
    dropFilesHere: 'Solte os arquivos aqui',
    orClickToBrowse: 'ou clique para procurar',
    allFileTypesSupported: 'Todos os tipos de arquivos são suportados. Arquivos ZIP serão extraídos.',
    zipFilesDetected: 'Arquivos ZIP detectados',
    zipExtractOptions: 'Arquivos ZIP serão extraídos. Escolha como lidar com a estrutura de pastas:',
    preserveZipStructure: 'Preservar estrutura de pastas do ZIP',
    createFolderFromZip: 'Criar pasta a partir do nome do arquivo ZIP',
    stlThumbnailGeneration: 'Geração de miniaturas STL',
    zipMayContainStl: 'Arquivos ZIP podem conter arquivos STL. Miniaturas podem ser geradas durante a extração.',
    thumbnailsCanBeGenerated: 'Miniaturas podem ser geradas para arquivos STL. Modelos grandes podem levar mais tempo para processar.',
    generateThumbnailsForStl: 'Gerar miniaturas para arquivos STL',
    threemfDetected: 'Arquivos 3MF detectados',
    threemfExtractionInfo: 'Modelo da impressora, material, cor e configurações de impressão serão extraídos automaticamente dos arquivos 3MF.',
    willBeExtracted: 'Será extraído',
    filesExtracted: '{{count}} arquivos extraídos',
    uploadComplete: 'Upload concluído: {{succeeded}} bem-sucedidos',
    uploadFailed: '{{count}} falhou',
    uploading: 'Enviando...',
    changeLink: 'Alterar link...',
    linkTo: 'Vincular a...',
    linkToProjectOrArchive: 'Vincular a projeto ou arquivo',
    addToQueue: 'Adicionar à fila',
    schedulePrint: 'Agendar impressão',
    generateThumbnail: 'Gerar miniatura',
    generateThumbnails: 'Gerar miniaturas',
    generateThumbnailsForMissing: 'Gerar miniaturas para arquivos STL que não possuem',
    gridView: 'Visualização em grade',
    listView: 'Visualização em lista',
    lowDiskSpaceWarning: 'Aviso de pouco espaço em disco',
    lowDiskSpaceDetails: 'Apenas {{free}} livres de {{total}} no total. O limite está definido para {{threshold}} GB nas configurações.',
    files: 'Arquivos',
    folders: 'Pastas',
    size: 'Tamanho',
    free: 'Livre',
    allFiles: 'Todos os arquivos',
    wrap: 'Quebrar texto',
    enableTextWrapping: 'Ativar quebra de texto',
    disableTextWrapping: 'Desativar quebra de texto',
    dragToResizeTooltip: 'Arraste para redimensionar, clique duas vezes para redefinir',
    searchFiles: 'Pesquisar arquivos...',
    allTypes: 'Todos os tipos',
    prints: 'Impressões',
    ascending: 'Crescente',
    descending: 'Decrescente',
    resultsCount: '{{showing}} de {{total}} arquivos',
    selectAll: 'Selecionar tudo',
    deselectAll: 'Desmarcar tudo',
    selected: '{{count}} selecionado(s)',
    adding: 'Adicionando...',
    loadingFiles: 'Carregando arquivos...',
    folderIsEmpty: 'A pasta está vazia',
    noFilesYet: 'Nenhum arquivo ainda',
    folderEmptyDescription: 'Envie arquivos ou mova arquivos para esta pasta para começar.',
    noFilesDescription: 'Envie arquivos para começar a organizar seus arquivos relacionados à impressão.',
    noMatchingFiles: 'Nenhum arquivo correspondente',
    noMatchingFilesDescription: 'Nenhum arquivo corresponde aos seus critérios de pesquisa ou filtro.',
    clearFilters: 'Limpar filtros',
    printedCount: 'Impresso {{count}}x',
    uploadedBy: 'Enviado por',
    deleteFolder: 'Excluir pasta',
    deleteFile: 'Excluir arquivo',
    deleteFilesCount: 'Excluir {{count}} arquivos',
    deleteFolderConfirm: 'Tem certeza de que deseja excluir esta pasta? Todos os arquivos dentro também serão excluídos.',
    deleteFileConfirm: 'Tem certeza de que deseja excluir este arquivo?',
    deleteFilesConfirm: 'Tem certeza de que deseja excluir {{count}} arquivos selecionados? Esta ação não pode ser desfeita.',
    deleting: 'Excluindo...',
    noPermissionRenameFolder: 'Você não tem permissão para renomear pastas',
    noPermissionLinkFolder: 'Você não tem permissão para vincular pastas',
    noPermissionDeleteFolder: 'Você não tem permissão para excluir pastas',
    noPermissionPrint: 'Você não tem permissão para imprimir',
    noPermissionAddToQueue: 'Você não tem permissão para adicionar à fila',
    noPermissionDownload: 'Você não tem permissão para baixar arquivos',
    noPermissionRenameFile: 'Você não tem permissão para renomear este arquivo',
    noPermissionGenerateThumbnail: 'Você não tem permissão para gerar miniaturas',
    noPermissionDeleteFile: 'Você não tem permissão para excluir este arquivo',
    noPermissionCreateFolder: 'Você não tem permissão para criar pastas',
    noPermissionUpload: 'Você não tem permissão para enviar arquivos',
    noPermissionMoveFiles: 'Você não tem permissão para mover arquivos',
    noPermissionDeleteFiles: 'Você não tem permissão para excluir arquivos',
    toast: {
      folderCreated: 'Pasta criada',
      folderDeleted: 'Pasta excluída',
      fileDeleted: 'Arquivo excluído',
      filesDeleted: 'Excluídos {{count}} arquivos',
      filesMoved: 'Arquivos movidos',
      folderLinked: 'Pasta vinculada',
      folderUnlinked: 'Pasta desvinculada',
      addedToQueue: 'Adicionado {{count}} arquivo(s) à fila',
      addedToQueuePartial: 'Adicionado {{added}} arquivo(s), {{failed}} falharam',
      failedToAddToQueue: 'Falha ao adicionar arquivos: {{error}}',
      fileRenamed: 'Arquivo renomeado',
      folderRenamed: 'Pasta renomeada',
      thumbnailsGenerated: 'Geradas {{count}} miniatura(s)',
      thumbnailsGeneratedPartial: 'Geradas {{succeeded}} miniatura(s), {{failed}} falharam',
      noStlMissingThumbnails: 'Nenhum arquivo STL sem miniatura',
      failedToGenerateThumbnails: 'Falha ao gerar miniaturas: {{error}}',
      thumbnailGenerated: 'Miniatura gerada',
      failedToGenerateThumbnail: 'Falha ao gerar miniatura: {{error}}',
    },
  },

  // Projects
  projects: {
    title: 'Projetos',
    subtitle: 'Organize e acompanhe seus projetos de impressão 3D',
    newProject: 'Novo Projeto',
    editProject: 'Editar Projeto',
    deleteProject: 'Excluir Projeto',
    projectName: 'Nome do Projeto',
    description: 'Descrição',
    noProjects: 'Nenhum projeto ainda',
    noProjectsFiltered: 'Nenhum projeto {{status}}',
    noProjectsFilteredHelp: "Você não tem nenhum projeto {{status}}. Os projetos aparecerão aqui quando seu status mudar.",
    createFirst: 'Crie seu primeiro projeto para começar a organizar impressões relacionadas, acompanhar o progresso e gerenciar suas construções.',
    createFirstButton: 'Crie Seu Primeiro Projeto',
    create: 'Criar',
    files: 'Arquivos',
    prints: 'Impressões',
    plates: 'Placas',
    parts: 'Peças',
    lastModified: 'Última Modificação',
    deleteConfirm: 'Tem certeza de que deseja excluir este projeto? Arquivos e itens da fila serão desvinculados, mas não excluídos.',
    addFiles: 'Adicionar Arquivos',
    removeFile: 'Remover Arquivo',
    viewDetails: 'Ver Detalhes',
    // Modal fields
    namePlaceholder: 'ex., Voron 2.4 Build',
    descriptionPlaceholder: 'Descrição opcional...',
    color: 'Cor',
    targetPlates: 'Placas Alvo',
    targetPlatesPlaceholder: 'ex., 25',
    targetPlatesHelp: 'Número de trabalhos de impressão',
    targetParts: 'Peças Alvo',
    targetPartsPlaceholder: 'ex., 150',
    targetPartsHelp: 'Total de objetos necessários',
    tagsLabel: 'Tags (separadas por vírgula)',
    tagsPlaceholder: 'ex., voron, funcional, presente',
    dueDate: 'Data de Vencimento',
    priority: 'Prioridade',
    priorityLow: 'Baixa',
    priorityNormal: 'Normal',
    priorityHigh: 'Alta',
    priorityUrgent: 'Urgente',
    // Status
    statusActive: 'Ativo',
    statusCompleted: 'Concluído',
    statusArchived: 'Arquivado',
    done: 'Concluído',
    completed: 'Concluído',
    failed: 'Falhou',
    inQueue: 'Na fila',
    noPrintsYet: 'Nenhuma impressão ainda',
    // Footer stats
    printJobs: 'Trabalhos de impressão (placas)',
    partsPrinted: 'Peças impressas',
    failedParts: 'Peças falhadas',
    // Actions
    import: 'Importar',
    export: 'Exportar',
    importProject: 'Importar projeto',
    exportAll: 'Exportar todos os projetos',
    loading: 'Carregando projetos...',
    // Permissions
    noEditPermission: 'Você não tem permissão para editar projetos',
    noDeletePermission: 'Você não tem permissão para excluir projetos',
    noCreatePermission: 'Você não tem permissão para criar projetos',
    noImportPermission: 'Você não tem permissão para importar projetos',
    noExportPermission: 'Você não tem permissão para exportar projetos',
    // Toast
    toast: {
      created: 'Projeto criado',
      updated: 'Projeto atualizado',
      deleted: 'Projeto excluído',
      imported: 'Projeto importado',
      multipleImported: '{{count}} projetos importados',
      importFailed: 'Falha na importação',
      exported: 'Projetos exportados (apenas metadados)',
    },
  },

  // Project detail page
  projectDetail: {
    notFound: 'Projeto não encontrado',
    backToProjects: 'Voltar para Projetos',
    export: 'Exportar',
    exportProject: 'Exportar projeto',
    noExportPermission: 'Você não tem permissão para exportar projetos',
    noEditPermission: 'Você não tem permissão para editar projetos',
    partOf: 'Parte de:',
    priorityLabel: 'Prioridade:',
    noPrints: 'Nenhuma impressão neste projeto ainda',
    status: {
      active: 'Ativo',
      completed: 'Concluído',
      archived: 'Arquivado',
    },
    priority: {
      low: 'Baixa',
      normal: 'Normal',
      high: 'Alta',
      urgent: 'Urgente',
    },
    dueDate: {
      overdue: 'Atrasado',
      today: 'Vence hoje',
      daysLeft: '{{count}} dias restantes',
    },
    progress: {
      platesProgress: 'Progresso das Placas',
      partsProgress: 'Progresso das Peças',
      printJobs: 'Trabalhos de Impressão',
      parts: 'Peças',
      percentComplete: '{{percent}}% concluído',
      remaining: '{{count}} restantes',
    },
    stats: {
      printJobs: 'Trabalhos de Impressão',
      total: 'total',
      failed: '{{count}} falhou',
      partsPrinted: '{{count}} peças impressas',
      printTime: 'Tempo de Impressão',
      filamentUsed: 'Filamento Usado',
    },
    cost: {
      title: 'Rastreamento de Custos',
      filamentCost: 'Custo do Filamento',
      energy: 'Energia',
      budget: 'Orçamento',
      remaining: 'Restante',
    },
    subProjects: {
      title: 'Sub-projetos ({{count}})',
    },
    notes: {
      title: 'Notas',
      noEditPermission: 'Você não tem permissão para editar notas',
      placeholder: 'Adicione notas sobre este projeto...',
      empty: 'Nenhuma nota ainda. Clique em Editar para adicionar notas.',
    },
    files: {
      title: 'Arquivos',
      linkFolders: 'Vincular pastas do Gerenciador de Arquivos',
      forQuickAccess: 'a este projeto para acesso rápido.',
      fileCount: '{{count}} arquivo(s)',
      empty: 'Nenhuma pasta vinculada. Vá para o Gerenciador de Arquivos e vincule uma pasta a este projeto.',
    },
    bom: {
      title: 'Lista de Materiais',
      acquired: '{{completed}}/{{total}} adquiridos',
      showAll: 'Mostrar todos',
      hideDone: 'Ocultar concluídos',
      addPart: 'Adicionar Peça',
      noAddPermission: 'Você não tem permissão para adicionar peças',
      partNamePlaceholder: 'Nome da peça (ex.: parafusos M3x8)',
      partName: 'Nome da peça',
      qty: 'Quantidade',
      price: 'Preço ({{currency}})',
      sourcingUrlPlaceholder: 'URL de fornecimento (opcional)',
      remarksPlaceholder: 'Observações (opcional)',
      deletePart: 'Excluir Peça',
      deleteConfirm: 'Tem certeza de que deseja excluir "{{name}}"?',
      noUpdatePermission: 'Você não tem permissão para atualizar peças',
      noEditPermission: 'Você não tem permissão para editar peças',
      noDeletePermission: 'Você não tem permissão para excluir peças',
      totalCost: 'Custo total:',
      empty: 'Nenhuma peça na lista de materiais. Adicione hardware, eletrônicos ou outros componentes para rastrear o que precisa ser adquirido.',
    },
    timeline: {
      title: 'Linha do Tempo de Atividades',
      empty: 'Nenhuma atividade ainda.',
    },
    template: {
      saveAsTemplate: 'Salvar como Modelo',
      noCreatePermission: 'Você não tem permissão para criar modelos',
    },
    queue: {
      title: 'Fila',
      viewAll: 'Ver todos',
      printing: '{{count}} imprimindo',
      queued: '{{count}} na fila',
    },
    prints: {
      title: 'Impressões ({{count}})',
    },
    toast: {
      projectUpdated: 'Projeto atualizado',
      partAdded: 'Peça adicionada',
      partRemoved: 'Peça removida',
      exportFailed: 'Falha na exportação',
      projectExported: 'Projeto exportado',
      templateCreated: 'Modelo criado',
    },
  },

  // System info
  system: {
    title: 'Informações do Sistema',
    version: 'Versão',
    uptime: 'Tempo de Atividade',
    cpuUsage: 'Uso da CPU',
    memoryUsage: 'Uso da Memória',
    diskUsage: 'Uso do Disco',
    networkInfo: 'Informações de Rede',
    logs: 'Logs',
    debugMode: 'Modo de Depuração',
    enableDebug: 'Ativar Registro de Depuração',
    disableDebug: 'Desativar Registro de Depuração',
    downloadLogs: 'Baixar Logs',
    clearLogs: 'Limpar Logs',
    dockerInfo: 'Informações do Docker',
    containerName: 'Nome do Contêiner',
    imageName: 'Nome da Imagem',
    platform: 'Plataforma',
    architecture: 'Arquitetura',
  },

  // Library (K Profiles)
  library: {
    title: 'Biblioteca de Filamentos',
    addFilament: 'Adicionar Filamento',
    editFilament: 'Editar Filamento',
    deleteFilament: 'Excluir Filamento',
    vendor: 'Fornecedor',
    material: 'Material',
    color: 'Cor',
    kFactor: 'Fator K',
    temperature: 'Temperatura',
    noFilaments: 'Nenhum filamento na biblioteca',
    deleteConfirm: 'Tem certeza de que deseja excluir este filamento?',
    importFromPrinter: 'Importar da Impressora',
    exportToFile: 'Exportar para Arquivo',
  },

  // Spoolman
  spoolman: {
    title: 'Integração com Spoolman',
    enabled: 'Spoolman Ativado',
    url: 'URL do Spoolman',
    connected: 'Conectado',
    disconnected: 'Não Conectado',
    testConnection: 'Testar Conexão',
    sync: 'Sincronizar',
    syncing: 'Sincronizando...',
    lastSync: 'Última Sincronização',
    linkToSpoolman: 'Vincular ao Spoolman',
    openInSpoolman: 'Abrir no Spoolman',
    unlinkSpool: 'Desvincular Carretel',
    selectSpool: 'Selecionar Carretel',
    noUnlinkedSpools: 'Nenhum carretel desvinculado disponível',
    linkSuccess: 'Carretel vinculado ao Spoolman com sucesso',
    linkFailed: 'Falha ao vincular carretel',
    spoolId: 'Carretel ID (Spool ID)',
    fillSourceLabel: '(Spoolman)',
    weight: 'Peso',
    remaining: 'Restante',
    disableWeightSync: 'Desativar Sincronização de Peso Estimado do AMS',
    disableWeightSyncDesc: "Não atualize a capacidade restante a partir das estimativas do AMS. Use isso se preferir o rastreamento de uso do Spoolman em vez das estimativas baseadas em porcentagem do AMS. Novos carretéis ainda usarão a estimativa do AMS como seu peso inicial.",
    reportPartialUsage: 'Relatar Uso Parcial para Impressões Falhadas',
    reportPartialUsageDesc: 'Quando uma impressão falha ou é cancelada, relate o filamento estimado usado até aquele ponto com base no progresso das camadas.',
  },

  // Inventory
  inventory: {
    title: 'Inventário de Carretéis',
    addSpool: 'Adicionar Carretel',
    editSpool: 'Editar Carretel',
    material: 'Material',
    selectMaterial: 'Selecionar material...',
    subtype: 'Subtipo',
    brand: 'Marca',
    searchBrand: 'Pesquisar marca...',
    useCustomBrand: 'Usar "{{brand}}"',
    useCustomMaterial: 'Usar material personalizado: {{material}}',
    colorName: 'Nome da Cor',
    colorNamePlaceholder: 'Jade White, Fire Red...',
    color: 'Cor',
    hexColor: 'Cor Hexadecimal',
    pickColor: 'Escolher cor personalizada',
    labelWeight: 'Peso da Etiqueta',
    coreWeight: 'Peso do Carretel Vazio',
    searchSpoolWeight: 'Pesquisar peso do carretel...',
    weightUsed: 'Usado',
    currentWeight: 'Peso Restante',
    measuredWeight: 'Peso Medido',
    costPerKg: 'Custo por kg',
    measuredWeightError: 'O peso medido deve estar entre {{min}}g e {{max}}g.',
    slicerFilament: 'Filamento do Fatiador',
    slicerFilamentName: 'Nome do Predefinido do Fatiador',
    slicerPreset: 'Predefinido do Fatiador',
    searchPresets: 'Pesquisar predefinições de filamento...',
    selectedPreset: 'Selecionado',
    noPresetsFound: 'Nenhuma predefinição encontrada',
    tempOverrides: 'Substituições de Temperatura',
    note: 'Nota',
    notePlaceholder: 'Quaisquer notas adicionais sobre este spool...',
    archive: 'Arquivar',
    restore: 'Restaurar',
    noSpools: 'Nenhum carretel ainda. Adicione seu primeiro carretel para começar.',
    noManualSpools: 'Nenhum carretel adicionado manualmente disponível. Adicione um carretel ao seu inventário primeiro.',
    kProfiles: 'K-Perfis',
    addKProfile: 'Adicionar K-Perfil',
    assignSpool: 'Atribuir Carretel',
    unassignSpool: 'Desatribuir',
    assignSuccess: 'Carretel atribuído e slot AMS configurado',
    assignFailed: 'Falha ao atribuir carretel',
    selectSpool: 'Selecione um carretel para atribuir a este slot',
    assigned: 'Atribuído',
    assigning: 'Atribuindo...',
    searchSpools: 'Pesquisar carretéis...',
    allMaterials: 'Todos os Materiais',
    filterByBrand: 'Filtrar por marca...',
    showArchived: 'Mostrar arquivados',
    quickAdd: 'Adição rápida (Estoque)',
    quantity: 'Quantidade',
    stock: 'Estoque',
    configured: 'Configurado',
    spoolsCreated: '{{count}} carretéis criados',
    spoolCreated: 'Carretel criado',
    spoolUpdated: 'Carretel atualizado',
    spoolDeleted: 'Carretel excluído',
    spoolArchived: 'Carretel arquivado',
    spoolRestored: 'Carretel restaurado',
    deleteConfirm: 'Tem certeza de que deseja excluir este carretel? Esta ação não pode ser desfeita.',
    archiveConfirm: 'Tem certeza de que deseja arquivar este carretel?',
    advancedSettings: 'Configurações Avançadas',
    // Tabs
    filamentInfoTab: 'Informações do Filamento',
    paProfileTab: 'Perfil PA',
    filamentInfo: 'Filamento',
    additional: 'Adicional',
    // Cloud
    loadingPresets: 'Carregando predefinições da nuvem...',
    cloudConnected: 'Nuvem conectada',
    cloudNotConnected: 'Nuvem não conectada (usando padrões)',
    // Colors
    recentColors: 'Recentes',
    searchColors: 'Pesquisar cores...',
    searchResults: 'Resultados da pesquisa',
    allColors: 'Todas as cores',
    commonColors: 'Cores comuns',
    showLess: 'Mostrar menos',
    showAll: 'Mostrar tudo',
    noColorsFound: 'Nenhuma cor corresponde à sua pesquisa',
    noResults: 'Nenhum resultado encontrado',
    // PA Profiles
    selectMaterialFirst: 'Por favor, selecione um material primeiro na aba Informações do Filamento.',
    noPrintersConfigured: 'Nenhuma impressora configurada. Adicione impressoras para usar perfis PA.',
    matchingFilter: 'Correspondente',
    anyBrand: 'Qualquer marca',
    anyVariant: 'Qualquer variante',
    autoSelect: 'Seleção automática',
    matches: 'correspondências',
    match: 'correspondência',
    noMatches: 'Nenhuma correspondência',
    connected: 'Conectado',
    offline: 'Offline',
    printerOffline: 'A impressora está offline. Conecte-se para visualizar os perfis de calibração.',
    noKProfilesMatch: 'Nenhum K-perfil corresponde ao filamento selecionado.',
    leftNozzle: 'Bico Esquerdo',
    rightNozzle: 'Bico Direito',
    profilesSelected: 'perfil(is) de calibração selecionado(s)',
    // Stats & enhanced table
    totalInventory: 'Inventário Total',
    totalConsumed: 'Total Consumido',
    byMaterial: 'Por Material',
    inPrinter: 'Na Impressora',
    lowStock: 'Estoque Baixo',
    sinceTracking: 'Desde o início do rastreamento',
    loadedInAms: 'Carregado no AMS/Ext',
    remaining: 'Restante',
    lowStockThreshold: '<20% restante',
    weightCheck: 'Verificação de Peso',
    lastWeighed: 'Última pesagem',
    neverWeighed: 'Nunca pesado',
    search: 'Pesquisar carretéis...',
    showing: 'Mostrando',
    to: 'até',
    of: 'de',
    show: 'Mostrar',
    spools: 'carretéis',
    spool: 'carretel',
    page: 'Página',
    noSpoolsMatch: 'Nenhum resultado encontrado',
    noSpoolsMatchDesc: 'Tente ajustar sua pesquisa ou filtros para encontrar o que você está procurando.',
    active: 'Ativo',
    archived: 'Arquivado',
    all: 'Todos',
    used: 'Usado',
    new: 'Novo',
    clearFilters: 'Limpar filtros',
    table: 'Tabela',
    cards: 'Cartões',
    net: 'Líquido',
    // Column config
    columns: 'Colunas',
    configureColumns: 'Configurar Colunas',
    configureColumnsDesc: 'Arraste para reordenar as colunas ou use as setas. Alterne a visibilidade com o ícone de olho.',
    visible: 'Visível',
    reset: 'Redefinir',
    cancel: 'Cancelar',
    applyChanges: 'Aplicar Alterações',
    moveUp: 'Mover para cima',
    moveDown: 'Mover para baixo',
    hideColumn: 'Ocultar coluna',
    showColumn: 'Mostrar coluna',
    // Tag linking
    linkToSpool: 'Vincular ao Carretel',
    tagLinked: 'Tag vinculada ao carretel',
    tagLinkFailed: 'Falha ao vincular tag',
    tagAlreadyLinked: 'Tag já vinculada a outro carretel',
    unknownTag: 'Tag RFID desconhecida detectada',
    // Usage history
    usageHistory: 'Histórico de Uso',
    noUsageHistory: 'Nenhum uso registrado ainda',
    printName: 'Nome da Impressão',
    weightConsumed: 'Peso Consumido',
    clearHistory: 'Limpar',
    historyCleared: 'Histórico de uso limpo',
    fillSourceLabel: '(Inv)',
  },

  // Timelapse
  timelapse: {
    title: 'Timelapse',
    create: 'Criar Timelapse',
    download: 'Baixar',
    delete: 'Excluir',
    preview: 'Visualizar',
    frameRate: 'Taxa de Quadros',
    quality: 'Qualidade',
    processing: 'Processando...',
    noTimelapses: 'Nenhum timelapse disponível',
  },

  // AMS
  ams: {
    title: 'AMS',
    slot: 'Slot',
    empty: 'Vazio',
    emptySlot: 'Slot vazio',
    unknown: 'Desconhecido',
    humidity: 'Umidade',
    temperature: 'Temperatura',
    filamentType: 'Tipo de Filamento',
    filamentColor: 'Cor',
    remaining: 'Restante',
    history: 'Histórico do AMS',
    noHistory: 'Nenhum histórico disponível',
    configureSlot: 'Configurar Slot',
    externalSpool: 'Carretel Externo',
    profile: 'Perfil',
    kFactor: 'Fator K',
    fill: 'Preencher',
    configure: 'Configurar',
  },

  // Print modal
  printModal: {
    title: 'Iniciar Impressão',
    selectPrinter: 'Selecionar Impressora',
    selectPlate: 'Selecionar Placa',
    filamentMapping: 'Mapeamento de Filamento',
    totalCost: 'Custo total:',
    slotRemainingShort: ' - {{grams}}g rest.',
    printSettings: 'Configurações de Impressão',
    bedLeveling: 'Nivelamento da Mesa',
    flowCalibration: 'Calibração de Fluxo',
    vibrationCalibration: 'Calibração de Vibração',
    layerInspection: 'Inspeção da Primeira Camada',
    timelapse: 'Timelapse',
    startPrint: 'Iniciar Impressão',
    addToQueue: 'Adicionar à Fila',
    cancel: 'Cancelar',
    noPrintersAvailable: 'Nenhuma impressora disponível',
    printerBusy: 'Impressora ocupada',
    printerOffline: 'Impressora offline',
    sameTypeDifferentColor: 'Mesmo tipo, cor diferente',
    filamentTypeNotLoaded: 'Tipo de filamento não carregado',
    openCalendar: 'Abrir calendário',
    leftNozzle: 'L',
    rightNozzle: 'R',
    leftNozzleTooltip: 'Bico esquerdo',
    rightNozzleTooltip: 'Bico direito',
    filamentOverride: 'Substituição de Filamento',
    filamentOverrideHint: 'Substitua opcionalmente os filamentos para atribuição baseada em modelo. O agendador usará os filamentos selecionados em vez dos valores originais do 3MF.',
    originalFilament: 'Original',
    overrideWith: 'Substituir por',
    resetToOriginal: 'Restaurar original',
  },

  // Backup
  backup: {
    title: 'Bakup e Restauração',
    createBackup: 'Criar Backup',
    restoreBackup: 'Restaurar Backup',
    restoreDescription: 'Substituir todos os dados a partir de um arquivo de backup',
    downloadBackup: 'Baixar Backup',
    uploadBackup: 'Enviar Backup',
    lastBackup: 'Último Backup',
    autoBackup: 'Auto Backup',
    backupNow: 'Fazer Backup Agora',
    restoreWarning: 'Aviso: Restaurar um backup substituirá todos os dados atuais.',
    includeArchives: 'Incluir Arquivos',
    includeSettings: 'Incluir Configurações',
    includeProfiles: 'Incluir Perfis',
    backupSuccess: 'Backup criado com sucesso',
    restoreSuccess: 'Backup restaurado com sucesso',
    backupFailed: 'Falha ao criar backup',
    restoreFailed: 'Falha ao restaurar backup',
    restoreNote: 'A impressora virtual será parada durante a restauração',
  },

  // Tags
  tags: {
    title: 'Tags',
    addTag: 'Adicionar Tag',
    editTag: 'Editar Tag',
    deleteTag: 'Excluir Tag',
    tagName: 'Nome da Tag',
    tagColor: 'Cor da Tag',
    noTags: 'Nenhuma tag',
    deleteConfirm: 'Tem certeza de que deseja excluir esta tag?',
    manageTags: 'Gerenciar Tags',
  },

  // Upload modal (archives)
  uploadModal: {
    title: 'Upload Arquivos 3MF',
    dragDrop: 'Arraste e solte arquivos .3mf aqui',
    or: 'ou',
    browseFiles: 'Procurar Arquivos',
    extractionInfo: 'O modelo da impressora será extraído automaticamente dos metadados do arquivo 3MF.',
    uploaded: 'enviado',
    failed: 'falhou',
    uploading: 'Enviando...',
    upload: 'Enviar',
    uploadFailed: 'Falha no envio',
  },

  // Edit archive modal
  // Edit Archive Modal
  editArchive: {
    title: 'Editar Arquivo',
    name: 'Nome',
    namePlaceholder: 'Nome da impressão',
    printer: 'Impressora',
    noPrinter: 'Nenhuma impressora',
    project: 'Projeto',
    noProject: 'Nenhum projeto',
    itemsPrinted: 'Itens Impressos',
    itemsPrintedHelp: 'Número de itens produzidos neste trabalho de impressão',
    notes: 'Notas',
    notesPlaceholder: 'Adicione notas sobre esta impressão...',
    externalLink: 'Link Externo',
    externalLinkPlaceholder: 'https://printables.com/model/...',
    externalLinkHelp: 'Link para Printables, Thingiverse ou outra fonte',
    tags: 'Tags',
    tagsPlaceholder: 'Adicionar tags...',
    addMoreTags: 'Adicionar mais tags...',
    matchingTags: 'Correspondendo "{{query}}"',
    existingTags: 'Tags existentes',
    clickToAdd: '(clique para adicionar)',
    status: 'Status',
    failureReason: 'Motivo da Falha',
    selectReason: 'Selecione o motivo...',
    photos: 'Fotos do Resultado da Impressão',
    photosHelp: 'Clique em + para adicionar fotos do seu resultado impresso',
    printResult: 'Resultado da Impressão',
    saving: 'Salvando...',
    // Failure reasons
    failureReasons: {
      adhesionFailure: 'Falha de adesão',
      spaghettiDetached: 'Spaghetti / Destacado',
      layerShift: 'Deslocamento de camada',
      cloggedNozzle: 'Bico entupido',
      filamentRunout: 'Fim do filamento',
      warping: 'Warping',
      stringing: 'Stringing',
      underExtrusion: 'Under-extrusion',
      powerFailure: 'Falha de energia',
      userCancelled: 'Cancelado pelo usuário',
      other: 'Outro',
    },
    // Archive statuses
    statuses: {
      completed: 'Concluído',
      failed: 'Falhou',
      aborted: 'Cancelado',
      printing: 'Imprimindo',
    },
  },

  // K-Profiles
  kProfiles: {
    title: 'K-Profiles',
    noPrintersConfigured: 'Nenhuma impressora configurada',
    addPrinterInSettings: 'Adicione uma impressora nas Configurações para gerenciar K-profiles',
    noActivePrinters: 'Nenhuma impressora ativa',
    enablePrinterConnection: 'Ative a conexão da impressora para visualizar seus K-profiles',
    loadingProfiles: 'Carregando K-Profiles...',
    printerOffline: 'Impressora Offline',
    printerOfflineDesc: 'A impressora selecionada não está conectada. Ligue-a para visualizar os K-profiles.',
    noMatchingProfiles: 'Nenhum Perfil Correspondente',
    noMatchingProfilesDesc: 'Nenhum perfil corresponde aos seus critérios de pesquisa',
    noKProfiles: 'Nenhum K-Profile',
    noKProfilesDesc: 'Nenhum perfil de avanço de pressão encontrado para bico de {{diameter}}mm',
    createFirstProfile: 'Criar Primeiro Perfil',
    // Controls
    printer: 'Impressora',
    nozzle: 'Bico',
    refresh: 'Atualizar',
    addProfile: 'Adicionar Perfil',
    export: 'Exportar',
    import: 'Importar',
    select: 'Selecionar',
    selectAll: 'Selecionar Todos',
    delete: 'Excluir',
    // Filters
    searchPlaceholder: 'Pesquisar por nome ou filamento...',
    allExtruders: 'Todos os Extrusores',
    leftOnly: 'Apenas Esquerdo',
    rightOnly: 'Apenas Direito',
    allFlow: 'Todo Fluxo',
    hfOnly: 'Apenas HF',
    sOnly: 'Apenas S',
    sortName: 'Ordenar: Nome',
    sortKValue: 'Ordenar: Valor K',
    sortFilament: 'Ordenar: Filamento',
    // Dual extruder labels
    leftExtruder: 'Extrusor Esquerdo',
    rightExtruder: 'Extrusor Direito',
    // Modal
    modal: {
      addTitle: 'Adicionar K-Profile',
      editTitle: 'Editar K-Profile',
      profileName: 'Nome do Perfil',
      profileNamePlaceholder: 'Meu Perfil PLA',
      kValue: 'Valor K',
      kValuePlaceholder: '0.020',
      kValueHelp: 'Faixa típica: 0.01 - 0.06 para PLA, 0.02 - 0.10 para PETG',
      filament: 'Filamento',
      selectFilament: 'Selecionar filamento...',
      noFilamentsHelp: 'Nenhum filamento encontrado. Crie um K-profile no Bambu Studio primeiro.',
      flowType: 'Tipo de Fluxo',
      highFlow: 'Alto Fluxo',
      standard: 'Padrão',
      nozzleSize: 'Tamanho do Bico',
      extruder: 'Extrusor',
      extruders: 'Extrusores',
      left: 'Esquerdo',
      right: 'Direito',
      notes: 'Notas (armazenadas localmente)',
      notesPlaceholder: 'Adicione notas sobre este perfil...',
      notesHelp: 'As notas são salvas no Bambuddy, não na impressora',
      syncing: 'Sincronizando com a impressora...',
      savingExtruder: 'Salvando no extrusor {{current}}/{{total}}...',
      pleaseWait: 'Por favor, aguarde',
    },
    // Delete confirmation
    deleteConfirm: {
      title: 'Excluir Perfil',
      cannotUndo: 'Isso não pode ser desfeito',
      message: 'Tem certeza de que deseja excluir "{{name}}" da impressora?',
    },
    // Bulk delete
    bulkDelete: {
      title: 'Excluir Perfis',
      cannotUndo: 'Isso não pode ser desfeito',
      message: 'Tem certeza de que deseja excluir {{count}} perfis selecionados da impressora?',
    },
    // Toast
    toast: {
      profileSaved: 'K-profile salvo',
      profilesSaved: 'K-profile salvo em {{count}} extrusores',
      selectAtLeastOneExtruder: 'Por favor, selecione pelo menos um extrusor',
      profileDeleted: 'K-profile excluído',
      profilesDeleted: '{{count}} perfis excluídos',
      exportedProfiles: '{{count}} perfis exportados',
      importedProfiles: '{{count}} de {{total}} perfis importados',
      noProfilesToExport: 'Nenhum perfil para exportar',
      invalidFileFormat: 'Formato de arquivo inválido',
      failedToParseImport: 'Falha ao analisar o arquivo de importação',
      failedToSaveBatch: 'Falha ao salvar K-profiles',
      noteSaved: 'Nota salva',
      failedToSaveNote: 'Falha ao salvar nota',
    },
    // Permissions
    permission: {
      noRead: 'Você não tem permissão para atualizar perfis',
      noCreate: 'Você não tem permissão para adicionar perfis',
      noUpdate: 'Você não tem permissão para atualizar K-profiles',
      noDelete: 'Você não tem permissão para excluir K-profiles',
      noExport: 'Você não tem permissão para exportar perfis',
      noImport: 'Você não tem permissão para importar perfis',
    },
  },

  // Virtual Printer
  virtualPrinter: {
    title: 'Impressora Virtual',
    running: 'Em execução',
    stopped: 'Parada',
    description: {
      default: 'Ative uma impressora virtual que aparece no Bambu Studio e no OrcaSlicer. Os arquivos enviados para esta impressora serão arquivados diretamente sem impressão.',
      proxy: 'Ative um proxy que retransmite o tráfego do slicer para uma impressora real, permitindo impressão remota em qualquer rede.',
    },
    enable: {
      title: 'Ativar Impressora Virtual',
      visibleInSlicer: 'Visível como "Bambuddy" na descoberta do slicer',
      proxyingTo: 'Proxy para {{name}}',
      notActive: 'Não ativo',
    },
    model: {
      title: 'Modelo da Impressora',
      description: 'Selecione qual modelo de impressora emular.',
      restartWarning: 'Alterar o modelo reiniciará a impressora virtual',
    },
    accessCode: {
      title: 'Código de acesso',
      isSet: 'O código de acesso está definido',
      notSet: 'Nenhum código de acesso definido — necessário para ativar.',
      placeholder: 'Digite um código de 8 caracteres',
      placeholderChange: 'Digite um novo código para alterar',
      hint: 'Deve ter exatamente 8 caracteres. Usado pelos slicers para autenticação.',
      charCount: '({{count}}/8)',
    },
    targetPrinter: {
      title: 'Impressora Alvo',
      configured: 'Proxy alvo configurado',
      notConfigured: 'Nenhuma impressora alvo selecionada - necessário para o modo proxy',
      placeholder: 'Selecione uma impressora...',
      hint: 'Selecione a impressora para a qual o tráfego do slicer será enviado. A impressora deve estar no modo LAN.',
      noPrinters: 'Nenhuma impressora configurada. Adicione uma impressora primeiro para usar o modo proxy.',
    },
    remoteInterface: {
      title: 'Substituição da Interface de Rede',
      configured: 'Substituição da interface ativa',
      optional: 'Opcional - use se o IP detectado automaticamente estiver errado (por exemplo, várias NICs, Docker, VPN)',
      placeholder: 'Detecção automática (padrão)...',
      hint: 'Substitua o endereço IP anunciado via SSDP e usado no certificado TLS. Útil quando o Bambuddy possui várias interfaces de rede.',
    },
    mode: {
      title: 'Modo',
      archive: 'Arquivar',
      archiveDesc: 'Arquivar arquivos imediatamente',
      review: 'Revisar',
      reviewDesc: 'Revisar antes de arquivar',
      queue: 'Fila',
      queueDesc: 'Arquivar e adicionar à fila',
      proxy: 'Proxy',
      proxyDesc: 'Retransmitir para impressora real',
    },
    setupRequired: {
      title: 'Configuração Necessária',
      description: 'O recurso de impressora virtual requer configuração adicional do sistema antes de funcionar. Isso inclui encaminhamento de portas, regras de firewall e configurações específicas da plataforma.',
      readGuide: 'Leia o guia de configuração antes de ativar',
    },
    howItWorks: {
      title: 'Como funciona',
      titleProxy: 'Como funciona (Modo Proxy)',
      step1: 'Complete o guia de configuração para sua plataforma',
      step2: 'Ative a impressora virtual e defina um código de acesso',
      step3: 'No Bambu Studio ou OrcaSlicer, vá para "Adicionar Impressora"',
      step4: 'A impressora "Bambuddy" deve aparecer na lista de descoberta',
      step5: 'Conecte-se usando o código de acesso que você definiu',
      step6: 'Quando você "imprimir" para o Bambuddy, o arquivo 3MF será arquivado em vez disso',
      proxyStep1: 'Selecione a impressora alvo (deve estar no modo LAN)',
      proxyStep2: 'Para rede cruzada: selecione a interface de rede do slicer',
      proxyStep3: 'Ative o proxy - a impressora aparece na descoberta do slicer via SSDP',
      proxyStep4: 'Conecte-se usando o código de acesso da impressora',
      proxyStep5: 'Imprima normalmente - o tráfego é retransmitido pelo Bambuddy',
      proxyStep6: 'O streaming da câmera requer NAT/encaminhamento de IP (veja a documentação)',
    },
    status: {
      title: 'Detalhes do Status',
      printerName: 'Nome da Impressora',
      model: 'Modelo',
      serialNumber: 'Número de Série',
      mode: 'Modo',
      pendingFiles: 'Arquivos Pendentes',
      targetPrinter: 'Impressora Alvo',
      ftpPort: 'Porta FTP',
      mqttPort: 'Porta MQTT',
      ftpConnections: 'Conexões FTP',
      mqttConnections: 'Conexões MQTT',
    },
    toast: {
      updated: 'Configurações da impressora virtual atualizadas',
      failedToUpdate: 'Falha ao atualizar as configurações',
      accessCodeRequired: 'Defina um código de acesso primeiro',
      targetPrinterRequired: 'Selecione uma impressora alvo primeiro',
      accessCodeEmpty: 'O código de acesso não pode estar vazio',
      accessCodeLength: 'O código de acesso deve ter exatamente 8 caracteres',
    },
  },

  // Model Viewer
  modelViewer: {
    openInSlicer: 'Abrir no Slicer',
    tabs: {
      model: 'Modelo 3D',
      gcode: 'Pré-visualização G-code',
    },
    notAvailable: 'Não disponível',
    notSliced: 'Não fatiado',
    plates: 'Placas',
    allPlates: 'Todas as Placas',
    plateNumber: 'Placa {{number}}',
    plateCount: '{{count}} placa',
    plateCount_other: '{{count}} placas',
    objectCount: '{{count}} objeto',
    objectCount_other: '{{count}} objetos',
    filamentCount: '{{count}} filamento',
    filamentCount_other: '{{count}} filamentos',
    eta: 'ETA {{minutes}} min',
    noPreview: 'Pré-visualização não disponível para este arquivo',
    pagination: {
      pageOf: 'Página {{current}} de {{total}}',
      prev: 'Anterior',
      next: 'Próximo',
    },
    errors: {
      failedToLoad: 'Falha ao carregar o arquivo',
      noMeshes: 'Nenhuma malha encontrada no arquivo 3MF',
      unsupportedFormat: 'Formato de arquivo não suportado',
    },
  },

  // Maintenance type descriptions (built-in)
  maintenanceDescriptions: {
    lubricateCarbonRods: 'Aplique lubrificante nos eixos de carbono para um movimento suave',
    lubricateRails: 'Aplique lubrificante nos trilhos lineares para um movimento suave',
    cleanNozzle: 'Limpe o hotend e o bico para evitar entupimentos',
    checkBelts: 'Verifique a tensão das correias para impressões precisas',
    cleanBuildPlate: 'Limpe a placa de construção para melhor adesão',
    checkExtruder: 'Verifique as engrenagens do extrusor quanto ao desgaste',
    checkCooling: 'Verifique se os ventiladores de resfriamento estão funcionando corretamente',
    generalInspection: 'Inspeção geral da impressora',
    cleanCarbonRods: 'Limpe os eixos de carbono para reduzir o atrito',
    cleanLinearRails: 'Limpe os trilhos lineares para remover poeira e detritos',
    checkPtfeTube: 'Verifique o tubo PTFE quanto ao desgaste ou danos',
    replaceHepaFilter: 'Substitua o filtro HEPA para qualidade do ar',
    replaceCarbonFilter: 'Substitua o filtro de carbono ativado',
    lubricateLeftNozzleRail: 'Lubrifique o trilho do bico esquerdo (série H2)',
  },

  // Smart Plugs
  smartPlugs: {
    offline: 'Offline',
    admin: 'Admin',
    openPlugAdminPage: 'Abrir o painel de administração da tomada inteligente',
    deleteSmartPlug: 'Excluir Tomada Inteligente',
    turnOnSmartPlug: 'Ligar Tomada Inteligente',
    turnOffSmartPlug: 'Desligar Tomada Inteligente',
    turnOn: 'Ligar',
    turnOff: 'Desligar',
    addSmartPlug: {
      scanningNetwork: 'Procurando na rede...',
      chooseEntity: 'Escolha uma entidade...',
      connectionFailed: 'Falha na conexão',
      searchEntities: 'Pesquisar entidades...',
      searchPowerSensors: 'Pesquisar sensores de energia...',
      searchEnergySensors: 'Pesquisar sensores de energia...',
      placeholders: {
        plugName: 'Tomada da Sala',
        mqttStateOnValue: 'ON, true, 1',
        mqttSameAsPower: 'Mesmo que o tópico de energia, ou diferente',
      },
    },
  },

  // Rich Text Editor
  richTextEditor: {
    bold: 'Negrito',
    italic: 'Itálico',
    underline: 'Sublinhado',
    bulletList: 'Lista com marcadores',
    numberedList: 'Lista numerada',
    alignLeft: 'Alinhar à esquerda',
    alignCenter: 'Centralizar',
    alignRight: 'Alinhar à direita',
    addLink: 'Adicionar link',
    removeLink: 'Remover link',
  },

  // External Links
  externalLinks: {
    noLinksConfigured: 'Nenhum link externo configurado',
    deleteLink: 'Excluir link',
    removeCustomIcon: 'Remover ícone personalizado',
    openInNewTab: 'Abrir em nova aba',
    placeholders: {
      linkName: 'Meu Link',
    },
  },

  // Keyboard Shortcuts Modal
  keyboardShortcuts: {
    title: 'Atalhos de Teclado',
    navigation: 'Navegação',
    archivesSection: 'Arquivos',
    kProfilesSection: 'K-Profiles',
    generalSection: 'Geral',
    shortcuts: {
      goToPrinters: 'Ir para Impressoras',
      goToArchives: 'Ir para Arquivos',
      goToQueue: 'Ir para Fila',
      goToStats: 'Ir para Estatísticas',
      goToProfiles: 'Ir para Perfis na Nuvem',
      goToSettings: 'Ir para Configurações',
      focusSearch: 'Focar na pesquisa',
      openUploadModal: 'Abrir modal de upload',
      clearSelection: 'Limpar seleção / desfocar input',
      contextMenu: 'Menu de contexto nos cartões',
      refreshProfiles: 'Atualizar perfis',
      newProfile: 'Novo perfil',
      exitSelectionMode: 'Sair do modo de seleção',
      showHelp: 'Mostrar esta ajuda',
    },
    footer: 'Pressione Esc ou clique fora para fechar',
  },

  // Notification Log
  notificationLog: {
    title: 'Registro de Notificações',
    events: {
      printStarted: 'Impressão Iniciada',
      printComplete: 'Impressão Concluída',
      printFailed: 'Impressão Falhou',
      printStopped: 'Impressão Interrompida',
      progress: 'Progresso',
      printerOffline: 'Impressora Offline',
      printerError: 'Erro na Impressora',
      lowFilament: 'Filamento Baixo',
      maintenanceDue: 'Manutenção Pendente',
      test: 'Teste',
    },
    timeAgo: {
      justNow: 'Agora mesmo',
      minutesAgo: 'há {{minutes}} minutos',
      hoursAgo: 'há {{hours}} horas',
    },
  },

  // Restore/Backup Modal
  restoreBackup: {
    title: 'Restaurar Backup',
    restoring: 'Restaurando...',
    restoreComplete: 'Restauração Concluída',
    restoreFailed: 'Falha na Restauração',
    importSettings: 'Importar configurações de um arquivo de backup',
    pleaseWait: 'Aguarde enquanto seus dados estão sendo restaurados',
    clickToSelect: 'Clique para selecionar o arquivo de backup (.json ou .zip)',
    howDuplicateHandling: 'Como funciona o tratamento de duplicatas:',
    categories: {
      printers: 'Impressoras',
      smartPlugs: 'Tomadas Inteligentes',
      notificationProviders: 'Provedores de Notificação',
      filaments: 'Filamentos',
      archives: 'Arquivos',
      pendingUploads: 'Uploads Pendentes',
      settingsTemplates: 'Configurações e Modelos',
    },
    matchingInfo: {
      printers: 'correspondem pelo número de série',
      smartPlugs: 'correspondem pelo endereço IP',
      notificationProviders: 'correspondem pelo nome',
      filaments: 'correspondem pelo nome + tipo + marca',
      archives: 'correspondem pelo hash do conteúdo',
      pendingUploads: 'correspondem pelo nome do arquivo',
      settingsTemplates: 'sempre sobrescrito',
    },
    replaceExisting: 'Substituir dados existentes',
    keepExisting: 'Manter dados existentes',
    replaceDescription: 'Substituir itens que já existem com os dados do backup',
    keepDescription: 'Restaurar apenas itens que não existem',
    caution: 'Atenção:',
    cautionText: 'Sobrescrever substituirá suas configurações atuais pelos dados do backup. Os códigos de acesso da impressora nunca são sobrescritos por segurança.',
    itemsRestored: 'Itens Restaurados',
    itemsSkipped: 'Itens Ignorados',
    restored: 'Restaurado',
    skipped: 'Ignorado (já existe)',
    filesLabel: 'Arquivos (3MF, miniaturas, etc.)',
    newApiKeysGenerated: 'Novas Chaves API Geradas',
    newApiKeysWarning: 'Essas chaves são exibidas apenas uma vez. Copie-as agora!',
    processingBackup: 'Processando arquivo de backup...',
    noDataFound: 'Nenhum dado foi encontrado para restaurar no arquivo de backup.',
    failedToRestore: 'Falha ao restaurar o backup. Verifique o formato do arquivo.',
  },

  // Backup Export Modal
  backupExport: {
    title: 'Exportar Backup',
    selectData: 'Selecione os dados a incluir',
    selectAll: 'Selecionar Todos',
    selectNone: 'Selecionar Nenhum',
    categoryDescriptions: {
      settings: 'Idioma, tema, preferências de atualização',
      notifications: 'ntfy, Pushover, Discord, etc.',
      templates: 'Modelos de mensagens personalizadas',
      smartPlugs: 'Configurações de tomadas Tasmota',
      externalLinks: 'Links da barra lateral para serviços externos',
      printers: 'Informações da impressora (códigos de acesso excluídos)',
      plateDetection: 'Imagens de referência de placa vazia',
      filaments: 'Tipos e custos de filamento',
      maintenance: 'Cronogramas de manutenção personalizados',
      archives: 'Todos os dados de impressão + arquivos (3MF, miniaturas, fotos)',
      projects: 'Projetos, itens de BOM e anexos',
      pendingUploads: 'Uploads de impressora virtual aguardando revisão',
      apiKeys: 'Chaves API de webhook (novas chaves geradas na importação)',
    },
    requiresPrinters: 'Requer que as impressoras sejam selecionadas',
    zipFileWarning: 'Um arquivo ZIP será criado.',
    zipFileDescription: 'Inclui todos os arquivos 3MF, miniaturas, timelapses e fotos. Isso pode levar algum tempo e resultar em um arquivo grande.',
    includeAccessCodes: 'Incluir Códigos de Acesso',
    includeAccessCodesDescription: 'Para transferir para outra máquina',
    includeAccessCodesWarning: 'Os códigos de acesso serão incluídos em texto simples. Mantenha este arquivo de backup seguro!',
    categoriesSelected: '{{selectedCount}} categorias selecionadas',
  },

  // Pending Uploads Panel
  pendingUploads: {
    placeholders: {
      notes: 'Adicione notas sobre esta impressão...',
    },
    discardUpload: 'Descartar Upload',
    archiveAllUploads: 'Arquivar Todos os Uploads',
    discardAllUploads: 'Descartar Todos os Uploads',
    archive: 'Arquivar',
    timeAgo: {
      justNow: 'Agora mesmo',
      minutesAgo: 'há {{minutes}} minutos',
      hoursAgo: 'há {{hours}} horas',
      daysAgo: 'há {{days}} dias',
    },
  },

  // API Browser
  apiBrowser: {
    placeholders: {
      requestBody: 'Corpo da requisição JSON...',
      searchEndpoints: 'Pesquisar endpoints...',
    },
  },

  // Configure AMS Slot Modal
  configureAmsSlot: {
    title: 'Configurar Slot AMS',
    slotConfigured: 'Slot Configurado!',
    configuringSlot: 'Configurando slot:',
    slotLabel: '{{ams}} Slot {{slot}}',
    searchPresets: 'Pesquisar predefinições...',
    colorPlaceholder: 'Nome da cor ou hex (ex.: marrom, FF8800)',
    clearCustomColor: 'Limpar cor personalizada',
    noCloudPresets: 'Nenhuma predefinição na nuvem. Faça login no Bambu Cloud para sincronizar.',
    noPresetsAvailable: 'Nenhuma predefinição disponível. Faça login no Bambu Cloud ou importe perfis locais.',
    noMatchingPresets: 'Nenhuma predefinição correspondente encontrada.',
    custom: 'Personalizado',
    builtin: 'Integrado',
    settingsSentToPrinter: 'Configurações enviadas para a impressora',
    filamentProfile: 'Perfil de Filamento',
    kProfileLabel: 'Perfil K (Avanço de Pressão)',
    filteringFor: 'Filtrando por: {{material}}',
    noKProfile: 'Nenhum perfil K (usar padrão 0.020)',
    noMatchingKProfiles: 'Nenhum perfil K correspondente encontrado. O K padrão=0.020 será usado.',
    selectFilamentFirst: 'Selecione um perfil de filamento primeiro',
    kFromCalibration: 'K={{value}} da calibração da impressora',
    customColorLabel: 'Cor Personalizada (opcional)',
    presetColors: 'Cores de {{name}}:',
    showLessColors: 'Mostrar menos cores',
    showMoreColors: 'Mostrar mais cores',
    clear: 'Limpar',
    hexLabel: 'Hex: #{{hex}}',
    resetting: 'Redefinindo...',
    resetSlot: 'Redefinir Slot',
    cancel: 'Cancelar',
    configuring: 'Configurando...',
    configureSlot: 'Configurar Slot',
  },

  // GitHub Backup Settings
  githubBackup: {
    title: 'Backup do GitHub',
    history: 'Histórico',
    downloadBackup: 'Baixar Backup',
    restoreBackup: 'Restaurar Backup',
    noBackupsYet: 'Nenhum backup ainda',
  },

  // Email Settings
  emailSettings: {
    placeholders: {
      fromName: 'BamBuddy',
    },
  },

  // Tag Management Modal
  tagManagement: {
    searchTags: 'Pesquisar tags...',
    renameTag: 'Renomear tag',
    deleteTag: 'Excluir tag',
  },

  // Notification Template Editor
  notificationTemplates: {
    placeholders: {
      title: 'Título da notificação...',
      body: 'Corpo da notificação...',
    },
  },

  // Batch Tag Modal
  batchTag: {
    placeholders: {
      newTag: 'Digite uma nova tag...',
    },
  },

  // Photo Gallery Modal
  photoGallery: {
    deletePhoto: 'Excluir foto',
  },

  // Filament Hover Card
  filamentHoverCard: {
    copySpoolUuid: 'Copiar UUID do carretel',
  },

  // K Profiles View
  kProfilesView: {
    hasNote: 'Possui nota',
    copyProfile: 'Copiar perfil',
  },

  // Layout/Navigation
  layout: {
    openMenu: 'Abrir menu',
    noPermissionSystemInfo: 'Você não tem permissão para visualizar informações do sistema',
  },

  // Dashboard
  dashboard: {
    dragToReorder: 'Arrastar para reordenar',
    hideWidget: 'Ocultar widget',
  },

  // Notification Provider Card
  notificationProviderCard: {
    deleteNotificationProvider: 'Excluir provedor de notificação',
  },

  // File Manager Modal
  fileManagerModal: {
    closeFileManager: 'Fechar gerenciador de arquivos',
    sortFiles: 'Ordenar arquivos',
    goToParentFolder: 'Ir para a pasta pai',
    threeView: 'Visualização 3D',
  },

  // Embedded Camera Viewer
  embeddedCameraViewer: {
    refreshStream: 'Atualizar stream',
    close: 'Fechar',
    zoomOut: 'Reduzir zoom',
    resetZoom: 'Redefinir zoom',
    zoomIn: 'Aumentar zoom',
    dragToResize: 'Arrastar para redimensionar',
  },

  // Timelapse Viewer
  timelapseViewer: {
    skipBack5s: 'Voltar 5s',
    skipForward5s: 'Avançar 5s',
  },

  // Notification Providers
  notificationProviders: {
    descriptions: {
      email: 'Notificações por email SMTP',
      telegram: 'Notificações via bot do Telegram',
      discord: 'Enviar para canal do Discord via webhook',
      ntfy: 'Notificações push gratuitas e auto-hospedáveis',
      pushover: 'Notificações push simples e confiáveis',
      callmebot: 'Notificações gratuitas via WhatsApp pelo CallMeBot',
      webhook: 'POST HTTP genérico para qualquer URL',
    },
  },

  // Log Viewer
  logViewer: {
    searchPlaceholder: 'Pesquisar mensagem ou nome do logger...',
    noLogEntries: 'Nenhuma entrada de log encontrada',
  },

  // Switchbar Popover
  switchbarPopover: {
    noSwitchesInSwitchbar: 'Nenhum switch na barra de switches',
  },

  // Project Page Modal
  projectPageModal: {
    placeholders: {
      title: 'Título',
      designer: 'Designer',
      license: 'Licença',
      description: 'Digite a descrição...',
      profileTitle: 'Título do perfil',
      profileDescription: 'Descrição do perfil...',
    },
  },

  // Spoolman Settings
  spoolmanSettings: {},

  // SpoolBuddy Kiosk
  spoolbuddy: {
    nav: {
      dashboard: 'Painel',
      ams: 'AMS',
      inventory: 'Inventário',
      writeTag: 'Escrever',
      settings: 'Configurações',
    },
    status: {
      nfcReady: 'NFC pronto',
      nfcOff: 'NFC desligado',
      offline: 'Offline',
      online: 'Online',
      noPrinters: 'Sem impressoras',
      deviceOffline: 'Dispositivo offline',
      waitingConnection: 'Aguardando conexão do dispositivo...',
      systemReady: 'Sistema pronto',
      status: 'Status',
    },
    dashboard: {
      readyToScan: 'Pronto para escanear',
      idleMessage: 'Coloque um carretel na balança para identificá-lo',
      nfcHint: 'A tag NFC será lida automaticamente',
      device: 'Dispositivo',
      syncWeight: 'Sincronizar peso',
      weightSynced: 'Sincronizado!',
      unknownTag: 'Tag desconhecida',
      newTag: 'Nova tag detectada',
      onScale: 'na balança',
      linkSpool: 'Vincular ao carretel',
      linkTagTitle: 'Vincular tag ao carretel',
      linkTag: 'Vincular tag',
      selectSpool: 'Selecione um carretel para vincular a esta tag:',
      noUntagged: 'Nenhum carretel sem tag encontrado',
      tagDetected: 'Tag detectada',
      noTag: 'Sem tag',
      tagId: 'Tag',
      grossWeight: 'Peso bruto',
      spoolSize: 'Tamanho do carretel',
      close: 'Fechar',
    },
    weight: {
      noReading: 'Sem leitura',
      stable: 'Estável',
      measuring: 'Medindo...',
      tare: 'Tarar',
      calibrate: 'Calibrar',
    },
    spool: {
      remaining: 'Restante',
      material: 'Material',
      brand: 'Marca',
      color: 'Cor',
      coreWeight: 'Núcleo',
      labelWeight: 'Rótulo',
      scaleWeight: 'Balança',
      netWeight: 'Líquido',
      lastUsed: 'Último uso',
    },
    ams: {
      noData: 'Nenhum AMS detectado',
      connectAms: 'Conecte um AMS para ver os slots',
      noPrinter: 'Nenhuma impressora selecionada',
      selectPrinter: 'Selecione uma impressora na barra superior',
      printerDisconnected: 'Impressora desconectada',
      humidity: 'Umidade',
      level: 'Nível',
      active: 'Ativo',
      slot: 'Slot',
      empty: 'Vazio',
    },
    inventory: {
      search: 'Buscar carretéis...',
      empty: 'Nenhum carretel no inventário',
      noResults: 'Nenhum carretel correspondente',
      spools: 'carretéis',
      addSpool: 'Adicionar carretel',
    },
    settings: {
      // Abas
      tabDevice: 'Dispositivo',
      tabDisplay: 'Tela',
      tabScale: 'Balança',
      tabUpdates: 'Atualizações',
      // Aba dispositivo
      nfcReader: 'Leitor NFC',
      type: 'Tipo',
      connection: 'Conexão',
      notConnected: 'N/A',
      deviceInfo: 'Info do dispositivo',
      hostname: 'Host',
      uptime: 'Tempo de atividade',
      // Aba tela
      brightness: 'Brilho',
      saved: 'Salvo',
      noBacklight: 'Nenhuma retroiluminação DSI detectada. O controle de brilho requer uma tela DSI.',
      screenBlank: 'Tempo para desligar tela',
      screenBlankDesc: 'A tela desliga após inatividade. Toque para despertar.',
      displayNote: 'O brilho é aplicado como filtro de software.',
      // Aba balança
      scaleCalibration: 'Calibração da balança',
      currentWeight: 'Peso atual',
      tareOffset: 'Tara',
      calFactor: 'Fator',
      knownWeight: 'Peso conhecido',
      calStep1: 'Remova todos os itens da balança e pressione Definir zero.',
      calStep2: 'Coloque o peso conhecido na balança.',
      setZero: 'Definir zero',
      calibrateNow: 'Calibrar',
      calibrated: 'Calibrado',
      tareSet: 'Comando de tara enviado. Aguardando dispositivo...',
      tareFailed: 'Falha ao enviar comando de tara',
      zeroSet: 'Ponto zero definido. Coloque o peso conhecido na balança.',
      calibrationDone: 'Calibração concluída!',
      calibrationFailed: 'Falha na calibração',
      lastCalibrated: 'Última calibração',
      stable: 'Estável',
      settling: 'Estabilizando...',
      firmware: 'Firmware',
      scale: 'Balança',
      noDevice: 'Nenhum dispositivo SpoolBuddy encontrado',
      // Aba atualizações
      daemonVersion: 'Versão do daemon',
      currentVersion: 'Atual',
      versionPending: 'Aguardando daemon...',
      checking: 'Verificando...',
      checkUpdates: 'Verificar atualizações',
      updateAvailable: 'Atualização disponível',
      updateInstructions: 'Atualize via SSH: execute o script de instalação do SpoolBuddy.',
      upToDate: 'Atualizado',
      includeBeta: 'Incluir versões beta',
    },
    writeTag: {
      tabExisting: 'Bobina existente',
      tabNew: 'Nova bobina',
      tabReplace: 'Substituir tag',
      searchPlaceholder: 'Buscar por material, cor, marca...',
      noUntaggedSpools: 'Nenhuma bobina sem tag',
      noTaggedSpools: 'Nenhuma bobina com tag',
      selectSpool: 'Selecione uma bobina e coloque um NTAG no leitor',
      placeTag: 'Coloque um NTAG no leitor',
      tagReady: 'Tag detectado — pronto para gravar',
      writeTag: 'Gravar Tag',
      replaceTag: 'Substituir Tag',
      writing: 'Gravando tag...',
      waiting: 'Aguardando SpoolBuddy...',
      writeSuccess: 'Tag gravado com sucesso!',
      writeFailed: 'Falha na gravação',
      queueFailed: 'Falha ao enfileirar comando de gravação',
      tryAgain: 'Tentar novamente',
      cancel: 'Cancelar',
      replaceWarning: 'O tag antigo será desvinculado. O novo tag o substituirá.',
      deviceOffline: 'SpoolBuddy está offline',
      material: 'Material',
      colorName: 'Nome da cor',
      color: 'Cor',
      brand: 'Marca',
      weight: 'Peso (g)',
      createSpool: 'Criar bobina',
      creating: 'Criando...',
      spoolCreated: 'Bobina criada! Pronto para gravar.',
      createFailed: 'Falha ao criar bobina',
    },
  },
};
