2026-02-19 17:44:25 +00:00
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' ,
2026-04-23 17:50:57 +08:00
'header.replacementWordManagement' : 'Gerenciamento de Palavras de Substituição' ,
2026-02-19 17:44:25 +00:00
'header.featureManagement' : 'Gerenciamento de Funcionalidades do Sistema' ,
'header.changePassword' : 'Alterar Senha' ,
'header.logout' : 'Sair' ,
2026-02-28 17:51:46 +08:00
'header.searchPlaceholder' : 'Nome, tag ou pesquisa no Mac' ,
2026-02-19 17:44:25 +00:00
// 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' ,
2026-04-23 17:50:57 +08:00
// Replacement word management page related
'replacementWordManagement.pageTitle' : 'Gerenciamento de Palavras de Substituição' ,
2026-06-17 14:20:48 +08:00
'replacementWordManagement.searchPlaceholder' : 'Digite o nome do arquivo para pesquisar' ,
'replacementWordManagement.search' : 'Pesquisar' ,
2026-04-23 17:50:57 +08:00
'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' ,
2026-04-24 14:54:37 +08:00
'replacementDialog.maxWordCountExceeded' : 'A quantidade de palavras de substituição não pode exceder {max}' ,
2026-04-23 17:50:57 +08:00
// 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' ,
2026-02-19 17:44:25 +00:00
// 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' ,
2026-06-18 16:49:15 +08:00
'dictManagement.dictTypeCategory' : 'Categoria do Dicionário' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-06-16 10:39:52 +08:00
'user.selectUsersToDisable' : 'Por favor, selecione usuários para desativar' ,
'user.selectUsersToEnable' : 'Por favor, selecione usuários para ativar' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-06-18 10:26:06 +08:00
'common.copySuccess' : 'Cópia bem-sucedida' ,
'common.copyFailed' : 'Falha ao copiar' ,
'common.copyAddress' : 'Copiar endereço' ,
2026-02-19 17:44:25 +00:00
// 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' ,
2026-03-16 10:37:47 +08:00
'home.configureRole' : 'ConfRoles' ,
'home.voiceprintRecognition' : 'RecVoz' ,
2026-02-19 17:44:25 +00:00
'home.deviceManagement' : 'Dispositivos' ,
2026-03-16 10:37:47 +08:00
'home.chatHistory' : 'Conversa' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-02-28 17:51:46 +08:00
'roleConfig.addTag' : 'Adicionar Novo Rótulo' ,
2026-03-06 09:20:15 +08:00
'roleConfig.restartNotice' : 'Reinicie após salvar a configuração para ativação.' ,
2026-02-19 17:44:25 +00:00
'roleConfig.saveConfig' : 'Salvar Configuração' ,
2026-07-08 15:15:26 +08:00
'roleConfig.snapshotHistory' : 'Histórico de Versões' ,
'roleConfig.currentVersion' : 'Versão Atual {version}' ,
'roleConfig.functionName' : 'Nome da Função' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-07-08 15:15:26 +08:00
'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' ,
2026-07-09 10:50:02 +08:00
'agentSnapshot.secretRedacted' : 'Chave secreta mascarada' ,
'agentSnapshot.configValue' : 'Valor da configuração' ,
2026-07-08 15:15:26 +08:00
'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' ,
2026-02-19 17:44:25 +00:00
'roleConfig.vad' : 'Detecção de Voz' ,
'roleConfig.asr' : 'Reconhecimento de Fala' ,
2026-04-02 09:45:33 +08:00
'roleConfig.llm' : 'Modelo de Linguagem Principal' ,
'roleConfig.slm' : 'Modelo de Linguagem Pequeno' ,
2026-02-19 17:44:25 +00:00
'roleConfig.vllm' : 'Modelo de Visão' ,
2026-03-06 09:20:15 +08:00
'roleConfig.intent' : 'Reconhecimento de Intenção' ,
2026-02-19 17:44:25 +00:00
'roleConfig.memoryHis' : 'Memória' ,
'roleConfig.memory' : 'Modelo de Memória' ,
2026-03-06 09:20:15 +08:00
'roleConfig.tts' : 'Texto para Fala' ,
'roleConfig.language' : 'Linguagem do diálogo' ,
'roleConfig.selectLanguage' : 'Por favor, selecione o idioma' ,
2026-02-19 17:44:25 +00:00
'roleConfig.voiceType' : 'Tipo de Voz' ,
2026-03-06 09:20:15 +08:00
'roleConfig.ttsVolume' : 'Volume' ,
'roleConfig.ttsRate' : 'Velocidade da fala' ,
'roleConfig.ttsPitch' : 'Tonalidade' ,
'roleConfig.ttsAdvanced' : 'Parâmetros TTS' ,
2026-04-23 17:50:57 +08:00
'roleConfig.advancedSettings' : 'Pronúncia Tonal Substituição de Palavras' ,
2026-03-06 09:20:15 +08:00
'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' ,
2026-04-23 17:50:57 +08:00
'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' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-04-02 09:45:33 +08:00
// 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' ,
2026-02-19 17:44:25 +00:00
// 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' ,
2026-06-16 16:58:44 +08:00
'templateQuickConfig.editTemplate' : 'Editar Modelo' ,
'templateQuickConfig.addTemplate' : 'Adicionar Modelo' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-06-26 15:32:48 +08:00
'voiceClone.cloneSuccess' : 'Clonagem bem-sucedida' ,
2026-02-19 17:44:25 +00:00
'voiceClone.cloneFailed' : 'Falha ao clonar' ,
2026-06-26 15:32:48 +08:00
'voiceClone.cloneErrorTip' : 'Falha na clonagem, passe o mouse sobre a dica de erro para ver os detalhes' ,
'voiceClone.apiError' : 'Erro na chamada da API' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-03-11 10:30:29 +08:00
'voiceClone.languages' : 'Idiomas' ,
'voiceClone.languagesPlaceholder' : 'Por favor, insira idiomas, ex.: Português, English' ,
'voiceClone.languagesRequired' : 'Por favor, insira idiomas' ,
2026-02-19 17:44:25 +00:00
'voiceClone.waitingUpload' : 'Aguardando envio' ,
'voiceClone.waitingTraining' : 'Aguardando clonagem' ,
'voiceClone.training' : 'Treinando' ,
'voiceClone.trainSuccess' : 'Treinamento bem-sucedido' ,
'voiceClone.trainFailed' : 'Treinamento falhou' ,
2026-06-26 15:32:48 +08:00
'voiceClone.trainFailedWithError' : 'Treinamento falhou: {error}' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-06-09 17:22:18 +08:00
'knowledgeFileUpload.fileSizeExceeded' : 'O tamanho do arquivo não pode exceder 10MB!' ,
2026-02-19 17:44:25 +00:00
'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' ,
2026-06-09 17:22:18 +08:00
'knowledgeFileUpload.sourceDocument' : 'Documento de origem' ,
2026-06-05 17:37:21 +08:00
'knowledgeFileUpload.parsing' : 'Analisando...' ,
2026-02-19 17:44:25 +00:00
'knowledgeBaseDialog.descriptionRequired' : 'Por favor, insira a descrição da base de conhecimento' ,
2026-06-05 17:37:21 +08:00
// 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' ,
2026-02-19 17:44:25 +00:00
// 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' ,
2026-06-12 14:23:25 +08:00
'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' ,
2026-02-19 17:44:25 +00:00
// 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' ,
2026-05-27 16:57:48 +08:00
'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' ,
2026-02-19 17:44:25 +00:00
2026-05-28 15:02:20 +08:00
// 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
2026-05-26 16:37:39 +08:00
'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' ,
2026-05-28 15:18:54 +08:00
'addressBookManagement.deviceGroup' : 'Agente Vinculado' ,
2026-05-26 16:37:39 +08:00
'addressBookManagement.addTime' : 'Hora de Adição' ,
'addressBookManagement.lastOnline' : 'Última Conexão' ,
'addressBookManagement.deviceCallPermission' : 'Permissão de Chamada do Dispositivo' ,
2026-05-28 15:18:54 +08:00
'addressBookManagement.setPermissionDesc' : 'Definir quais dispositivos o dispositivo atual pode chamar ({count} selecionados)' ,
2026-05-26 16:37:39 +08:00
'addressBookManagement.selectAll' : 'Selecionar Todos' ,
'addressBookManagement.deselectAll' : 'Desmarcar Todos' ,
2026-05-29 10:04:54 +08:00
'addressBookManagement.save' : 'Salvar Permissões' ,
2026-05-26 16:37:39 +08:00
// 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' ,
2026-07-08 15:15:26 +08:00
}