pt.ts 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  1. import { SubmitKey } from "../store/config";
  2. import { PartialLocaleType } from "../locales/index";
  3. import { getClientConfig } from "../config/client";
  4. const isApp = !!getClientConfig()?.isApp;
  5. const pt: PartialLocaleType = {
  6. WIP: "Em breve...",
  7. Error: {
  8. Unauthorized: isApp
  9. ? "Chave API inválida, por favor verifique em [Configurações](/#/settings)."
  10. : "Acesso não autorizado, por favor insira o código de acesso em [auth](/#/auth) ou insira sua Chave API OpenAI.",
  11. },
  12. Auth: {
  13. Title: "Necessário Código de Acesso",
  14. Tips: "Por favor, insira o código de acesso abaixo",
  15. SubTips: "Ou insira sua Chave API OpenAI",
  16. Input: "código de acesso",
  17. Confirm: "Confirmar",
  18. Later: "Depois",
  19. },
  20. ChatItem: {
  21. ChatItemCount: (count: number) => `${count} mensagens`,
  22. },
  23. Chat: {
  24. SubTitle: (count: number) => `${count} mensagens`,
  25. EditMessage: {
  26. Title: "Editar Todas as Mensagens",
  27. Topic: {
  28. Title: "Tópico",
  29. SubTitle: "Mudar o tópico atual",
  30. },
  31. },
  32. Actions: {
  33. ChatList: "Ir Para Lista de Chat",
  34. CompressedHistory: "Prompt de Memória Histórica Comprimida",
  35. Export: "Exportar Todas as Mensagens como Markdown",
  36. Copy: "Copiar",
  37. Stop: "Parar",
  38. Retry: "Tentar Novamente",
  39. Pin: "Fixar",
  40. PinToastContent: "Fixada 1 mensagem para prompts contextuais",
  41. PinToastAction: "Visualizar",
  42. Delete: "Deletar",
  43. Edit: "Editar",
  44. RefreshTitle: "Atualizar Título",
  45. RefreshToast: "Solicitação de atualização de título enviada",
  46. },
  47. Commands: {
  48. new: "Iniciar um novo chat",
  49. newm: "Iniciar um novo chat com máscara",
  50. next: "Próximo Chat",
  51. prev: "Chat Anterior",
  52. clear: "Limpar Contexto",
  53. del: "Deletar Chat",
  54. },
  55. InputActions: {
  56. Stop: "Parar",
  57. ToBottom: "Para o Mais Recente",
  58. Theme: {
  59. auto: "Automático",
  60. light: "Tema Claro",
  61. dark: "Tema Escuro",
  62. },
  63. Prompt: "Prompts",
  64. Masks: "Máscaras",
  65. Clear: "Limpar Contexto",
  66. Settings: "Configurações",
  67. },
  68. Rename: "Renomear Chat",
  69. Typing: "Digitando…",
  70. Input: (submitKey: string) => {
  71. var inputHints = `${submitKey} para enviar`;
  72. if (submitKey === String(SubmitKey.Enter)) {
  73. inputHints += ", Shift + Enter para quebrar linha";
  74. }
  75. return inputHints + ", / para buscar prompts, : para usar comandos";
  76. },
  77. Send: "Enviar",
  78. Config: {
  79. Reset: "Redefinir para Padrão",
  80. SaveAs: "Salvar como Máscara",
  81. },
  82. IsContext: "Prompt Contextual",
  83. },
  84. Export: {
  85. Title: "Exportar Mensagens",
  86. Copy: "Copiar Tudo",
  87. Download: "Baixar",
  88. MessageFromYou: "Mensagem De Você",
  89. MessageFromChatGPT: "Mensagem De ChatGPT",
  90. Share: "Compartilhar para ShareGPT",
  91. Format: {
  92. Title: "Formato de Exportação",
  93. SubTitle: "Markdown ou Imagem PNG",
  94. },
  95. IncludeContext: {
  96. Title: "Incluindo Contexto",
  97. SubTitle: "Exportar prompts de contexto na máscara ou não",
  98. },
  99. Steps: {
  100. Select: "Selecionar",
  101. Preview: "Pré-visualizar",
  102. },
  103. Image: {
  104. Toast: "Capturando Imagem...",
  105. Modal:
  106. "Pressione longamente ou clique com o botão direito para salvar a imagem",
  107. },
  108. },
  109. Select: {
  110. Search: "Buscar",
  111. All: "Selecionar Tudo",
  112. Latest: "Selecionar Mais Recente",
  113. Clear: "Limpar",
  114. },
  115. Memory: {
  116. Title: "Prompt de Memória",
  117. EmptyContent: "Nada ainda.",
  118. Send: "Enviar Memória",
  119. Copy: "Copiar Memória",
  120. Reset: "Resetar Sessão",
  121. ResetConfirm:
  122. "Resetar irá limpar o histórico de conversa atual e a memória histórica. Você tem certeza que quer resetar?",
  123. },
  124. Home: {
  125. NewChat: "Novo Chat",
  126. DeleteChat: "Confirmar para deletar a conversa selecionada?",
  127. DeleteToast: "Chat Deletado",
  128. Revert: "Reverter",
  129. },
  130. Settings: {
  131. Title: "Configurações",
  132. SubTitle: "Todas as Configurações",
  133. Danger: {
  134. Reset: {
  135. Title: "Resetar Todas as Configurações",
  136. SubTitle: "Resetar todos os itens de configuração para o padrão",
  137. Action: "Resetar",
  138. Confirm: "Confirmar para resetar todas as configurações para o padrão?",
  139. },
  140. Clear: {
  141. Title: "Limpar Todos os Dados",
  142. SubTitle: "Limpar todas as mensagens e configurações",
  143. Action: "Limpar",
  144. Confirm: "Confirmar para limpar todas as mensagens e configurações?",
  145. },
  146. },
  147. Lang: {
  148. Name: "Language",
  149. All: "Todos os Idiomas",
  150. },
  151. Avatar: "Avatar",
  152. FontSize: {
  153. Title: "Tamanho da Fonte",
  154. SubTitle: "Ajustar o tamanho da fonte do conteúdo do chat",
  155. },
  156. FontFamily: {
  157. Title: "Fonte do Chat",
  158. SubTitle:
  159. "Fonte do conteúdo do chat, deixe vazio para aplicar a fonte padrão global",
  160. Placeholder: "Nome da Fonte",
  161. },
  162. InjectSystemPrompts: {
  163. Title: "Inserir Prompts de Sistema",
  164. SubTitle: "Inserir um prompt de sistema global para cada requisição",
  165. },
  166. InputTemplate: {
  167. Title: "Modelo de Entrada",
  168. SubTitle: "A mensagem mais recente será preenchida neste modelo",
  169. },
  170. Update: {
  171. Version: (x: string) => `Versão: ${x}`,
  172. IsLatest: "Última versão",
  173. CheckUpdate: "Verificar Atualização",
  174. IsChecking: "Verificando atualização...",
  175. FoundUpdate: (x: string) => `Nova versão encontrada: ${x}`,
  176. GoToUpdate: "Atualizar",
  177. },
  178. SendKey: "Tecla de Envio",
  179. Theme: "Tema",
  180. TightBorder: "Borda Ajustada",
  181. SendPreviewBubble: {
  182. Title: "Bolha de Pré-visualização de Envio",
  183. SubTitle: "Pré-visualizar markdown na bolha",
  184. },
  185. AutoGenerateTitle: {
  186. Title: "Gerar Título Automaticamente",
  187. SubTitle: "Gerar um título adequado baseado no conteúdo da conversa",
  188. },
  189. Sync: {
  190. CloudState: "Última Atualização",
  191. NotSyncYet: "Ainda não sincronizado",
  192. Success: "Sincronização bem sucedida",
  193. Fail: "Falha na sincronização",
  194. Config: {
  195. Modal: {
  196. Title: "Configurar Sincronização",
  197. Check: "Verificar Conexão",
  198. },
  199. SyncType: {
  200. Title: "Tipo de Sincronização",
  201. SubTitle: "Escolha seu serviço de sincronização favorito",
  202. },
  203. Proxy: {
  204. Title: "Habilitar Proxy CORS",
  205. SubTitle: "Habilitar um proxy para evitar restrições de cross-origin",
  206. },
  207. ProxyUrl: {
  208. Title: "Endpoint de Proxy",
  209. SubTitle: "Apenas aplicável ao proxy CORS embutido para este projeto",
  210. },
  211. WebDav: {
  212. Endpoint: "Endpoint WebDAV",
  213. UserName: "Nome de Usuário",
  214. Password: "Senha",
  215. },
  216. UpStash: {
  217. Endpoint: "URL REST Redis UpStash",
  218. UserName: "Nome do Backup",
  219. Password: "Token REST Redis UpStash",
  220. },
  221. },
  222. LocalState: "Dados Locais",
  223. Overview: (overview: any) => {
  224. return `${overview.chat} chats,${overview.message} mensagens,${overview.prompt} prompts,${overview.mask} máscaras`;
  225. },
  226. ImportFailed: "Falha ao importar do arquivo",
  227. },
  228. Mask: {
  229. Splash: {
  230. Title: "Tela de Início da Máscara",
  231. SubTitle:
  232. "Mostrar uma tela de início da máscara antes de iniciar novo chat",
  233. },
  234. Builtin: {
  235. Title: "Esconder Máscaras Embutidas",
  236. SubTitle: "Esconder máscaras embutidas na lista de máscaras",
  237. },
  238. },
  239. Prompt: {
  240. Disable: {
  241. Title: "Desabilitar auto-completar",
  242. SubTitle: "Digite / para acionar auto-completar",
  243. },
  244. List: "Lista de Prompts",
  245. ListCount: (builtin: number, custom: number) =>
  246. `${builtin} embutidos, ${custom} definidos pelo usuário`,
  247. Edit: "Editar",
  248. Modal: {
  249. Title: "Lista de Prompts",
  250. Add: "Adicionar Um",
  251. Search: "Buscar Prompts",
  252. },
  253. EditModal: {
  254. Title: "Editar Prompt",
  255. },
  256. },
  257. HistoryCount: {
  258. Title: "Contagem de Mensagens Anexadas",
  259. SubTitle: "Número de mensagens enviadas anexadas por requisição",
  260. },
  261. CompressThreshold: {
  262. Title: "Limite de Compressão de Histórico",
  263. SubTitle:
  264. "Irá comprimir se o comprimento das mensagens não comprimidas exceder o valor",
  265. },
  266. Usage: {
  267. Title: "Saldo da Conta",
  268. SubTitle(used: any, total: any) {
  269. return `Usado este mês ${used}, assinatura ${total}`;
  270. },
  271. IsChecking: "Verificando...",
  272. Check: "Verificar",
  273. NoAccess: "Insira a Chave API para verificar o saldo",
  274. },
  275. Access: {
  276. AccessCode: {
  277. Title: "Código de Acesso",
  278. SubTitle: "Controle de Acesso Habilitado",
  279. Placeholder: "Insira o Código",
  280. },
  281. CustomEndpoint: {
  282. Title: "Endpoint Personalizado",
  283. SubTitle: "Use serviço personalizado Azure ou OpenAI",
  284. },
  285. Provider: {
  286. Title: "Provedor do Modelo",
  287. SubTitle: "Selecione Azure ou OpenAI",
  288. },
  289. OpenAI: {
  290. ApiKey: {
  291. Title: "Chave API OpenAI",
  292. SubTitle: "Usar Chave API OpenAI personalizada",
  293. Placeholder: "sk-xxx",
  294. },
  295. Endpoint: {
  296. Title: "Endpoint OpenAI",
  297. SubTitle:
  298. "Deve começar com http(s):// ou usar /api/openai como padrão",
  299. },
  300. },
  301. Azure: {
  302. ApiKey: {
  303. Title: "Chave API Azure",
  304. SubTitle: "Verifique sua chave API do console Azure",
  305. Placeholder: "Chave API Azure",
  306. },
  307. Endpoint: {
  308. Title: "Endpoint Azure",
  309. SubTitle: "Exemplo: ",
  310. },
  311. ApiVerion: {
  312. Title: "Versão API Azure",
  313. SubTitle: "Verifique sua versão API do console Azure",
  314. },
  315. },
  316. Anthropic: {
  317. ApiKey: {
  318. Title: "Chave API Anthropic",
  319. SubTitle: "Verifique sua chave API do console Anthropic",
  320. Placeholder: "Chave API Anthropic",
  321. },
  322. Endpoint: {
  323. Title: "Endpoint Address",
  324. SubTitle: "Exemplo: ",
  325. },
  326. ApiVerion: {
  327. Title: "Versão API (Versão api claude)",
  328. SubTitle: "Verifique sua versão API do console Anthropic",
  329. },
  330. },
  331. CustomModel: {
  332. Title: "Modelos Personalizados",
  333. SubTitle: "Opções de modelo personalizado, separados por vírgula",
  334. },
  335. },
  336. Model: "Modelo",
  337. Temperature: {
  338. Title: "Temperatura",
  339. SubTitle: "Um valor maior torna a saída mais aleatória",
  340. },
  341. TopP: {
  342. Title: "Top P",
  343. SubTitle: "Não altere este valor junto com a temperatura",
  344. },
  345. MaxTokens: {
  346. Title: "Máximo de Tokens",
  347. SubTitle: "Comprimento máximo de tokens de entrada e tokens gerados",
  348. },
  349. PresencePenalty: {
  350. Title: "Penalidade de Presença",
  351. SubTitle:
  352. "Um valor maior aumenta a probabilidade de falar sobre novos tópicos",
  353. },
  354. FrequencyPenalty: {
  355. Title: "Penalidade de Frequência",
  356. SubTitle:
  357. "Um valor maior diminui a probabilidade de repetir a mesma linha",
  358. },
  359. },
  360. Store: {
  361. DefaultTopic: "Nova Conversa",
  362. BotHello: "Olá! Como posso ajudá-lo hoje?",
  363. Error: "Algo deu errado, por favor tente novamente mais tarde.",
  364. Prompt: {
  365. History: (content: string) =>
  366. "Este é um resumo do histórico de chat como um recapitulativo: " +
  367. content,
  368. Topic:
  369. "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.",
  370. Summarize:
  371. "Resuma a discussão brevemente em 200 palavras ou menos para usar como um prompt para o contexto futuro.",
  372. },
  373. },
  374. Copy: {
  375. Success: "Copiado para a área de transferência",
  376. Failed:
  377. "Falha na cópia, por favor conceda permissão para acessar a área de transferência",
  378. },
  379. Download: {
  380. Success: "Conteúdo baixado para seu diretório.",
  381. Failed: "Falha no download.",
  382. },
  383. Context: {
  384. Toast: (x: any) => `Com ${x} prompts contextuais`,
  385. Edit: "Configurações do Chat Atual",
  386. Add: "Adicionar um Prompt",
  387. Clear: "Contexto Limpo",
  388. Revert: "Reverter",
  389. },
  390. Plugin: {
  391. Name: "Plugin",
  392. },
  393. FineTuned: {
  394. Sysmessage: "Você é um assistente que",
  395. },
  396. SearchChat: {
  397. Name: "Pesquisar",
  398. Page: {
  399. Title: "Pesquisar histórico de chat",
  400. Search: "Digite palavras-chave para pesquisa",
  401. NoResult: "Nenhum resultado encontrado",
  402. NoData: "Sem dados",
  403. Loading: "Carregando",
  404. SubTitle: (count: number) => `Encontrado ${count} resultados`,
  405. },
  406. Item: {
  407. View: "Ver",
  408. },
  409. },
  410. Mask: {
  411. Name: "Máscara",
  412. Page: {
  413. Title: "Template de Prompt",
  414. SubTitle: (count: number) => `${count} templates de prompt`,
  415. Search: "Buscar Templates",
  416. Create: "Criar",
  417. },
  418. Item: {
  419. Info: (count: number) => `${count} prompts`,
  420. Chat: "Chat",
  421. View: "Visualizar",
  422. Edit: "Editar",
  423. Delete: "Deletar",
  424. DeleteConfirm: "Confirmar para deletar?",
  425. },
  426. EditModal: {
  427. Title: (readonly: boolean) =>
  428. `Editar Template de Prompt ${readonly ? "(somente leitura)" : ""}`,
  429. Download: "Baixar",
  430. Clone: "Clonar",
  431. },
  432. Config: {
  433. Avatar: "Avatar do Bot",
  434. Name: "Nome do Bot",
  435. Sync: {
  436. Title: "Usar Configuração Global",
  437. SubTitle: "Usar configuração global neste chat",
  438. Confirm:
  439. "Confirmar para substituir a configuração personalizada pela configuração global?",
  440. },
  441. HideContext: {
  442. Title: "Esconder Prompts de Contexto",
  443. SubTitle: "Não mostrar prompts de contexto no chat",
  444. },
  445. Share: {
  446. Title: "Compartilhar Esta Máscara",
  447. SubTitle: "Gerar um link para esta máscara",
  448. Action: "Copiar Link",
  449. },
  450. },
  451. },
  452. NewChat: {
  453. Return: "Retornar",
  454. Skip: "Apenas Começar",
  455. Title: "Escolher uma Máscara",
  456. SubTitle: "Converse com a Alma por trás da Máscara",
  457. More: "Encontre Mais",
  458. NotShow: "Nunca Mostrar Novamente",
  459. ConfirmNoShow:
  460. "Confirmar para desabilitar?Você pode habilitar nas configurações depois.",
  461. },
  462. UI: {
  463. Confirm: "Confirmar",
  464. Cancel: "Cancelar",
  465. Close: "Fechar",
  466. Create: "Criar",
  467. Edit: "Editar",
  468. Export: "Exportar",
  469. Import: "Importar",
  470. Sync: "Sincronizar",
  471. Config: "Configurar",
  472. },
  473. Exporter: {
  474. Description: {
  475. Title: "Apenas mensagens após a limpeza do contexto serão exibidas",
  476. },
  477. Model: "Modelo",
  478. Messages: "Mensagens",
  479. Topic: "Tópico",
  480. Time: "Tempo",
  481. },
  482. URLCommand: {
  483. Code: "Código de acesso detectado a partir da url, confirmar para aplicar? ",
  484. Settings:
  485. "Configurações detectadas a partir da url, confirmar para aplicar?",
  486. },
  487. };
  488. export default pt;