export default { // Texto da página de login 'login.requiredUsername': 'O nome de usuário não pode estar vazio', 'login.requiredPassword': 'A senha não pode estar vazia', 'login.requiredCaptcha': 'O captcha não pode estar vazio', 'login.requiredMobile': 'Por favor, insira um número de celular válido', 'login.loginSuccess': 'Login realizado com sucesso!', // Texto do componente HeaderBar 'header.smartManagement': 'Agentes', 'header.modelConfig': 'Modelos', 'header.knowledgeBase': 'Conhecimento', 'header.voiceCloneManagement': 'Clonagem de Voz', 'header.voiceResourceManagement': 'Recurso de Voz', 'header.userManagement': 'Usuários', 'header.otaManagement': 'Gerenciamento OTA', 'header.paramDictionary': 'Mais', 'header.paramManagement': 'Gerenciamento de Parâmetros', 'header.dictManagement': 'Gerenciamento de Dicionário', 'header.agentTemplate': 'Modelos de Papel Padrão', 'header.searchHistory': 'Histórico de Pesquisa', 'header.clearHistory': 'Limpar Histórico', 'header.providerManagement': 'Gerenciamento de Provedores', 'header.serverSideManagement': 'Gerenciamento de Servidores', 'header.replacementWordManagement': 'Gerenciamento de Palavras de Substituição', 'header.featureManagement': 'Gerenciamento de Funcionalidades do Sistema', 'header.changePassword': 'Alterar Senha', 'header.logout': 'Sair', 'header.searchPlaceholder': 'Nome, tag ou pesquisa no Mac', // Texto do componente McpToolCallDialog 'mcpToolCall.title': 'Chamada de Ferramenta', 'mcpToolCall.execute': 'Executar', 'mcpToolCall.chooseFunction': '1、Escolher Função', 'mcpToolCall.searchFunction': 'Pesquisar Função', 'mcpToolCall.noResults': 'Nenhuma função correspondente encontrada', 'mcpToolCall.settings': '2、Configuração de Parâmetros', 'mcpToolCall.inputPlaceholder': 'Por favor, insira {label}', 'mcpToolCall.valueRange': 'Faixa de valores: {min} - {max}', 'mcpToolCall.selectPlaceholder': 'Por favor, selecione {label}', 'mcpToolCall.lightTheme': 'Tema Claro', 'mcpToolCall.darkTheme': 'Tema Escuro', 'mcpToolCall.pleaseSelect': 'Por favor, selecione uma função', 'mcpToolCall.cancel': 'Cancelar', 'mcpToolCall.requiredField': 'Por favor, insira {field}', 'mcpToolCall.minValue': 'O valor mínimo é {value}', 'mcpToolCall.maxValue': 'O valor máximo é {value}', 'mcpToolCall.selectTool': 'Por favor, selecione uma ferramenta para executar', 'mcpToolCall.executionResult': '3、Resultado da Execução', 'mcpToolCall.copyResult': 'Copiar Resultado', 'mcpToolCall.noResultYet': 'Nenhum resultado ainda', 'mcpToolCall.loadingToolList': 'Carregando lista de ferramentas...', // Nomes de ferramentas 'mcpToolCall.toolName.getDeviceStatus': 'Ver Status do Dispositivo', 'mcpToolCall.toolName.setVolume': 'Definir Volume', 'mcpToolCall.toolName.setBrightness': 'Definir Brilho', 'mcpToolCall.toolName.setTheme': 'Definir Tema', 'mcpToolCall.toolName.takePhoto': 'Tirar Foto e Reconhecer', 'mcpToolCall.toolName.getSystemInfo': 'Informações do Sistema', 'mcpToolCall.toolName.reboot': 'Reiniciar Dispositivo', 'mcpToolCall.toolName.upgradeFirmware': 'Atualizar Firmware', 'mcpToolCall.toolName.getScreenInfo': 'Informações da Tela', 'mcpToolCall.toolName.snapshot': 'Captura de Tela', 'mcpToolCall.toolName.previewImage': 'Pré-visualizar Imagem', 'mcpToolCall.toolName.setDownloadUrl': 'Definir URL de Download', // Categorias de ferramentas 'mcpToolCall.category.audio': 'Áudio', 'mcpToolCall.category.display': 'Tela', 'mcpToolCall.category.camera': 'Câmera', 'mcpToolCall.category.system': 'Sistema', 'mcpToolCall.category.assets': 'Recursos', 'mcpToolCall.category.deviceInfo': 'Info do Dispositivo', // Categorias e propriedades da tabela 'mcpToolCall.table.audioSpeaker': 'Alto-falante', 'mcpToolCall.table.screen': 'Tela', 'mcpToolCall.table.network': 'Rede', 'mcpToolCall.table.audioControl': 'Controle de Áudio', 'mcpToolCall.table.screenControl': 'Controle de Tela', 'mcpToolCall.table.systemControl': 'Controle do Sistema', 'mcpToolCall.table.screenInfo': 'Info da Tela', 'mcpToolCall.table.hardwareInfo': 'Info do Hardware', 'mcpToolCall.table.memoryInfo': 'Info da Memória', 'mcpToolCall.table.applicationInfo': 'Info da Aplicação', 'mcpToolCall.table.networkInfo': 'Info da Rede', 'mcpToolCall.table.displayInfo': 'Info do Display', 'mcpToolCall.table.deviceInfo': 'Info do Dispositivo', 'mcpToolCall.table.systemInfo': 'Info do Sistema', // Cabeçalhos das colunas da tabela 'mcpToolCall.table.component': 'Componente', 'mcpToolCall.table.property': 'Propriedade', 'mcpToolCall.table.value': 'Valor', 'mcpToolCall.prop.volume': 'Volume', 'mcpToolCall.prop.brightness': 'Brilho', 'mcpToolCall.prop.theme': 'Tema', 'mcpToolCall.prop.type': 'Tipo', 'mcpToolCall.prop.ssid': 'SSID', 'mcpToolCall.prop.signalStrength': 'Intensidade do Sinal', 'mcpToolCall.prop.operationResult': 'Resultado da Operação', 'mcpToolCall.prop.width': 'Largura', 'mcpToolCall.prop.height': 'Altura', 'mcpToolCall.prop.screenType': 'Tipo', 'mcpToolCall.prop.chipModel': 'Modelo do Chip', 'mcpToolCall.prop.cpuCores': 'Núcleos do CPU', 'mcpToolCall.prop.chipVersion': 'Versão do Chip', 'mcpToolCall.prop.flashSize': 'Tamanho do Flash', 'mcpToolCall.prop.minFreeHeap': 'Heap Livre Mínimo', 'mcpToolCall.prop.applicationName': 'Nome da Aplicação', 'mcpToolCall.prop.applicationVersion': 'Versão da Aplicação', 'mcpToolCall.prop.compileTime': 'Hora de Compilação', 'mcpToolCall.prop.idfVersion': 'Versão IDF', 'mcpToolCall.prop.macAddress': 'Endereço MAC', 'mcpToolCall.prop.ipAddress': 'Endereço IP', 'mcpToolCall.prop.wifiName': 'Nome WiFi', 'mcpToolCall.prop.wifiChannel': 'Canal WiFi', 'mcpToolCall.prop.screenSize': 'Tamanho da Tela', 'mcpToolCall.prop.deviceUuid': 'UUID do Dispositivo', 'mcpToolCall.prop.systemLanguage': 'Idioma do Sistema', 'mcpToolCall.prop.currentOtaPartition': 'Partição OTA Atual', 'mcpToolCall.prop.getResult': 'Obter Resultado', 'mcpToolCall.prop.url': 'URL', 'mcpToolCall.prop.quality': 'Qualidade', 'mcpToolCall.prop.question': 'Pergunta', // Textos de ajuda das ferramentas 'mcpToolCall.help.getDeviceStatus': 'Visualizar o status atual de execução do dispositivo, incluindo volume, tela, bateria e outras informações.', 'mcpToolCall.help.setVolume': 'Ajustar o volume do dispositivo. Por favor, insira um valor entre 0-100.', 'mcpToolCall.help.setBrightness': 'Ajustar o brilho da tela do dispositivo. Por favor, insira um valor entre 0-100.', 'mcpToolCall.help.setTheme': 'Alternar o tema de exibição da tela do dispositivo. Você pode escolher entre modo claro ou escuro.', 'mcpToolCall.help.takePhoto': 'Tirar fotos com a câmera do dispositivo e realizar análise de reconhecimento. Por favor, insira a pergunta que deseja fazer.', 'mcpToolCall.help.getSystemInfo': 'Obter as informações do sistema do dispositivo, incluindo especificações de hardware, versão do software, etc.', 'mcpToolCall.help.reboot': 'Reiniciar o dispositivo. O dispositivo será reiniciado após a execução.', 'mcpToolCall.help.upgradeFirmware': 'Baixar e atualizar o firmware do dispositivo a partir da URL especificada. O dispositivo será reiniciado automaticamente após a atualização.', 'mcpToolCall.help.getScreenInfo': 'Obter informações detalhadas sobre a tela, como resolução, tamanho e outros parâmetros.', 'mcpToolCall.help.snapshot': 'Capturar a tela atual e enviar para a URL especificada.', 'mcpToolCall.help.previewImage': 'Pré-visualizar imagens da URL especificada na tela do dispositivo.', 'mcpToolCall.help.setDownloadUrl': 'Definir o endereço de download dos arquivos de recursos do dispositivo.', // Outros textos 'mcpToolCall.text.strong': 'Forte', 'mcpToolCall.text.medium': 'Médio', 'mcpToolCall.text.weak': 'Fraco', 'mcpToolCall.text.dark': 'Escuro', 'mcpToolCall.text.light': 'Claro', 'mcpToolCall.text.setSuccess': 'Configuração realizada com sucesso', 'mcpToolCall.text.setFailed': 'Falha na configuração', 'mcpToolCall.text.brightnessSetSuccess': 'Brilho configurado com sucesso', 'mcpToolCall.text.brightnessSetFailed': 'Falha ao configurar brilho', 'mcpToolCall.text.themeSetSuccess': 'Tema configurado com sucesso', 'mcpToolCall.text.themeSetFailed': 'Falha ao configurar tema', 'mcpToolCall.text.rebootCommandSent': 'Comando de reinicialização enviado', 'mcpToolCall.text.rebootFailed': 'Falha ao reiniciar', 'mcpToolCall.text.monochrome': 'Tela Monocromática', 'mcpToolCall.text.color': 'Tela Colorida', 'mcpToolCall.text.getSuccessParseFailed': 'Obtido com sucesso, mas falha ao analisar', 'mcpToolCall.text.getFailed': 'Falha ao obter', 'mcpToolCall.text.getSuccessFormatError': 'Obtido com sucesso, mas formato de dados anormal', // Diálogo de dados do dicionário 'dictDataDialog.addDictData': 'Adicionar Dados do Dicionário', 'dictDataDialog.dictLabel': 'Rótulo do Dicionário', 'dictDataDialog.dictLabelPlaceholder': 'Por favor, insira o rótulo do dicionário', 'dictDataDialog.dictValue': 'Valor do Dicionário', 'dictDataDialog.dictValuePlaceholder': 'Por favor, insira o valor do dicionário', 'dictDataDialog.sort': 'Ordenação', 'dictDataDialog.requiredDictLabel': 'Por favor, insira o rótulo do dicionário', 'dictDataDialog.requiredDictValue': 'Por favor, insira o valor do dicionário', // Diálogo de tipo de dicionário 'dictTypeDialog.addDictType': 'Adicionar Tipo de Dicionário', 'dictTypeDialog.dictName': 'Nome do Tipo de Dicionário', 'dictTypeDialog.dictNamePlaceholder': 'Por favor, insira o nome do tipo de dicionário', 'dictTypeDialog.dictType': 'Código do Tipo de Dicionário', 'dictTypeDialog.dictTypePlaceholder': 'Por favor, insira o código do tipo de dicionário', 'dictTypeDialog.requiredDictName': 'Por favor, insira o nome do tipo de dicionário', 'dictTypeDialog.requiredDictType': 'Por favor, insira o código do tipo de dicionário', // Diálogo de edição de voz 'editVoiceDialog.voiceCode': 'Código da Voz', 'editVoiceDialog.voiceCodePlaceholder': 'Por favor, insira o código da voz', 'editVoiceDialog.voiceName': 'Nome da Voz', 'editVoiceDialog.voiceNamePlaceholder': 'Por favor, insira o nome da voz', 'editVoiceDialog.languageType': 'Tipo de Idioma', 'editVoiceDialog.languageTypePlaceholder': 'Por favor, insira o tipo de idioma', 'editVoiceDialog.sortNumber': 'Número de Ordenação', 'editVoiceDialog.remark': 'Observação', 'editVoiceDialog.remarkPlaceholder': 'Por favor, insira o conteúdo da observação', 'editVoiceDialog.generatePreview': 'Gerar Pré-visualização', 'editVoiceDialog.defaultVoiceName': 'Wawa Xiaohe', 'editVoiceDialog.defaultLanguageType': 'Chinês', 'editVoiceDialog.requiredVoiceCode': 'Por favor, insira o código da voz', 'editVoiceDialog.requiredVoiceName': 'Por favor, insira o nome da voz', // Diálogo de firmware 'firmwareDialog.firmwareName': 'Nome do Firmware', 'firmwareDialog.firmwareNamePlaceholder': 'Por favor, insira o nome do firmware (placa + versão)', 'firmwareDialog.firmwareType': 'Tipo de Firmware', 'firmwareDialog.firmwareTypePlaceholder': 'Por favor, selecione o tipo de firmware', 'firmwareDialog.version': 'Versão', 'firmwareDialog.versionPlaceholder': 'Por favor, insira a versão (formato x.x.x)', 'firmwareDialog.firmwareFile': 'Arquivo de Firmware', 'firmwareDialog.clickUpload': 'Clique para Enviar', 'firmwareDialog.uploadTip': 'Apenas arquivos de firmware (.bin/.apk) são suportados, e o tamanho não deve exceder 100MB', 'firmwareDialog.uploadHint': 'Lembrete: Por favor, envie o arquivo xiaozhi.bin pré-mesclado, não o arquivo merged-binary.bin mesclado', 'firmwareDialog.remark': 'Observação', 'firmwareDialog.remarkPlaceholder': 'Por favor, insira informações de observação', 'firmwareDialog.requiredFirmwareName': 'Por favor, insira o nome do firmware (placa + versão)', 'firmwareDialog.requiredFirmwareType': 'Por favor, selecione o tipo de firmware', 'firmwareDialog.requiredVersion': 'Por favor, insira a versão', 'firmwareDialog.versionFormatError': 'Formato de versão incorreto. Por favor, insira no formato x.x.x', 'firmwareDialog.requiredFirmwareFile': 'Por favor, envie o arquivo de firmware', 'firmwareDialog.invalidFileType': 'Apenas arquivos de firmware no formato .bin/.apk são suportados!', 'firmwareDialog.invalidFileSize': 'O tamanho do arquivo de firmware não pode exceder 100MB!', 'firmwareDialog.uploadSuccess': 'Arquivo de firmware enviado com sucesso', 'firmwareDialog.uploadFailed': 'Falha no envio do arquivo', // Diálogo de impressão vocal 'voicePrintDialog.addSpeaker': 'Adicionar Falante', 'voicePrintDialog.voicePrintVector': 'Vetor de Impressão Vocal', 'voicePrintDialog.selectVoiceMessage': 'Por favor, selecione uma mensagem de voz', 'voicePrintDialog.name': 'Nome', 'voicePrintDialog.enterName': 'Por favor, insira o nome', 'voicePrintDialog.description': 'Descrição', 'voicePrintDialog.enterDescription': 'Por favor, insira a descrição', 'voicePrintDialog.save': 'Salvar', 'voicePrintDialog.cancel': 'Cancelar', 'voicePrintDialog.requiredDescription': 'Por favor, insira a descrição', 'voicePrintDialog.requiredName': 'Por favor, insira o nome', 'voicePrintDialog.requiredAudioVector': 'Por favor, selecione o vetor de áudio', // Diálogo de provedor de contexto 'contextProviderDialog.title': 'Editar Fonte', 'contextProviderDialog.noContextApi': 'Sem API de Contexto', 'contextProviderDialog.add': 'Adicionar', 'contextProviderDialog.apiUrl': 'URL da API', 'contextProviderDialog.apiUrlPlaceholder': 'http://api.example.com/data', 'contextProviderDialog.requestHeaders': 'Cabeçalhos da Requisição', 'contextProviderDialog.headerKeyPlaceholder': 'Chave', 'contextProviderDialog.headerValuePlaceholder': 'Valor', 'contextProviderDialog.noHeaders': 'Sem Cabeçalhos', 'contextProviderDialog.addHeader': 'Adicionar Cabeçalho', 'contextProviderDialog.cancel': 'Cancelar', 'contextProviderDialog.confirm': 'Confirmar', // Página de configuração de papel - provedor de contexto 'roleConfig.contextProvider': 'Contexto', 'roleConfig.contextProviderSuccess': '{count} fontes adicionadas com sucesso.', 'roleConfig.contextProviderDocLink': 'Como implantar provedor de contexto', 'roleConfig.editContextProvider': 'Editar Fonte', // Página de impressão vocal 'voicePrint.pageTitle': 'Reconhecimento de Impressão Vocal', 'voicePrint.name': 'Nome', 'voicePrint.description': 'Descrição', 'voicePrint.createTime': 'Data de Criação', 'voicePrint.action': 'Ação', 'voicePrint.edit': 'Editar', 'voicePrint.delete': 'Excluir', 'voicePrint.add': 'Adicionar', 'voicePrint.addSpeaker': 'Adicionar Falante', 'voicePrint.editSpeaker': 'Editar Falante', 'voicePrint.fetchFailed': 'Falha ao buscar lista de impressões vocais', 'voicePrint.updateSuccess': 'Atualizado com sucesso', 'voicePrint.addSuccess': 'Adicionado com sucesso', 'voicePrint.confirmDelete': 'Tem certeza de que deseja excluir esta impressão vocal?', 'voicePrint.warning': 'Aviso', 'voicePrint.confirm': 'Confirmar', 'voicePrint.cancel': 'Cancelar', 'voicePrint.deleteSuccess': 'Impressão vocal excluída com sucesso', 'voicePrint.deleteFailed': 'Falha na exclusão. Por favor, tente novamente', 'voicePrint.cancelDelete': 'Operação de exclusão cancelada', 'voicePrint.closeOperation': 'Operação fechada', 'voicePrint.loading': 'Carregando...', // Diálogo de adição manual de dispositivo 'manualAddDeviceDialog.title': 'Adicionar Dispositivo Manualmente', 'manualAddDeviceDialog.deviceType': 'Tipo de Dispositivo', 'manualAddDeviceDialog.deviceTypePlaceholder': 'Por favor, selecione o tipo de dispositivo', 'manualAddDeviceDialog.firmwareVersion': 'Versão do Firmware', 'manualAddDeviceDialog.firmwareVersionPlaceholder': 'Por favor, insira a versão do firmware', 'manualAddDeviceDialog.macAddress': 'Endereço MAC', 'manualAddDeviceDialog.macAddressPlaceholder': 'Por favor, insira o endereço MAC', 'manualAddDeviceDialog.confirm': 'Confirmar', 'manualAddDeviceDialog.cancel': 'Cancelar', 'manualAddDeviceDialog.requiredMacAddress': 'Por favor, insira o endereço MAC', 'manualAddDeviceDialog.invalidMacAddress': 'Por favor, insira o formato correto de endereço MAC, ex.: 00:1A:2B:3C:4D:5E', 'manualAddDeviceDialog.requiredDeviceType': 'Por favor, selecione o tipo de dispositivo', 'manualAddDeviceDialog.requiredFirmwareVersion': 'Por favor, insira a versão do firmware', 'manualAddDeviceDialog.getFirmwareTypeFailed': 'Falha ao obter tipo de firmware', 'manualAddDeviceDialog.addSuccess': 'Dispositivo adicionado com sucesso', 'manualAddDeviceDialog.addFailed': 'Falha ao adicionar', // Componente AddModelDialog 'addModelDialog.requiredSupplier': 'Por favor, selecione um fornecedor', // Página de registro 'register.title': 'Criar Conta', 'register.welcome': 'Bem-vindo ao XiaoZhi AI', 'register.usernamePlaceholder': 'Por favor, insira o nome de usuário', 'register.mobilePlaceholder': 'Por favor, insira o número de celular', 'register.captchaPlaceholder': 'Por favor, insira o captcha', 'register.mobileCaptchaPlaceholder': 'Por favor, insira o código de verificação SMS', 'register.passwordPlaceholder': 'Por favor, defina a senha', 'register.confirmPasswordPlaceholder': 'Por favor, confirme a senha', 'register.goToLogin': 'Já tem uma conta? Entrar', 'register.registerButton': 'Registrar', 'register.agreeTo': 'Ao se registrar, você concorda com nossos', 'register.userAgreement': 'Termos de Uso', 'register.privacyPolicy': 'Política de Privacidade', 'register.notAllowRegister': 'O registro de usuários não é permitido', 'register.captchaLoadFailed': 'Falha ao carregar captcha', 'register.inputCaptcha': 'Por favor, insira o captcha', 'register.inputCorrectMobile': 'Por favor, insira um número de celular válido', 'register.captchaSendSuccess': 'Código de verificação enviado com sucesso', 'register.captchaSendFailed': 'Falha ao enviar código de verificação', 'register.passwordsNotMatch': 'As senhas não coincidem', 'register.registerSuccess': 'Registro realizado com sucesso!', 'register.registerFailed': 'Falha no registro', 'register.requiredUsername': 'O nome de usuário não pode estar vazio', 'register.requiredPassword': 'A senha não pode estar vazia', 'register.requiredCaptcha': 'O captcha não pode estar vazio', 'register.requiredMobileCaptcha': 'Por favor, insira o código de verificação SMS', 'register.invalidCaptcha': 'Código de verificação inválido', 'register.passwordLength': 'A senha deve ter entre 6 e 20 caracteres', 'register.usernameFormat': 'Formato de nome de usuário inválido', 'register.confirmPasswordRequired': 'A confirmação de senha não pode estar vazia', 'register.sendCaptcha': 'Obter Código de Verificação', 'register.secondsLater': 'segundos depois', // Diálogo de parâmetros 'paramDialog.paramCode': 'Código do Parâmetro', 'paramDialog.paramCodePlaceholder': 'Por favor, insira o código do parâmetro', 'paramDialog.paramValue': 'Valor do Parâmetro', 'paramDialog.paramValuePlaceholder': 'Por favor, insira o valor do parâmetro', 'paramDialog.valueType': 'Tipo de Valor', 'paramDialog.valueTypePlaceholder': 'Por favor, selecione o tipo de valor', 'paramDialog.remark': 'Observação', 'paramDialog.remarkPlaceholder': 'Por favor, insira a observação', 'paramDialog.save': 'Salvar', 'paramDialog.cancel': 'Cancelar', 'paramDialog.requiredParamCode': 'Por favor, insira o código do parâmetro', 'paramDialog.requiredParamValue': 'Por favor, insira o valor do parâmetro', 'paramDialog.requiredValueType': 'Por favor, selecione o tipo de valor', 'paramDialog.stringType': 'Texto', 'paramDialog.numberType': 'Número', 'paramDialog.booleanType': 'Booleano', 'paramDialog.arrayType': 'Array', 'paramDialog.jsonType': 'Objeto JSON', // Replacement word management page related 'replacementWordManagement.pageTitle': 'Gerenciamento de Palavras de Substituição', 'replacementWordManagement.searchPlaceholder': 'Digite o nome do arquivo para pesquisar', 'replacementWordManagement.search': 'Pesquisar', 'replacementWordManagement.fileName': 'Nome do Arquivo', 'replacementWordManagement.replacementWordCount': 'Quantidade de Palavras de Substituição', 'replacementWordManagement.replacementWordContent': 'Conteúdo Substituto', 'replacementWordManagement.operation': 'Operação', 'replacementWordManagement.createTime': 'Tempo de Criação', 'replacementWordManagement.updateTime': 'Tempo de Atualização', 'replacementWordManagement.addFile': 'Adicionar Arquivo de Substituição', 'replacementWordManagement.edit': 'Editar', 'replacementWordManagement.download': 'Baixar', 'replacementWordManagement.delete': 'Excluir', // Replacement word dialog related 'replacementDialog.fileName': 'Nome do Arquivo', 'replacementDialog.fileNamePlaceholder': 'Por favor, insira o nome do arquivo', 'replacementDialog.content': 'Conteúdo Substituto', 'replacementDialog.contentPlaceholder': 'Insira conteúdo: original|substituto', 'replacementDialog.formatTip': 'Formato por linha: original|substituição', 'replacementDialog.wordCountUnit': 'palavras de substituição', 'replacementDialog.uploadTxt': 'Carregar txt', 'replacementDialog.uploadReplacementFile': 'Carregar arquivo de substituição', 'replacementDialog.clickUploadTip': 'Carregar arquivo de substituição', 'replacementDialog.uploadCoverTip': 'Upload substitui conteúdo atual', 'replacementDialog.save': 'Salvar', 'replacementDialog.cancel': 'Cancelar', 'replacementDialog.requiredFileName': 'Por favor, insira o nome do arquivo', 'replacementDialog.requiredContent': 'Por favor, insira o conteúdo de substituição', 'replacementDialog.invalidFormat': 'Linha {line} com erro de formato, cada linha deve conter o separador |', 'replacementDialog.invalidPipeCount': 'Linha {line} com erro de formato, cada linha pode conter apenas um separador |', 'replacementDialog.emptyOriginal': 'Linha {line} palavra original não pode estar vazia', 'replacementDialog.emptyReplacement': 'Linha {line} palavra de substituição não pode estar vazia', 'replacementDialog.invalidOriginalChar': 'Linha {line} palavra original contém caracteres especiais', 'replacementDialog.invalidReplacementChar': 'Linha {line} palavra de substituição contém caracteres especiais', 'replacementDialog.readFileError': 'Falha ao ler arquivo', 'replacementDialog.maxWordCountExceeded': 'A quantidade de palavras de substituição não pode exceder {max}', // Página de gerenciamento de palavras de substituição 'replacementWordManagement.getListFailed': 'Falha ao obter lista', 'replacementWordManagement.confirmDelete': 'Tem certeza de que deseja excluir este arquivo?', 'replacementWordManagement.deleteHint': 'Dica', 'replacementWordManagement.saveSuccess': 'Salvo com sucesso', 'replacementWordManagement.saveFailed': 'Falha ao salvar', 'replacementWordManagement.addFailed': 'Falha ao adicionar', 'replacementWordManagement.batchDelete': 'Exclusão em Lote', 'replacementWordManagement.confirmBatchDelete': 'Tem certeza de que deseja excluir os {count} arquivos selecionados?', 'replacementWordManagement.batchDeleteHint': 'Dica de Exclusão em Lote', // Página de login 'login.title': 'Entrar', 'login.welcome': 'BEM-VINDO AO LOGIN', 'login.username': 'Nome de Usuário', 'login.usernamePlaceholder': 'Por favor, insira o nome de usuário', 'login.mobilePlaceholder': 'Por favor, insira o número de celular', 'login.password': 'Senha', 'login.passwordPlaceholder': 'Por favor, insira a senha', 'login.captchaPlaceholder': 'Por favor, insira o código de verificação', 'login.loginButton': 'Entrar', 'login.login': 'Entrar', 'login.register': 'Registrar', 'login.forgotPassword': 'Esqueceu a Senha', 'login.forgetPassword': 'Esqueceu a Senha?', 'login.mobileLogin': 'Login por Celular', 'login.usernameLogin': 'Login por Usuário', 'login.agreeTo': 'Ao entrar, você aceita os', 'login.userAgreement': 'Termos de Uso', 'login.and': 'e', 'login.privacyPolicy': 'Política de Privacidade', 'login.registerAccount': 'Registrar Conta', // Página de recuperação de senha 'retrievePassword.title': 'Redefinir Senha', 'retrievePassword.welcome': 'RECUPERAÇÃO DE SENHA', 'retrievePassword.subtitle': 'Recuperar Senha', 'retrievePassword.mobile': 'Celular', 'retrievePassword.mobilePlaceholder': 'Por favor, insira o número de celular', 'retrievePassword.captcha': 'Código de Verificação', 'retrievePassword.captchaPlaceholder': 'Por favor, insira o código de verificação', 'retrievePassword.mobileCaptcha': 'Código de Verificação por Celular', 'retrievePassword.mobileCaptchaPlaceholder': 'Por favor, insira o código de verificação por celular', 'retrievePassword.newPassword': 'Nova Senha', 'retrievePassword.newPasswordPlaceholder': 'Por favor, insira a nova senha', 'retrievePassword.confirmNewPassword': 'Confirmar Nova Senha', 'retrievePassword.confirmNewPasswordPlaceholder': 'Por favor, confirme a nova senha', 'retrievePassword.getMobileCaptcha': 'Obter Código de Verificação', 'retrievePassword.resetButton': 'Redefinir Senha', 'retrievePassword.updateButton': 'Atualizar Agora', 'retrievePassword.goToLogin': 'Voltar ao Login', 'retrievePassword.inputCorrectMobile': 'Por favor, insira um número de celular válido', 'retrievePassword.captchaSendSuccess': 'Código de verificação enviado com sucesso', 'retrievePassword.passwordsNotMatch': 'As duas senhas não coincidem', 'retrievePassword.passwordLength': 'A senha deve ter entre 6 e 20 caracteres', 'retrievePassword.mobileRequired': 'O número de celular não pode estar vazio', 'retrievePassword.captchaRequired': 'O código de verificação não pode estar vazio', 'retrievePassword.mobileCaptchaRequired': 'O código de verificação por celular não pode estar vazio', 'retrievePassword.newPasswordRequired': 'A nova senha não pode estar vazia', 'retrievePassword.confirmNewPasswordRequired': 'A confirmação da nova senha não pode estar vazia', 'retrievePassword.passwordUpdateSuccess': 'Senha atualizada com sucesso', 'retrievePassword.agreeTo': 'Redefinir significa concordar', // Página de alteração de senha 'changePassword.title': 'Alterar Senha', 'changePassword.oldPasswordLabel': 'Senha Atual:', 'changePassword.oldPasswordPlaceholder': 'Por favor, insira a senha atual', 'changePassword.newPasswordLabel': 'Nova Senha:', 'changePassword.newPasswordPlaceholder': 'Por favor, insira a nova senha', 'changePassword.confirmPasswordLabel': 'Confirmar Nova Senha:', 'changePassword.confirmPasswordPlaceholder': 'Por favor, insira novamente a nova senha', 'changePassword.confirmButton': 'Confirmar', 'changePassword.cancelButton': 'Cancelar', 'changePassword.allFieldsRequired': 'Por favor, preencha todos os campos', 'changePassword.passwordsNotMatch': 'As duas novas senhas não coincidem', 'changePassword.newPasswordSameAsOld': 'A nova senha não pode ser igual à senha atual', 'changePassword.passwordChangedSuccessfully': 'Senha alterada com sucesso. Por favor, faça login novamente', 'changePassword.changeFailed': 'Falha ao alterar senha', // Página de gerenciamento de dispositivos 'device.management': 'Gerenciamento de Dispositivos', 'device.add': 'Adicionar Dispositivo', 'device.edit': 'Editar Dispositivo', 'device.delete': 'Excluir Dispositivo', 'device.name': 'Nome do Dispositivo', 'device.type': 'Tipo de Dispositivo', 'device.status': 'Status do Dispositivo', 'device.dialogTitle': 'Adicionar Dispositivo', 'device.verificationCode': 'Código de Verificação:', 'device.verificationCodePlaceholder': 'Por favor, insira o código de verificação de 6 dígitos transmitido pelo dispositivo..', 'device.confirmButton': 'Confirmar', 'device.cancelButton': 'Cancelar', 'device.input6DigitCode': 'Por favor, insira um código de verificação de 6 dígitos', 'device.bindSuccess': 'Dispositivo vinculado com sucesso', 'device.bindFailed': 'Falha na vinculação', 'device.searchPlaceholder': 'Por favor, insira modelo do dispositivo ou endereço MAC para pesquisar', 'device.model': 'Modelo do Dispositivo', 'device.macAddress': 'Endereço MAC', 'device.firmwareVersion': 'Versão do Firmware', 'device.bindTime': 'Data de Vinculação', 'device.lastConversation': 'Última Conversa', 'device.remark': 'Observação', 'device.autoUpdate': 'Atualização Automática', 'device.operation': 'Operação', 'device.search': 'Pesquisar', 'device.selectAll': 'Selecionar Tudo/Desmarcar Tudo', 'deviceManagement.loading': 'Carregando...', 'device.bindWithCode': 'Vincular com Código de 6 Dígitos', 'device.manualAdd': 'Adicionar Manualmente', 'device.unbind': 'Desvincular', 'device.deviceThemeGeneration': 'Geração de tema do dispositivo', 'device.toolCall': 'Chamada de Ferramenta', 'device.selectAtLeastOne': 'Por favor, selecione pelo menos um registro', 'device.confirmBatchUnbind': 'Tem certeza de que deseja desvincular {count} dispositivos selecionados?', 'device.batchUnbindSuccess': '{count} dispositivos desvinculados com sucesso', 'device.batchUnbindError': 'Ocorreu um erro durante a desvinculação em lote', 'device.remarkTooLong': 'A observação não pode exceder 64 caracteres', 'device.remarkSaved': 'Observação salva com sucesso', 'device.remarkSaveFailed': 'Falha ao salvar observação', 'device.confirmUnbind': 'Tem certeza de que deseja desvincular este dispositivo?', 'device.unbindSuccess': 'Dispositivo desvinculado com sucesso', 'device.unbindFailed': 'Falha ao desvincular dispositivo', 'device.getListFailed': 'Falha ao buscar lista de dispositivos', 'device.autoUpdateEnabled': 'Atualização automática ativada', 'device.autoUpdateDisabled': 'Atualização automática desativada', 'device.getFirmwareTypeFailed': 'Falha ao buscar tipo de firmware', 'device.deviceStatus': 'Status', 'device.online': 'Online', 'device.offline': 'Offline', // Mensagens de dica 'message.success': 'Operação Realizada com Sucesso', 'message.error': 'Falha na Operação', 'message.warning': 'Aviso', 'message.info': 'Informação', // Cache 'cache.viewer': 'Visualizador de Cache', // Diálogo de histórico de chat 'chatHistory.with': 'Com', 'chatHistory.dialogTitle': ' - Histórico de Chat', 'chatHistory.loading': 'Carregando...', 'chatHistory.noMoreRecords': 'Não há mais registros', 'chatHistory.selectSession': 'Por favor, selecione uma sessão para visualizar o histórico de chat', 'chatHistory.today': 'Hoje', 'chatHistory.yesterday': 'Ontem', 'chatHistory.downloadCurrentSession': 'Baixar histórico de chat da sessão atual', 'chatHistory.downloadCurrentWithPreviousSessions': 'Baixar histórico de chat da sessão atual e das 20 sessões anteriores', 'chatHistory.downloadLinkFailed': 'Falha ao obter link de download', 'cache.status': 'Status do Cache', 'cache.cdnEnabled': 'Modo CDN Ativado', 'cache.cdnDisabled': 'Modo CDN Desativado', 'cache.serviceWorkerRegistered': 'Service Worker Registrado', 'cache.serviceWorkerNotRegistered': 'Service Worker Não Registrado', 'cache.noCacheDetected': 'Nenhum cache detectado ainda. Por favor, atualize a página ou aguarde o cache ser estabelecido', 'cache.swDevEnvWarning': 'No ambiente de desenvolvimento, o Service Worker pode não inicializar o cache corretamente', 'cache.swCheckMethods': 'Por favor, tente os seguintes métodos para verificar se o Service Worker está funcionando:', 'cache.swCheckMethod1': 'Verifique o status do Service Worker na aba Application/Aplicação das ferramentas de desenvolvedor', 'cache.swCheckMethod2': 'Visualize o conteúdo do cache em Application/Cache/Cache Storage das ferramentas de desenvolvedor', 'cache.swCheckMethod3': 'Use o build de produção (npm run build) e acesse através de um servidor HTTP para testar a funcionalidade completa', 'cache.swDevEnvNormal': 'No ambiente de desenvolvimento, isso é normal', 'cache.swProdOnly': 'O Service Worker geralmente funciona apenas no ambiente de produção', 'cache.swTestingTitle': 'Para testar a funcionalidade do Service Worker:', 'cache.swTestingStep1': 'Execute npm run build para compilar a versão de produção', 'cache.swTestingStep2': 'Acesse a página compilada através de um servidor HTTP', 'cache.swNotSupported': 'O navegador atual não suporta Service Worker. A função de cache de recursos CDN não está disponível', 'cache.dialogTitle': 'Status de Cache de Recursos CDN', 'cache.loading': 'Carregando informações de cache...', 'cache.notSupported': 'Seu navegador não suporta Cache API ou o Service Worker não está instalado', 'cache.refreshPage': 'Atualizar Página', 'cache.noCachedResources': 'Nenhum recurso CDN em cache encontrado', 'cache.noCachedResourcesDesc': 'O Service Worker pode não ter concluído a inicialização ou o cache não foi estabelecido. Por favor, atualize a página ou tente novamente mais tarde.', 'cache.cdnCacheStatus': 'Status de Cache de Recursos CDN', 'cache.totalCachedResources': 'Encontrados {count} recursos em cache no total', 'cache.jsResources': 'Recursos JavaScript ({count})', 'cache.cssResources': 'Recursos CSS ({count})', 'cache.cached': 'Em Cache', 'cache.notCached': 'Não Em Cache', 'cache.refreshStatus': 'Atualizar Status do Cache', 'cache.clearCache': 'Limpar Cache', 'cache.refreshingStatus': 'Atualizando status do cache', 'cache.confirmClear': 'Tem certeza de que deseja limpar todo o cache?', 'cache.clearedSuccess': 'Cache limpo com sucesso', 'cache.clearFailed': 'Falha ao limpar cache', 'cache.clearCanceled': 'Operação de limpeza cancelada', // Botões comuns 'button.ok': 'OK', 'button.cancel': 'Cancelar', 'button.save': 'Salvar', 'button.close': 'Fechar', // Informações do sistema 'system.name': 'Serviço XiaoZhi', // Impressão vocal 'voiceprint.management': 'Gerenciamento de Impressão Vocal', 'voiceprint.add': 'Adicionar Impressão Vocal', 'voiceprint.delete': 'Excluir Impressão Vocal', // Página de gerenciamento de dicionário 'dictManagement.pageTitle': 'Gerenciamento de Dicionário', 'dictManagement.dictTypeCategory': 'Categoria do Dicionário', 'dictManagement.searchPlaceholder': 'Por favor, insira o rótulo do dicionário para pesquisar', 'dictManagement.search': 'Pesquisar', 'dictManagement.dictTypeName': 'Nome do Tipo de Dicionário', 'dictManagement.operation': 'Operação', 'dictManagement.edit': 'Editar', 'dictManagement.dictLabel': 'Rótulo do Dicionário', 'dictManagement.dictValue': 'Valor do Dicionário', 'dictManagement.sort': 'Ordenação', 'dictManagement.delete': 'Excluir', 'dictManagement.selectAll': 'Selecionar Tudo', 'dictManagement.deselectAll': 'Desmarcar Tudo', 'dictManagement.addDictType': 'Adicionar Tipo de Dicionário', 'dictManagement.batchDeleteDictType': 'Exclusão em Lote de Tipos de Dicionário', 'dictManagement.addDictData': 'Adicionar Dados do Dicionário', 'dictManagement.batchDeleteDictData': 'Exclusão em Lote de Dados do Dicionário', 'dictManagement.itemsPerPage': '{items} itens/página', 'dictManagement.firstPage': 'Primeira Página', 'dictManagement.prevPage': 'Página Anterior', 'dictManagement.nextPage': 'Próxima Página', 'dictManagement.totalRecords': 'Total de {total} registros', 'dictManagement.editDictType': 'Editar Tipo de Dicionário', 'dictManagement.editDictData': 'Editar Dados do Dicionário', 'dictManagement.saveSuccess': 'Salvo com Sucesso', 'dictManagement.deleteSuccess': 'Excluído com Sucesso', 'dictManagement.selectDictTypeToDelete': 'Por favor, selecione tipos de dicionário para excluir', 'dictManagement.confirmDeleteDictType': 'Tem certeza de que deseja excluir os tipos de dicionário selecionados?', 'dictManagement.confirm': 'Confirmar', 'dictManagement.cancel': 'Cancelar', 'dictManagement.selectDictTypeFirst': 'Por favor, selecione um tipo de dicionário primeiro', 'dictManagement.confirmDeleteDictData': 'Tem certeza de que deseja excluir estes dados do dicionário?', 'dictManagement.selectDictDataToDelete': 'Por favor, selecione dados do dicionário para excluir', 'dictManagement.confirmBatchDeleteDictData': 'Tem certeza de que deseja excluir {count} itens de dados do dicionário selecionados?', 'dictManagement.getDictDataFailed': 'Falha ao obter dados do dicionário', // Informações do usuário 'user.info': 'Informações do Usuário', 'user.username': 'Nome de Usuário', 'user.mobile': 'Celular', 'user.userid': 'ID do Usuário', 'user.deviceCount': 'Quantidade de Dispositivos', 'user.createDate': 'Data de Registro', 'user.status': 'Status', 'user.normal': 'Normal', 'user.disabled': 'Desativado', 'user.resetPassword': 'Redefinir Senha', 'user.disableAccount': 'Desativar Conta', 'user.enableAccount': 'Ativar Conta', 'user.deleteUser': 'Excluir Usuário', 'user.deselectAll': 'Desmarcar Tudo', 'user.selectAll': 'Selecionar Tudo', 'user.enable': 'Ativar', 'user.disable': 'Desativar', 'user.delete': 'Excluir', 'user.selectUsersFirst': 'Por favor, selecione usuários para excluir primeiro', 'user.selectUsersToDisable': 'Por favor, selecione usuários para desativar', 'user.selectUsersToEnable': 'Por favor, selecione usuários para ativar', 'user.confirmDeleteSelected': 'Tem certeza de que deseja excluir {count} usuários selecionados?', 'user.deleting': 'Excluindo...', 'user.deleteSuccess': '{count} usuários excluídos com sucesso', 'user.deleteFailed': 'Falha na exclusão. Por favor, tente novamente', 'user.partialDelete': '{successCount} usuários excluídos com sucesso, {failCount} falharam', 'user.deleteError': 'Ocorreu um erro durante a exclusão', 'user.deleteCancelled': 'Exclusão cancelada', 'user.confirmResetPassword': 'Uma nova senha será gerada após a redefinição. Continuar?', 'user.resetPasswordSuccess': 'Senha redefinida. Por favor, notifique o usuário para fazer login com a nova senha', 'user.generatedPassword': 'Senha Padrão Gerada', 'user.confirmDeleteUser': 'Tem certeza de que deseja excluir este usuário?', 'user.deleteUserSuccess': 'Excluído com sucesso', 'user.operationFailed': 'Falha na operação. Por favor, tente novamente', 'user.confirmStatusChange': 'Tem certeza de que deseja {action} {count} usuários selecionados?', 'user.statusChangeSuccess': '{count} usuários {action} com sucesso', 'user.invalidUserId': 'Existem IDs de usuário inválidos', 'user.searchPhone': 'Por favor, insira o número de celular para pesquisar', 'user.search': 'Pesquisar', // Página de gerenciamento de provedores 'providerManagement.categoryFilter': 'Filtro de Categoria', 'providerManagement.searchPlaceholder': 'Por favor, insira o nome do provedor para pesquisar', 'providerManagement.category': 'Categoria', 'providerManagement.providerCode': 'Código do Provedor', 'providerManagement.fieldConfig': 'Configuração de Campos', 'providerManagement.selectToDelete': 'Por favor, selecione provedores para excluir primeiro', 'providerManagement.confirmDelete': 'Tem certeza de que deseja excluir os {count} provedores selecionados?', 'providerManagement.viewFields': 'Ver Campos', // Texto comum 'common.all': 'Todos', 'common.search': 'Pesquisar', 'common.name': 'Nome', 'common.sort': 'Ordenação', 'common.action': 'Ação', 'common.edit': 'Editar', 'common.delete': 'Excluir', 'common.selectAll': 'Selecionar Tudo', 'common.deselectAll': 'Desmarcar Tudo', 'common.add': 'Adicionar', 'common.perPage': '{number}/página', 'common.firstPage': 'Primeira Página', 'common.prevPage': 'Página Anterior', 'common.nextPage': 'Próxima Página', 'common.totalRecords': 'Total de {number} registros', 'common.addProvider': 'Adicionar Provedor', 'common.success': 'Sucesso', 'common.editProvider': 'Editar Provedor', 'common.updateSuccess': 'Atualizado com Sucesso', 'common.addSuccess': 'Adicionado com Sucesso', 'common.deleteSuccess': 'Excluído com Sucesso', 'common.deleteFailure': 'Falha ao Excluir. Por Favor, Tente Novamente', 'common.deleteCancelled': 'Exclusão Cancelada', 'common.warning': 'Aviso', 'common.tip': 'Dica', 'common.confirm': 'Confirmar', 'common.cancel': 'Cancelar', 'common.sensitive': 'Sensível', 'common.loading': 'Carregando', 'common.copySuccess': 'Cópia bem-sucedida', 'common.copyFailed': 'Falha ao copiar', 'common.copyAddress': 'Copiar endereço', // Troca de idioma 'language.zhCN': '中文简体', 'language.zhTW': '中文繁體', 'language.en': 'English', 'language.de': 'Deutsch', 'language.vi': 'Tiếng Việt', 'language.ptBR': 'Português (Brasil)', // Página inicial 'home.addAgent': 'Adicionar Agente', 'home.greeting': 'Olá XiaoZhi', 'home.wish': 'Vamos ter um dia maravilhoso!', 'home.languageModel': 'LLM', 'home.voiceModel': 'TTS', 'home.configureRole': 'ConfRoles', 'home.voiceprintRecognition': 'RecVoz', 'home.deviceManagement': 'Dispositivos', 'home.chatHistory': 'Conversa', 'home.lastConversation': 'Última Conversa', 'home.noConversation': 'Nenhuma conversa', 'home.justNow': 'Agora mesmo', 'home.minutesAgo': 'Há {minutes} minutos', 'home.hoursAgo': 'Há {hours} horas e {minutes} minutos', 'home.confirmDeleteAgent': 'Tem certeza de que deseja excluir este agente?', 'home.deleteSuccess': 'Excluído com sucesso', 'home.deleteFailed': 'Falha ao excluir', 'home.enableMemory': 'Por favor, ative a memória na página "Configurar Papel" primeiro', // Página de gerenciamento de parâmetros 'paramManagement.pageTitle': 'Gerenciamento de Parâmetros', 'paramManagement.searchPlaceholder': 'Por favor, insira código do parâmetro ou observação para pesquisar', 'paramManagement.search': 'Pesquisar', 'paramManagement.paramCode': 'Código do Parâmetro', 'paramManagement.paramValue': 'Valor do Parâmetro', 'paramManagement.remark': 'Observação', 'paramManagement.operation': 'Operação', 'paramManagement.hide': 'Ocultar', 'paramManagement.view': 'Visualizar', 'paramManagement.deselectAll': 'Desmarcar Tudo', 'paramManagement.selectAll': 'Selecionar Tudo', 'paramManagement.add': 'Adicionar', 'paramManagement.delete': 'Excluir', 'paramManagement.edit': 'Editar', 'paramManagement.itemsPerPage': 'itens/página', 'paramManagement.firstPage': 'Primeira Página', 'paramManagement.prevPage': 'Página Anterior', 'paramManagement.nextPage': 'Próxima Página', 'paramManagement.totalRecords': 'Total de {total} registros', 'paramManagement.addParam': 'Adicionar Parâmetro', 'paramManagement.editParam': 'Editar Parâmetro', 'paramManagement.getParamsListFailed': 'Falha ao obter lista de parâmetros', 'paramManagement.selectParamsFirst': 'Por favor, selecione parâmetros para excluir primeiro', 'paramManagement.confirmBatchDelete': 'Tem certeza de que deseja excluir {paramCount} parâmetros selecionados?', 'paramManagement.invalidParamId': 'Existem IDs de parâmetro inválidos', 'paramManagement.batchDeleteSuccess': '{paramCount} parâmetros excluídos com sucesso', 'paramManagement.deleteFailed': 'Falha na exclusão. Por favor, tente novamente', 'paramManagement.operationCancelled': 'Exclusão cancelada', 'paramManagement.operationClosed': 'Operação fechada', 'paramManagement.updateSuccess': 'Atualizado com sucesso. Algumas configurações só terão efeito após reiniciar o módulo xiaozhi-server.', 'paramManagement.addSuccess': 'Adicionado com sucesso', 'paramManagement.updateFailed': 'Falha na atualização', 'paramManagement.addFailed': 'Falha ao adicionar', // Página de gerenciamento de servidores 'serverSideManager.pageTitle': 'Gerenciamento de Servidores', 'serverSideManager.wsAddress': 'Endereço WS', 'serverSideManager.operation': 'Operação', 'serverSideManager.restart': 'Reiniciar', 'serverSideManager.updateConfig': 'Atualizar Configuração', 'serverSideManager.restartServer': 'Reiniciar Servidor', 'serverSideManager.updateConfigTitle': 'Atualizar Configuração', 'serverSideManager.confirmRestart': 'Tem certeza de que deseja reiniciar o servidor?', 'serverSideManager.confirmUpdateConfig': 'Tem certeza de que deseja atualizar a configuração?', 'serverSideManager.loading': 'Carregando...', 'serverSideManager.getServerListFailed': 'Falha ao obter lista de servidores', 'serverSideManager.operationFailed': 'Falha na operação', 'serverSideManager.restartSuccess': 'Reiniciado com sucesso', 'serverSideManager.updateConfigSuccess': 'Configuração atualizada com sucesso', // Diálogo de adicionar agente 'addAgentDialog.title': 'Adicionar Agente', 'addAgentDialog.agentName': 'Nome do Agente', 'addAgentDialog.placeholder': 'Por favor, insira o nome do agente..', 'addAgentDialog.confirm': 'Confirmar', 'addAgentDialog.cancel': 'Cancelar', 'addAgentDialog.nameRequired': 'Por favor, insira o nome do agente', 'addAgentDialog.addSuccess': 'Adicionado com sucesso', // Página de configuração de papel 'roleConfig.title': 'Configuração de Papel', 'roleConfig.addTag': 'Adicionar Novo Rótulo', 'roleConfig.restartNotice': 'Reinicie após salvar a configuração para ativação.', 'roleConfig.saveConfig': 'Salvar Configuração', 'roleConfig.snapshotHistory': 'Histórico de Versões', 'roleConfig.currentVersion': 'Versão Atual {version}', 'roleConfig.functionName': 'Nome da Função', 'roleConfig.reset': 'Redefinir', 'roleConfig.agentName': 'Apelido', 'roleConfig.roleTemplate': 'Modelo', 'roleConfig.roleIntroduction': 'Introdução', 'roleConfig.languageCode': 'Código do Idioma', 'roleConfig.interactionLanguage': 'Idioma de Interação', 'agentSnapshot.title': 'Histórico de Versões', 'agentSnapshot.empty': 'Ainda sem versões', 'agentSnapshot.version': 'Versão', 'agentSnapshot.createdAt': 'Salvo em', 'agentSnapshot.source': 'Origem', 'agentSnapshot.changedFields': 'Alterações', 'agentSnapshot.actions': 'Ações', 'agentSnapshot.view': 'Ver', 'agentSnapshot.restore': 'Restaurar', 'agentSnapshot.delete': 'Excluir', 'agentSnapshot.detailTitle': 'Detalhes da Alteração', 'agentSnapshot.restorePreviewTitle': 'Prévia da Restauração', 'agentSnapshot.confirmRestore': 'Confirmar Restauração', 'agentSnapshot.before': 'Antes', 'agentSnapshot.after': 'Depois', 'agentSnapshot.emptyValue': 'Nenhum', 'agentSnapshot.secretRedacted': 'Chave secreta mascarada', 'agentSnapshot.configValue': 'Valor da configuração', 'agentSnapshot.noChangedContent': 'Nenhuma alteração para exibir', 'agentSnapshot.noFunctionChange': 'Sem alterações de função', 'agentSnapshot.beforeChange': 'Antes da Alteração', 'agentSnapshot.afterChange': 'Depois da Alteração', 'agentSnapshot.beforeRestore': 'Antes da Restauração', 'agentSnapshot.afterRestore': 'Depois da Restauração', 'agentSnapshot.restoreMemoryWarning': 'Restaurar para uma versão sem memória apagará o histórico de conversa deste agente. Continue somente após confirmar esse risco.', 'agentSnapshot.restoreConfirm': 'Restaurar para a versão {version}? A configuração atual será salva primeiro como uma nova versão.', 'agentSnapshot.restoreSuccess': 'Versão restaurada', 'agentSnapshot.restoreFailed': 'Falha ao restaurar versão', 'agentSnapshot.restoreFailedRollback': 'Falha ao restaurar versão. A transação foi revertida e a configuração atual não foi alterada', 'agentSnapshot.deleteConfirm': 'Excluir a versão {version}? Esta ação não pode ser desfeita.', 'agentSnapshot.deleteSuccess': 'Versão do histórico excluída', 'agentSnapshot.deleteFailed': 'Falha ao excluir a versão do histórico', 'agentSnapshot.fetchFailed': 'Falha ao buscar versões', 'agentSnapshot.detailFailed': 'Falha ao buscar detalhes do snapshot', 'agentSnapshot.currentVersion': 'Versão Atual', 'agentSnapshot.source.config': 'Configuração Salva', 'agentSnapshot.source.current': 'Configuração Atual', 'agentSnapshot.source.restore': 'Antes da Restauração', 'agentSnapshot.source.initial': 'Versão inicial', 'agentSnapshot.field.restore': 'Restauração', 'agentSnapshot.field.initial': 'Snapshot inicial', 'agentSnapshot.field.agentCode': 'Código do Agente', 'agentSnapshot.field.agentName': 'Apelido', 'agentSnapshot.field.asrModelId': 'Reconhecimento de Fala', 'agentSnapshot.field.vadModelId': 'Detecção de Atividade de Voz', 'agentSnapshot.field.llmModelId': 'Modelo de Linguagem Principal', 'agentSnapshot.field.slmModelId': 'Modelo de Linguagem Pequeno', 'agentSnapshot.field.vllmModelId': 'Modelo de Visão', 'agentSnapshot.field.ttsModelId': 'Texto para Fala', 'agentSnapshot.field.ttsVoiceId': 'Voz', 'agentSnapshot.field.ttsLanguage': 'Idioma', 'agentSnapshot.field.ttsVolume': 'Volume', 'agentSnapshot.field.ttsRate': 'Velocidade', 'agentSnapshot.field.ttsPitch': 'Tom', 'agentSnapshot.field.memModelId': 'Modelo de Memória', 'agentSnapshot.field.intentModelId': 'Reconhecimento de Intenção', 'agentSnapshot.field.chatHistoryConf': 'Histórico de Conversa', 'agentSnapshot.field.systemPrompt': 'Introdução', 'agentSnapshot.field.summaryMemory': 'Memória', 'agentSnapshot.field.langCode': 'Código do Idioma', 'agentSnapshot.field.language': 'Idioma de Interação', 'agentSnapshot.field.sort': 'Ordenação', 'agentSnapshot.field.functions': 'Funções', 'agentSnapshot.field.contextProviders': 'Provedores de Contexto', 'agentSnapshot.field.correctWordFileIds': 'Palavras de Substituição', 'agentSnapshot.field.tagNames': 'Rótulos', 'agentSnapshot.field.tagIds': 'IDs dos Rótulos', 'agentSnapshot.function.added': 'Ativado', 'agentSnapshot.function.removed': 'Desativado', 'agentSnapshot.function.updated': 'Parâmetros alterados', 'agentSnapshot.function.enabled': 'Ativado', 'agentSnapshot.function.disabled': 'Desativado', 'agentSnapshot.function.disabledNote': 'Esta função está desativada', 'agentSnapshot.function.noParams': 'Nenhum parâmetro necessário', 'agentSnapshot.chatHistoryConf.none': 'Não registrar histórico de conversa', 'agentSnapshot.chatHistoryConf.text': 'Enviar texto', 'agentSnapshot.chatHistoryConf.textVoice': 'Enviar texto e voz', 'agentSnapshot.plugin.SYSTEM_PLUGIN_WEATHER': 'Clima', 'agentSnapshot.plugin.SYSTEM_PLUGIN_MUSIC': 'Reprodutor de música do servidor', 'agentSnapshot.plugin.SYSTEM_PLUGIN_NEWS_CHINANEWS': 'China News', 'agentSnapshot.plugin.SYSTEM_PLUGIN_NEWS_NEWSNOW': 'Agregação NewsNow', 'agentSnapshot.plugin.SYSTEM_PLUGIN_HA_GET_STATE': 'Consulta de estado do HomeAssistant', 'agentSnapshot.plugin.SYSTEM_PLUGIN_HA_SET_STATE': 'Atualização de estado do HomeAssistant', 'agentSnapshot.plugin.SYSTEM_PLUGIN_HA_PLAY_MUSIC': 'Reprodutor de música do HomeAssistant', 'agentSnapshot.plugin.SYSTEM_PLUGIN_WEB_SEARCH': 'Pesquisa na web', 'agentSnapshot.plugin.SYSTEM_PLUGIN_CALL_DEVICE': 'Chamada entre dispositivos', 'agentSnapshot.pluginField.url': 'URL do endpoint', 'agentSnapshot.pluginField.news_sources': 'Fontes de notícias', 'agentSnapshot.pluginField.default_rss_url': 'URL RSS padrão', 'agentSnapshot.pluginField.society_rss_url': 'URL RSS de sociedade', 'agentSnapshot.pluginField.world_rss_url': 'URL RSS mundial', 'agentSnapshot.pluginField.finance_rss_url': 'URL RSS financeiro', 'agentSnapshot.pluginField.api_key': 'Chave de API', 'agentSnapshot.pluginField.default_location': 'Cidade padrão', 'agentSnapshot.pluginField.api_host': 'Host da API de desenvolvedor', 'agentSnapshot.pluginField.base_url': 'URL do servidor', 'agentSnapshot.pluginField.devices': 'Dispositivos', 'agentSnapshot.pluginField.provider': 'Provedor de pesquisa', 'agentSnapshot.pluginField.description': 'Descrição da ferramenta', 'agentSnapshot.pluginField.max_results': 'Quantidade de resultados', 'agentSnapshot.model.Memory_nomem': 'Sem memória', 'agentSnapshot.model.Memory_mem_local_short': 'Memória curta local', 'agentSnapshot.model.Memory_mem0ai': 'Memória Mem0AI', 'agentSnapshot.model.Memory_mem_report_only': 'Somente relatório', 'agentSnapshot.model.Intent_nointent': 'Sem reconhecimento de intenção', 'agentSnapshot.model.Intent_intent_llm': 'Reconhecimento de intenção por LLM externo', 'agentSnapshot.model.Intent_function_call': 'Chamada de função por LLM', 'agentSnapshot.voice.TTS_EdgeTTS0001': 'EdgeTTS feminino - Xiaoxiao', 'agentSnapshot.voice.TTS_EdgeTTS0002': 'EdgeTTS masculino - Yunyang', 'agentSnapshot.voice.TTS_EdgeTTS0003': 'EdgeTTS feminino - Xiaoyi', 'agentSnapshot.voice.TTS_EdgeTTS0004': 'EdgeTTS masculino - Yunjian', 'agentSnapshot.voice.TTS_EdgeTTS0005': 'EdgeTTS masculino - Yunxi', 'agentSnapshot.voice.TTS_EdgeTTS0006': 'EdgeTTS masculino - Yunxia', 'roleConfig.vad': 'Detecção de Voz', 'roleConfig.asr': 'Reconhecimento de Fala', 'roleConfig.llm': 'Modelo de Linguagem Principal', 'roleConfig.slm': 'Modelo de Linguagem Pequeno', 'roleConfig.vllm': 'Modelo de Visão', 'roleConfig.intent': 'Reconhecimento de Intenção', 'roleConfig.memoryHis': 'Memória', 'roleConfig.memory': 'Modelo de Memória', 'roleConfig.tts': 'Texto para Fala', 'roleConfig.language': 'Linguagem do diálogo', 'roleConfig.selectLanguage': 'Por favor, selecione o idioma', 'roleConfig.voiceType': 'Tipo de Voz', 'roleConfig.ttsVolume': 'Volume', 'roleConfig.ttsRate': 'Velocidade da fala', 'roleConfig.ttsPitch': 'Tonalidade', 'roleConfig.ttsAdvanced': 'Parâmetros TTS', 'roleConfig.advancedSettings': 'Pronúncia Tonal Substituição de Palavras', 'roleConfig.volumeHint': '-100=mínimo, 0=padrão, 100=máximo', 'roleConfig.speedHint': '-100=mais lento, 0=padrão, 100=mais rápido', 'roleConfig.pitchHint': '-100=mínimo, 0=padrão, 100=máximo', 'roleConfig.replacementWordLabel': 'Palavras de substituição associadas', 'roleConfig.replacementWordTip': 'Durante a síntese de fala, substitua forçadamente palavras mal reconhecidas, caracteres polissílabos, substantivos próprios e palavras sensíveis pelo texto/pronúncia correto especificado por você para melhorar a precisão, conformidade e experiência', 'replacementDialog.selectPlaceholder': 'Por favor, selecione', 'roleConfig.pleaseEnterContent': 'Por favor, insira o conteúdo', 'roleConfig.pleaseEnterLangCode': 'Por favor, insira o código do idioma, ex.: pt_BR', 'roleConfig.pleaseEnterLangName': 'Por favor, insira o idioma de interação, ex.: Português', 'roleConfig.pleaseSelect': 'Por favor, selecione', 'roleConfig.editFunctions': 'Editar Funções', 'roleConfig.reportText': 'Somente Texto', 'roleConfig.reportTextVoice': 'Texto e Voz', 'roleConfig.saveSuccess': 'Configuração salva com sucesso', 'roleConfig.saveFailed': 'Falha ao salvar configuração', 'roleConfig.confirmReset': 'Tem certeza de que deseja redefinir a configuração?', 'roleConfig.resetSuccess': 'Configuração redefinida', 'roleConfig.fetchTemplatesFailed': 'Falha ao buscar lista de modelos', 'roleConfig.templateApplied': 'modelo aplicado', 'roleConfig.applyTemplateFailed': 'Falha ao aplicar modelo', 'roleConfig.fetchConfigFailed': 'Falha ao buscar configuração', 'roleConfig.fetchModelsFailed': 'Falha ao buscar lista de modelos', 'roleConfig.fetchPluginsFailed': 'Falha ao buscar lista de plugins', 'roleConfig.cannotResumeAudio': 'Não é possível retomar a reprodução de áudio', 'roleConfig.selectVoiceFirst': 'Por favor, selecione uma voz primeiro', 'roleConfig.audioLoadTimeout': 'O carregamento do áudio está demorando muito. Por favor, tente novamente mais tarde', 'roleConfig.cloneAudioPlayFailed': 'Falha na reprodução do áudio clonado', 'roleConfig.cannotPlayCloneAudio': 'Não é possível reproduzir áudio clonado', 'roleConfig.getCloneAudioFailed': 'Falha ao obter áudio clonado', 'roleConfig.noPreviewAudio': 'Esta voz não possui áudio de pré-visualização disponível', 'roleConfig.audioPlayFailed': 'Falha na reprodução de áudio', 'roleConfig.cannotPlayAudio': 'Não é possível reproduzir áudio', 'roleConfig.audioPlayError': 'Ocorreu um erro durante a reprodução de áudio', // Descrições de Tooltip para campos de formulário 'roleConfig.tooltip.agentName': 'Defina o nome do seu agente de IA para identificação e reconhecimento', 'roleConfig.tooltip.roleTemplate': 'Escolha entre modelos de função predefinidos para configurar rapidamente as configurações básicas do seu agente', 'roleConfig.tooltip.contextProvider': 'Quando o XiaoZhi é ativado, busca dados de sistemas externos e os injeta dinamicamente no prompt do sistema do LLM', 'roleConfig.tooltip.roleIntroduction': 'Defina o posicionamento do papel, traços de personalidade, normas comportamentais e histórico de conhecimento profissional do agente de IA', 'roleConfig.tooltip.memoryHis': 'Resumir conteúdo do registro de chat', 'roleConfig.tooltip.languageCode': 'Defina o código de idioma como pt-BR, en-US, etc., usado para reconhecimento de recursos específicos', 'roleConfig.tooltip.interactionLanguage': 'Defina o idioma de interação, especificando o idioma principal que o agente de IA usa para comunicação', 'roleConfig.tooltip.vad': 'Detecção de Atividade de Voz: Detecta quando o usuário começa ou para de falar, usado para determinar o início e fim da conversa, permitindo funcionalidade de interrupção', 'roleConfig.tooltip.asr': 'Reconhecimento Automático de Fala: Converte fala do usuário em texto, o primeiro passo no diálogo humano-computador, suporta reconhecimento multilíngue', 'roleConfig.tooltip.llm': 'Modelo de Linguagem Principal (Large Language Model): O "cérebro" do agente de IA, responsável por entender a intenção do usuário, gerar respostas e executar várias tarefas', 'roleConfig.tooltip.slm': 'Modelo de Parâmetros Pequeno (Small Language Model): Usado para ativação do agente de IA, gerando títulos de resumo de memória', 'roleConfig.tooltip.vllm': 'Modelo de Linguagem Visual Grande: Processa compreensão de imagem e vídeo, permitindo que o agente de IA analise e descreva o conteúdo capturado pela câmera', 'roleConfig.tooltip.intent': 'Detecção de Intenção: Analisa fala ou texto do usuário para determinar a verdadeira intenção do usuário, como consultas, bate-papo, controle de dispositivos, etc.', 'roleConfig.tooltip.memory': 'Modelo de Memória: Gerencia armazenamento e resumo do histórico de conversas, determina se a IA pode lembrar conversas anteriores para memória de longo prazo', 'roleConfig.tooltip.tts': 'Texto para Fala: Converte texto em fala natural, determinando a voz, velocidade e tom da IA', 'roleConfig.tooltip.language': 'Selecione o idioma da voz; o sistema filtrará vozes disponíveis que suportam esse idioma', 'roleConfig.tooltip.voiceType': 'Escolha a voz para o agente de IA; diferentes vozes têm diferentes características e estilos. Algumas vozes suportam funcionalidade de visualização, clique no botão de reprodução para visualizar', // Diálogo de gerenciamento de funções 'functionDialog.title': 'Gerenciamento de Funções', 'functionDialog.unselectedFunctions': 'Funções Não Selecionadas', 'functionDialog.selectedFunctions': 'Funções Selecionadas', 'functionDialog.selectAll': 'Selecionar Tudo', 'functionDialog.noMorePlugins': 'Não há mais plugins disponíveis', 'functionDialog.pleaseSelectPlugin': 'Por favor, selecione funções de plugin', 'functionDialog.paramConfig': 'Configuração de Parâmetros', 'functionDialog.noNeedToConfig': ' não requer configuração de parâmetros', 'functionDialog.pleaseSelectFunctionForParam': 'Por favor, selecione uma função configurada para definições de parâmetros', 'functionDialog.mcpAccessPoint': 'Ponto de Acesso MCP', 'functionDialog.mcpAddressDesc': 'Abaixo estão os endereços de ponto de acesso MCP do agente.', 'functionDialog.howToDeployMcp': 'Como implantar ponto de acesso MCP', 'functionDialog.howToIntegrateMcp': 'Como integrar funções MCP', 'functionDialog.copy': 'Copiar', 'functionDialog.accessPointStatus': 'Status do Ponto de Acesso', 'functionDialog.connected': 'Conectado', 'functionDialog.loading': 'Carregando...', 'functionDialog.disconnected': 'Desconectado', 'functionDialog.refresh': 'Atualizar', 'functionDialog.noAvailableTools': 'Nenhuma ferramenta disponível', 'functionDialog.cancel': 'Cancelar', 'functionDialog.saveConfig': 'Salvar Configuração', 'functionDialog.copiedToClipboard': 'Copiado para a área de transferência', 'functionDialog.copyFailed': 'Falha ao copiar. Por favor, copie manualmente', 'functionDialog.jsonFormatError': ' erro no formato do campo: formato JSON inválido', 'functionDialog.defaultValue': 'Valor Padrão', // Página de configuração de modelos 'modelConfig.searchPlaceholder': 'Por favor, insira o nome do modelo para pesquisar', 'modelConfig.search': 'Pesquisar', 'modelConfig.vad': 'Detecção de Atividade de Voz', 'modelConfig.asr': 'Reconhecimento de Fala', 'modelConfig.llm': 'Modelo de Linguagem Grande', 'modelConfig.vllm': 'Modelo de Linguagem Visual', 'modelConfig.intent': 'Reconhecimento de Intenção', 'modelConfig.tts': 'Texto para Fala', 'modelConfig.memory': 'Memória', 'modelConfig.rag': 'RAG', 'modelConfig.modelId': 'ID do Modelo', 'modelConfig.modelName': 'Nome do Modelo', 'modelConfig.provider': 'Tipo de Interface', 'modelConfig.unknown': 'Desconhecido', 'modelConfig.isEnabled': 'Ativado', 'modelConfig.isDefault': 'Padrão', 'modelConfig.defaultModelCannotDisable': 'A configuração do modelo padrão não pode ser desativada', 'modelConfig.action': 'Ação', 'modelConfig.voiceManagement': 'Gerenciamento de Voz', 'modelConfig.edit': 'Editar', 'modelConfig.duplicate': 'Duplicar', 'modelConfig.delete': 'Excluir', 'modelConfig.deselectAll': 'Desmarcar Tudo', 'modelConfig.select': 'Selecionar', 'modelConfig.selectAll': 'Selecionar Tudo', 'modelConfig.add': 'Adicionar Novo', 'modelConfig.selectModelsFirst': 'Por favor, selecione modelos para excluir primeiro', 'modelConfig.confirmBatchDelete': 'Tem certeza de que deseja excluir os modelos selecionados?', 'modelConfig.confirmDelete': 'Tem certeza de que deseja excluir este modelo?', 'modelConfig.batchDeleteSuccess': 'Exclusão em lote realizada com sucesso', 'modelConfig.partialDeleteFailed': 'Exclusão parcial falhou', 'modelConfig.deleteSuccess': 'Excluído com sucesso', 'modelConfig.deleteFailed': 'Falha ao excluir', 'modelConfig.deleteCancelled': 'Exclusão cancelada', 'modelConfig.duplicateSuccess': 'Duplicado com sucesso', 'modelConfig.duplicateFailed': 'Falha ao duplicar', 'modelConfig.saveSuccess': 'Salvo com sucesso', 'modelConfig.saveFailed': 'Falha ao salvar', 'modelConfig.addSuccess': 'Adicionado com sucesso', 'modelConfig.addFailed': 'Falha ao adicionar', 'modelConfig.fetchModelsFailed': 'Falha ao buscar lista de modelos', 'modelConfig.enableSuccess': 'Ativado com sucesso', 'modelConfig.disableSuccess': 'Desativado com sucesso', 'modelConfig.operationFailed': 'Falha na operação', 'modelConfig.setDefaultSuccess': 'Modelo padrão definido com sucesso. Por favor, reinicie o módulo xiaozhi-server manualmente', 'modelConfig.itemsPerPage': '{items} itens/página', 'modelConfig.firstPage': 'Primeira Página', 'modelConfig.prevPage': 'Página Anterior', 'modelConfig.nextPage': 'Próxima Página', 'modelConfig.totalRecords': 'Total de {total} registros', 'modelConfig.loading': 'Carregando...', // Diálogo de configuração de modelos 'modelConfigDialog.addModel': 'Adicionar Modelo', 'modelConfigDialog.editModel': 'Editar Modelo', 'modelConfigDialog.duplicateModel': 'Duplicar Modelo', 'modelConfigDialog.copySuffix': '_cópia', 'modelConfigDialog.modelInfo': 'Informações do Modelo', 'modelConfigDialog.enable': 'Ativar', 'modelConfigDialog.setDefault': 'Definir como Padrão', 'modelConfigDialog.modelId': 'ID do Modelo', 'modelConfigDialog.enterModelId': 'Se não preenchido, será gerado automaticamente', 'modelConfigDialog.invalidModelId': 'O ID do modelo não pode ser apenas texto ou espaços. Use letras, números, sublinhados ou hífens', 'modelConfigDialog.modelName': 'Nome do Modelo', 'modelConfigDialog.enterModelName': 'Por favor, insira o nome do modelo', 'modelConfigDialog.modelCode': 'Código do Modelo', 'modelConfigDialog.enterModelCode': 'Por favor, insira o código do modelo', 'modelConfigDialog.supplier': 'Fornecedor', 'modelConfigDialog.selectSupplier': 'Por favor, selecione', 'modelConfigDialog.sortOrder': 'Ordem de Classificação', 'modelConfigDialog.enterSortOrder': 'Por favor, insira a ordem de classificação', 'modelConfigDialog.docLink': 'Link da Documentação', 'modelConfigDialog.enterDocLink': 'Por favor, insira o link da documentação', 'modelConfigDialog.remark': 'Observação', 'modelConfigDialog.enterRemark': 'Por favor, insira a observação do modelo', 'modelConfigDialog.callInfo': 'Informações de Chamada', 'modelConfigDialog.enterJsonExample': 'Por favor, insira variáveis no formato JSON (exemplo: {"key":"value"})', 'modelConfigDialog.save': 'Salvar', // Configuração de modelo TTS 'ttsModel.select': 'Selecionar', 'ttsModel.voiceCode': 'Código da Voz', 'ttsModel.voiceName': 'Nome da Voz', 'ttsModel.languageType': 'Tipo de Idioma', 'ttsModel.preview': 'Pré-visualizar', 'ttsModel.enterMp3Url': 'Por favor, insira a URL do MP3', 'ttsModel.remark': 'Observação', 'ttsModel.enterRemark': 'Esta é uma observação', 'ttsModel.referenceAudioPath': 'Caminho do Áudio de Referência', 'ttsModel.enterReferenceAudio': 'Este é o caminho do áudio de referência', 'ttsModel.referenceText': 'Texto do Áudio de Referência', 'ttsModel.enterReferenceText': 'Este é o texto do áudio de referência', 'ttsModel.action': 'Ação', 'ttsModel.operation': 'Operação', 'ttsModel.operationFailed': 'Falha na operação', 'ttsModel.operationClosed': 'Operação fechada', 'ttsModel.edit': 'Editar', 'ttsModel.delete': 'Excluir', 'ttsModel.deleteVoiceSuccess': '{count} vozes excluídas com sucesso', 'ttsModel.deleteFailed': 'Falha ao excluir vozes', 'ttsModel.save': 'Salvar', 'ttsModel.deselectAll': 'Desmarcar Tudo', 'ttsModel.selectAll': 'Selecionar Tudo', 'ttsModel.add': 'Adicionar', 'ttsModel.fetchVoicesFailed': 'Falha ao buscar lista de vozes', 'ttsModel.loadVoicesFailed': 'Falha ao carregar dados de voz', 'ttsModel.unnamedVoice': 'Voz Sem Nome', 'ttsModel.finishEditingFirst': 'Por favor, termine a edição atual primeiro', 'ttsModel.selectVoiceToDelete': 'Por favor, selecione vozes para excluir', 'ttsModel.warning': 'Aviso', 'ttsModel.confirmDeleteVoice': 'Tem certeza de que deseja excluir {count} vozes?', 'ttsModel.voiceCodeNameLanguageRequired': 'Código da voz, nome da voz e tipo de idioma não podem estar vazios', 'ttsModel.deleteCancelled': 'Exclusão cancelada', 'ttsModel.updateSuccess': 'Atualizado com sucesso', 'ttsModel.saveSuccess': 'Salvo com sucesso', // Página de gerenciamento OTA 'otaManagement.firmwareManagement': 'Gerenciamento de Firmware', 'otaManagement.searchPlaceholder': 'Por favor, insira o nome do firmware para pesquisar', 'otaManagement.search': 'Pesquisar', 'otaManagement.firmwareName': 'Nome do Firmware', 'otaManagement.firmwareType': 'Tipo de Firmware', 'otaManagement.version': 'Versão', 'otaManagement.fileSize': 'Tamanho do Arquivo', 'otaManagement.remark': 'Observação', 'otaManagement.createTime': 'Data de Criação', 'otaManagement.updateTime': 'Data de Atualização', 'otaManagement.action': 'Ação', 'otaManagement.download': 'Baixar', 'otaManagement.edit': 'Editar', 'otaManagement.delete': 'Excluir', 'otaManagement.selectAll': 'Selecionar Tudo', 'otaManagement.deselectAll': 'Desmarcar Tudo', 'otaManagement.addNew': 'Adicionar Novo', 'otaManagement.addFirmware': 'Adicionar Firmware', 'otaManagement.editFirmware': 'Editar Firmware', 'otaManagement.itemsPerPage': '{items} itens/página', 'otaManagement.firstPage': 'Primeira Página', 'otaManagement.prevPage': 'Página Anterior', 'otaManagement.nextPage': 'Próxima Página', 'otaManagement.totalRecords': 'Total de {total} registros', 'otaManagement.selectFirmwareFirst': 'Por favor, selecione firmware para excluir primeiro', 'otaManagement.confirmBatchDelete': 'Tem certeza de que deseja excluir os {paramCount} firmware selecionados?', 'otaManagement.operationCancelled': 'Operação de exclusão foi cancelada', 'otaManagement.operationClosed': 'Operação foi fechada', 'otaManagement.batchDeleteSuccess': '{paramCount} firmware excluídos com sucesso', 'otaManagement.deleteFailed': 'Falha na exclusão. Por favor, tente novamente', 'otaManagement.incompleteFirmwareInfo': 'Informações de firmware incompletas', 'otaManagement.getDownloadUrlFailed': 'Falha ao obter link de download', 'otaManagement.getFirmwareTypesFailed': 'Falha ao obter tipos de firmware', 'otaManagement.updateSuccess': 'Atualizado com sucesso', 'otaManagement.updateFailed': 'Falha na atualização', 'otaManagement.addSuccess': 'Adicionado com sucesso', 'otaManagement.addFailed': 'Falha ao adicionar', 'otaManagement.fetchFirmwareListFailed': 'Falha ao buscar lista de firmware', // Tipos de modelo na página de gerenciamento de provedores 'providerManagement.all': 'Todos', 'providerManagement.modelType.ASR': 'Reconhecimento de Fala', 'providerManagement.modelType.TTS': 'Texto para Fala', 'providerManagement.modelType.LLM': 'Modelo de Linguagem Grande', 'providerManagement.modelType.VLLM': 'Modelo de Linguagem Visual Grande', 'providerManagement.modelType.Intent': 'Reconhecimento de Intenção', 'providerManagement.modelType.Memory': 'Módulo de Memória', 'providerManagement.modelType.VAD': 'Detecção de Atividade de Voz', 'providerManagement.modelType.Plugin': 'Ferramenta de Plugin', 'providerManagement.modelType.RAG': 'RAG', // Diálogo de provedor 'providerDialog.category': 'Categoria', 'providerDialog.selectCategory': 'Por favor, selecione a categoria', 'providerDialog.code': 'Código', 'providerDialog.inputCode': 'Por favor, insira o código do provedor', 'providerDialog.name': 'Nome', 'providerDialog.inputName': 'Por favor, insira o nome do provedor', 'providerDialog.sort': 'Ordenação', 'providerDialog.fieldConfig': 'Configuração de Campos', 'providerDialog.add': 'Adicionar', 'providerDialog.deselectAll': 'Desmarcar Tudo', 'providerDialog.selectAll': 'Selecionar Tudo', 'providerDialog.batchDelete': 'Exclusão em Lote', 'providerDialog.fieldKey': 'Chave do Campo', 'providerDialog.fieldLabel': 'Rótulo do Campo', 'providerDialog.fieldType': 'Tipo do Campo', 'providerDialog.type': 'Tipo', 'providerDialog.stringType': 'Texto', 'providerDialog.numberType': 'Número', 'providerDialog.booleanType': 'Booleano', 'providerDialog.dictType': 'Dicionário', 'providerDialog.arrayType': 'Lista Separada por Ponto e Vírgula', 'providerDialog.ragType': 'RAG', 'providerDialog.defaultValue': 'Valor Padrão', 'providerDialog.inputDefaultValue': 'Por favor, insira o valor padrão', 'providerDialog.operation': 'Operação', 'providerDialog.edit': 'Editar', 'providerDialog.complete': 'Concluir', 'providerDialog.delete': 'Excluir', 'providerDialog.save': 'Salvar', 'providerDialog.requiredCategory': 'Por favor, selecione a categoria', 'providerDialog.requiredCode': 'Por favor, insira o código do provedor', 'providerDialog.requiredName': 'Por favor, insira o nome do provedor', 'providerDialog.completeFieldEdit': 'Por favor, conclua a edição do campo atual primeiro', 'providerDialog.confirmDeleteField': 'Tem certeza de que deseja excluir este campo?', 'providerDialog.selectFieldsToDelete': 'Por favor, selecione campos para excluir primeiro', 'providerDialog.confirmBatchDeleteFields': 'Tem certeza de que deseja excluir {count} campos selecionados?', 'providerDialog.batchDeleteFieldsSuccess': '{count} campos excluídos com sucesso', // Gerenciamento de modelos de agente 'agentTemplateManagement.title': 'Gerenciamento de Papéis Padrão', 'agentTemplateManagement.templateName': 'Nome do Modelo', 'agentTemplateManagement.action': 'Ação', 'agentTemplateManagement.createTemplate': 'Criar Modelo', 'agentTemplateManagement.editTemplate': 'Editar Modelo', 'agentTemplateManagement.deleteTemplate': 'Excluir Modelo', 'agentTemplateManagement.deleteSuccess': 'Modelo excluído com sucesso', 'agentTemplateManagement.batchDelete': 'Exclusão em Lote', 'agentTemplateManagement.batchDeleteSuccess': 'Exclusão em lote realizada com sucesso', 'agentTemplateManagement.selectTemplate': 'Por favor, selecione um modelo', 'agentTemplateManagement.select': 'Selecionar', 'agentTemplateManagement.searchPlaceholder': 'Por favor, insira o nome do modelo para pesquisar', 'agentTemplateManagement.search': 'Pesquisar', 'agentTemplateManagement.serialNumber': 'Número de Série', 'agentTemplateManagement.selectAll': 'Selecionar Tudo', 'agentTemplateManagement.deselectAll': 'Desmarcar Tudo', 'agentTemplateManagement.loading': 'Carregando...', 'agentTemplateManagement.confirmSingleDelete': 'Tem certeza de que deseja excluir este modelo?', 'agentTemplateManagement.confirmBatchDelete': 'Tem certeza de que deseja excluir os {count} modelos selecionados?', 'agentTemplateManagement.deleteFailed': 'Falha ao excluir modelo', 'agentTemplateManagement.batchDeleteFailed': 'Falha na exclusão em lote de modelos', 'agentTemplateManagement.deleteBackendError': 'Falha na exclusão. Verifique se o serviço de backend está funcionando normalmente', // Configuração rápida de modelo 'templateQuickConfig.title': 'Configuração Rápida de Módulo', 'templateQuickConfig.agentSettings.agentName': 'Apelido', 'templateQuickConfig.agentSettings.agentNamePlaceholder': 'Por favor, insira o apelido', 'templateQuickConfig.agentSettings.systemPrompt': 'Introdução', 'templateQuickConfig.agentSettings.systemPromptPlaceholder': 'Por favor, insira a introdução', 'templateQuickConfig.saveConfig': 'Salvar Configuração', 'templateQuickConfig.resetConfig': 'Redefinir Configuração', 'templateQuickConfig.saveSuccess': 'Configuração salva com sucesso', 'templateQuickConfig.resetSuccess': 'Configuração redefinida com sucesso', 'templateQuickConfig.confirmReset': 'Tem certeza de que deseja redefinir a configuração?', 'templateQuickConfig.saveFailed': 'Falha ao salvar configuração', 'templateQuickConfig.confirm': 'Confirmar', 'templateQuickConfig.cancel': 'Cancelar', 'templateQuickConfig.templateNotFound': 'Modelo não encontrado', 'templateQuickConfig.newTemplate': 'Novo Modelo', 'templateQuickConfig.editTemplate': 'Editar Modelo', 'templateQuickConfig.addTemplate': 'Adicionar Modelo', 'warning': 'Aviso', 'info': 'Informação', 'common.networkError': 'Falha na requisição de rede', // Criptografia SM2 'sm2.publicKeyNotConfigured': 'Chave pública SM2 não configurada. Por favor, entre em contato com o administrador', 'sm2.encryptionFailed': 'Falha na criptografia da senha', 'sm2.keyGenerationFailed': 'Falha na geração do par de chaves', 'sm2.invalidPublicKey': 'Formato de chave pública inválido', 'sm2.encryptionError': 'Ocorreu um erro durante a criptografia', 'sm2.publicKeyRetry': 'Tentando obter a chave pública novamente...', 'sm2.publicKeyRetryFailed': 'Falha na nova tentativa de obtenção da chave pública', // Clonagem de Voz e Gerenciamento de Recursos 'voiceClone.title': 'Clonagem de Voz', 'voiceResource.title': 'Recurso de Voz', 'voiceClone.platformName': 'Nome da Plataforma', 'voiceClone.voiceId': 'ID da Voz', 'voiceClone.userId': 'Proprietário da Conta', 'voiceClone.name': 'Nome da Voz', 'voiceClone.clone': 'Clonar Voz', 'voiceClone.action': 'Ação', 'voiceClone.modelId': 'ID do Modelo', 'voiceClone.trainStatus': 'Status do Treinamento', 'voiceClone.trainError': 'Erro de Treinamento', 'voiceClone.createdAt': 'Data de Criação', 'voiceClone.search': 'Pesquisar', 'voiceClone.searchPlaceholder': 'Por favor, insira o nome da voz ou ID da voz', 'voiceClone.addNew': 'Adicionar', 'voiceClone.delete': 'Excluir', 'voiceClone.selectAll': 'Selecionar Tudo', 'voiceClone.deselectAll': 'Desmarcar Tudo', 'voiceClone.addVoiceClone': 'Adicionar Recurso de Voz', 'voiceClone.confirmDelete': 'Tem certeza de que deseja excluir os {count} recursos de voz selecionados?', 'voiceClone.deleteSuccess': '{count} recursos de voz excluídos com sucesso', 'voiceClone.deleteFailed': 'Falha na exclusão', 'voiceClone.addSuccess': 'Adicionado com sucesso', 'voiceClone.addFailed': 'Falha ao adicionar', 'voiceClone.updateSuccess': 'Atualizado com sucesso', 'voiceClone.updateFailed': 'Falha na atualização', 'voiceClone.selectFirst': 'Por favor, selecione recursos de voz para excluir primeiro', 'voiceClone.operationCancelled': 'Cancelar', 'voiceClone.operationClosed': 'Popup fechado', 'voiceClone.cloneSuccess': 'Clonagem bem-sucedida', 'voiceClone.cloneFailed': 'Falha ao clonar', 'voiceClone.cloneErrorTip': 'Falha na clonagem, passe o mouse sobre a dica de erro para ver os detalhes', 'voiceClone.apiError': 'Erro na chamada da API', 'voiceClone.confirmClone': 'Tem certeza de que deseja clonar esta voz?', 'voiceClone.onlySuccessCanClone': 'Apenas vozes treinadas com sucesso podem ser clonadas', 'common.insufficient': 'Insuficiente', 'voiceClone.platformNameRequired': 'Por favor, selecione o nome da plataforma', 'voiceClone.voiceIdRequired': 'Por favor, selecione o ID da voz', 'voiceClone.userIdRequired': 'Por favor, selecione o proprietário da conta', 'voiceClone.platformNamePlaceholder': 'Por favor, selecione o nome da plataforma', 'voiceClone.voiceIdPlaceholder': 'Por favor, insira o ID da voz e pressione Enter', 'voiceClone.userIdPlaceholder': 'Por favor, insira palavra-chave para selecionar o proprietário da conta', 'voiceClone.languages': 'Idiomas', 'voiceClone.languagesPlaceholder': 'Por favor, insira idiomas, ex.: Português, English', 'voiceClone.languagesRequired': 'Por favor, insira idiomas', 'voiceClone.waitingUpload': 'Aguardando envio', 'voiceClone.waitingTraining': 'Aguardando clonagem', 'voiceClone.training': 'Treinando', 'voiceClone.trainSuccess': 'Treinamento bem-sucedido', 'voiceClone.trainFailed': 'Treinamento falhou', 'voiceClone.trainFailedWithError': 'Treinamento falhou: {error}', 'voiceClone.itemsPerPage': '{items} itens/página', 'voiceClone.firstPage': 'Primeira Página', 'voiceClone.prevPage': 'Página Anterior', 'voiceClone.nextPage': 'Próxima Página', 'voiceClone.totalRecords': '{total} registros no total', 'voiceClone.noVoiceCloneAssigned': 'Sua conta não possui recursos de voz atribuídos', 'voiceClone.contactAdmin': 'Por favor, entre em contato com o administrador para atribuição de recursos de voz', 'voiceClone.dialogTitle': 'Clonagem de Voz', 'voiceClone.stepUpload': 'Preparar Áudio', 'voiceClone.stepEdit': 'Editar Áudio', 'voiceClone.dragOrClick': 'Arraste o arquivo de áudio aqui ou clique para enviar', 'voiceClone.uploadTip': 'Suporta todos os formatos de áudio principais. A duração selecionada deve ser entre 8 e 60 segundos', 'voiceClone.editTip1': 'Por favor, confirme se o áudio enviado está satisfatório', 'voiceClone.editTip2': 'Você pode ouvir e cortar o áudio. Se não estiver satisfeito, pode voltar para regravar ou reenviar', 'voiceClone.selectedDuration': 'Segmento válido selecionado: {duration} segundos', 'voiceClone.trim': 'Cortar segmento selecionado', 'voiceClone.reset': 'Redefinir', 'voiceClone.play': 'Reproduzir', 'voiceClone.pause': 'Pausar', 'voiceClone.stop': 'Parar', 'voiceClone.cancel': 'Cancelar', 'voiceClone.warning': 'Aviso', 'voiceClone.ok': 'OK', 'voiceClone.nextStep': 'Próximo', 'voiceClone.prevStep': 'Anterior', 'voiceClone.upload': 'Enviar Áudio', 'voiceClone.pleaseSelectAudio': 'Por favor, selecione um arquivo de áudio primeiro', 'voiceClone.durationError': 'A duração do áudio deve ser entre 8 e 60 segundos', 'voiceClone.loadAudioFailed': 'Falha ao carregar áudio', 'voiceClone.trimSuccess': 'Corte realizado com sucesso', 'voiceClone.resetSuccess': 'Redefinido com sucesso', 'voiceClone.uploadSuccess': 'Enviado com sucesso', 'voiceClone.uploadFailed': 'Falha no envio', 'voiceClone.updateNameSuccess': 'Nome atualizado com sucesso', 'voiceClone.updateNameFailed': 'Falha ao atualizar nome', 'voiceClone.playFailed': 'Falha na reprodução', 'voiceClone.Details': 'Detalhes do Erro', // Página de gerenciamento da Base de Conhecimento 'knowledgeBaseManagement.title': 'Base de Conhecimento', 'knowledgeBaseManagement.searchPlaceholder': 'Por favor, insira o nome da base de conhecimento para pesquisar', 'knowledgeBaseManagement.search': 'Pesquisar', 'knowledgeBaseManagement.name': 'Nome da Base de Conhecimento', 'knowledgeBaseManagement.description': 'Descrição da Base de Conhecimento', 'knowledgeBaseManagement.documentCount': 'Quantidade de Documentos', 'knowledgeBaseManagement.status': 'Ativado', 'knowledgeBaseManagement.createdAt': 'Data de Criação', 'knowledgeBaseManagement.operation': 'Operação', 'knowledgeBaseManagement.add': 'Adicionar', 'knowledgeBaseManagement.delete': 'Excluir', 'knowledgeBaseManagement.edit': 'Editar', 'knowledgeBaseManagement.itemsPerPage': 'itens/página', 'knowledgeBaseManagement.firstPage': 'Primeira Página', 'knowledgeBaseManagement.prevPage': 'Página Anterior', 'knowledgeBaseManagement.nextPage': 'Próxima Página', 'knowledgeBaseManagement.totalRecords': 'Total de {total} registros', 'knowledgeBaseManagement.addKnowledgeBase': 'Adicionar Base de Conhecimento', 'knowledgeBaseManagement.editKnowledgeBase': 'Editar Base de Conhecimento', 'knowledgeBaseManagement.getKnowledgeBaseListFailed': 'Falha ao obter lista de bases de conhecimento', 'knowledgeBaseManagement.selectKnowledgeBaseFirst': 'Por favor, selecione bases de conhecimento para excluir primeiro', 'knowledgeBaseManagement.confirmBatchDelete': 'Tem certeza de que deseja excluir as {count} bases de conhecimento selecionadas?', 'knowledgeBaseManagement.batchDeleteSuccess': '{count} bases de conhecimento excluídas com sucesso', 'knowledgeBaseManagement.deleteFailed': 'Falha ao excluir. Por favor, tente novamente', 'knowledgeBaseManagement.operationCancelled': 'Operação de exclusão foi cancelada', 'knowledgeBaseManagement.updateSuccess': 'Atualizado com sucesso', 'knowledgeBaseManagement.addSuccess': 'Adicionado com sucesso', 'knowledgeBaseManagement.updateFailed': 'Falha na atualização', 'knowledgeBaseManagement.addFailed': 'Falha ao adicionar', 'knowledgeBaseManagement.selectAll': 'Selecionar Tudo', 'knowledgeBaseManagement.cancelSelectAll': 'Desmarcar Tudo', // Diálogo da Base de Conhecimento 'knowledgeBaseDialog.title': 'Base de Conhecimento', 'knowledgeBaseDialog.name': 'Nome da Base de Conhecimento', 'knowledgeBaseDialog.namePlaceholder': 'Por favor, insira o nome da base de conhecimento com precisão para melhorar a acurácia da chamada da base de conhecimento', 'knowledgeBaseDialog.description': 'Descrição da Base de Conhecimento', 'knowledgeBaseDialog.descriptionPlaceholder': 'Por favor, insira a descrição da base de conhecimento com precisão para ajudar o modelo a entender melhor o conteúdo', 'knowledgeBaseDialog.ragModel': 'Modelo RAG', 'knowledgeBaseDialog.ragModelPlaceholder': 'Por favor, selecione o modelo RAG', 'knowledgeBaseDialog.ragModelRequired': 'Por favor, selecione o modelo RAG', 'knowledgeBaseDialog.loadRAGModelsFailed': 'Falha ao carregar lista de modelos RAG', 'knowledgeBaseDialog.status': 'Status', 'knowledgeBaseDialog.statusEnabled': 'Ativado', 'knowledgeBaseDialog.statusDisabled': 'Desativado', 'knowledgeBaseDialog.save': 'Salvar', 'knowledgeBaseDialog.cancel': 'Cancelar', 'knowledgeBaseDialog.confirm': 'Confirmar', 'knowledgeBaseDialog.requiredName': 'Por favor, insira o nome da base de conhecimento', 'knowledgeBaseDialog.nameRequired': 'Por favor, insira o nome da base de conhecimento', 'knowledgeBaseDialog.nameLength': 'O nome da base de conhecimento deve ter entre 1 e 50 caracteres', 'knowledgeBaseDialog.namePattern': 'O nome da base de conhecimento pode conter apenas caracteres chinêses, inglêses, números, espaços, sublinhados e hífens', 'knowledgeBaseDialog.descriptionLength': 'A descrição da base de conhecimento não pode exceder 200 caracteres', 'knowledgeBaseDialog.nameLengthLimit': 'O nome da base de conhecimento não pode exceder 50 caracteres', 'knowledgeBaseDialog.descriptionLengthLimit': 'A descrição da base de conhecimento não pode exceder 200 caracteres', // Botão de visualização na página de gerenciamento da base de conhecimento 'knowledgeBaseManagement.view': 'Gerenciar Arquivos', // Página de upload de arquivos da base de conhecimento 'knowledgeFileUpload.back': 'Voltar', 'knowledgeFileUpload.searchPlaceholder': 'Por favor, insira o nome do documento para pesquisar', 'knowledgeFileUpload.search': 'Pesquisar', 'knowledgeFileUpload.addDocument': 'Adicionar Documento', 'knowledgeFileUpload.documentName': 'Nome do Documento', 'knowledgeFileUpload.uploadTime': 'Data de Envio', 'knowledgeFileUpload.status': 'Status', 'knowledgeFileUpload.operation': 'Operação', 'knowledgeFileUpload.parse': 'Analisar', 'knowledgeFileUpload.viewSlices': 'Ver Fatias', 'knowledgeFileUpload.delete': 'Excluir', 'knowledgeFileUpload.itemsPerPage': 'itens/página', 'knowledgeFileUpload.uploadDocument': 'Enviar Documento', 'knowledgeFileUpload.documentNamePlaceholder': 'Por favor, insira o nome do documento', 'knowledgeFileUpload.file': 'Arquivo', 'knowledgeFileUpload.clickToUpload': 'Clique para enviar', 'knowledgeFileUpload.uploadTip': 'Tipos de arquivo suportados: PDF, DOC, DOCX, TXT, MD, CSV, XLS, XLSX, PPT, PPTX. Máximo de 32 arquivos por envio, cada arquivo com até 10MB', 'knowledgeFileUpload.dragOrClick': 'Arraste o arquivo aqui ou clique para enviar', 'knowledgeFileUpload.cancel': 'Cancelar', 'knowledgeFileUpload.confirm': 'Confirmar', 'knowledgeFileUpload.knowledgeBaseName': 'Nome da Base de Conhecimento', 'knowledgeFileUpload.statusNotStarted': 'Não Iniciado', 'knowledgeFileUpload.statusProcessing': 'Processando', 'knowledgeFileUpload.statusCancelled': 'Cancelado', 'knowledgeFileUpload.statusCompleted': 'Concluído', 'knowledgeFileUpload.statusFailed': 'Falhou', 'knowledgeFileUpload.uploadSuccess': 'Documento enviado com sucesso', 'knowledgeFileUpload.uploadFailed': 'Falha no envio do documento', 'knowledgeFileUpload.parseSuccess': 'Documento analisado com sucesso', 'knowledgeFileUpload.parseFailed': 'Falha na análise do documento', 'knowledgeFileUpload.deleteSuccess': 'Documento excluído com sucesso', 'knowledgeFileUpload.deleteFailed': 'Falha ao excluir documento', 'knowledgeFileUpload.confirmDelete': 'Tem certeza de que deseja excluir este documento?', 'knowledgeFileUpload.confirmParse': 'Tem certeza de que deseja analisar este documento?', 'knowledgeFileUpload.nameRequired': 'Por favor, insira o nome do documento', 'knowledgeFileUpload.fileRequired': 'Por favor, selecione um arquivo para enviar', 'knowledgeFileUpload.fileSizeExceeded': 'O tamanho do arquivo não pode exceder 10MB!', 'knowledgeFileUpload.getListFailed': 'Falha ao obter lista de documentos', 'knowledgeFileUpload.parseCancelled': 'Análise cancelada', 'knowledgeFileUpload.deleteCancelled': 'Exclusão cancelada', 'knowledgeFileUpload.selectFilesFirst': 'Por favor, selecione arquivos para excluir primeiro', 'knowledgeFileUpload.selectAll': 'Selecionar Tudo', 'knowledgeFileUpload.deselectAll': 'Desmarcar Tudo', 'knowledgeFileUpload.batchDelete': 'Excluir', 'knowledgeFileUpload.confirmBatchDelete': 'Tem certeza de que deseja excluir os {count} arquivos selecionados?', 'knowledgeFileUpload.batchDeleteSuccess': '{count} arquivos excluídos com sucesso', 'knowledgeFileUpload.batchDeleteFailed': 'Falha na exclusão em lote', 'knowledgeFileUpload.sliceCount': 'Quantidade de Fatias', 'knowledgeFileUpload.add': 'Adicionar', 'knowledgeFileUpload.retrievalTest': 'Teste de Recuperação', 'knowledgeFileUpload.executeTest': 'Executar Teste', 'knowledgeFileUpload.selectedFiles': 'Arquivos Selecionados', 'knowledgeFileUpload.totalSlices': 'Total de {total} registros', 'knowledgeFileUpload.slice': 'Fatia', 'knowledgeFileUpload.noSliceData': 'Não há dados de fatia disponíveis', 'knowledgeFileUpload.firstPage': 'Primeira', 'knowledgeFileUpload.prevPage': 'Anterior', 'knowledgeFileUpload.nextPage': 'Próxima', 'knowledgeFileUpload.totalRecords': 'Total de {total} registros', 'knowledgeFileUpload.testQuestion': 'Pergunta de Teste', 'knowledgeFileUpload.testQuestionPlaceholder': 'Por favor, insira a pergunta para testar', 'knowledgeFileUpload.runTest': 'Executar Teste', 'knowledgeFileUpload.testResult': 'Resultado do Teste:', 'knowledgeFileUpload.noRelatedSlices': 'Nenhuma fatia relacionada encontrada', 'knowledgeFileUpload.comprehensiveSimilarity': 'Similaridade Geral', 'knowledgeFileUpload.content': 'Conteúdo:', 'knowledgeFileUpload.testQuestionRequired': 'Por favor, insira a pergunta de teste', 'knowledgeFileUpload.sourceDocument': 'Documento de origem', 'knowledgeFileUpload.parsing': 'Analisando...', 'knowledgeBaseDialog.descriptionRequired': 'Por favor, insira a descrição da base de conhecimento', // Página de gerenciamento de base de conhecimento 'knowledgeBaseManagement.loading': 'Carregando...', 'knowledgeBaseManagement.noData': 'Sem dados', 'knowledgeBaseManagement.switchKnowledgeBase': 'Alternar Base de Conhecimento', 'knowledgeBaseManagement.currentKnowledgeBaseDocuments': 'Ativos de Documentos da Base de Conhecimento Atual', 'knowledgeBaseManagement.enabled': 'Ativado', 'knowledgeBaseManagement.disabled': 'Desativado', 'knowledgeBaseManagement.totalDocuments': 'Total de {total} documentos', 'knowledgeBaseManagement.getListFailed': 'Falha ao obter lista', // Página de gerenciamento de funcionalidades 'featureManagement.selectAll': 'Selecionar Tudo', 'featureManagement.deselectAll': 'Desmarcar Tudo', 'featureManagement.save': 'Salvar Configuração', 'featureManagement.reset': 'Redefinir', 'featureManagement.group.featureManagement': 'Ativar/Desativar a funcionalidade/seção', 'featureManagement.group.voiceManagement': 'Visível para usuários durante a configuração do agente', 'featureManagement.noFeatures': 'Nenhuma funcionalidade disponível', 'featureManagement.contactAdmin': 'Por favor, entre em contato com o administrador para configurar funcionalidades', 'featureManagement.saveSuccess': 'Configuração de funcionalidades salva com sucesso', 'featureManagement.resetConfirm': 'Tem certeza de que deseja redefinir todas as configurações de funcionalidades?', 'featureManagement.confirm': 'Confirmar', 'featureManagement.cancel': 'Cancelar', 'featureManagement.resetSuccess': 'Configuração de funcionalidades redefinida com sucesso', 'featureManagement.noChanges': 'Nenhuma alteração para salvar', 'featureManagement.saving': 'Salvando...', 'featureManagement.groupName.featureManagement': 'Interruptor de Módulo de Funcionalidade', 'featureManagement.groupName.voiceManagement': 'Configuração de Visibilidade do Agente', 'featureManagement.groupDescription.featureManagement': 'Controlar o status de ativação dos módulos de funcionalidade principal', 'featureManagement.groupDescription.voiceManagement': 'Configurar quais funcionalidades são visíveis e disponíveis para agentes (assistentes de IA)', 'featureManagement.moduleCount': '{count} módulos no total', // Nomes e descrições de funcionalidades 'feature.voiceprintRecognition.name': 'Reconhecimento de Impressão Vocal', 'feature.voiceprintRecognition.description': 'Verificar a identidade do usuário através da tecnologia de reconhecimento de impressão vocal, proporcionando uma experiência segura de interação por voz', 'feature.voiceClone.name': 'Clonagem de Voz', 'feature.voiceClone.description': 'Clonar timbres de voz específicos usando tecnologia de IA para obter síntese de voz personalizada', 'feature.knowledgeBase.name': 'Base de Conhecimento', 'feature.knowledgeBase.description': 'Construir e gerenciar sistema de base de conhecimento para fornecer suporte de conhecimento profissional aos assistentes de IA', 'feature.mcpAccessPoint.name': 'Ponto de Acesso MCP', 'feature.mcpAccessPoint.description': 'Fornecer pontos de acesso do protocolo MCP para suportar integração de ferramentas e serviços externos', 'feature.vad.name': 'Detecção de Atividade de Voz', 'feature.vad.description': 'Detectar automaticamente atividade de voz para otimizar a eficiência de resposta da interação por voz', 'feature.asr.name': 'Reconhecimento de Fala', 'feature.asr.description': 'Converter fala em texto para habilitar a funcionalidade de interação por linguagem natural', 'feature.addressBook.name': 'Lista de Contatos', 'feature.addressBook.description': 'Gerenciar e manter lista de contatos para fornecer suporte de informações de contato para assistente de IA', // Página de Gerenciamento de Lista de Contatos 'addressBookManagement.title': 'Gerenciamento de Lista de Contatos', 'addressBookManagement.searchPlaceholder': 'Pesquisar nome do dispositivo ou endereço MAC', 'addressBookManagement.selectAgent': 'Selecione um agente', 'addressBookManagement.name': 'Nome da Lista de Contatos', 'addressBookManagement.description': 'Descrição da Lista de Contatos', 'addressBookManagement.contactCount': 'Número de Contatos', 'addressBookManagement.createdAt': 'Data de Criação', 'addressBookManagement.operation': 'Operação', 'addressBookManagement.add': 'Adicionar', 'addressBookManagement.edit': 'Editar', 'addressBookManagement.delete': 'Excluir', 'addressBookManagement.itemsPerPage': 'itens/página', 'addressBookManagement.firstPage': 'Primeira', 'addressBookManagement.prevPage': 'Anterior', 'addressBookManagement.nextPage': 'Próxima', 'addressBookManagement.totalRecords': '{total} registros no total', 'addressBookManagement.addAddressBook': 'Adicionar Lista de Contatos', 'addressBookManagement.editAddressBook': 'Editar Lista de Contatos', 'addressBookManagement.getAddressBookListFailed': 'Falha ao obter lista de contatos', 'addressBookManagement.selectAddressBookFirst': 'Selecione as listas de contatos para excluir primeiro', 'addressBookManagement.confirmBatchDelete': 'Tem certeza de que deseja excluir {count} listas de contatos selecionadas?', 'addressBookManagement.batchDeleteSuccess': '{count} listas de contatos excluídas com sucesso', 'addressBookManagement.deleteFailed': 'Falha ao excluir, tente novamente', 'addressBookManagement.operationCancelled': 'Operação de exclusão cancelada', 'addressBookManagement.updateSuccess': 'Atualização bem-sucedida', 'addressBookManagement.addSuccess': 'Adição bem-sucedida', 'addressBookManagement.addFailed': 'Falha ao adicionar', 'addressBookManagement.cancelSelectAll': 'Desmarcar Todos', 'addressBookManagement.deviceName': 'Nome do Dispositivo', 'addressBookManagement.deviceType': 'Tipo do Dispositivo', 'addressBookManagement.deviceId': 'ID do Dispositivo', 'addressBookManagement.remarks': 'Observações', 'addressBookManagement.addressBookDetail': 'Detalhes da Lista de Contatos', 'addressBookManagement.addressBookName': 'Nome da Lista de Contatos', 'addressBookManagement.addressBookNamePlaceholder': 'Digite o nome da lista de contatos', 'addressBookManagement.addressBookNameRequired': 'Digite o nome da lista de contatos', 'addressBookManagement.addressBookNameLength': 'O nome da lista de contatos deve ter entre 1 e 50 caracteres', 'addressBookManagement.addressBookDesc': 'Descrição da Lista de Contatos', 'addressBookManagement.addressBookDescPlaceholder': 'Digite a descrição da lista de contatos', 'addressBookManagement.remarksPlaceholder': 'Digite as observações', 'addressBookManagement.selectDevice': 'Selecione um dispositivo para ver os detalhes da lista de contatos', 'addressBookManagement.saveSuccess': 'Salvo com sucesso', 'addressBookManagement.deviceNotSelected': 'Selecione um dispositivo primeiro', 'addressBookManagement.addDeviceTip': 'Recurso de adicionar dispositivo em desenvolvimento', 'addressBookManagement.selectAgentFirst': 'Selecione um agente primeiro', // Diálogo da Lista de Contatos 'addressBookDialog.title': 'Lista de Contatos', 'addressBookDialog.name': 'Nome da Lista de Contatos', 'addressBookDialog.namePlaceholder': 'Digite o nome da lista de contatos', 'addressBookDialog.description': 'Descrição da Lista de Contatos', 'addressBookDialog.descriptionPlaceholder': 'Digite a descrição detalhada da lista de contatos', 'addressBookDialog.status': 'Status', 'addressBookDialog.save': 'Salvar', 'addressBookDialog.cancel': 'Cancelar', 'addressBookDialog.confirm': 'Confirmar', 'addressBookDialog.nameRequired': 'Digite o nome da lista de contatos', 'addressBookDialog.nameLength': 'O nome da lista de contatos deve ter entre 1 e 50 caracteres', 'addressBookDialog.namePattern': 'O nome da lista de contatos pode conter apenas letras, números, espaços, sublinhados e hifens', 'addressBookDialog.descriptionRequired': 'Digite a descrição da lista de contatos', 'addressBookDialog.descriptionLength': 'A descrição da lista de contatos não pode exceder 300 caracteres', // Página de Gerenciamento de Lista de Contatos - Lista de Dispositivos 'addressBookManagement.mainTitle': 'Gerenciamento de Lista de Contatos', 'addressBookManagement.subTitle': 'Gerenciar lista de contatos do dispositivo, definir nomes e permissões de chamada', 'addressBookManagement.online': 'Online', 'addressBookManagement.offline': 'Offline', 'addressBookManagement.macAddress': 'Endereço MAC', 'addressBookManagement.status': 'Status', 'addressBookManagement.deviceGroup': 'Agente Vinculado', 'addressBookManagement.addTime': 'Hora de Adição', 'addressBookManagement.lastOnline': 'Última Conexão', 'addressBookManagement.deviceCallPermission': 'Permissão de Chamada do Dispositivo', 'addressBookManagement.setPermissionDesc': 'Definir quais dispositivos o dispositivo atual pode chamar ({count} selecionados)', 'addressBookManagement.selectAll': 'Selecionar Todos', 'addressBookManagement.deselectAll': 'Desmarcar Todos', 'addressBookManagement.save': 'Salvar Permissões', // Address Book Management page - operation messages 'addressBookManagement.aliasSaved': 'Apelido salvo', 'addressBookManagement.saveFailed': 'Falha ao salvar', 'addressBookManagement.noChanges': 'Sem alterações', 'addressBookManagement.permissionSaved': 'Permissão salva', 'addressBookManagement.partialSaveFailed': 'Algumas permissões não puderam ser salvas', 'addressBookManagement.agentNameUpdated': 'Nome do agente atualizado', 'addressBookManagement.updateFailed': 'Falha na atualização', // Time format 'addressBookManagement.justNow': 'Agora mesmo', 'addressBookManagement.minutesAgo': 'há {minutes} minutos', 'addressBookManagement.hoursAgo': 'há {hours} horas', 'addressBookManagement.daysAgo': 'há {days} dias', 'addressBookManagement.monthsAgo': 'há {months} meses', 'addressBookManagement.yearsAgo': 'há {years} anos', // Header navigation 'header.addressBook': 'Lista de Contatos', }