{
  "common": {
    "you": "Você",
    "confirm": "Confirmar",
    "cancel": "Cancelar",
    "loading": "Carregando...",
    "errorPrefix": "Erro: ",
    "loadingClassroom": "Carregando sala de aula...",
    "retry": "Tentar novamente",
    "close": "Fechar"
  },
  "home": {
    "slogan": "Aprendizagem Generativa em Sala de Aula Interativa Multi-Agente",
    "greetingWithName": "Olá, {{name}}"
  },
  "toolbar": {
    "pdfParser": "Analisador",
    "pdfUpload": "Enviar PDF",
    "removePdf": "Remover arquivo",
    "documentExtractor": "Extrator",
    "courseMaterialUpload": "Enviar material do curso",
    "courseMaterialsSelected": "{{n}} materiais selecionados",
    "courseMaterialMergeOrder": "Os materiais serão mesclados na ordem mostrada abaixo.",
    "removeCourseMaterial": "Remover arquivo",
    "webSearchOn": "Ativada",
    "webSearchOff": "Clique para ativar",
    "webSearchDesc": "Pesquise na web por informações atualizadas antes da geração",
    "webSearchProvider": "Mecanismo de busca",
    "webSearchNoProvider": "Configure a chave de API de busca em Configurações",
    "selectProvider": "Selecionar provedor",
    "configureProvider": "Configurar modelo",
    "configureProviderHint": "Configure pelo menos um provedor de modelo para gerar cursos",
    "enterClassroom": "Entrar na Sala",
    "advancedSettings": "Configurações Avançadas",
    "thinking": "Raciocínio",
    "thinkingBudget": "Orçamento",
    "default": "Padrão",
    "on": "Ativado",
    "off": "Desativado",
    "auto": "Auto",
    "dynamic": "Dinâmico",
    "ttsTitle": "Texto para Fala",
    "ttsHint": "Escolha uma voz para o professor de IA",
    "ttsPreview": "Pré-visualizar",
    "ttsPreviewing": "Reproduzindo...",
    "interactiveModeHint": "Ative o modo interativo para conteúdos mais práticos",
    "interactiveModeLabel": "Modo Interativo"
  },
  "export": {
    "pptx": "Exportar PPTX",
    "resourcePack": "Exportar Pacote de Recursos",
    "resourcePackDesc": "PPTX + páginas interativas",
    "exporting": "Exportando...",
    "exportSuccess": "Exportação concluída",
    "exportFailed": "Falha na exportação",
    "classroomZip": "Exportar ZIP da Sala",
    "classroomZipDesc": "Estrutura do curso + arquivos de mídia",
    "scriptMd": "Baixar roteiro (.md)",
    "scriptMdDesc": "Texto da narração como Markdown",
    "script": "Baixar roteiro",
    "scriptDocx": "Baixar roteiro (.docx)",
    "scriptDocxDesc": "Documento Word real no formato DOCX",
    "slideFallback": "Slide {{order}}",
    "textOnly": "Exportar roteiro",
    "mediaPending": "Aguardando a conclusão da geração de mídia",
    "inlinePartial": "{{count}} recurso(s) externo(s) não puderam ser empacotados; o curso pode não ser exibido corretamente offline.",
    "video": "Exportar Vídeo",
    "videoDesc": "Projeto Hyperframes autossuficiente (renderizável em MP4)",
    "videoNoScenes": "Nenhuma cena disponível para exportar.",
    "videoCompiling": "Compilando a linha do tempo do vídeo...",
    "videoRendering": "Renderizando slides e coletando recursos...",
    "videoPackaging": "Empacotando o projeto de vídeo...",
    "videoSuccess": "Projeto de vídeo exportado",
    "videoFailed": "Falha na exportação do vídeo",
    "videoWarnings": "{{assets}} recurso(s) ausente(s) e {{diagnostics}} problema(s) no relatório de exportação.",
    "videoMp4Success": "Vídeo renderizado",
    "videoServiceUnavailable": "Serviço de renderização não configurado — o ZIP do projeto foi baixado para renderização local.",
    "videoResolution": "Resolução",
    "videoFps": "Taxa de quadros",
    "videoQuality": "Qualidade",
    "videoQuality_draft": "Rascunho",
    "videoQuality_standard": "Padrão",
    "videoQuality_high": "Alta",
    "videoProgress": "{{percent}}%",
    "videoProgressWithEta": "{{percent}}% · ~{{remaining}} restante(s)",
    "videoEtaMinSec": "{{min}} min {{sec}} s",
    "videoEtaSec": "{{sec}} s",
    "videoRenderMp4": "Renderizar MP4",
    "videoDownloadZip": "Baixar ZIP do projeto",
    "videoServiceHint": "A renderização de MP4 requer o serviço de renderização. Baixe o ZIP para renderizar localmente.",
    "videoBurnSubtitles": "Gravar legendas no vídeo",
    "videoBurnSubtitlesDesc": "Desligado: exporte um vídeo limpo e adicione o arquivo de legenda no seu editor.",
    "videoQuizCtaPrompt": "Quer experimentar um quiz interativo?",
    "videoPblCtaPrompt": "Quer explorar a aprendizagem baseada em projetos?",
    "videoCtaVisit": "Acesse",
    "videoDownloadSubtitles": "Baixar legendas (.srt)",
    "subtitlesCompiling": "Compilando legendas...",
    "subtitlesSuccess": "Legendas baixadas",
    "subtitlesEmpty": "Nenhuma narração para gerar legendas",
    "subtitlesFailed": "Falha ao baixar legendas",
    "noSlides": "Não há slides para exportar",
    "noSlidesSkipped": "Este curso não tem slides — PPTX ignorado",
    "nothingToExport": "Nada para exportar"
  },
  "import": {
    "classroom": "Importar Sala de Aula",
    "pptx": "Importar PPTX",
    "parsing": "Lendo ZIP...",
    "parsingPptx": "Lendo PPTX...",
    "validating": "Validando dados...",
    "writingMedia": "Gravando arquivos de mídia...",
    "writingCourse": "Gravando dados do curso...",
    "success": "Sala de aula importada com sucesso",
    "pptxSuccess": "PPTX processado com sucesso ({{count}} slides, saída registrada no console)",
    "error": {
      "invalidZip": "Arquivo inválido. Selecione um arquivo .maic.zip válido.",
      "invalidPptx": "Falha ao processar o PPTX. Verifique se o arquivo é válido.",
      "parserUnavailable": "A importação de PPTX está indisponível: o pacote do analisador não foi implantado. Execute install/sync novamente.",
      "invalidManifest": "Arquivo inválido: manifest.json ausente ou corrompido.",
      "missingData": "Arquivo inválido: dados obrigatórios do curso ausentes.",
      "storageFull": "Falha na importação: armazenamento do navegador cheio. Tente apagar salas antigas."
    }
  },
  "chat": {
    "lecture": "Aula",
    "noConversations": "Sem conversas",
    "startConversation": "Digite uma mensagem abaixo para começar",
    "noMessages": "Ainda não há mensagens",
    "ended": "encerrada",
    "unknown": "Desconhecido",
    "stopDiscussion": "Encerrar Discussão",
    "endQA": "Encerrar Perguntas",
    "softClosing": "Continuar discussão",
    "error": {
      "emptyAgentResponses": "Os agentes retornaram respostas vazias; a discussão foi interrompida. Tente novamente ou verifique as configurações do modelo.",
      "streamInterrupted": "O fluxo de dados terminou inesperadamente; a discussão não foi concluída. Por favor, tente novamente."
    },
    "elementReference": {
      "button": "Referenciar slide",
      "unavailable": "Apenas o slide PPT atual pode ser referenciado",
      "instruction": "Clique em um elemento · Esc para sair",
      "fallback": "Outros elementos do slide ({{count}})",
      "clear": "Remover referência do slide",
      "summary": {
        "noText": "Sem texto",
        "emptyContent": "Sem conteúdo",
        "code": "Código",
        "line": "Linha",
        "imageMetadata": "Imagem (somente metadados)",
        "videoMetadata": "Vídeo (somente metadados)",
        "audioMetadata": "Áudio (somente metadados)"
      }
    },
    "tabs": {
      "lecture": "Anotações",
      "chat": "Conversa"
    },
    "lectureNotes": {
      "empty": "As anotações aparecerão aqui após a reprodução da aula",
      "emptyHint": "Pressione play para iniciar a aula",
      "pageLabel": "Página {{n}}",
      "currentPage": "Atual",
      "jumpToLine": "Jump to this line",
      "jumpUnavailable": "Jump unavailable for this line"
    },
    "badge": {
      "qa": "P&R",
      "discussion": "DEB",
      "lecture": "AULA"
    }
  },
  "actions": {
    "names": {
      "spotlight": "Destaque",
      "laser": "Laser",
      "wb_open": "Abrir Quadro",
      "wb_draw_text": "Texto no Quadro",
      "wb_draw_shape": "Forma no Quadro",
      "wb_draw_chart": "Gráfico no Quadro",
      "wb_draw_latex": "Fórmula no Quadro",
      "wb_draw_table": "Tabela no Quadro",
      "wb_draw_line": "Linha no Quadro",
      "wb_clear": "Limpar Quadro",
      "wb_delete": "Excluir Elemento",
      "wb_close": "Fechar Quadro",
      "discussion": "Discussão"
    },
    "status": {
      "inputStreaming": "Aguardando",
      "inputAvailable": "Executando",
      "outputAvailable": "Concluído",
      "outputError": "Erro",
      "outputDenied": "Negado",
      "running": "Executando",
      "result": "Concluído",
      "error": "Erro"
    }
  },
  "agentBar": {
    "readyToLearn": "Vamos aprender juntos?",
    "expandedTitle": "Configuração de Papéis da Sala",
    "configTooltip": "Clique para configurar os papéis da sala",
    "voiceLabel": "Voz",
    "voiceLoading": "Carregando...",
    "voiceAutoAssign": "As vozes serão atribuídas automaticamente",
    "searchVoice": "Pesquisar vozes",
    "noMatchingVoices": "Nenhuma voz correspondente",
    "noVoice": "Sem voz"
  },
  "proactiveCard": {
    "discussion": "Discussão",
    "join": "Entrar",
    "skip": "Pular",
    "pause": "Pausar",
    "resume": "Continuar"
  },
  "voice": {
    "startListening": "Entrada por voz",
    "stopListening": "Parar gravação"
  },
  "edit": {
    "proMode": "Pro",
    "undo": "Desfazer",
    "redo": "Refazer",
    "delete": "Excluir",
    "title": "Editando · {{type}}",
    "unsupportedScene": "{{type}} ainda não pode ser editada",
    "readOnlyBadge": "{{type}} · somente visualização",
    "sceneType": {
      "slide": "Slide",
      "quiz": "Questionário",
      "interactive": "Interativa",
      "pbl": "PBL"
    },
    "text": {
      "toolbar": "Barra de texto",
      "label": "Texto",
      "font": "Fonte",
      "fontDefault": "Padrão",
      "sizeUp": "Aumentar tamanho",
      "sizeDown": "Diminuir tamanho",
      "fontSize": "Tamanho da fonte",
      "bold": "Negrito",
      "italic": "Itálico",
      "underline": "Sublinhado",
      "color": "Cor do texto",
      "alignLeft": "Alinhar à esquerda",
      "alignCenter": "Centralizar",
      "alignRight": "Alinhar à direita",
      "bullet": "Lista com marcadores",
      "colorHex": "Código da cor"
    },
    "line": {
      "toolbar": "Barra de linha",
      "kind": "Tipo de linha",
      "color": "Cor da linha",
      "width": "Espessura da linha",
      "style": "Estilo da linha",
      "start": "Estilo inicial",
      "end": "Estilo final",
      "straight": "Reta",
      "broken": "Linha quebrada",
      "broken2": "Linha quebrada dupla",
      "curve": "Curva",
      "cubic": "Curva cúbica",
      "solid": "Sólida",
      "dashed": "Tracejada",
      "dotted": "Pontilhada",
      "none": "Nenhum",
      "arrow": "Seta",
      "dot": "Ponto"
    },
    "insert": {
      "toolbar": "Barra de inserção",
      "textBox": "Caixa de texto",
      "line": "Linha",
      "linePresets": {
        "straight": "Linha reta",
        "dashed": "Linha tracejada",
        "arrow": "Linha com seta",
        "dashedArrow": "Linha tracejada com seta",
        "dottedEnd": "Linha com ponta circular",
        "broken": "Linha quebrada",
        "doubleBroken": "Linha com quebra dupla",
        "curve": "Curva",
        "cubic": "Curva cúbica"
      },
      "table": "Tabela",
      "formula": "Fórmula",
      "chart": "Gráfico",
      "chartBar": "Gráfico de barras",
      "chartLine": "Gráfico de linhas",
      "chartPie": "Gráfico de pizza",
      "tableDimensions": "Tabela {{rows}} x {{columns}}",
      "dragToolbar": "Mover ferramentas de inserção",
      "dragToolbarKeyboard": "Mover ferramentas: pressione Enter ou Espaço e use as setas",
      "collapseToolbar": "Recolher ferramentas de inserção",
      "expandToolbar": "Expandir ferramentas de inserção",
      "image": "Imagem",
      "imageDrop": "Arraste uma imagem ou clique para escolher um arquivo",
      "imageOr": "ou cole a URL de uma imagem",
      "imageUrlPlaceholder": "https://…",
      "imageInsert": "Inserir",
      "video": "Vídeo",
      "videoDrop": "Arraste um vídeo ou clique para escolher um arquivo",
      "videoOr": "ou cole a URL de um vídeo",
      "videoUrlPlaceholder": "https://…",
      "videoInsert": "Inserir",
      "audio": "Áudio",
      "audioDrop": "Arraste um áudio ou clique para escolher um arquivo",
      "audioOr": "ou cole a URL de um áudio",
      "audioUrlPlaceholder": "https://…",
      "audioInsert": "Inserir"
    },
    "asset": {
      "drop": "Arraste um arquivo ou clique para escolher",
      "orUrl": "ou cole a URL do arquivo",
      "urlPlaceholder": "https://…",
      "insert": "Inserir",
      "invalidType": "Tipo de arquivo não compatível",
      "readFailed": "Não foi possível ler o arquivo"
    },
    "latex": {
      "toolbar": "Barra de fórmulas",
      "editFormula": "Editar fórmula",
      "dialog": "Editor de fórmulas",
      "source": "Código-fonte LaTeX",
      "preview": "Pré-visualização",
      "symbols": "Símbolos",
      "presets": "Fórmulas predefinidas",
      "invalidSource": "O código-fonte LaTeX é inválido."
    },
    "video": {
      "toolbar": "Barra de vídeo",
      "poster": "Definir capa"
    },
    "audio": {
      "toolbar": "Barra de áudio",
      "preview": "Ouvir áudio",
      "pause": "Pausar prévia",
      "loop": "Repetir"
    },
    "table": {
      "doubleClickToEdit": "Clique duas vezes para editar"
    },
    "nav": {
      "addSlide": "Adicionar slide",
      "duplicate": "Duplicar",
      "delete": "Excluir",
      "deleted": "Excluído",
      "undo": "Desfazer",
      "copySuffix": "(cópia)",
      "untitledSlide": "Slide sem título",
      "collapse": "Recolher painel",
      "expand": "Expandir painel",
      "dragHandle": "Arraste para reordenar",
      "deckLabel": "Cenas",
      "moreActions": "Mais ações",
      "rename": "Renomear",
      "sceneIncomplete": "Esta página tem conteúdo incompleto",
      "addPage": "Adicionar página",
      "nextPage": "Próxima página",
      "prevPage": "Página anterior"
    },
    "zorder": {
      "toFront": "Trazer para a frente",
      "toBack": "Enviar para trás"
    },
    "image": {
      "toolbar": "Barra da imagem",
      "replace": "Substituir imagem",
      "flipH": "Inverter horizontalmente",
      "flipV": "Inverter verticalmente",
      "crop": "Recortar imagem"
    },
    "contextMenu": {
      "horizontalAlignment": "Alinhamento horizontal",
      "verticalAlignment": "Alinhamento vertical",
      "selectAll": "Selecionar tudo",
      "copy": "Copiar",
      "cut": "Recortar",
      "paste": "Colar",
      "unlock": "Desbloquear",
      "lock": "Bloquear",
      "group": "Agrupar",
      "ungroup": "Desagrupar",
      "bringForward": "Trazer para frente",
      "sendBackward": "Enviar para trás",
      "alignTop": "Alinhar acima",
      "alignMiddle": "Alinhar ao meio",
      "alignBottom": "Alinhar abaixo"
    },
    "background": {
      "label": "Fundo",
      "solid": "Cor sólida",
      "image": "Imagem",
      "color": "Cor"
    },
    "common": {
      "cancel": "Cancelar",
      "confirm": "Confirmar"
    },
    "quiz": {
      "addQuestion": "Adicionar pergunta",
      "reorder": "Arraste para reordenar",
      "deleteQuestion": "Excluir pergunta",
      "untitledQuestion": "Pergunta sem título",
      "questionLabel": "Pergunta",
      "questionPlaceholder": "Digite a pergunta…",
      "typeLabel": "Tipo",
      "pointsLabel": "Pontos",
      "optionsLabel": "Opções",
      "optionPlaceholder": "Texto da opção",
      "addOption": "Adicionar opção",
      "deleteOption": "Remover opção",
      "markCorrect": "Marcar como correta",
      "moveUp": "Mover para cima",
      "moveDown": "Mover para baixo",
      "analysisLabel": "Explicação",
      "analysisPlaceholder": "Exibida após a correção…",
      "commentPromptLabel": "Orientação de correção",
      "commentPromptPlaceholder": "Como esta resposta aberta deve ser avaliada?",
      "empty": "Nenhuma pergunta ainda",
      "emptyHint": "Use “Adicionar pergunta” para criar a primeira.",
      "type": {
        "single": "Escolha única",
        "multiple": "Múltipla escolha",
        "short_answer": "Resposta curta"
      },
      "shortAnswerGradingNote": "Respostas curtas são sempre avaliadas por IA com base na orientação abaixo.",
      "hint": {
        "emptyText": "Pergunta {{n}}: adicione o texto da pergunta",
        "fewOptions": "Pergunta {{n}}: adicione ao menos duas opções",
        "emptyOption": "Pergunta {{n}}: há uma opção vazia",
        "noCorrect": "Pergunta {{n}}: marque a resposta correta"
      }
    },
    "cue": {
      "speech": "Narração",
      "spotlight": "Destaque",
      "laser": "Laser",
      "whiteboardOpen": "Quadro",
      "whiteboardText": "Escrita",
      "whiteboardShape": "Forma",
      "whiteboardLatex": "Fórmula",
      "whiteboardTable": "Tabela",
      "action": "Ação",
      "discussion": "Discussão"
    },
    "element": {
      "toolbar": "Barra do elemento",
      "text": "Texto",
      "image": "Imagem",
      "shape": "Forma",
      "line": "Linha",
      "chart": "Gráfico",
      "table": "Tabela",
      "latex": "Fórmula",
      "video": "Vídeo",
      "audio": "Áudio",
      "code": "Código"
    },
    "agent": {
      "expand": "Expandir assistente de IA",
      "collapse": "Recolher",
      "stopped": "Interrompido",
      "emptyTitle": "O que você gostaria de mudar?",
      "emptyHint": "Depois de editar este slide no canvas, deixe a IA regenerar a narração correspondente ao conteúdo.",
      "placeholder": "Descreva suas alterações neste slide…",
      "stop": "Parar geração",
      "empty": {
        "lead": "Tell me how to change this slide — I'll redo the content and re-align the narration.",
        "boundary": "For fine-grained edits use the editor; add / delete / reorder slides from the left nav.",
        "comingSoon": "More capabilities coming soon."
      },
      "cap": {
        "content": {
          "label": "Regenerate the slide",
          "examples": "“Condense to 3 points”, “Add a real-world example”"
        },
        "narration": {
          "label": "Regenerate the narration script",
          "examples": "“Make it more conversational”, “Align with my canvas edits”"
        },
        "fixHtml": {
          "examples": "\"O botão de iniciar não faz nada\", \"Os painéis se sobrepõem no celular\"",
          "label": "Corrigir um bug na página"
        },
        "elements": {
          "label": "Ajustar elementos",
          "examples": "“Deixe o título azul e suba”, “Diminua esta figura”"
        }
      },
      "newConversation": "New conversation",
      "sessionHistory": "Histórico",
      "sessionUntitled": "Conversa sem título",
      "sessionDelete": "Excluir",
      "sessionEmpty": "Nenhuma conversa",
      "reasoning": "Raciocínio",
      "thought": "Pensou por",
      "interactive": {
        "boundary": "Faço correções pontuais na página; não recrio a página inteira. Troque de cena pela navegação à esquerda.",
        "emptyTitle": "O que precisa ser corrigido nesta página?",
        "lead": "Descreva um bug nesta página interativa — por exemplo, um botão que não faz nada — e eu corrijo apenas isso, mantendo o resto.",
        "placeholder": "Descreva o bug desta página interativa…"
      },
      "thinking": "Pensando…",
      "title": "Editar com IA"
    },
    "timeline": {
      "title": "Roteiro de narração",
      "regenAllTts": "Regenerar toda a narração",
      "voiceAll": "Narrar tudo",
      "counts": "{{speech}} narração · {{cue}} ações",
      "panLeft": "Mover para a esquerda",
      "panRight": "Mover para a direita",
      "collapseAxis": "Recolher para o eixo",
      "expandTrack": "Expandir trilha",
      "emptyHint": "Arraste as ações para o eixo para começar, ou deixe o MAIC Agent gerar a narração.",
      "speechPlaceholder": "Digite esta linha de narração…",
      "reorder": "Arraste para reordenar",
      "moveLeft": "Mover à esquerda",
      "moveRight": "Mover à direita",
      "pickElement": "Escolher elemento",
      "bound": "Vinculado",
      "fieldAction": "Ação",
      "fieldElement": "Elemento",
      "fieldContent": "Conteúdo",
      "addDiscussionExists": "Apenas uma discussão por cena",
      "discussionTerminal": "FIM",
      "discussionTerminalHint": "A discussão fica no final da cena (uma por cena)",
      "discussionTopicPlaceholder": "Tópico da discussão (obrigatório)",
      "discussionPromptPlaceholder": "Orientação (opcional)",
      "discussionAgent": "Iniciador",
      "discussionAgentUnset": "Não especificado",
      "addAction": "Adicionar ação"
    },
    "picker": {
      "title": "Inserir ação",
      "speechDesc": "Fale uma frase — pode ter narração automática",
      "spotlightDesc": "Destacar um elemento na tela",
      "laserDesc": "Apontar um laser para um elemento",
      "discussionDesc": "Faça uma pergunta e escolha quem inicia"
    },
    "tts": {
      "cancelPreview": "Cancelar prévia",
      "preview": "Pré-visualizar",
      "regenerate": "Regenerar narração",
      "statusReady": "Narrado",
      "statusNone": "Sem narração",
      "statusGenerating": "Gerando",
      "stopPreview": "Parar prévia",
      "statusError": "Falhou"
    },
    "pick": {
      "pickFor": "Escolha um elemento para \"{{label}}\"",
      "pickHint": "Clique em um elemento destacado ou na lista abaixo · Esc para cancelar",
      "pageElements": "Elementos da página · {{count}}",
      "expand": "Expandir",
      "collapse": "Recolher",
      "noElements": "Nenhum elemento localizável neste slide.",
      "bindHint": "Clique em um elemento destacado no canvas para vincular",
      "refCapHint": "Limite atingido — remova um para trocar · Esc para concluir",
      "refHint": "Clique para adicionar ou remover · Esc para concluir",
      "refLead": "Referenciando elementos · {{count}}/{{max}}"
    },
    "regen": {
      "title": "Regenerar narração",
      "running": "Gerando…",
      "noActions": "Nenhuma ação gerada",
      "actionsCount": "{{count}} ações",
      "generating": "Gerando",
      "notGenerated": "Não gerado",
      "updated": "Atualizado"
    },
    "regenScene": {
      "title": "Regenerar slide",
      "generating": "Gerando",
      "updated": "Atualizado",
      "notGenerated": "Não gerado",
      "elementsCount": "{{count}} elementos",
      "restore": "Restaurar anterior",
      "restored": "Restaurado",
      "resume": "Refazer"
    },
    "readCard": {
      "title": "Read slide content",
      "reading": "Reading",
      "done": "Read",
      "failed": "Not read"
    },
    "fixHtml": {
      "editsCount": "{{count}} edição(ões)",
      "fixed": "Corrigido",
      "fixing": "Corrigindo",
      "notFixed": "Não corrigido",
      "title": "Corrigir página interativa"
    },
    "editElements": {
      "title": "Editar elementos",
      "editing": "Editando",
      "applied": "Aplicado",
      "notApplied": "Não aplicado",
      "applyFailed": "O editor não conseguiu aplicar a edição do elemento. Nada foi alterado.",
      "applyPartiallyFailed": "O editor não conseguiu aplicar uma ou mais edições de elementos. Outras edições podem ter sido aplicadas."
    },
    "roster": {
      "title": "Elenco da sala",
      "count": "{{count}} integrantes",
      "editHint": "Clique em um integrante para editar",
      "personaLabel": "Persona",
      "personaPlaceholder": "Descreva a personalidade, o estilo de ensino e as tarefas do papel...",
      "noPersona": "Nenhuma persona ainda",
      "unnamed": "Sem título",
      "teacherBadge": "Principal",
      "moveUp": "Mover para cima",
      "moveDown": "Mover para baixo",
      "removeFromClass": "Remover da sala",
      "aiClassmates": "Colegas de IA · {{count}}",
      "addRole": "Adicionar papel",
      "shortTitle": "Elenco"
    },
    "elementRef": {
      "remove": "移除引用 {{label}}",
      "counts": "{{count}}/{{max}} referenciados",
      "exitPicking": "Concluir seleção",
      "startPicking": "Referenciar elementos"
    },
    "dock": {
      "elementRefHint": "Referências de elementos — escolha elementos para enviar na próxima mensagem",
      "globalTools": "Ferramentas globais"
    }
  },
  "stage": {
    "currentScene": "Cena Atual",
    "generating": "Gerando...",
    "paused": "Pausado",
    "generationFailed": "Falha na geração",
    "confirmSwitchTitle": "Trocar de Cena",
    "confirmSwitchMessage": "Há um tópico em andamento. Trocar de cena vai encerrá-lo. Tem certeza?",
    "generatingNextPage": "A cena está sendo gerada, aguarde...",
    "courseComplete": "Curso concluído",
    "fullscreen": "Tela cheia",
    "exitFullscreen": "Sair da tela cheia",
    "editCourse": "Editar curso",
    "doneEditing": "Concluir edição",
    "proModeDisabledHint": "A edição não está disponível nesta página — abra um slide do curso para editar no modo Pro."
  },
  "classroomComplete": {
    "title": "Curso concluído",
    "trailLabels": {
      "slide": "páginas",
      "quiz": "questionários",
      "interactive": "interativas",
      "pbl": "projetos"
    },
    "quizScoreLabel": "{{correct}} de {{total}} corretas",
    "encouragement": {
      "high": "Excelente — você arrasou!",
      "mid": "Bom trabalho — continue assim.",
      "low": "Um bom começo — revise e tente novamente."
    }
  },
  "whiteboard": {
    "title": "Quadro Interativo",
    "open": "Abrir Quadro",
    "clear": "Limpar Quadro",
    "minimize": "Minimizar Quadro",
    "ready": "O quadro está pronto",
    "readyHint": "Os elementos aparecerão aqui quando adicionados pela IA",
    "clearSuccess": "Quadro limpo com sucesso",
    "clearError": "Falha ao limpar o quadro: ",
    "resetView": "Reiniciar Visão",
    "restoreError": "Falha ao restaurar o quadro: ",
    "history": "Histórico",
    "restore": "Restaurar",
    "noHistory": "Sem histórico ainda",
    "restored": "Quadro restaurado",
    "elementCount": "{{count}} elementos"
  },
  "quiz": {
    "title": "Questionário",
    "subtitle": "Teste seu conhecimento",
    "questionsCount": "questões",
    "totalPrefix": "",
    "pointsSuffix": "pts",
    "startQuiz": "Iniciar Questionário",
    "multipleChoiceHint": "(Múltipla escolha — selecione todas as alternativas corretas)",
    "inputPlaceholder": "Digite sua resposta aqui...",
    "charCount": "caracteres",
    "yourAnswer": "Sua resposta:",
    "notAnswered": "Não respondida",
    "aiComment": "Feedback da IA",
    "singleChoice": "Única",
    "multipleChoice": "Múltipla",
    "shortAnswer": "Discursiva",
    "analysis": "Análise: ",
    "excellent": "Excelente!",
    "keepGoing": "Continue assim!",
    "needsReview": "Precisa revisar",
    "correct": "correta",
    "incorrect": "incorreta",
    "answering": "Em andamento",
    "submitAnswers": "Enviar Respostas",
    "aiGrading": "A IA está corrigindo...",
    "aiGradingWait": "Aguarde, analisando suas respostas",
    "quizReport": "Relatório do Questionário",
    "retry": "Tentar novamente"
  },
  "roundtable": {
    "teacher": "PROFESSOR",
    "you": "VOCÊ",
    "inputPlaceholder": "Digite sua mensagem...",
    "listening": "Ouvindo...",
    "processing": "Processando...",
    "noSpeechDetected": "Nenhuma fala detectada, tente novamente",
    "discussionEnded": "Discussão encerrada",
    "qaEnded": "Perguntas e respostas encerradas",
    "softClosing": "Continuar discussão",
    "thinking": "Pensando",
    "yourTurn": "Sua vez",
    "stopDiscussion": "Encerrar Discussão",
    "autoPlay": "Reprodução automática",
    "autoPlayOff": "Parar reprodução automática",
    "speed": "Velocidade",
    "previousLine": "Previous line",
    "nextLine": "Next line",
    "lineProgress": "Line {{current}} / {{total}}",
    "voiceInput": "Entrada por voz",
    "voiceInputDisabled": "Entrada por voz desativada",
    "textInput": "Entrada por texto",
    "stopRecording": "Parar gravação",
    "startRecording": "Iniciar gravação"
  },
  "pbl": {
    "emptyProject": "O projeto PBL ainda não foi gerado. Crie via geração de curso.",
    "v2": {
      "hero": {
        "title": "Project-Based Learning",
        "stage": "Stages",
        "task": "Tasks",
        "tutor": "Tutor",
        "greetingBanner": "Your tutor is saying hello…",
        "startProject": "Start Project",
        "continueProject": "Continuar projeto",
        "resetProgress": "Redefinir progresso de aprendizagem",
        "resetConfirmTitle": "Redefinir o progresso de aprendizagem?",
        "resetConfirmDescription": "Isso apaga todo o progresso deste projeto — histórico de conversa, envios e status das etapas — e você começará do zero. Esta ação não pode ser desfeita.",
        "resetConfirmConfirm": "Redefinir",
        "resetConfirmCancel": "Cancelar",
        "startHint": "Click to enter the workspace. {{name}} will guide you through each stage.",
        "startError": "Unable to start: {{error}}",
        "youWillLearn": "O que você vai ganhar",
        "instructorTagline": "Acompanha você durante todo o projeto",
        "scenarioCharacter": "Personagem do cenário",
        "scenarioCharacterTagline": "O personagem com quem você interage no cenário",
        "scenarioFlow": "Etapas",
        "close": "Close"
      },
      "sidebar": {
        "title": "Project Roadmap",
        "summary": "{{completed}} / {{total}} tasks · {{stages}} stages",
        "enterScenario": "Entrar na cena",
        "advanceScene": "Avançar a cena",
        "continueScene": "Próxima etapa",
        "stagePrep": "Preparação",
        "stageRoleplay": "Simulação",
        "stageWrapup": "Balanço",
        "completeAct": "Concluir este ato",
        "completeTask": "Concluir"
      },
      "workspace": {
        "progressLabel": "Progress",
        "resizeSidebar": "Resize sidebar and chat",
        "resizeSubmission": "Resize chat and submission panel",
        "enterFullscreen": "Expand to fullscreen workspace",
        "exitFullscreen": "Exit fullscreen workspace",
        "exitNativeFullscreen": "Sair da tela cheia",
        "returnToHero": "Voltar à visão geral do projeto",
        "breadcrumbOverview": "Visão geral",
        "breadcrumbCurrent": "Espaço de trabalho"
      },
      "chat": {
        "placeholder": "Chat with {{name}} about your progress...",
        "placeholderCompleted": "Project complete. Check out your report.",
        "send": "Send",
        "voiceInput": "Entrada de voz",
        "keyboardHint": "Enter to send · Shift+Enter for newline",
        "readingSubmission": "Reading submission…",
        "generatingMilestoneFeedback": "Generating milestone feedback…",
        "generatingFinalEval": "Generating final evaluation…",
        "readingSubmissionWithTitle": "Reading latest submission for \"{{title}}\"…",
        "evaluatingTask": "{{name}} · Reviewing task",
        "evaluatingFinal": "{{name}} · Final evaluation",
        "narrating": "Definindo a cena…",
        "choosePrompt": "Escolha uma opção",
        "choiceOrType": "Escolha ou escreva o seu…",
        "suggestionsToggle": "Precisa de ideias? Veja formas de responder",
        "guidancePointer": "Sem ideias? Veja o objetivo e as dicas deste ato no painel à direita.",
        "roleplayHistoryTitle": "Histórico da simulação",
        "coachHint": "Dica do coach",
        "thinking": "{{name}} · Thinking",
        "typing": "{{name}} · Typing…",
        "submitted": "Work submitted",
        "evaluatingSubmission": "Evaluating your submission…",
        "evaluatingSubmissionDetail": "Task: \"{{title}}\". Feedback on this submission will appear here once evaluation is complete.",
        "milestoneFeedbackPending": "The milestone feedback will appear once ready.",
        "emptyChat": "No messages yet.",
        "emptyChatHint": "Your project walkthrough with {{name}} will start here.",
        "continueError": "Unable to continue: {{error}}",
        "stillTyping": "Still typing",
        "handoverHint": "Click \"Continue to Next Stage\" to keep going."
      },
      "scene": {
        "expand": "Expandir",
        "collapse": "Recolher",
        "greetHint": "Toque para cumprimentar",
        "label": "A cena"
      },
      "milestoneCard": {
        "title": "Milestone Review",
        "youLearned": "What you learned",
        "nextStage": "Next stage:",
        "continueHint": "Click Continue to enter the next stage.",
        "alreadyEntered": "Next stage entered",
        "continueToNext": "Continue to Next Stage",
        "projectAlmostDone": "🎉 Project almost done — awaiting completion report"
      },
      "taskEvalCard": {
        "title": "Submission Feedback",
        "strengths": "What went well",
        "improvements": "Next steps"
      },
      "briefing": {
        "intro": "A premissa apresentada na preparação fica aqui para você revisitar a qualquer momento na cena.",
        "tablistLabel": "Abas do painel direito",
        "submissionTab": "Enviar",
        "briefingTab": "Resumo",
        "setting": "Cenário",
        "learnerRole": "Seu papel",
        "goal": "Objetivo",
        "rules": "Regras",
        "cast": "Personagens",
        "identity": "Identidade",
        "situation": "Situação"
      },
      "submission": {
        "textSubmission": "Text submission",
        "fileTooLarge": "File exceeds 5 MB limit. Try splitting or compressing.",
        "contentRequired": "Content cannot be empty",
        "readFileFailed": "Failed to read file: {{error}}",
        "parsingPdf": "Parsing PDF…",
        "parsePdfFailed": "Failed to parse PDF: {{error}}",
        "pdfNoText": "No extractable text found in this PDF.",
        "imageUploadFailed": "Failed to upload image: {{error}}",
        "imageTooLargeNoStorage": "Image too large to attach without storage configured (max 2 MB locally).",
        "imageNeedsCaptionNoVision": "The current model can't read images. Add a text description of the image before submitting, or switch to a vision-capable model in Settings.",
        "unsupportedFileType": "Unsupported file type. Only text files (.txt, .md, .csv, .json, .py, …) and PDF are accepted.",
        "pasteTab": "Paste text / image",
        "uploadTab": "Upload file",
        "pastePlaceholder": "Paste your code, document, answer — or an image / screenshot — here…",
        "uploadPlaceholder": "Uploaded content will appear here. Edit before submitting…",
        "imageCaptionPlaceholder": "Add an optional caption for this image…",
        "imageSelectedReplace": "Image selected · click to replace",
        "removeImage": "Remove image",
        "processing": "Processing…",
        "cancelProcessingConfirm": "A file is still being processed. Cancel and discard this upload?",
        "currentTask": "Current Task",
        "hints": "Hints",
        "submitOutput": "Submit",
        "evaluating": "Evaluating submission…",
        "lockedWhileStreaming": "The instructor is replying — please wait before submitting.",
        "evalFailed": "Falha na avaliação: {{error}}",
        "submittedCount": "{{count}} submitted",
        "submissionHistory": "Submission History",
        "fromTask": "Task: {{title}}",
        "download": "Download",
        "viewSubmission": "View submission",
        "noActiveTask": "No active task.",
        "canceling": "Cancel",
        "submitting": "Submitting…",
        "selectFileHint": "Choose a file · Max 5 MB · Text, PDF or image",
        "modalTitle": "Submit your work",
        "modalTaskLabel": "Task: {{title}}",
        "fileRead": "Read: {{filename}} · {{size}} KB",
        "submittedBadge": "Submitted ({{count}})",
        "receiptFile": "File: {{filename}}",
        "receiptTemplate": "Submitted work for this task ({{label}})."
      },
      "agentTabs": {
        "noAgent": "No AI agent configured for this project."
      },
      "completion": {
        "noWhatsNext": "The final evaluation hasn't been written yet.",
        "backToWorkspace": "Back to Workspace",
        "completionCta": "View Report",
        "title": "Completion Report",
        "whatYouBuilt": "What you built",
        "whatYouLearned": "What you learned",
        "whatsNext": "What's next",
        "noDataFallback": "Not yet written",
        "stageReview": "Stage Reviews",
        "summary": "You completed {{completed}} of {{total}} tasks across {{stages}} stages.",
        "statConcepts": "Concepts mastered",
        "statTurns": "Messages exchanged",
        "statScope": "Stages · Tasks",
        "statDuration": "Time spent",
        "statSubmissions": "Work submitted",
        "coreStageBadge": "Core",
        "conceptsInStageLabel": "Concepts:",
        "submissionsInStage": "Submitted {{count}} piece(s) of work",
        "coreConceptGrasp": "Core concept \"{{concept}}\" — {{quality}}",
        "stageNoData": "No recorded output in this stage.",
        "highlightsTitle": "Highlights",
        "scenario": {
          "summary": "Você concluiu todos os {{acts}} atos deste cenário. Veja como foi o role-play.",
          "whatYouDidWell": "O que você fez bem",
          "skillsPracticed": "Habilidades praticadas",
          "statGoals": "Metas atingidas",
          "statActs": "Atos concluídos",
          "goalReviewTitle": "Revisão ato a ato",
          "goalReviewHint": "Este cenário definiu algumas metas-chave para cada ato. Veja uma retrospectiva de como sua conversa realmente foi — desta vez você atingiu {{achieved}} de {{total}}.",
          "goalListTitle": "O que cada ato pediu de você",
          "goalListHint": "Este cenário definiu algumas metas-chave para cada ato. Veja uma retrospectiva do que cada ato pediu que você fizesse.",
          "goalAchieved": "atingida",
          "goalPartial": "parcial",
          "goalMissed": "não atingida",
          "statGoodDecisions": "Boas decisões",
          "statScore": "Pontuação de decisão",
          "statBeats": "Atos concluídos",
          "decisionReviewTitle": "Revisão das decisões",
          "good": "boas",
          "ok": "razoáveis",
          "poor": "a melhorar",
          "decisionScore": "Pontuação de decisão {{score}}",
          "castLabel": "Você interagiu com: {{names}}"
        },
        "highlight": {
          "independence": "You demonstrated {{unlocks}}/{{total}} concepts on your own — no prompting needed. Solid understanding.",
          "resilience": "In \"{{title}}\" you overcame {{errors}} errors, tackling each one — real grit.",
          "resilienceGeneral": "You overcame {{errors}} errors, tackling each one — real grit.",
          "completion": "You completed every task. Steady progress all the way through."
        },
        "synthesisQuality": {
          "strong": "Strong understanding ✅",
          "ok": "Good grasp 👍",
          "weak": "Room to grow 💪"
        },
        "durationMinutes": "{{m}} min",
        "durationHours": "{{h}} hr",
        "durationHoursMinutes": "{{h}} hr {{m}} min"
      },
      "completionCard": {
        "title": "Project Complete · Completion",
        "subtitle": "Congratulations! You finished the entire project.",
        "description": "Based on your performance data (time spent, conversations, error recovery, concepts unlocked…), we have generated a completion report showing what you built, what you learned, and where to go next."
      }
    }
  },
  "share": {
    "notReady": "Disponível após a geração ser concluída"
  },
  "classroom": {
    "recentClassrooms": "Recentes",
    "today": "Hoje",
    "yesterday": "Ontem",
    "daysAgo": "dias atrás",
    "slides": "slides",
    "nameCopied": "Nome copiado",
    "deleteConfirmTitle": "Excluir",
    "delete": "Excluir",
    "rename": "Renomear",
    "renamePlaceholder": "Digite o nome da sala",
    "renameFailed": "Falha ao renomear a sala",
    "searchPlaceholder": "Pesquisar cursos...",
    "searchAriaLabel": "Pesquisar cursos",
    "clearSearch": "Limpar",
    "searchEmpty": "Nenhum curso corresponde à sua busca",
    "newFolderTitle": "Nova pasta",
    "newFolderDesc": "Organize cursos por tópico para facilitar o acesso.",
    "newFolderInline": "Nova pasta",
    "folderNameLabel": "Nome da pasta",
    "folderNamePlaceholder": "Ex: Matemática, Inglês, Cursos principais",
    "folderNameHint": "Caracteres largos e estreitos são aceitos; espaços contam.",
    "folderNameExists": "Já existe uma pasta com esse nome.",
    "folderCountLimit": "Limite de pastas atingido.",
    "folderWidth": "Largura {{width}}/{{max}}",
    "folderCreate": "Criar",
    "folderBadge": "Pasta",
    "folderCourseCountUnit": "cursos",
    "deleteFolderTitle": "Excluir pasta \"{{name}}\"",
    "deleteFolderEmptyDesc": "Esta pasta está vazia. A exclusão não pode ser desfeita.",
    "deleteFolderUngroupDesc": "Os cursos permanecem em \"Meus cursos\", apenas sem pasta.",
    "moveToFolder": "Mover para pasta",
    "moveToFolderLabel": "Mover para a pasta",
    "ungrouped": "Sem pasta",
    "searchResults": "Resultados da busca",
    "folderCreateFailed": "Falha ao criar a pasta",
    "folderRenameFailed": "Falha ao renomear a pasta",
    "folderDeleteFailed": "Falha ao excluir a pasta",
    "moveFailed": "Falha ao mover o curso",
    "emptyFolderHint": "Esta pasta está vazia",
    "emptyLibraryHint": "Nenhum curso ainda — crie um acima ou importe um curso.",
    "folderNameEmpty": "O nome da pasta não pode estar vazio",
    "deleteFolderOnly": "Excluir apenas a pasta",
    "deleteFolderAndCourses": "Excluir pasta e {{count}} curso",
    "deleteFolderAndCourses_other": "Excluir pasta e {{count}} cursos",
    "deleteFolderConfirmRemove": "Isto remove a pasta e seus cursos, incluindo o histórico de chat.",
    "notFound": "Curso não encontrado",
    "notFoundDesc": "Este curso não existe ou foi excluído.",
    "backToHome": "Voltar ao início"
  },
  "upload": {
    "pdfSizeLimit": "Suporta arquivos PDF de até 50 MB",
    "courseMaterialSizeLimit": "Documentos, apresentações, planilhas, imagens e texto — até 50 MB (formatos aceitos dependem do extrator selecionado)",
    "generateFailed": "Falha ao gerar a sala, tente novamente",
    "requirementPlaceholder": "Conte-me o que você quer aprender, por exemplo:\n\"Me ensine Python do zero em 30 minutos\"\n\"Explique a Transformada de Fourier no quadro\"\n\"Como jogar o jogo de tabuleiro Avalon\"",
    "requirementRequired": "Por favor, descreva os objetivos do curso",
    "fileTooLarge": "Arquivo muito grande. Selecione um arquivo com menos de 50 MB",
    "courseMaterialCountLimit": "Você pode enviar até 5 arquivos de material do curso",
    "courseMaterialTotalSizeLimit": "O tamanho total dos materiais deve ser menor que 150 MB",
    "unsupportedCourseMaterial": "O extrator atual não suporta este formato. Troque o extrator ou escolha outro arquivo."
  },
  "generation": {
    "pdfLoadFailed": "Falha ao carregar o PDF, tente novamente",
    "pdfParseFailed": "Falha ao analisar o PDF",
    "analyzingCourseMaterial": "Analisando documentos",
    "analyzingCourseMaterialDesc": "Extraindo estrutura e conteúdo do documento...",
    "courseMaterialLoadFailed": "Falha ao carregar o material do curso, tente novamente",
    "courseMaterialParseFailed": "Falha ao analisar o material do curso",
    "streamNotReadable": "Não foi possível ler o fluxo de geração",
    "generatingOutlines": "Esboçando o Roteiro do Curso",
    "generatingOutlinesDesc": "Estruturando o caminho de aprendizagem...",
    "generatingSlideContent": "Gerando Conteúdo das Páginas",
    "generatingSlideContentDesc": "Criando slides, questionários e conteúdo interativo...",
    "generatingActions": "Gerando Ações de Ensino",
    "generatingActionsDesc": "Orquestrando narração, destaques e interações...",
    "generationComplete": "Geração concluída!",
    "generationFailed": "Falha na geração",
    "speechFailed": "Falha ao gerar a fala",
    "retryScene": "Tentar novamente",
    "retryingScene": "Regerando...",
    "backToHome": "Voltar ao Início",
    "sessionNotFound": "Sessão Não Encontrada",
    "sessionNotFoundDesc": "Preencha os objetivos do curso para iniciar a geração.",
    "goBackAndRetry": "Voltar e Tentar de Novo",
    "classroomReady": "Seu ambiente de aprendizagem com IA foi gerado com sucesso.",
    "aiWorking": "Agentes de IA Trabalhando...",
    "textTruncated": "O texto do documento é longo; usando os primeiros {{n}} caracteres",
    "imageTruncated": "{{total}} imagens encontradas, excedendo o limite de {{max}}. As imagens excedentes usarão apenas descrições em texto",
    "agentGeneration": "Gerando os Papéis da Sala",
    "agentGenerationDesc": "Gerando papéis com base no conteúdo do curso...",
    "agentRevealTitle": "Seus Papéis da Sala",
    "viewAgents": "Ver Papéis",
    "continue": "Continuar",
    "outlineRetrying": "Problema na geração do roteiro, tentando novamente...",
    "outlineEmptyResponse": "O modelo não retornou roteiros válidos. Verifique a configuração do modelo e tente novamente",
    "outlineGenerateFailed": "Falha ao gerar roteiro, tente novamente mais tarde",
    "sceneGenerateFailed": "Falha ao gerar cena, tente novamente mais tarde",
    "sceneGenerateAuthFailed": "A geração da cena falhou porque o provedor do modelo rejeitou as credenciais. Verifique a configuração do modelo.",
    "sceneGenerateRateLimited": "A geração da cena atingiu o limite de requisições. Aguarde um momento e tente novamente.",
    "sceneGenerateProviderUnavailable": "O provedor do modelo está temporariamente indisponível. Tente novamente mais tarde.",
    "sceneGenerateInvalidResponse": "O modelo não retornou conteúdo de cena válido. Tente outro modelo ou ajuste os requisitos do curso.",
    "reviewOutlineTitle": "Revise seu roteiro",
    "reviewOutlineDesc": "Edite, reordene, remova ou adicione cenas antes do início da geração de conteúdo.",
    "reviewOutlineAutoContinue": "A geração continuará automaticamente, a menos que você revise o roteiro.",
    "outlineEditorTitle": "Roteiro das cenas",
    "outlineEditorSummary": "{{count}} cenas no total. Você pode editar, adicionar, remover ou reordenar antes do início da geração.",
    "addFirstScene": "Adicionar primeira cena",
    "noOutlines": "Ainda não há roteiros de cenas",
    "sceneTitlePlaceholder": "Título da cena",
    "sceneTypeSlide": "Slide",
    "sceneTypeQuiz": "Questionário",
    "sceneTypeInteractive": "Interativa",
    "sceneTypePbl": "PBL",
    "sceneDescriptionPlaceholder": "Descreva brevemente o propósito e o conteúdo desta cena",
    "quizQuestionCount": "Número de questões",
    "quizDifficulty": "Dificuldade",
    "quizType": "Tipo de questão",
    "quizDifficultyEasy": "Fácil",
    "quizDifficultyMedium": "Média",
    "quizDifficultyHard": "Difícil",
    "quizTypeSingle": "Escolha única",
    "quizTypeMultiple": "Múltipla escolha",
    "quizTypeText": "Discursiva",
    "alwaysReviewOutlines": "Sempre revisar roteiros antes de gerar",
    "outlineEditorEyebrow": "Roteiro gerado por IA",
    "outlineEditorStreamingProgress": "Em streaming · {{count}} cenas prontas",
    "outlineEditorStreamingWaiting": "Aguardando a primeira cena chegar…",
    "outlineEditorWaitingConfirm": "Aguardando roteiros…",
    "outlineExpandHint": "Toque para revisar",
    "reviewOutlineStreamingDesc": "O roteiro ainda está chegando. Você poderá editar quando estiver completo.",
    "addKeyPoint": "Adicionar ponto-chave",
    "removeKeyPoint": "Remover ponto-chave",
    "insertSceneHere": "Inserir uma cena aqui",
    "deleteSceneConfirm": "Excluir esta cena?",
    "deleteSceneConfirmDesc": "Esta cena e seus pontos-chave serão removidos do roteiro.",
    "deleteSceneConfirmAction": "Excluir",
    "collapseEditor": "Recolher",
    "quizConfigSummary": "{{count}} questões",
    "interactiveWidgetKind": "Tipo de widget",
    "widgetSimulation": "Simulação",
    "widgetDiagram": "Diagrama",
    "widgetCode": "Código",
    "widgetGame": "Jogo",
    "widgetVisualization3d": "3D",
    "interactiveConcept": "Conceito",
    "interactiveConceptPlaceholder": "Conceito a explorar",
    "pblConfigSummary": "Projeto",
    "pblSubtype": "Tipo de PBL",
    "pblSubtypeProject": "Projeto",
    "pblSubtypeScenario": "Cenário",
    "pblProjectTopic": "Tema do projeto",
    "pblProjectTopicPlaceholder": "Tema do projeto",
    "pblProjectDescription": "Descrição",
    "pblProjectDescriptionPlaceholder": "O que os alunos vão criar",
    "pblScenarioBrief": "Resumo do cenário",
    "pblScenarioBriefPlaceholder": "Situação, personagens e objetivo de prática",
    "pblTargetSkills": "Habilidades-alvo",
    "pblAddSkill": "Adicionar habilidade",
    "widgetProceduralSkill": "Habilidade prática",
    "removeSkill": "Remover habilidade",
    "dragSceneHint": "Arraste para reordenar; ou foque e pressione Ctrl/⌘ + ↑ / ↓",
    "deleteScene": "Excluir cena",
    "backToRequirements": "Voltar aos objetivos",
    "confirmAndGenerateCourse": "Confirmar e gerar curso",
    "generatingInProgress": "Gerando...",
    "webSearching": "Buscando na Web",
    "webSearchingDesc": "Pesquisando informações atualizadas na web",
    "webSearchFailed": "Falha na pesquisa na web",
    "outlinesReadyCount": "{{ready}} / {{total}} seções prontas",
    "jumpToBlankTitle": "Ir para uma seção que ainda precisa de título",
    "analyzingMediaMaterial": "Analisando áudio/vídeo"
  },
  "settings": {
    "title": "Configurações",
    "description": "Configurar opções do aplicativo",
    "language": "Idioma",
    "languageDesc": "Selecione o idioma da interface",
    "theme": "Tema",
    "themeDesc": "Selecione o modo de tema (Claro/Escuro/Sistema)",
    "themeOptions": {
      "light": "Claro",
      "dark": "Escuro",
      "system": "Sistema"
    },
    "apiKey": "Chave de API",
    "apiKeyDesc": "Configure sua chave de API",
    "apiBaseUrl": "URL do Endpoint da API",
    "apiBaseUrlDesc": "Configure a URL do endpoint da sua API",
    "apiKeyRequired": "A chave de API não pode ficar vazia",
    "model": "Configuração do Modelo",
    "modelDesc": "Configure os modelos de IA",
    "modelPlaceholder": "Digite ou selecione o nome do modelo",
    "ttsModel": "Modelo TTS",
    "ttsModelDesc": "Configure os modelos TTS",
    "ttsModelPlaceholder": "Digite ou selecione o nome do modelo TTS",
    "ttsModelOptions": {
      "openaiTts": "OpenAI TTS",
      "azureTts": "Azure TTS"
    },
    "availableModels": "Modelos Disponíveis",
    "modelSelectedViaVoice": "O modelo é determinado pela escolha da voz",
    "testConnection": "Testar Conexão",
    "testConnectionDesc": "Testar se a configuração de API atual está disponível",
    "testing": "Testando...",
    "agentSettings": "Configurações dos Agentes",
    "agentSettingsDesc": "Selecione os agentes que participarão da conversa. Escolha 1 para modo de agente único, ou vários para modo colaborativo.",
    "agentMode": "Modo de Agentes",
    "agentModePreset": "Predefinido",
    "agentModeAuto": "Gerar automaticamente",
    "agentModeAutoDesc": "A IA criará automaticamente papéis adequados",
    "autoAgentCount": "Número de Agentes",
    "autoAgentCountDesc": "Quantidade de agentes a gerar (incluindo o professor)",
    "atLeastOneAgent": "Selecione ao menos 1 agente",
    "singleAgentMode": "Modo de Agente Único",
    "directAnswer": "Resposta Direta",
    "multiAgentMode": "Modo Multi-Agente",
    "agentsCollaborating": "Discussão Colaborativa",
    "agentsCollaboratingCount": "{{count}} agentes selecionados para discussão colaborativa",
    "priority": "Prioridade",
    "actions": "Ações",
    "actionCount": "{{count}} ações",
    "selectedAgent": "Agente Selecionado",
    "selectedAgents": "Agentes Selecionados",
    "required": "Obrigatório",
    "agentNames": {
      "default-1": "Professor de IA",
      "default-2": "Assistente de IA",
      "default-3": "Animador da Turma",
      "default-4": "Mente Curiosa",
      "default-5": "Anotador",
      "default-6": "Pensador Profundo"
    },
    "agentRoles": {
      "teacher": "Professor",
      "assistant": "Assistente",
      "student": "Estudante"
    },
    "agentDescriptions": {
      "default-1": "Professor principal com explicações claras e bem estruturadas",
      "default-2": "Apoia o aprendizado e ajuda a esclarecer pontos-chave",
      "default-3": "Traz humor e energia para a sala de aula",
      "default-4": "Sempre curioso, adora perguntar por quê e como",
      "default-5": "Registra e organiza as anotações da aula com dedicação",
      "default-6": "Pensa profundamente e explora a essência dos temas"
    },
    "close": "Fechar",
    "save": "Salvar",
    "providers": "LLM",
    "addProviderDescription": "Adicione provedores de modelo personalizados para ampliar os modelos de IA disponíveis",
    "providerNames": {
      "openai": "OpenAI",
      "azure": "Azure OpenAI",
      "anthropic": "Claude",
      "google": "Gemini",
      "bedrock": "Amazon Bedrock",
      "deepseek": "DeepSeek",
      "qwen": "Qwen",
      "kimi": "Kimi",
      "minimax": "MiniMax",
      "glm": "GLM",
      "siliconflow": "SiliconFlow",
      "doubao": "Doubao",
      "openrouter": "OpenRouter",
      "grok": "Grok",
      "tencent-hunyuan": "Tencent Hunyuan",
      "xiaomi": "Xiaomi MiMo",
      "lemonade": "Lemonade (Local)",
      "ollama": "Ollama (Local)",
      "tavily": "Tavily",
      "bocha": "Bocha",
      "brave": "Brave Search",
      "baidu": "Baidu",
      "claude": "Claude",
      "searxng": "SearXNG"
    },
    "providerTypes": {
      "openai": "Protocolo OpenAI",
      "azure": "Azure OpenAI",
      "anthropic": "Protocolo Claude",
      "google": "Protocolo Gemini",
      "bedrock": "Amazon Bedrock"
    },
    "modelCount": "modelos",
    "modelSingular": "modelo",
    "defaultModel": "Modelo Padrão",
    "webSearch": "Busca na Web",
    "mcp": "MCP",
    "knowledgeBase": "Base de Conhecimento",
    "documentParser": "Analisador de Documentos",
    "conversationSettings": "Conversa",
    "keyboardShortcuts": "Atalhos",
    "generalSettings": "Geral",
    "systemSettings": "Sistema",
    "addProvider": "Adicionar",
    "importFromClipboard": "Importar da Área de Transferência",
    "apiSecret": "Chave de API",
    "apiHost": "URL Base",
    "azureDeploymentHint": "Informe o endpoint do Azure OpenAI acima e adicione cada nome de implantação do Azure como um modelo.",
    "baseUrlRegion": {
      "china": "China",
      "international": "Internacional",
      "xiaomiPayg": "Pagamento por uso",
      "xiaomiTokenPlanCN": "Plano de Tokens CN",
      "xiaomiTokenPlanSGP": "Plano de Tokens SG",
      "xiaomiTokenPlanEU": "Plano de Tokens EU"
    },
    "requestUrl": "URL da Requisição",
    "models": "Modelos",
    "comfyuiWorkflows": "Fluxos de trabalho",
    "comfyuiRefresh": "Atualizar",
    "comfyuiNoWorkflowsFoundPrefix": "Nenhum arquivo JSON de fluxo de trabalho encontrado em",
    "comfyuiAddWorkflowPrefix": "Adicione um arquivo",
    "comfyuiAddWorkflowSuffix": "para começar.",
    "comfyuiFolderHintPrefix": "Coloque os arquivos JSON de fluxo de trabalho na sua pasta",
    "comfyuiFolderHintMiddle": "O nome do arquivo se torna o nome exibido — ex.",
    "comfyuiLoadError": "Falha ao carregar fluxos de trabalho: {error}",
    "addModel": "Adicionar",
    "reset": "Restaurar",
    "fetch": "Buscar",
    "connectionSuccess": "Conexão bem-sucedida",
    "connectionFailed": "Falha na conexão",
    "capabilities": {
      "vision": "Visão",
      "tools": "Ferramentas",
      "streaming": "Streaming"
    },
    "contextWindow": "Contexto",
    "contextShort": "ctx",
    "outputWindow": "Saída",
    "addProviderButton": "Adicionar",
    "addProviderDialog": "Adicionar Provedor de Modelo",
    "providerName": "Nome",
    "providerNamePlaceholder": "ex.: Meu Proxy OpenAI",
    "providerNameRequired": "Digite o nome do provedor",
    "providerApiMode": "Modo da API",
    "apiModeOpenAI": "Protocolo OpenAI",
    "apiModeAnthropic": "Protocolo Claude",
    "apiModeGoogle": "Protocolo Gemini",
    "defaultBaseUrl": "URL Base Padrão",
    "providerIcon": "URL do Ícone do Provedor",
    "requiresApiKey": "Requer Chave de API",
    "deleteProvider": "Excluir Provedor",
    "deleteProviderConfirm": "Tem certeza que deseja excluir este provedor?",
    "addCustomTTSProvider": "Adicionar Provedor TTS Personalizado",
    "addCustomASRProvider": "Adicionar Provedor ASR Personalizado",
    "addCustomAudioProviderDescription": "Adicione um provedor de áudio personalizado compatível com OpenAI",
    "customVoices": "Vozes",
    "voiceIdPlaceholder": "ID da Voz (ex.: alloy)",
    "voiceNamePlaceholder": "Nome de Exibição",
    "addVoice": "Adicionar",
    "modelNamePlaceholder": "Opcional",
    "defaultModelHint": "Nome do modelo enviado nas requisições à API (ex.: kokoro, tts-1)",
    "noVoicesAdded": "Nenhuma voz adicionada ainda. Adicione vozes abaixo para seleção por agente.",
    "noModelsAdded": "Nenhum modelo adicionado ainda. Adicione modelos abaixo para habilitar a seleção.",
    "noModelsWarning": "Adicione pelo menos um modelo abaixo antes de usar este provedor.",
    "asrNoTranscription": "Nenhuma transcrição gerada. Tente falar mais alto ou por mais tempo.",
    "cannotDeleteBuiltIn": "Não é possível excluir provedor nativo",
    "resetToDefault": "Restaurar Padrão",
    "resetToDefaultDescription": "Restaure a lista de modelos para a configuração padrão (chave de API e URL base serão preservadas)",
    "resetConfirmDescription": "Isto removerá todos os modelos personalizados e restaurará a lista padrão. Chave de API e URL base serão preservadas.",
    "confirmReset": "Confirmar Restauração",
    "resetSuccess": "Restauração para padrão bem-sucedida",
    "saveSuccess": "Configurações salvas",
    "saveFailed": "Falha ao salvar configurações, tente novamente",
    "cannotDeleteBuiltInModel": "Não é possível excluir modelo nativo",
    "cannotEditBuiltInModel": "Não é possível editar modelo nativo",
    "modelIdRequired": "Digite o ID do modelo",
    "noModelsAvailable": "Nenhum modelo disponível para teste",
    "providerMetadata": "Metadados do Provedor",
    "editModel": "Editar Modelo",
    "editModelDescription": "Edite a configuração e capacidades do modelo",
    "addNewModel": "Novo Modelo",
    "modelsManagementDescription": "Gerencie os modelos e capacidades disponíveis para este provedor.",
    "addNewModelDescription": "Adicionar uma nova configuração de modelo",
    "modelId": "ID do Modelo",
    "modelIdPlaceholder": "ex.: gpt-4o",
    "modelName": "Nome de Exibição",
    "modelCapabilities": "Capacidades",
    "advancedSettings": "Configurações Avançadas",
    "contextWindowLabel": "Janela de Contexto",
    "contextWindowPlaceholder": "ex.: 128000",
    "outputWindowLabel": "Tokens Máx. de Saída",
    "outputWindowPlaceholder": "ex.: 4096",
    "testModel": "Testar Modelo",
    "deleteModel": "Excluir",
    "cancelEdit": "Cancelar",
    "saveModel": "Salvar",
    "howToUse": "Como Usar",
    "step1ConfigureProvider": "Vá em \"Provedores de Modelo\", selecione ou adicione um provedor e configure a conexão (chave de API, URL base etc.)",
    "step2SelectModel": "Escolha o modelo que deseja usar em \"Modelo Ativo\" abaixo",
    "step3StartUsing": "Após salvar, o sistema usará o modelo selecionado",
    "activeModel": "Modelo Ativo",
    "activeModelDescription": "Selecione o modelo para conversas e geração de conteúdo",
    "searchModels": "Pesquisar modelos",
    "noModelsFound": "Nenhum modelo correspondente encontrado",
    "noConfiguredProviders": "Nenhum provedor configurado",
    "configureProvidersFirst": "Configure a conexão em \"Provedores de Modelo\" à esquerda",
    "currentlyUsing": "Em uso",
    "ttsSettings": "Texto para Fala",
    "asrSettings": "Reconhecimento de Fala",
    "audioSettings": "Configurações de Áudio",
    "ttsSection": "Texto para Fala (TTS)",
    "asrSection": "Reconhecimento Automático de Fala (ASR)",
    "ttsDescription": "TTS (Texto para Fala) — converte texto em fala",
    "asrDescription": "ASR (Reconhecimento Automático de Fala) — converte fala em texto",
    "enableTTS": "Habilitar Texto para Fala",
    "ttsEnabledDescription": "Quando ativado, o áudio de fala será gerado durante a criação do curso",
    "ttsVoiceConfigHint": "A voz por agente pode ser configurada em \"Configuração de Papéis da Sala\" na página inicial",
    "enableASR": "Habilitar Reconhecimento de Fala",
    "asrEnabledDescription": "Quando ativado, os estudantes podem usar o microfone para entrada por voz",
    "ttsProvider": "Provedor TTS",
    "ttsLanguageFilter": "Filtro de Idioma",
    "allLanguages": "Todos os Idiomas",
    "ttsVoice": "Voz",
    "ttsSpeed": "Velocidade",
    "ttsBaseUrl": "URL Base",
    "ttsApiKey": "Chave de API",
    "doubaoAppId": "App ID",
    "doubaoAccessKey": "Access Key",
    "asrProvider": "Provedor ASR",
    "asrLanguage": "Idioma de Reconhecimento",
    "asrBaseUrl": "URL Base",
    "asrApiKey": "Chave de API",
    "enterApiKey": "Digite a chave de API",
    "enterCustomBaseUrl": "Digite uma URL base personalizada",
    "browserNativeNote": "O ASR nativo do navegador não exige configuração e é totalmente gratuito",
    "providerOpenAITTS": "OpenAI TTS (gpt-4o-mini-tts)",
    "providerAzureTTS": "Azure TTS",
    "providerGLMTTS": "GLM TTS",
    "providerQwenTTS": "Qwen TTS (Alibaba Cloud Bailian)",
    "providerVoxCPMTTS": "VoxCPM2",
    "providerDoubaoTTS": "Doubao TTS 2.0 (Volcengine)",
    "providerElevenLabsTTS": "ElevenLabs TTS",
    "providerMiniMaxTTS": "MiniMax TTS",
    "providerLemonadeTTS": "Lemonade TTS (Local)",
    "providerBrowserNativeTTS": "TTS Nativo do Navegador",
    "voxcpmBackend": "Backend",
    "voxcpmBaseUrlPending": "Digite uma URL base para gerar a URL da requisição",
    "voxcpmAutoVoiceNoPreview": "A Voz Automática é gerada a partir do contexto do agente e não pode ser pré-visualizada diretamente",
    "voxcpmVoicesTitle": "Vozes VoxCPM",
    "voxcpmVoicesDescription": "Salvas neste navegador e adicionadas ao conjunto de vozes da Barra de Agentes.",
    "voxcpmAutoVoicePrivacyNote": "A Voz Automática envia a persona do agente ao seu backend VoxCPM configurado como prompt de voz.",
    "voxcpmPromptCount": "Prompt {{count}}",
    "voxcpmCloneCount": "Clone {{count}}",
    "voxcpmCloneUnsupported": "O backend atual não suporta clonagem",
    "voxcpmVoicePool": "Conjunto de Vozes",
    "voxcpmVoiceCount": "{{count}} vozes",
    "voxcpmAutoVoice": "Voz Automática",
    "voxcpmAutoVoiceDescription": "Usa a persona do agente como prompt de voz",
    "voxcpmUnavailable": "Indisponível",
    "voxcpmClone": "Clonar",
    "voxcpmCloneUnsupportedDetail": "O backend atual não suporta clonagem",
    "voxcpmNoCustomVoices": "Ainda não há vozes personalizadas",
    "voxcpmCloneSaveOnly": "Salva somente para este backend",
    "voxcpmVoiceNamePlaceholder": "Nome da voz",
    "voxcpmPromptPlaceholder": "Exemplo: voz de professor clara, natural e em ritmo moderado",
    "voxcpmAddVoice": "Adicionar Voz",
    "voxcpmCloneVoiceNamePlaceholder": "Nome da voz clonada",
    "voxcpmUploadReferenceAudio": "Enviar áudio de referência",
    "voxcpmRecord": "Gravar",
    "voxcpmReferenceAudioLimitHint": "O áudio de referência deve ter no máximo 10 MB / 60 segundos e é convertido para WAV antes de ser salvo.",
    "voxcpmReferenceTextPlaceholder": "Transcrição do áudio de referência, opcional",
    "voxcpmVoiceDescriptionPlaceholder": "Descrição da voz, opcional",
    "voxcpmAddClone": "Adicionar Clone",
    "voxcpmRecordingUnsupported": "Este navegador não suporta gravação",
    "voxcpmRecordedVoiceName": "Voz Gravada",
    "voxcpmRecordingFailed": "Falha na conversão da gravação",
    "voxcpmRecordingStartFailed": "Não foi possível iniciar a gravação",
    "voxcpmBaseUrlRequired": "Digite uma URL base do VoxCPM primeiro",
    "voxcpmPreviewFailed": "Falha na pré-visualização",
    "voxcpmVoiceSaved": "Voz VoxCPM salva",
    "voxcpmVoiceSaveFailed": "Falha ao salvar a voz",
    "voxcpmReferenceAudioInvalid": "Áudio de referência inválido",
    "voxcpmCloneSaved": "Voz clonada VoxCPM salva",
    "voxcpmCloneSaveFailed": "Falha ao salvar voz clonada",
    "voxcpmStopPreview": "Parar pré-visualização",
    "voxcpmPreviewVoice": "Pré-visualizar voz",
    "voxcpmDeleteVoice": "Excluir voz",
    "qwenCloneVoicesTitle": "Qwen TTS Cloned Voices",
    "qwenCloneRefText": "Enter the verbatim transcript of the reference audio",
    "qwenCloneRefAudioHint": "Use a clean 1–60 second voice sample. A 10–20 second sample is recommended; audio is converted to 24 kHz mono PCM WAV.",
    "qwenCloneSaved": "Qwen cloned voice registered and saved",
    "qwenCloneSaveFailed": "Failed to register the Qwen cloned voice",
    "qwenCloneUnsupported": "Recording is not supported in this browser; upload an audio file instead.",
    "qwenCloneSpeedHint": "Cloned voices always synthesize at 1× speed.",
    "qwenCloneDeleteWarning": "The voice was removed locally, but provider deletion failed.",
    "qwenCloneNarrationUnavailable": "The assigned voice is unavailable. Narration will use another enabled voice instead.",
    "qwenCloneDiscussionUnavailable": "The assigned voice is unavailable. Discussion will use another enabled voice instead.",
    "providerOpenAIWhisper": "OpenAI ASR (gpt-4o-mini-transcribe)",
    "providerBrowserNative": "ASR Nativo do Navegador",
    "providerQwenASR": "Qwen ASR (Alibaba Cloud Bailian)",
    "providerFunASRASR": "FunASR (Local)",
    "providerLemonadeASR": "Lemonade ASR (Local)",
    "providerAzureASR": "Azure STT",
    "providerUnpdf": "unpdf (Nativo)",
    "providerMinerU": "MinerU",
    "providerMinerUCloud": "MinerU (Nuvem)",
    "browserNativeTTSNote": "O TTS nativo do navegador não exige configuração e é totalmente gratuito, usando vozes integradas ao sistema",
    "testTTS": "Testar TTS",
    "testASR": "Testar ASR",
    "testSuccess": "Teste bem-sucedido",
    "testFailed": "Teste falhou",
    "ttsTestText": "Texto de Teste TTS",
    "ttsTestSuccess": "Teste TTS bem-sucedido, áudio reproduzido",
    "ttsTestFailed": "Falha no teste TTS",
    "asrTestSuccess": "Reconhecimento de fala bem-sucedido",
    "asrTestFailed": "Falha no reconhecimento de fala",
    "asrProcessing": "Processando...",
    "asrResult": "Resultado do Reconhecimento",
    "asrNotSupported": "O navegador não suporta a API de Reconhecimento de Fala",
    "browserTTSNotSupported": "O navegador não suporta a API de Síntese de Fala",
    "browserTTSNoVoices": "O navegador atual não tem vozes TTS disponíveis",
    "microphoneAccessDenied": "Acesso ao microfone negado",
    "microphoneAccessFailed": "Falha ao acessar o microfone",
    "asrResultPlaceholder": "O resultado do reconhecimento aparecerá após a gravação",
    "useThisProvider": "Usar Este Provedor",
    "fetchVoices": "Buscar Lista de Vozes",
    "fetchingVoices": "Buscando...",
    "voicesFetched": "Vozes obtidas",
    "fetchVoicesFailed": "Falha ao buscar vozes",
    "voiceApiKeyRequired": "Chave de API obrigatória",
    "voiceBaseUrlRequired": "URL base obrigatória",
    "ttsTestTextPlaceholder": "Digite o texto a ser convertido",
    "ttsTestTextDefault": "Olá, este é um teste de fala.",
    "startRecording": "Iniciar Gravação",
    "stopRecording": "Parar Gravação",
    "recording": "Gravando...",
    "transcribing": "Transcrevendo...",
    "transcriptionResult": "Resultado da Transcrição",
    "noTranscriptionResult": "Sem resultado de transcrição",
    "baseUrlOptional": "URL Base (opcional)",
    "defaultValue": "Padrão",
    "voiceMarin": "Recomendada — Melhor Qualidade",
    "voiceCedar": "Recomendada — Melhor Qualidade",
    "voiceAlloy": "Neutra, Equilibrada",
    "voiceAsh": "Firme, Profissional",
    "voiceBallad": "Elegante, Lírica",
    "voiceCoral": "Calorosa, Amigável",
    "voiceEcho": "Masculina, Clara",
    "voiceFable": "Narrativa, Vívida",
    "voiceNova": "Feminina, Brilhante",
    "voiceOnyx": "Masculina, Grave",
    "voiceSage": "Sábia, Serena",
    "voiceShimmer": "Feminina, Suave",
    "voiceVerse": "Natural, Fluida",
    "glmVoiceTongtong": "Voz padrão",
    "glmVoiceChuichui": "Voz Chuichui",
    "glmVoiceXiaochen": "Voz Xiaochen",
    "glmVoiceJam": "Voz Jam",
    "glmVoiceKazi": "Voz Kazi",
    "glmVoiceDouji": "Voz Douji",
    "glmVoiceLuodo": "Voz Luodo",
    "qwenVoiceCherry": "Solar, calorosa e natural",
    "qwenVoiceSerena": "Gentil e suave",
    "qwenVoiceEthan": "Enérgica e vibrante",
    "qwenVoiceChelsie": "Namorada virtual estilo anime",
    "qwenVoiceMomo": "Brincalhona e alegre",
    "qwenVoiceVivian": "Fofa e atrevida",
    "qwenVoiceMoon": "Descolado e bonito",
    "qwenVoiceMaia": "Intelectual e gentil",
    "qwenVoiceKai": "Um SPA para os seus ouvidos",
    "qwenVoiceNofish": "Designer que não consegue pronunciar sons retroflexos",
    "qwenVoiceBella": "Lolita que não fica bêbada",
    "qwenVoiceJennifer": "Voz feminina americana cinematográfica e de marca",
    "qwenVoiceRyan": "Ritmo acelerado, performance dramática",
    "qwenVoiceKaterina": "Mulher madura com ritmo marcante",
    "qwenVoiceAiden": "Menino americano que domina a cozinha",
    "qwenVoiceEldricSage": "Ancião firme e sábio",
    "qwenVoiceMia": "Suave como água de primavera, bem-comportada como a neve",
    "qwenVoiceMochi": "Pequena adulta esperta com inocência infantil",
    "qwenVoiceBellona": "Voz alta, pronúncia clara, personagens vívidos",
    "qwenVoiceVincent": "Voz rouca única que conta histórias de guerra e honra",
    "qwenVoiceBunny": "Lolita super fofa",
    "qwenVoiceNeil": "Apresentador profissional de notícias",
    "qwenVoiceElias": "Instrutor profissional",
    "qwenVoiceArthur": "Voz simples marcada pelos anos e pelo tabaco seco",
    "qwenVoiceNini": "Voz macia e grudenta como mochi",
    "qwenVoiceEbona": "Seu sussurro é como uma chave enferrujada",
    "qwenVoiceSeren": "Voz gentil e tranquilizante para te ajudar a dormir",
    "qwenVoicePip": "Travesso, mas cheio de inocência infantil",
    "qwenVoiceStella": "Voz de menina doce e confusa que se firma ao gritar",
    "qwenVoiceBodega": "Tio espanhol entusiasmado",
    "qwenVoiceSonrisa": "Senhora latino-americana entusiasmada",
    "qwenVoiceAlek": "Frio em batalha, caloroso sob o casaco de lã",
    "qwenVoiceDolce": "Tio italiano preguiçoso",
    "qwenVoiceSohee": "Unnie coreana gentil e alegre",
    "qwenVoiceOnoAnna": "Amiga de infância travessa",
    "qwenVoiceLenn": "Jovem alemão racional, de terno, que ouve pós-punk",
    "qwenVoiceEmilien": "Irmão mais velho francês e romântico",
    "qwenVoiceAndre": "Voz masculina magnética, natural e calma",
    "qwenVoiceRadioGol": "Poeta do futebol — Rádio Gol!",
    "qwenVoiceJada": "Senhora animada de Xangai",
    "qwenVoiceDylan": "Garoto de Pequim",
    "qwenVoiceLi": "Professora paciente de yoga",
    "qwenVoiceMarcus": "Rosto largo, palavras curtas, coração firme — sotaque típico de Shaanxi",
    "qwenVoiceRoy": "Garoto taiwanês bem-humorado e direto",
    "qwenVoicePeter": "Animador profissional de crosstalk de Tianjin",
    "qwenVoiceSunny": "Doce garota de Sichuan",
    "qwenVoiceEric": "Cavalheiro de Chengdu",
    "qwenVoiceRocky": "Cara bem-humorado de Hong Kong",
    "qwenVoiceKiki": "Garota doce de Hong Kong",
    "lang_auto": "Detecção automática",
    "lang_zh": "中文",
    "lang_yue": "粤語",
    "lang_en": "English",
    "lang_ja": "日本語",
    "lang_ko": "한국어",
    "lang_es": "Español",
    "lang_fr": "Français",
    "lang_de": "Deutsch",
    "lang_ru": "Русский",
    "lang_ar": "العربية",
    "lang_pt": "Português",
    "lang_it": "Italiano",
    "lang_af": "Afrikaans",
    "lang_hy": "Հայերեն",
    "lang_az": "Azərbaycan",
    "lang_be": "Беларуская",
    "lang_bs": "Bosanski",
    "lang_bg": "Български",
    "lang_ca": "Català",
    "lang_hr": "Hrvatski",
    "lang_cs": "Čeština",
    "lang_da": "Dansk",
    "lang_nl": "Nederlands",
    "lang_et": "Eesti",
    "lang_fi": "Suomi",
    "lang_gl": "Galego",
    "lang_el": "Ελληνικά",
    "lang_he": "עברית",
    "lang_hi": "हिन्दी",
    "lang_hu": "Magyar",
    "lang_is": "Íslenska",
    "lang_id": "Bahasa Indonesia",
    "lang_kn": "ಕನ್ನಡ",
    "lang_kk": "Қазақша",
    "lang_lv": "Latviešu",
    "lang_lt": "Lietuvių",
    "lang_mk": "Македонски",
    "lang_ms": "Bahasa Melayu",
    "lang_mr": "मराठी",
    "lang_mi": "Te Reo Māori",
    "lang_ne": "नेपाली",
    "lang_no": "Norsk",
    "lang_fa": "فارسی",
    "lang_pl": "Polski",
    "lang_ro": "Română",
    "lang_sr": "Српски",
    "lang_sk": "Slovenčina",
    "lang_sl": "Slovenščina",
    "lang_sw": "Kiswahili",
    "lang_sv": "Svenska",
    "lang_tl": "Tagalog",
    "lang_fil": "Filipino",
    "lang_ta": "தமிழ்",
    "lang_th": "ไทย",
    "lang_tr": "Türkçe",
    "lang_uk": "Українська",
    "lang_ur": "اردو",
    "lang_vi": "Tiếng Việt",
    "lang_cy": "Cymraeg",
    "lang_zh-CN": "中文（简体，中国）",
    "lang_zh-TW": "中文（繁體，台灣）",
    "lang_zh-HK": "粵語（香港）",
    "lang_yue-Hant-HK": "粵語（繁體）",
    "lang_en-US": "English (United States)",
    "lang_en-GB": "English (United Kingdom)",
    "lang_en-AU": "English (Australia)",
    "lang_en-CA": "English (Canada)",
    "lang_en-IN": "English (India)",
    "lang_en-NZ": "English (New Zealand)",
    "lang_en-ZA": "English (South Africa)",
    "lang_ja-JP": "日本語（日本）",
    "lang_ko-KR": "한국어（대한민국）",
    "lang_de-DE": "Deutsch (Deutschland)",
    "lang_fr-FR": "Français (France)",
    "lang_es-ES": "Español (España)",
    "lang_es-MX": "Español (México)",
    "lang_es-AR": "Español (Argentina)",
    "lang_es-CO": "Español (Colombia)",
    "lang_it-IT": "Italiano (Italia)",
    "lang_pt-BR": "Português (Brasil)",
    "lang_pt-PT": "Português (Portugal)",
    "lang_ru-RU": "Русский (Россия)",
    "lang_nl-NL": "Nederlands (Nederland)",
    "lang_pl-PL": "Polski (Polska)",
    "lang_cs-CZ": "Čeština (Česko)",
    "lang_da-DK": "Dansk (Danmark)",
    "lang_fi-FI": "Suomi (Suomi)",
    "lang_sv-SE": "Svenska (Sverige)",
    "lang_no-NO": "Norsk (Norge)",
    "lang_tr-TR": "Türkçe (Türkiye)",
    "lang_el-GR": "Ελληνικά (Ελλάδα)",
    "lang_hu-HU": "Magyar (Magyarország)",
    "lang_ro-RO": "Română (România)",
    "lang_sk-SK": "Slovenčina (Slovensko)",
    "lang_bg-BG": "Български (България)",
    "lang_hr-HR": "Hrvatski (Hrvatska)",
    "lang_ca-ES": "Català (Espanya)",
    "lang_ar-SA": "العربية (السعودية)",
    "lang_ar-EG": "العربية (مصر)",
    "lang_he-IL": "עברית (ישראל)",
    "lang_hi-IN": "हिन्दी (भारत)",
    "lang_th-TH": "ไทย (ประเทศไทย)",
    "lang_vi-VN": "Tiếng Việt (Việt Nam)",
    "lang_id-ID": "Bahasa Indonesia (Indonesia)",
    "lang_ms-MY": "Bahasa Melayu (Malaysia)",
    "lang_fil-PH": "Filipino (Pilipinas)",
    "lang_af-ZA": "Afrikaans (Suid-Afrika)",
    "lang_uk-UA": "Українська (Україна)",
    "pdfSettings": "Análise de PDF",
    "documentParsingSettings": "Análise de Documentos",
    "supportedFormats": "Formatos Suportados",
    "mineruSelfHostFormatsNote": "A análise de PDF e imagens requer os extras mineru[pipeline] ou mineru[core] no seu servidor MinerU. Instalações leves do mineru-api podem processar apenas documentos do Office.",
    "pdfParsingSettings": "Configurações de Análise de PDF",
    "pdfDescription": "Escolha o mecanismo de análise de PDF com suporte a extração de texto, processamento de imagens e reconhecimento de tabelas",
    "pdfProvider": "Analisador de PDF",
    "pdfFeatures": "Recursos Suportados",
    "pdfApiKey": "Chave de API",
    "pdfBaseUrl": "URL Base",
    "mineruDescription": "O MinerU é um serviço comercial de análise de PDF com recursos avançados como extração de tabelas, reconhecimento de fórmulas e análise de layout.",
    "mineruApiKeyRequired": "É preciso solicitar uma chave de API no site do MinerU antes de usar.",
    "mineruWarning": "Aviso",
    "mineruCostWarning": "O MinerU é um serviço comercial e pode gerar cobranças. Confira os preços no site do MinerU.",
    "enterMinerUApiKey": "Digite a chave de API do MinerU",
    "mineruLocalDescription": "O MinerU suporta implantação local com análise avançada de PDF (tabelas, fórmulas, layout). Requer implantar o serviço MinerU primeiro.",
    "mineruServerAddress": "Endereço local do servidor MinerU (ex.: http://localhost:8080)",
    "mineruApiKeyOptional": "Necessária somente se o servidor exigir autenticação",
    "mineruCloudApiKeyPlaceholder": "Digite a chave de API do MinerU Cloud",
    "optionalApiKey": "Chave de API opcional",
    "featureText": "Extração de Texto",
    "featureImages": "Extração de Imagens",
    "featureTables": "Extração de Tabelas",
    "featureFormulas": "Reconhecimento de Fórmulas",
    "featureLayoutAnalysis": "Análise de Layout",
    "featureMetadata": "Metadados",
    "enableImageGeneration": "Habilitar Geração de Imagens por IA",
    "imageGenerationDisabledHint": "Quando ativado, imagens serão geradas automaticamente durante a criação do curso",
    "imageSettings": "Geração de Imagens",
    "imageSection": "Texto para Imagem",
    "imageProvider": "Provedor de Geração de Imagens",
    "imageModel": "Modelo de Geração de Imagens",
    "providerSeedream": "Seedream (ByteDance)",
    "providerOpenAIImage": "OpenAI Image",
    "providerQwenImage": "Qwen Image (Alibaba)",
    "providerNanoBanana": "Nano Banana (Gemini)",
    "providerMiniMaxImage": "MiniMax Image",
    "providerGrokImage": "Grok Image (xAI)",
    "providerComfyUIImage": "ComfyUI Image",
    "providerLemonadeImage": "Lemonade Image (Local)",
    "testImageGeneration": "Testar Geração de Imagem",
    "testImageConnectivity": "Testar Conexão",
    "imageConnectivitySuccess": "Serviço de imagem conectado com sucesso",
    "imageConnectivityFailed": "Falha na conexão com o serviço de imagem",
    "imageTestSuccess": "Teste de geração de imagem bem-sucedido",
    "imageTestFailed": "Falha no teste de geração de imagem",
    "imageTestPromptPlaceholder": "Digite uma descrição de imagem para testar",
    "imageTestPromptDefault": "Um gatinho fofo sentado em uma mesa",
    "imageGenerating": "Gerando imagem...",
    "imageGenerationFailed": "Falha na geração de imagem",
    "enableVideoGeneration": "Habilitar Geração de Vídeos por IA",
    "videoGenerationDisabledHint": "Quando ativado, vídeos serão gerados automaticamente durante a criação do curso",
    "videoSettings": "Geração de Vídeos",
    "videoSection": "Texto para Vídeo",
    "videoProvider": "Provedor de Geração de Vídeos",
    "videoModel": "Modelo de Geração de Vídeos",
    "providerSeedance": "Seedance (ByteDance)",
    "providerKling": "Kling (Kuaishou)",
    "providerVeo": "Veo (Google)",
    "providerSora": "Sora (OpenAI)",
    "providerMiniMaxVideo": "MiniMax Video",
    "providerGrokVideo": "Grok Video (xAI)",
    "providerHappyHorse": "HappyHorse (Alibaba Cloud)",
    "testVideoGeneration": "Testar Geração de Vídeo",
    "testVideoConnectivity": "Testar Conexão",
    "videoConnectivitySuccess": "Serviço de vídeo conectado com sucesso",
    "videoConnectivityFailed": "Falha na conexão com o serviço de vídeo",
    "testingConnection": "Testando...",
    "videoTestSuccess": "Teste de geração de vídeo bem-sucedido",
    "videoTestFailed": "Falha no teste de geração de vídeo",
    "videoTestPromptDefault": "Um gatinho fofo andando sobre uma mesa",
    "videoGenerating": "Gerando vídeo (estimativa: 1-2 min)...",
    "videoGenerationWarning": "A geração de vídeo geralmente leva 1-2 minutos. Aguarde com paciência",
    "mediaRetry": "Tentar novamente",
    "mediaContentSensitive": "Desculpe, este conteúdo acionou uma verificação de segurança.",
    "mediaGenerationDisabled": "Geração desabilitada nas configurações",
    "singleAgent": "Agente Único",
    "multiAgent": "Multi-Agente",
    "selectAgents": "Selecionar Agentes",
    "noVisionWarning": "O modelo atual não suporta visão. As imagens ainda podem ser colocadas nos slides, mas o modelo não conseguirá entender o conteúdo das imagens para otimizar seleção e layout",
    "serverConfigured": "Servidor",
    "serverConfiguredNotice": "Este provedor é gerenciado pelo servidor e não pode ser editado aqui. Para usar suas próprias credenciais, adicione um provedor separado.",
    "ttsProviderEnabledLabel": "Ativar este provedor",
    "ttsProviderEnabledHint": "Quando desligado, este provedor fica oculto no seletor de voz e nunca é atribuído automaticamente.",
    "ttsProviderUnavailableHint": "Configure este provedor antes de ativá-lo.",
    "ttsProviderDisabledByAdmin": "Este provedor foi desativado pelo administrador do servidor e não pode ser ativado.",
    "optionalOverride": "Opcional — deixe vazio para usar a configuração do servidor",
    "setupNeeded": "Configuração necessária",
    "modelNotConfigured": "Selecione um modelo para começar",
    "dangerZone": "Zona de Perigo",
    "clearCache": "Limpar Cache Local",
    "clearCacheDescription": "Apaga todos os dados armazenados localmente, incluindo salas de aula, histórico de conversa, cache de áudio e configurações do app. Esta ação não pode ser desfeita.",
    "clearCacheConfirmTitle": "Tem certeza que deseja limpar todo o cache?",
    "clearCacheConfirmDescription": "Isto apagará permanentemente todos os dados a seguir e não poderá ser recuperado:",
    "clearCacheConfirmItems": "Salas e cenas, Histórico de conversa, Cache de áudio e imagens, Configurações e preferências do app",
    "clearCacheConfirmInput": "Digite \"DELETE\" para continuar",
    "clearCacheConfirmPhrase": "DELETE",
    "clearCacheButton": "Excluir Permanentemente Todos os Dados",
    "clearCacheSuccess": "Cache limpo. A página será atualizada em instantes",
    "clearCacheFailed": "Falha ao limpar o cache, tente novamente",
    "clearCacheBlockedByOtherTabs": "Feche as outras abas do app e tente novamente.",
    "persistUnavailable": "Suas alterações não estão sendo salvas porque o aplicativo não consegue acessar os dados armazenados. Se recarregar não resolver, limpe o cache local nas Configurações.",
    "persistChangesLost": "O armazenamento voltou a funcionar, mas as alterações feitas enquanto ele estava indisponível não puderam ser salvas e foram substituídas pela última versão salva.",
    "webSearchSettings": "Busca na Web",
    "webSearchApiKey": "Chave de API de Busca",
    "webSearchApiKeyPlaceholder": "Digite sua chave de API de busca",
    "webSearchApiKeyPlaceholderServer": "Chave configurada no servidor, opcionalmente sobreponha",
    "webSearchApiKeyHint": "Obtenha uma chave de API com o provedor de busca selecionado",
    "claudeSearchModel": "Modelo de busca",
    "claudeSearchModelHint": "O modelo Claude que realiza as buscas na web e resume os resultados.",
    "webSearchApiKeyOptional": "A chave de API é opcional. Sem ela, será usada extração pública de páginas como alternativa.",
    "searxngServerOnlyNotice": "O SearXNG deve ser configurado no servidor. Defina a variável de ambiente SEARXNG_BASE_URL (ou a seção web-search em server-providers.yml). URLs de instância fornecidas pelo cliente não são aceitas.",
    "baiduSubSources": "Fontes do Baidu",
    "baiduSubSourcesDescription": "Escolha pelo menos uma fonte do Baidu para consultar.",
    "baiduSubSourceWeb": "Busca Web",
    "baiduSubSourceWebDescription": "Páginas web gerais do Baidu AI Search.",
    "baiduSubSourceBaike": "Baidu Baike",
    "baiduSubSourceBaikeDescription": "Verbetes de enciclopédia do Baidu Baike.",
    "baiduSubSourceScholar": "Baidu Scholar",
    "baiduSubSourceScholarDescription": "Artigos acadêmicos do Baidu Scholar.",
    "viewDocs": "Documentação da API",
    "webSearchBaseUrl": "URL Base",
    "webSearchServerConfigured": "Chave de API de busca configurada no servidor",
    "optional": "Opcional",
    "selectProvider": "Select Provider",
    "customProvider": "Custom",
    "presetPickHint": "Picking a provider auto-fills its base URL and protocol; enter your key then click \"Fetch Models\". Not listed? Use \"Custom\".",
    "presetCategory": {
      "tokenPlan": "Token Plans",
      "aggregator": "Aggregators",
      "thirdParty": "Vendors",
      "official": "Official"
    },
    "fetchModels": "Fetch Models",
    "fetchModelsResult": "Fetched {total} models, added {added}",
    "fetchModelsNoEndpoint": "This provider has no model list endpoint — add models manually",
    "fetchModelsAuthError": "API key is invalid or expired",
    "fetchModelsFailed": "Failed to fetch models",
    "usage": {
      "title": "Usage",
      "refresh": "Refresh",
      "disclaimer": "Usage is system-tracked; only server-side calls are counted.",
      "totalRequests": "Requests",
      "totalTokens": "LLM Tokens",
      "dailyTrend": "Daily Token Trend",
      "tokens": "Tokens",
      "byModel": "By Model",
      "model": "Model",
      "type": "Type",
      "reqs": "Reqs",
      "usage": "Usage",
      "empty": "No usage data yet",
      "kindLlm": "LLM",
      "kindImage": "Image",
      "kindVideo": "Video",
      "kindTts": "Speech",
      "kindAsr": "ASR",
      "unitToken": "tokens",
      "unitImage": "images",
      "unitSecond": "sec",
      "unitCharacter": "chars"
    },
    "tokenPlan": {
      "nav": "Token Plan",
      "title": "Token Plan Setup",
      "desc": "Pick your token plan provider and enter the key — it auto-configures every adapted modality (LLM/image/video/speech/web search).",
      "selectPlan": "Select Provider",
      "apiKey": "API Key",
      "enable": "Enable",
      "updateKey": "Update key",
      "modelsCount": "{{n}} models",
      "capabilities": "Capabilities offered",
      "offeredNote": "Models offered by this plan. Pick the ones you want on the generation bar — availability depends on your plan tier, and unsupported models will error at generation time."
    },
    "skills": {
      "nav": "Skills",
      "title": "Configurações de skills",
      "description": "Navegue pelos skills instalados na sua conta, inspecione um skill e baixe-o como zip para compartilhar ou fazer backup.",
      "mySkills": "Meus skills",
      "builtinSkills": "Skills integrados",
      "emptyMySkills": "Você ainda não tem skills próprios — peça ao agente, num chat, para criar um a partir do histórico.",
      "emptyBuiltinSkills": "Nenhum skill integrado disponível.",
      "listFailed": "Não foi possível carregar a lista de skills",
      "retry": "Tentar novamente",
      "badgeBuiltin": "Integrado",
      "badgeOwner": "Meu skill",
      "badgeConstraints": "Restrições",
      "details": "Detalhes",
      "download": "Baixar",
      "detailFailed": "Não foi possível carregar os detalhes do skill",
      "contentLabel": "Conteúdo",
      "builtinDetailNote": "Este skill acompanha o OpenMAIC. Baixe-o para importar em outro espaço de trabalho de agente.",
      "upload": "Enviar",
      "uploading": "Enviando…",
      "uploadFailed": "Não foi possível enviar o skill. Verifique o arquivo e tente novamente.",
      "delete": "Excluir",
      "deleting": "Excluindo…",
      "deleteTitle": "Excluir skill?",
      "deleteConfirm": "Isso remove o skill da sua conta. Esta ação não pode ser desfeita.",
      "deleteFailed": "Não foi possível excluir o skill. Tente novamente."
    },
    "ttsBrowserNativeTimelineNotice": "O TTS nativo do navegador não suporta os recursos de áudio da linha do tempo do editor (pré-visualizar, regenerar e narração em lote). Mude para um provedor de TTS gerenciado para gerar e gerenciar o áudio de cada linha.",
    "alidocmindAccessKeyId": "AccessKey ID",
    "alidocmindAccessKeySecret": "AccessKey Secret"
  },
  "workspace": {
    "untitledCourse": "未命名课堂",
    "sceneCount": "{{count}} 页",
    "sceneCount_one": "{{count}} 页",
    "sceneCount_other": "{{count}} 页",
    "courseLinkHint": "在右侧打开《{{name}}》",
    "courseLinkMore": "还有 {{count}} 节课堂",
    "courseMention": {
      "title": "为这条消息引用课堂",
      "empty": "没有匹配的课堂",
      "alreadyNamed": "已引用",
      "remove": "移除{{name}}",
      "pillHint": "这条消息引用了「{{name}}」",
      "notAccepted": "O servidor está temporariamente indisponível. Tente novamente em instantes.",
      "reference": "引用「{{name}}」",
      "capped": "仅显示前 {{count}} 个，继续输入以缩小范围"
    },
    "heroTitle": "What will you create today?",
    "heroSubtitle": "Share an idea and turn it into a learning journey people can step into",
    "newSession": "New chat",
    "sections": {
      "courses": "Courses",
      "sessions": "Chats"
    },
    "coursesEmpty": "No courses yet",
    "sessionsEmpty": "No chats yet",
    "loading": "Loading",
    "loadFailed": "Couldn't load",
    "retry": "Retry",
    "untitledSession": "Untitled chat",
    "pagePosition": "Page {{index}} of {{total}}",
    "exitPro": "Exit Pro",
    "navAria": "Workspace navigation",
    "homeAria": "Back to home",
    "currentSession": "Current chat",
    "startLearning": "Começar a aprender",
    "time": {
      "justNow": "Just now",
      "minutesAgo": "{{count}}m ago",
      "hoursAgo": "{{count}}h ago",
      "daysAgo": "{{count}}d ago"
    },
    "sessionStatus": {
      "connecting": "Connecting",
      "queued": "Queued",
      "running": "Running",
      "succeeded": "Ready",
      "failed": "Needs attention",
      "cancelled": "Stopped"
    },
    "backToWorkspace": "Back to workspace",
    "searchPlaceholder": "Filter by name",
    "searchAria": "Search {{section}}",
    "searchEmpty": "No matches",
    "showMore": "Show {{count}} more",
    "showLess": "Show less",
    "utilitiesAria": "Preferences and account",
    "resizeAria": "Drag to resize the sidebar",
    "chatPaneAria": "Chat panel",
    "classroomPaneAria": "Classroom",
    "collapseNav": "Collapse navigation",
    "expandNav": "Expand navigation",
    "expandNavInto": "Expand navigation · {{section}}",
    "collapseChat": "Collapse conversation",
    "expandChat": "Conversation",
    "collapseClassroom": "Collapse classroom",
    "expandClassroom": "Classroom",
    "readOnlyBadge": "Read-only",
    "noCourseTitle": "No course open",
    "noCourseHint": "Abra por um link de curso na conversa, ou escolha um na lista à esquerda — a conversa fica onde está",
    "resizeChatAria": "Drag to resize the conversation pane",
    "firstPageLanding": "The first page is landing…",
    "autoSaving": "Salvando automaticamente…",
    "autoSaved": "Salvo",
    "collapsedTitle": "Both panes are collapsed",
    "collapsedHint": "Use the tabs on the left to bring the conversation or the classroom back",
    "moreUtilities": "More",
    "rowMore": "Mais ações para {{name}}",
    "folderDeleteHint": "Os cursos dentro dela voltam para o nível principal. Nada é excluído.",
    "dropToUnfile": "Solte aqui para tirar da pasta",
    "renameInvalid": "O nome deve ter de 1 a 120 caracteres",
    "renameForbidden": "Você não criou este curso, então não pode renomeá-lo",
    "renameGone": "Esse curso não existe mais",
    "renameSession": "Renomear conversa",
    "renameSessionAria": "Renomear a conversa “{{name}}”",
    "renameSessionFailed": "Falha ao renomear, tente novamente",
    "delete": "Excluir",
    "confirmDelete": "Confirmar exclusão",
    "deleting": "Excluindo…",
    "deleteFailed": "Não foi possível excluir. Tente novamente.",
    "tabsAria": "Chats and courses",
    "courseTabsAria": "Cursos abertos",
    "courseTabClose": "Fechar aba: {{name}}",
    "courseTabRunning": "Gerando",
    "foldersUnavailable": "As pastas não estão disponíveis nesta versão"
  },
  "profile": {
    "title": "Perfil",
    "defaultNickname": "Estudante",
    "chooseAvatar": "Escolher Avatar",
    "uploadAvatar": "Enviar",
    "bioPlaceholder": "Conte um pouco sobre você — o professor de IA vai personalizar as aulas...",
    "avatarHint": "Seu avatar aparecerá nas discussões e conversas em sala",
    "fileTooLarge": "Imagem muito grande — escolha uma com menos de 5 MB",
    "invalidFileType": "Selecione um arquivo de imagem",
    "editTooltip": "Clique para editar o perfil"
  },
  "media": {
    "imageCapability": "Geração de Imagens",
    "imageHint": "Gerar imagens nos slides",
    "videoCapability": "Geração de Vídeos",
    "videoHint": "Gerar vídeos nos slides",
    "ttsCapability": "Texto para Fala",
    "ttsHint": "O professor de IA fala em voz alta",
    "asrCapability": "Reconhecimento de Fala",
    "asrHint": "Entrada por voz nas discussões",
    "provider": "Provedor",
    "model": "Modelo",
    "voice": "Voz",
    "speed": "Velocidade",
    "language": "Idioma"
  },
  "accessCode": {
    "title": "Digite o Código de Acesso",
    "placeholder": "Código de acesso",
    "error": "Código inválido. Tente novamente."
  },
  "proMode": {
    "attach": "Anexar material",
    "mentionCourse": "引用课堂",
    "loadSkill": "加载 skill",
    "skillMenuTitle": "选择课程设计技能",
    "skillsLoading": "正在加载 skill…",
    "noSkillsAvailable": "暂无可用 skill",
    "userSkillsGroup": "我的 Skill",
    "builtinSkillsGroup": "内置 Skill",
    "skillsLoadFailed": "Skill 加载失败，点击重试",
    "retrySkills": "重试",
    "noSkillMatch": "没有匹配“{{query}}”的 Skill",
    "badgeAria": "Modo Pro",
    "badgeEnter": "Modo Pro",
    "badgeExit": "Voltar ao modo clássico",
    "launchPlaceholder": "Descreva a experiência de aprendizagem que você quer criar",
    "launchSend": "Iniciar construção"
  },
  "workbench": {
    "tool": {
      "label": {
        "extractMaterial": null,
        "waitMaterials": null
      },
      "error": {
        "materialExtraction": null
      }
    }
  }
}
