forked from XiaoMo/ChatGPT-Next-Web
467 lines
14 KiB
TypeScript
467 lines
14 KiB
TypeScript
import { SubmitKey } from "../store/config";
|
||
import { PartialLocaleType } from "../locales/index";
|
||
import { getClientConfig } from "../config/client";
|
||
|
||
const isApp = !!getClientConfig()?.isApp;
|
||
|
||
const pt: PartialLocaleType = {
|
||
WIP: "Em breve...",
|
||
Error: {
|
||
Unauthorized: isApp
|
||
? "Chave API inválida, por favor verifique em [Configurações](/#/settings)."
|
||
: "Acesso não autorizado, por favor insira o código de acesso em [auth](/#/auth) ou insira sua Chave API OpenAI.",
|
||
},
|
||
Auth: {
|
||
Title: "Necessário Código de Acesso",
|
||
Tips: "Por favor, insira o código de acesso abaixo",
|
||
SubTips: "Ou insira sua Chave API OpenAI",
|
||
Input: "código de acesso",
|
||
Confirm: "Confirmar",
|
||
Later: "Depois",
|
||
},
|
||
ChatItem: {
|
||
ChatItemCount: (count: number) => `${count} mensagens`,
|
||
},
|
||
Chat: {
|
||
SubTitle: (count: number) => `${count} mensagens`,
|
||
EditMessage: {
|
||
Title: "Editar Todas as Mensagens",
|
||
Topic: {
|
||
Title: "Tópico",
|
||
SubTitle: "Mudar o tópico atual",
|
||
},
|
||
},
|
||
Actions: {
|
||
ChatList: "Ir Para Lista de Chat",
|
||
CompressedHistory: "Prompt de Memória Histórica Comprimida",
|
||
Export: "Exportar Todas as Mensagens como Markdown",
|
||
Copy: "Copiar",
|
||
Stop: "Parar",
|
||
Retry: "Tentar Novamente",
|
||
Pin: "Fixar",
|
||
PinToastContent: "Fixada 1 mensagem para prompts contextuais",
|
||
PinToastAction: "Visualizar",
|
||
Delete: "Deletar",
|
||
Edit: "Editar",
|
||
},
|
||
Commands: {
|
||
new: "Iniciar um novo chat",
|
||
newm: "Iniciar um novo chat com máscara",
|
||
next: "Próximo Chat",
|
||
prev: "Chat Anterior",
|
||
clear: "Limpar Contexto",
|
||
del: "Deletar Chat",
|
||
},
|
||
InputActions: {
|
||
Stop: "Parar",
|
||
ToBottom: "Para o Mais Recente",
|
||
Theme: {
|
||
auto: "Automático",
|
||
light: "Tema Claro",
|
||
dark: "Tema Escuro",
|
||
},
|
||
Prompt: "Prompts",
|
||
Masks: "Máscaras",
|
||
Clear: "Limpar Contexto",
|
||
Settings: "Configurações",
|
||
},
|
||
Rename: "Renomear Chat",
|
||
Typing: "Digitando…",
|
||
Input: (submitKey: string) => {
|
||
var inputHints = `${submitKey} para enviar`;
|
||
if (submitKey === String(SubmitKey.Enter)) {
|
||
inputHints += ", Shift + Enter para quebrar linha";
|
||
}
|
||
return inputHints + ", / para buscar prompts, : para usar comandos";
|
||
},
|
||
Send: "Enviar",
|
||
Config: {
|
||
Reset: "Redefinir para Padrão",
|
||
SaveAs: "Salvar como Máscara",
|
||
},
|
||
IsContext: "Prompt Contextual",
|
||
},
|
||
Export: {
|
||
Title: "Exportar Mensagens",
|
||
Copy: "Copiar Tudo",
|
||
Download: "Baixar",
|
||
MessageFromYou: "Mensagem De Você",
|
||
MessageFromChatGPT: "Mensagem De ChatGPT",
|
||
Share: "Compartilhar para ShareGPT",
|
||
Format: {
|
||
Title: "Formato de Exportação",
|
||
SubTitle: "Markdown ou Imagem PNG",
|
||
},
|
||
IncludeContext: {
|
||
Title: "Incluindo Contexto",
|
||
SubTitle: "Exportar prompts de contexto na máscara ou não",
|
||
},
|
||
Steps: {
|
||
Select: "Selecionar",
|
||
Preview: "Pré-visualizar",
|
||
},
|
||
Image: {
|
||
Toast: "Capturando Imagem...",
|
||
Modal:
|
||
"Pressione longamente ou clique com o botão direito para salvar a imagem",
|
||
},
|
||
},
|
||
Select: {
|
||
Search: "Buscar",
|
||
All: "Selecionar Tudo",
|
||
Latest: "Selecionar Mais Recente",
|
||
Clear: "Limpar",
|
||
},
|
||
Memory: {
|
||
Title: "Prompt de Memória",
|
||
EmptyContent: "Nada ainda.",
|
||
Send: "Enviar Memória",
|
||
Copy: "Copiar Memória",
|
||
Reset: "Resetar Sessão",
|
||
ResetConfirm:
|
||
"Resetar irá limpar o histórico de conversa atual e a memória histórica. Você tem certeza que quer resetar?",
|
||
},
|
||
Home: {
|
||
NewChat: "Novo Chat",
|
||
DeleteChat: "Confirmar para deletar a conversa selecionada?",
|
||
DeleteToast: "Chat Deletado",
|
||
Revert: "Reverter",
|
||
},
|
||
Settings: {
|
||
Title: "Configurações",
|
||
SubTitle: "Todas as Configurações",
|
||
Danger: {
|
||
Reset: {
|
||
Title: "Resetar Todas as Configurações",
|
||
SubTitle: "Resetar todos os itens de configuração para o padrão",
|
||
Action: "Resetar",
|
||
Confirm: "Confirmar para resetar todas as configurações para o padrão?",
|
||
},
|
||
Clear: {
|
||
Title: "Limpar Todos os Dados",
|
||
SubTitle: "Limpar todas as mensagens e configurações",
|
||
Action: "Limpar",
|
||
Confirm: "Confirmar para limpar todas as mensagens e configurações?",
|
||
},
|
||
},
|
||
Lang: {
|
||
Name: "Language",
|
||
All: "Todos os Idiomas",
|
||
},
|
||
Avatar: "Avatar",
|
||
FontSize: {
|
||
Title: "Tamanho da Fonte",
|
||
SubTitle: "Ajustar o tamanho da fonte do conteúdo do chat",
|
||
},
|
||
InjectSystemPrompts: {
|
||
Title: "Inserir Prompts de Sistema",
|
||
SubTitle: "Inserir um prompt de sistema global para cada requisição",
|
||
},
|
||
InputTemplate: {
|
||
Title: "Modelo de Entrada",
|
||
SubTitle: "A mensagem mais recente será preenchida neste modelo",
|
||
},
|
||
|
||
Update: {
|
||
Version: (x: string) => `Versão: ${x}`,
|
||
IsLatest: "Última versão",
|
||
CheckUpdate: "Verificar Atualização",
|
||
IsChecking: "Verificando atualização...",
|
||
FoundUpdate: (x: string) => `Nova versão encontrada: ${x}`,
|
||
GoToUpdate: "Atualizar",
|
||
},
|
||
SendKey: "Tecla de Envio",
|
||
Theme: "Tema",
|
||
TightBorder: "Borda Ajustada",
|
||
SendPreviewBubble: {
|
||
Title: "Bolha de Pré-visualização de Envio",
|
||
SubTitle: "Pré-visualizar markdown na bolha",
|
||
},
|
||
AutoGenerateTitle: {
|
||
Title: "Gerar Título Automaticamente",
|
||
SubTitle: "Gerar um título adequado baseado no conteúdo da conversa",
|
||
},
|
||
Sync: {
|
||
CloudState: "Última Atualização",
|
||
NotSyncYet: "Ainda não sincronizado",
|
||
Success: "Sincronização bem sucedida",
|
||
Fail: "Falha na sincronização",
|
||
|
||
Config: {
|
||
Modal: {
|
||
Title: "Configurar Sincronização",
|
||
Check: "Verificar Conexão",
|
||
},
|
||
SyncType: {
|
||
Title: "Tipo de Sincronização",
|
||
SubTitle: "Escolha seu serviço de sincronização favorito",
|
||
},
|
||
Proxy: {
|
||
Title: "Habilitar Proxy CORS",
|
||
SubTitle: "Habilitar um proxy para evitar restrições de cross-origin",
|
||
},
|
||
ProxyUrl: {
|
||
Title: "Endpoint de Proxy",
|
||
SubTitle: "Apenas aplicável ao proxy CORS embutido para este projeto",
|
||
},
|
||
|
||
WebDav: {
|
||
Endpoint: "Endpoint WebDAV",
|
||
UserName: "Nome de Usuário",
|
||
Password: "Senha",
|
||
},
|
||
|
||
UpStash: {
|
||
Endpoint: "URL REST Redis UpStash",
|
||
UserName: "Nome do Backup",
|
||
Password: "Token REST Redis UpStash",
|
||
},
|
||
},
|
||
|
||
LocalState: "Dados Locais",
|
||
Overview: (overview: any) => {
|
||
return `${overview.chat} chats,${overview.message} mensagens,${overview.prompt} prompts,${overview.mask} máscaras`;
|
||
},
|
||
ImportFailed: "Falha ao importar do arquivo",
|
||
},
|
||
Mask: {
|
||
Splash: {
|
||
Title: "Tela de Início da Máscara",
|
||
SubTitle:
|
||
"Mostrar uma tela de início da máscara antes de iniciar novo chat",
|
||
},
|
||
Builtin: {
|
||
Title: "Esconder Máscaras Embutidas",
|
||
SubTitle: "Esconder máscaras embutidas na lista de máscaras",
|
||
},
|
||
},
|
||
Prompt: {
|
||
Disable: {
|
||
Title: "Desabilitar auto-completar",
|
||
SubTitle: "Digite / para acionar auto-completar",
|
||
},
|
||
List: "Lista de Prompts",
|
||
ListCount: (builtin: number, custom: number) =>
|
||
`${builtin} embutidos, ${custom} definidos pelo usuário`,
|
||
Edit: "Editar",
|
||
Modal: {
|
||
Title: "Lista de Prompts",
|
||
Add: "Adicionar Um",
|
||
Search: "Buscar Prompts",
|
||
},
|
||
EditModal: {
|
||
Title: "Editar Prompt",
|
||
},
|
||
},
|
||
HistoryCount: {
|
||
Title: "Contagem de Mensagens Anexadas",
|
||
SubTitle: "Número de mensagens enviadas anexadas por requisição",
|
||
},
|
||
CompressThreshold: {
|
||
Title: "Limite de Compressão de Histórico",
|
||
SubTitle:
|
||
"Irá comprimir se o comprimento das mensagens não comprimidas exceder o valor",
|
||
},
|
||
|
||
Usage: {
|
||
Title: "Saldo da Conta",
|
||
SubTitle(used: any, total: any) {
|
||
return `Usado este mês ${used}, assinatura ${total}`;
|
||
},
|
||
IsChecking: "Verificando...",
|
||
Check: "Verificar",
|
||
NoAccess: "Insira a Chave API para verificar o saldo",
|
||
},
|
||
Access: {
|
||
AccessCode: {
|
||
Title: "Código de Acesso",
|
||
SubTitle: "Controle de Acesso Habilitado",
|
||
Placeholder: "Insira o Código",
|
||
},
|
||
CustomEndpoint: {
|
||
Title: "Endpoint Personalizado",
|
||
SubTitle: "Use serviço personalizado Azure ou OpenAI",
|
||
},
|
||
Provider: {
|
||
Title: "Provedor do Modelo",
|
||
SubTitle: "Selecione Azure ou OpenAI",
|
||
},
|
||
OpenAI: {
|
||
ApiKey: {
|
||
Title: "Chave API OpenAI",
|
||
SubTitle: "Usar Chave API OpenAI personalizada",
|
||
Placeholder: "sk-xxx",
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: "Endpoint OpenAI",
|
||
SubTitle:
|
||
"Deve começar com http(s):// ou usar /api/openai como padrão",
|
||
},
|
||
},
|
||
Azure: {
|
||
ApiKey: {
|
||
Title: "Chave API Azure",
|
||
SubTitle: "Verifique sua chave API do console Azure",
|
||
Placeholder: "Chave API Azure",
|
||
},
|
||
|
||
Endpoint: {
|
||
Title: "Endpoint Azure",
|
||
SubTitle: "Exemplo: ",
|
||
},
|
||
|
||
ApiVerion: {
|
||
Title: "Versão API Azure",
|
||
SubTitle: "Verifique sua versão API do console Azure",
|
||
},
|
||
},
|
||
CustomModel: {
|
||
Title: "Modelos Personalizados",
|
||
SubTitle: "Opções de modelo personalizado, separados por vírgula",
|
||
},
|
||
},
|
||
|
||
Model: "Modelo",
|
||
Temperature: {
|
||
Title: "Temperatura",
|
||
SubTitle: "Um valor maior torna a saída mais aleatória",
|
||
},
|
||
TopP: {
|
||
Title: "Top P",
|
||
SubTitle: "Não altere este valor junto com a temperatura",
|
||
},
|
||
MaxTokens: {
|
||
Title: "Máximo de Tokens",
|
||
SubTitle: "Comprimento máximo de tokens de entrada e tokens gerados",
|
||
},
|
||
PresencePenalty: {
|
||
Title: "Penalidade de Presença",
|
||
SubTitle:
|
||
"Um valor maior aumenta a probabilidade de falar sobre novos tópicos",
|
||
},
|
||
FrequencyPenalty: {
|
||
Title: "Penalidade de Frequência",
|
||
SubTitle:
|
||
"Um valor maior diminui a probabilidade de repetir a mesma linha",
|
||
},
|
||
},
|
||
Store: {
|
||
DefaultTopic: "Nova Conversa",
|
||
BotHello: "Olá! Como posso ajudá-lo hoje?",
|
||
Error: "Algo deu errado, por favor tente novamente mais tarde.",
|
||
Prompt: {
|
||
History: (content: string) =>
|
||
"Este é um resumo do histórico de chat como um recapitulativo: " +
|
||
content,
|
||
Topic:
|
||
"Por favor, gere um título de quatro a cinco palavras resumindo nossa conversa sem qualquer introdução, pontuação, aspas, períodos, símbolos ou texto adicional. Remova as aspas que o envolvem.",
|
||
Summarize:
|
||
"Resuma a discussão brevemente em 200 palavras ou menos para usar como um prompt para o contexto futuro.",
|
||
},
|
||
},
|
||
Copy: {
|
||
Success: "Copiado para a área de transferência",
|
||
Failed:
|
||
"Falha na cópia, por favor conceda permissão para acessar a área de transferência",
|
||
},
|
||
Download: {
|
||
Success: "Conteúdo baixado para seu diretório.",
|
||
Failed: "Falha no download.",
|
||
},
|
||
Context: {
|
||
Toast: (x: any) => `Com ${x} prompts contextuais`,
|
||
Edit: "Configurações do Chat Atual",
|
||
Add: "Adicionar um Prompt",
|
||
Clear: "Contexto Limpo",
|
||
Revert: "Reverter",
|
||
},
|
||
Plugin: {
|
||
Name: "Plugin",
|
||
},
|
||
FineTuned: {
|
||
Sysmessage: "Você é um assistente que",
|
||
},
|
||
Mask: {
|
||
Name: "Máscara",
|
||
Page: {
|
||
Title: "Template de Prompt",
|
||
SubTitle: (count: number) => `${count} templates de prompt`,
|
||
Search: "Buscar Templates",
|
||
Create: "Criar",
|
||
},
|
||
Item: {
|
||
Info: (count: number) => `${count} prompts`,
|
||
Chat: "Chat",
|
||
View: "Visualizar",
|
||
Edit: "Editar",
|
||
Delete: "Deletar",
|
||
DeleteConfirm: "Confirmar para deletar?",
|
||
},
|
||
EditModal: {
|
||
Title: (readonly: boolean) =>
|
||
`Editar Template de Prompt ${readonly ? "(somente leitura)" : ""}`,
|
||
Download: "Baixar",
|
||
Clone: "Clonar",
|
||
},
|
||
Config: {
|
||
Avatar: "Avatar do Bot",
|
||
Name: "Nome do Bot",
|
||
Sync: {
|
||
Title: "Usar Configuração Global",
|
||
SubTitle: "Usar configuração global neste chat",
|
||
Confirm:
|
||
"Confirmar para substituir a configuração personalizada pela configuração global?",
|
||
},
|
||
HideContext: {
|
||
Title: "Esconder Prompts de Contexto",
|
||
SubTitle: "Não mostrar prompts de contexto no chat",
|
||
},
|
||
Share: {
|
||
Title: "Compartilhar Esta Máscara",
|
||
SubTitle: "Gerar um link para esta máscara",
|
||
Action: "Copiar Link",
|
||
},
|
||
},
|
||
},
|
||
NewChat: {
|
||
Return: "Retornar",
|
||
Skip: "Apenas Começar",
|
||
Title: "Escolher uma Máscara",
|
||
SubTitle: "Converse com a Alma por trás da Máscara",
|
||
More: "Encontre Mais",
|
||
NotShow: "Nunca Mostrar Novamente",
|
||
ConfirmNoShow:
|
||
"Confirmar para desabilitar?Você pode habilitar nas configurações depois.",
|
||
},
|
||
|
||
UI: {
|
||
Confirm: "Confirmar",
|
||
Cancel: "Cancelar",
|
||
Close: "Fechar",
|
||
Create: "Criar",
|
||
Edit: "Editar",
|
||
Export: "Exportar",
|
||
Import: "Importar",
|
||
Sync: "Sincronizar",
|
||
Config: "Configurar",
|
||
},
|
||
Exporter: {
|
||
Description: {
|
||
Title: "Apenas mensagens após a limpeza do contexto serão exibidas",
|
||
},
|
||
Model: "Modelo",
|
||
Messages: "Mensagens",
|
||
Topic: "Tópico",
|
||
Time: "Tempo",
|
||
},
|
||
|
||
URLCommand: {
|
||
Code: "Código de acesso detectado a partir da url, confirmar para aplicar? ",
|
||
Settings:
|
||
"Configurações detectadas a partir da url, confirmar para aplicar?",
|
||
},
|
||
};
|
||
|
||
export default pt;
|