|
@@ -0,0 +1,388 @@
|
|
|
+const translation = {
|
|
|
+ pageTitle: {
|
|
|
+ line1: 'PROMPT',
|
|
|
+ line2: 'Engenharia',
|
|
|
+ },
|
|
|
+ orchestrate: 'Orquestrar',
|
|
|
+ promptMode: {
|
|
|
+ simple: 'Mudar para o Modo Especialista para editar todo o PROMPT',
|
|
|
+ advanced: 'Modo Especialista',
|
|
|
+ switchBack: 'Voltar',
|
|
|
+ advancedWarning: {
|
|
|
+ title: 'Você mudou para o Modo Especialista e, uma vez que você modifique o PROMPT, NÃO poderá retornar ao modo básico.',
|
|
|
+ description: 'No Modo Especialista, você pode editar todo o PROMPT.',
|
|
|
+ learnMore: 'Saiba mais',
|
|
|
+ ok: 'OK',
|
|
|
+ },
|
|
|
+ operation: {
|
|
|
+ addMessage: 'Adicionar Mensagem',
|
|
|
+ },
|
|
|
+ contextMissing: 'Componente de contexto ausente, a eficácia do prompt pode não ser boa.',
|
|
|
+ },
|
|
|
+ operation: {
|
|
|
+ applyConfig: 'Publicar',
|
|
|
+ resetConfig: 'Redefinir',
|
|
|
+ debugConfig: 'Depurar',
|
|
|
+ addFeature: 'Adicionar Recurso',
|
|
|
+ automatic: 'Automático',
|
|
|
+ stopResponding: 'Parar de responder',
|
|
|
+ agree: 'gostar',
|
|
|
+ disagree: 'não gostar',
|
|
|
+ cancelAgree: 'Cancelar gostar',
|
|
|
+ cancelDisagree: 'Cancelar não gostar',
|
|
|
+ userAction: 'Usuário ',
|
|
|
+ },
|
|
|
+ notSetAPIKey: {
|
|
|
+ title: 'A chave do provedor LLM não foi definida',
|
|
|
+ trailFinished: 'Trilha finalizada',
|
|
|
+ description: 'A chave do provedor LLM não foi definida e precisa ser definida antes da depuração.',
|
|
|
+ settingBtn: 'Ir para configurações',
|
|
|
+ },
|
|
|
+ trailUseGPT4Info: {
|
|
|
+ title: 'Não suporta gpt-4 agora',
|
|
|
+ description: 'Use gpt-4, por favor defina a chave da API.',
|
|
|
+ },
|
|
|
+ feature: {
|
|
|
+ groupChat: {
|
|
|
+ title: 'Melhoria do Chat',
|
|
|
+ description: 'Adicione configurações pré-conversa para aplicativos que podem melhorar a experiência do usuário.',
|
|
|
+ },
|
|
|
+ groupExperience: {
|
|
|
+ title: 'Melhoria da Experiência',
|
|
|
+ },
|
|
|
+ conversationOpener: {
|
|
|
+ title: 'Remodeladores de Conversa',
|
|
|
+ description: 'Em um aplicativo de chat, a primeira frase que a IA fala ativamente para o usuário geralmente é usada como uma saudação.',
|
|
|
+ },
|
|
|
+ suggestedQuestionsAfterAnswer: {
|
|
|
+ title: 'Perguntas de Acompanhamento',
|
|
|
+ description: 'Configurar sugestões de próximas perguntas pode proporcionar um melhor chat aos usuários.',
|
|
|
+ resDes: '3 sugestões para a próxima pergunta do usuário.',
|
|
|
+ tryToAsk: 'Tente perguntar',
|
|
|
+ },
|
|
|
+ moreLikeThis: {
|
|
|
+ title: 'Mais como isso',
|
|
|
+ description: 'Gere vários textos de uma vez e, em seguida, edite e continue a gerar',
|
|
|
+ generateNumTip: 'Número de vezes geradas',
|
|
|
+ tip: 'Usar esse recurso incorrerá em sobrecarga adicional de tokens',
|
|
|
+ },
|
|
|
+ speechToText: {
|
|
|
+ title: 'Fala para Texto',
|
|
|
+ description: 'Uma vez ativado, você pode usar entrada de voz.',
|
|
|
+ resDes: 'Entrada de voz está ativada',
|
|
|
+ },
|
|
|
+ citation: {
|
|
|
+ title: 'Citações e Atribuições',
|
|
|
+ description: 'Uma vez ativado, mostra o documento de origem e a seção atribuída do conteúdo gerado.',
|
|
|
+ resDes: 'Citações e Atribuições estão ativadas',
|
|
|
+ },
|
|
|
+ annotation: {
|
|
|
+ title: 'Resposta de Anotação',
|
|
|
+ description: 'Você pode adicionar manualmente uma resposta de alta qualidade ao cache para correspondência prioritária com perguntas semelhantes do usuário.',
|
|
|
+ resDes: 'Resposta de Anotação está ativada',
|
|
|
+ scoreThreshold: {
|
|
|
+ title: 'Limiar de Pontuação',
|
|
|
+ description: 'Usado para definir o limiar de similaridade para resposta de anotação.',
|
|
|
+ easyMatch: 'Correspondência Fácil',
|
|
|
+ accurateMatch: 'Correspondência Precisa',
|
|
|
+ },
|
|
|
+ matchVariable: {
|
|
|
+ title: 'Variável de Correspondência',
|
|
|
+ choosePlaceholder: 'Escolha a variável de correspondência',
|
|
|
+ },
|
|
|
+ cacheManagement: 'Anotações',
|
|
|
+ cached: 'Anotado',
|
|
|
+ remove: 'Remover',
|
|
|
+ removeConfirm: 'Excluir esta anotação?',
|
|
|
+ add: 'Adicionar anotação',
|
|
|
+ edit: 'Editar anotação',
|
|
|
+ },
|
|
|
+ dataSet: {
|
|
|
+ title: 'Contexto',
|
|
|
+ noData: 'Você pode importar Conhecimento como contexto',
|
|
|
+ words: 'Palavras',
|
|
|
+ textBlocks: 'Blocos de Texto',
|
|
|
+ selectTitle: 'Selecionar Conhecimento de referência',
|
|
|
+ selected: 'Conhecimento selecionado',
|
|
|
+ noDataSet: 'Nenhum Conhecimento encontrado',
|
|
|
+ toCreate: 'Ir para criar',
|
|
|
+ notSupportSelectMulti: 'Atualmente, suporta apenas um Conhecimento',
|
|
|
+ queryVariable: {
|
|
|
+ title: 'Variável de Consulta',
|
|
|
+ tip: 'Essa variável será usada como entrada de consulta para recuperação de contexto, obtendo informações de contexto relacionadas à entrada dessa variável.',
|
|
|
+ choosePlaceholder: 'Escolha a variável de consulta',
|
|
|
+ noVar: 'Nenhuma variável',
|
|
|
+ noVarTip: 'por favor, crie uma variável na seção Variáveis',
|
|
|
+ unableToQueryDataSet: 'Não é possível consultar o Conhecimento',
|
|
|
+ unableToQueryDataSetTip: 'Não é possível consultar o Conhecimento com sucesso, por favor escolha uma variável de consulta de contexto na seção de contexto.',
|
|
|
+ ok: 'OK',
|
|
|
+ contextVarNotEmpty: 'variável de consulta de contexto não pode estar vazia',
|
|
|
+ deleteContextVarTitle: 'Excluir variável "{{varName}}"?',
|
|
|
+ deleteContextVarTip: 'Esta variável foi definida como uma variável de consulta de contexto e removê-la afetará o uso normal do Conhecimento. Se você ainda precisa excluí-la, por favor, selecione-a novamente na seção de contexto.',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ tools: {
|
|
|
+ title: 'Tools',
|
|
|
+ tips: 'Tools provide a standard API call method, taking user input or variables as request parameters for querying external data as context.',
|
|
|
+ toolsInUse: '{{count}} tools in use',
|
|
|
+ modal: {
|
|
|
+ title: 'Tool',
|
|
|
+ toolType: {
|
|
|
+ title: 'Tool Type',
|
|
|
+ placeholder: 'Por favor, selecione o tipo de ferramenta',
|
|
|
+ },
|
|
|
+ name: {
|
|
|
+ title: 'Nome',
|
|
|
+ placeholder: 'Por favor, insira o nome',
|
|
|
+ },
|
|
|
+ variableName: {
|
|
|
+ title: 'Nome da Variável',
|
|
|
+ placeholder: 'Por favor, insira o nome da variável',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ conversationHistory: {
|
|
|
+ title: 'Histórico da Conversa',
|
|
|
+ description: 'Defina os nomes dos prefixos para os papéis da conversa',
|
|
|
+ tip: 'O Histórico da Conversa não está habilitado, por favor adicione <histories> na solicitação acima.',
|
|
|
+ learnMore: 'Saiba mais',
|
|
|
+ editModal: {
|
|
|
+ title: 'Editar Nomes dos Papéis da Conversa',
|
|
|
+ userPrefix: 'Prefixo do Usuário',
|
|
|
+ assistantPrefix: 'Prefixo do Assistente',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ toolbox: {
|
|
|
+ title: 'CAIXA DE FERRAMENTAS',
|
|
|
+ },
|
|
|
+ moderation: {
|
|
|
+ title: 'Moderação de Conteúdo',
|
|
|
+ description: 'Proteja a saída do modelo usando a API de moderação ou mantendo uma lista de palavras sensíveis.',
|
|
|
+ allEnabled: 'Conteúdo de ENTRADA/SAÍDA Habilitado',
|
|
|
+ inputEnabled: 'Conteúdo de ENTRADA Habilitado',
|
|
|
+ outputEnabled: 'Conteúdo de SAÍDA Habilitado',
|
|
|
+ modal: {
|
|
|
+ title: 'Configurações de Moderação de Conteúdo',
|
|
|
+ provider: {
|
|
|
+ title: 'Provedor',
|
|
|
+ openai: 'Moderação OpenAI',
|
|
|
+ openaiTip: {
|
|
|
+ prefix: 'A Moderação OpenAI requer uma chave de API da OpenAI configurada em ',
|
|
|
+ suffix: '.',
|
|
|
+ },
|
|
|
+ keywords: 'Palavras-chave',
|
|
|
+ },
|
|
|
+ keywords: {
|
|
|
+ tip: 'Uma por linha, separadas por quebras de linha. Até 100 caracteres por linha.',
|
|
|
+ placeholder: 'Uma por linha, separadas por quebras de linha',
|
|
|
+ line: 'Linha',
|
|
|
+ },
|
|
|
+ content: {
|
|
|
+ input: 'Moderar Conteúdo de ENTRADA',
|
|
|
+ output: 'Moderar Conteúdo de SAÍDA',
|
|
|
+ preset: 'Respostas pré-definidas',
|
|
|
+ placeholder: 'Insira o conteúdo das respostas pré-definidas aqui',
|
|
|
+ condition: 'Moderar Conteúdo de ENTRADA e SAÍDA habilitado pelo menos uma',
|
|
|
+ fromApi: 'As respostas pré-definidas são retornadas pela API',
|
|
|
+ errorMessage: 'As respostas pré-definidas não podem estar vazias',
|
|
|
+ supportMarkdown: 'Suporte a Markdown',
|
|
|
+ },
|
|
|
+ openaiNotConfig: {
|
|
|
+ before: 'A Moderação OpenAI requer uma chave de API da OpenAI configurada em ',
|
|
|
+ after: '',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ automatic: {
|
|
|
+ title: 'Orquestração Automatizada de Aplicativos',
|
|
|
+ description: 'Descreva o seu cenário, o Dify irá orquestrar um aplicativo para você.',
|
|
|
+ intendedAudience: 'Qual é o público-alvo?',
|
|
|
+ intendedAudiencePlaceHolder: 'ex: Estudante',
|
|
|
+ solveProblem: 'Quais problemas eles esperam que a IA possa resolver para eles?',
|
|
|
+ solveProblemPlaceHolder: 'ex: Avaliar o desempenho acadêmico',
|
|
|
+ generate: 'Gerar',
|
|
|
+ audiencesRequired: 'Públicos-alvo necessários',
|
|
|
+ problemRequired: 'Problema necessário',
|
|
|
+ resTitle: 'Orquestramos o seguinte aplicativo para você.',
|
|
|
+ apply: 'Aplicar esta orquestração',
|
|
|
+ noData: 'Descreva o seu caso de uso à esquerda, a visualização da orquestração será exibida aqui.',
|
|
|
+ loading: 'Orquestrando o aplicativo para você...',
|
|
|
+ overwriteTitle: 'Substituir configuração existente?',
|
|
|
+ overwriteMessage: 'Aplicar esta orquestração irá substituir a configuração existente.',
|
|
|
+ },
|
|
|
+ resetConfig: {
|
|
|
+ title: 'Confirmar redefinição?',
|
|
|
+ message:
|
|
|
+ 'A redefinição descarta as alterações, restaurando a última configuração publicada.',
|
|
|
+ },
|
|
|
+ errorMessage: {
|
|
|
+ nameOfKeyRequired: 'nome da chave: {{key}} obrigatório',
|
|
|
+ valueOfVarRequired: 'valor de {{key}} não pode estar vazio',
|
|
|
+ queryRequired: 'Texto da solicitação é obrigatório.',
|
|
|
+ waitForResponse:
|
|
|
+ 'Aguarde a resposta à mensagem anterior ser concluída.',
|
|
|
+ waitForBatchResponse:
|
|
|
+ 'Aguarde a resposta à tarefa em lote ser concluída.',
|
|
|
+ notSelectModel: 'Por favor, escolha um modelo',
|
|
|
+ waitForImgUpload: 'Aguarde o upload da imagem',
|
|
|
+ },
|
|
|
+ chatSubTitle: 'Instruções',
|
|
|
+ completionSubTitle: 'Prefixo da Solicitação',
|
|
|
+ promptTip:
|
|
|
+ 'As solicitações guiam as respostas da IA com instruções e restrições. Insira variáveis como {{input}}. Este prompt não será visível para os usuários.',
|
|
|
+ formattingChangedTitle: 'Formatação alterada',
|
|
|
+ formattingChangedText:
|
|
|
+ 'Modificar a formatação redefinirá a área de depuração, você tem certeza?',
|
|
|
+ variableTitle: 'Variáveis',
|
|
|
+ variableTip:
|
|
|
+ 'Os usuários preenchem as variáveis em um formulário, substituindo automaticamente as variáveis na solicitação.',
|
|
|
+ notSetVar: 'As variáveis permitem que os usuários introduzam palavras de solicitação ou observações iniciais ao preencher formulários. Você pode tentar digitar "{{input}}" nas palavras de solicitação.',
|
|
|
+ autoAddVar: 'Variáveis indefinidas referenciadas na pré-solicitação, você deseja adicioná-las no formulário de entrada do usuário?',
|
|
|
+ variableTable: {
|
|
|
+ key: 'Chave da Variável',
|
|
|
+ name: 'Nome do Campo de Entrada do Usuário',
|
|
|
+ optional: 'Opcional',
|
|
|
+ type: 'Tipo de Entrada',
|
|
|
+ action: 'Ações',
|
|
|
+ typeString: 'Texto',
|
|
|
+ typeSelect: 'Selecionar',
|
|
|
+ },
|
|
|
+ varKeyError: {
|
|
|
+ canNoBeEmpty: 'A chave da variável não pode estar vazia',
|
|
|
+ tooLong: 'A chave da variável: {{key}} é muito longa. Não pode ter mais de 30 caracteres',
|
|
|
+ notValid: 'A chave da variável: {{key}} é inválida. Pode conter apenas letras, números e sublinhados',
|
|
|
+ notStartWithNumber: 'A chave da variável: {{key}} não pode começar com um número',
|
|
|
+ keyAlreadyExists: 'A chave da variável: :{{key}} já existe',
|
|
|
+ },
|
|
|
+ otherError: {
|
|
|
+ promptNoBeEmpty: 'A solicitação não pode estar vazia',
|
|
|
+ historyNoBeEmpty: 'O histórico da conversa deve ser definido na solicitação',
|
|
|
+ queryNoBeEmpty: 'A consulta deve ser definida na solicitação',
|
|
|
+ },
|
|
|
+ variableConig: {
|
|
|
+ modalTitle: 'Configurações do Campo',
|
|
|
+ description: 'Configuração para a variável {{varName}}',
|
|
|
+ fieldType: 'Tipo de Campo',
|
|
|
+ string: 'Texto Curto',
|
|
|
+ paragraph: 'Parágrafo',
|
|
|
+ select: 'Selecionar',
|
|
|
+ notSet: 'Não definido, tente digitar {{input}} na solicitação',
|
|
|
+ stringTitle: 'Opções da Caixa de Texto do Formulário',
|
|
|
+ maxLength: 'Comprimento Máximo',
|
|
|
+ options: 'Opções',
|
|
|
+ addOption: 'Adicionar opção',
|
|
|
+ apiBasedVar: 'Variável Baseada em API',
|
|
|
+ },
|
|
|
+ vision: {
|
|
|
+ name: 'Visão',
|
|
|
+ description: 'Habilitar a Visão permite que o modelo receba imagens e responda perguntas sobre elas.',
|
|
|
+ settings: 'Configurações',
|
|
|
+ visionSettings: {
|
|
|
+ title: 'Configurações de Visão',
|
|
|
+ resolution: 'Resolução',
|
|
|
+ resolutionTooltip: `Baixa resolução permitirá que o modelo receba uma versão de baixa resolução de 512 x 512 da imagem e represente a imagem com um orçamento de 65 tokens. Isso permite que a API retorne respostas mais rápidas e consuma menos tokens de entrada para casos de uso que não exigem alta precisão.
|
|
|
+ \n
|
|
|
+ Alta resolução permitirá que o modelo veja a imagem de baixa resolução e crie recortes detalhados das imagens de entrada como quadrados de 512px com base no tamanho da imagem de entrada. Cada um dos recortes detalhados usa o dobro do orçamento de tokens, totalizando 129 tokens.`,
|
|
|
+ high: 'Alta',
|
|
|
+ low: 'Baixa',
|
|
|
+ uploadMethod: 'Método de Upload',
|
|
|
+ both: 'Ambos',
|
|
|
+ localUpload: 'Upload Local',
|
|
|
+ url: 'URL',
|
|
|
+ uploadLimit: 'Limite de Upload',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ openingStatement: {
|
|
|
+ title: 'Abertura da Conversa',
|
|
|
+ add: 'Adicionar',
|
|
|
+ writeOpner: 'Escrever abertura',
|
|
|
+ placeholder: 'Escreva sua mensagem de abertura aqui, você pode usar variáveis, tente digitar {{variável}}.',
|
|
|
+ openingQuestion: 'Perguntas de Abertura',
|
|
|
+ noDataPlaceHolder:
|
|
|
+ 'Iniciar a conversa com o usuário pode ajudar a IA a estabelecer uma conexão mais próxima com eles em aplicativos de conversação.',
|
|
|
+ varTip: 'Você pode usar variáveis, tente digitar {{variável}}',
|
|
|
+ tooShort: 'São necessárias pelo menos 20 palavras de prompt inicial para gerar observações de abertura para a conversa.',
|
|
|
+ notIncludeKey: 'O prompt inicial não inclui a variável: {{key}}. Por favor, adicione-a ao prompt inicial.',
|
|
|
+ },
|
|
|
+ modelConfig: {
|
|
|
+ model: 'Modelo',
|
|
|
+ setTone: 'Definir tom das respostas',
|
|
|
+ title: 'Modelo e Parâmetros',
|
|
|
+ modeType: {
|
|
|
+ chat: 'Chat',
|
|
|
+ completion: 'Completar',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ inputs: {
|
|
|
+ title: 'Depuração e Visualização',
|
|
|
+ noPrompt: 'Tente escrever algum prompt na entrada de pré-prompt',
|
|
|
+ userInputField: 'Campo de Entrada do Usuário',
|
|
|
+ noVar: 'Preencha o valor da variável, que será substituída automaticamente na palavra de solicitação sempre que uma nova sessão for iniciada.',
|
|
|
+ chatVarTip:
|
|
|
+ 'Preencha o valor da variável, que será substituída automaticamente na palavra de solicitação sempre que uma nova sessão for iniciada',
|
|
|
+ completionVarTip:
|
|
|
+ 'Preencha o valor da variável, que será substituída automaticamente nas palavras de solicitação sempre que uma pergunta for enviada.',
|
|
|
+ previewTitle: 'Visualização do Prompt',
|
|
|
+ queryTitle: 'Conteúdo da Consulta',
|
|
|
+ queryPlaceholder: 'Por favor, insira o texto da solicitação.',
|
|
|
+ run: 'EXECUTAR',
|
|
|
+ },
|
|
|
+ result: 'Texto de Saída',
|
|
|
+ datasetConfig: {
|
|
|
+ settingTitle: 'Configurações de Recuperação',
|
|
|
+ retrieveOneWay: {
|
|
|
+ title: 'Recuperação N-para-1',
|
|
|
+ description: 'Com base na intenção do usuário e nas descrições do Conhecimento, o Agente seleciona autonomamente o melhor Conhecimento para consulta. Melhor para aplicativos com Conhecimento distinto e limitado.',
|
|
|
+ },
|
|
|
+ retrieveMultiWay: {
|
|
|
+ title: 'Recuperação Multi-caminho',
|
|
|
+ description: 'Com base na intenção do usuário, consulta todos os Conhecimentos, recupera texto relevante de várias fontes e seleciona os melhores resultados que correspondem à consulta do usuário após a reclassificação. É necessária a configuração da API do modelo de reclassificação.',
|
|
|
+ },
|
|
|
+ rerankModelRequired: 'Modelo de reclassificação é necessário',
|
|
|
+ params: 'Parâmetros',
|
|
|
+ top_k: 'Top K',
|
|
|
+ top_kTip: 'Usado para filtrar os trechos mais semelhantes às perguntas do usuário. O sistema também ajustará dinamicamente o valor de Top K, de acordo com max_tokens do modelo selecionado.',
|
|
|
+ score_threshold: 'Limiar de Pontuação',
|
|
|
+ score_thresholdTip: 'Usado para definir o limiar de similaridade para filtragem de trechos.',
|
|
|
+ retrieveChangeTip: 'Modificar o modo de índice e o modo de recuperação pode afetar os aplicativos associados a este Conhecimento.',
|
|
|
+ },
|
|
|
+ assistantType: {
|
|
|
+ name: 'Tipo de Assistente',
|
|
|
+ chatAssistant: {
|
|
|
+ name: 'Assistente Básico',
|
|
|
+ description: 'Construa um assistente baseado em chat usando um Modelo de Linguagem Grande',
|
|
|
+ },
|
|
|
+ agentAssistant: {
|
|
|
+ name: 'Assistente de Agente',
|
|
|
+ description: 'Construa um Agente inteligente que pode escolher autonomamente ferramentas para concluir as tarefas',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ agent: {
|
|
|
+ agentMode: 'Modo do Agente',
|
|
|
+ agentModeDes: 'Defina o tipo de modo de inferência para o agente',
|
|
|
+ agentModeType: {
|
|
|
+ ReACT: 'ReAct',
|
|
|
+ functionCall: 'Chamada de Função',
|
|
|
+ },
|
|
|
+ setting: {
|
|
|
+ name: 'Configurações do Agente',
|
|
|
+ description: 'As configurações do Assistente de Agente permitem definir o modo do agente e recursos avançados como prompts incorporados, disponíveis apenas no tipo de Agente.',
|
|
|
+ maximumIterations: {
|
|
|
+ name: 'Número Máximo de Iterações',
|
|
|
+ description: 'Limite o número de iterações que um assistente de agente pode executar',
|
|
|
+ },
|
|
|
+ },
|
|
|
+ buildInPrompt: 'Prompt Incorporado',
|
|
|
+ firstPrompt: 'Primeiro Prompt',
|
|
|
+ nextIteration: 'Próxima Iteração',
|
|
|
+ promptPlaceholder: 'Escreva seu prompt aqui',
|
|
|
+ tools: {
|
|
|
+ name: 'Ferramentas',
|
|
|
+ description: 'O uso de ferramentas pode ampliar as capacidades do LLM, como pesquisar na internet ou realizar cálculos científicos',
|
|
|
+ enabled: 'Habilitado',
|
|
|
+ },
|
|
|
+ },
|
|
|
+}
|
|
|
+
|
|
|
+export default translation
|