pt.ts 14 KB

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