it.ts 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. import { SubmitKey } from "../store/config";
  2. import type { PartialLocaleType } from "./index";
  3. import { getClientConfig } from "../config/client";
  4. const isApp = !!getClientConfig()?.isApp;
  5. const it: PartialLocaleType = {
  6. WIP: "Work in progress...",
  7. Error: {
  8. Unauthorized: isApp
  9. ? "API Key non valido rilevato. Vai alla pagina [Impostazioni](/#/settings) per controllare se l'API Key è configurata correttamente."
  10. : "La password di accesso è errata o mancante. Vai alla pagina [Login](/#/auth) per inserire la password corretta o inserisci la tua API Key OpenAI nella pagina [Impostazioni](/#/settings).",
  11. },
  12. Auth: {
  13. Title: "Password richiesta",
  14. Tips: "L'amministratore ha abilitato la verifica della password. Inserisci il codice di accesso qui sotto",
  15. SubTips: "O inserisci la tua chiave API OpenAI o Google",
  16. Input: "Inserisci il codice di accesso qui",
  17. Confirm: "Conferma",
  18. Later: "Più tardi",
  19. },
  20. ChatItem: {
  21. ChatItemCount: (count: number) => `${count} conversazioni`,
  22. },
  23. Chat: {
  24. SubTitle: (count: number) => `Totale ${count} conversazioni`,
  25. EditMessage: {
  26. Title: "Modifica cronologia messaggi",
  27. Topic: {
  28. Title: "Argomento della chat",
  29. SubTitle: "Modifica l'argomento della chat corrente",
  30. },
  31. },
  32. Actions: {
  33. ChatList: "Visualizza l'elenco dei messaggi",
  34. CompressedHistory: "Visualizza la cronologia Prompt compressa",
  35. Export: "Esporta la cronologia chat",
  36. Copy: "Copia",
  37. Stop: "Interrompi",
  38. Retry: "Riprova",
  39. Pin: "Fissa",
  40. PinToastContent: "1 conversazione fissata ai suggerimenti predefiniti",
  41. PinToastAction: "Visualizza",
  42. Delete: "Elimina",
  43. Edit: "Modifica",
  44. },
  45. Commands: {
  46. new: "Nuova chat",
  47. newm: "Nuova chat da maschera",
  48. next: "Chat successiva",
  49. prev: "Chat precedente",
  50. clear: "Pulisci contesto",
  51. del: "Elimina chat",
  52. },
  53. InputActions: {
  54. Stop: "Interrompi risposta",
  55. ToBottom: "Scorri fino al più recente",
  56. Theme: {
  57. auto: "Tema automatico",
  58. light: "Tema chiaro",
  59. dark: "Tema scuro",
  60. },
  61. Prompt: "Comandi rapidi",
  62. Masks: "Tutte le maschere",
  63. Clear: "Pulisci chat",
  64. Settings: "Impostazioni conversazione",
  65. UploadImage: "Carica immagine",
  66. },
  67. Rename: "Rinomina conversazione",
  68. Typing: "Digitazione in corso…",
  69. Input: (submitKey: string) => {
  70. var inputHints = `${submitKey} per inviare`;
  71. if (submitKey === String(SubmitKey.Enter)) {
  72. inputHints += ",Shift + Enter per andare a capo";
  73. }
  74. return (
  75. inputHints +
  76. ",/ per attivare il completamento automatico, : per attivare il comando"
  77. );
  78. },
  79. Send: "Invia",
  80. Config: {
  81. Reset: "Pulisci memoria",
  82. SaveAs: "Salva come maschera",
  83. },
  84. IsContext: "Suggerimenti predefiniti",
  85. },
  86. Export: {
  87. Title: "Condividi cronologia chat",
  88. Copy: "Copia tutto",
  89. Download: "Scarica file",
  90. Share: "Condividi su ShareGPT",
  91. MessageFromYou: "Utente",
  92. MessageFromChatGPT: "ChatGPT",
  93. Format: {
  94. Title: "Formato di esportazione",
  95. SubTitle: "Puoi esportare come testo Markdown o immagine PNG",
  96. },
  97. IncludeContext: {
  98. Title: "Includi contesto maschera",
  99. SubTitle: "Mostrare il contesto della maschera nei messaggi",
  100. },
  101. Steps: {
  102. Select: "Seleziona",
  103. Preview: "Anteprima",
  104. },
  105. Image: {
  106. Toast: "Generazione dello screenshot in corso",
  107. Modal:
  108. "Tieni premuto o fai clic con il tasto destro per salvare l'immagine",
  109. },
  110. },
  111. Select: {
  112. Search: "Cerca messaggi",
  113. All: "Seleziona tutto",
  114. Latest: "Ultimi messaggi",
  115. Clear: "Pulisci selezione",
  116. },
  117. Memory: {
  118. Title: "Riassunto storico",
  119. EmptyContent:
  120. "Il contenuto della conversazione è troppo breve, nessun riassunto necessario",
  121. Send: "Comprimi automaticamente la cronologia chat e inviala come contesto",
  122. Copy: "Copia riassunto",
  123. Reset: "[unused]",
  124. ResetConfirm: "Confermi la cancellazione del riassunto storico?",
  125. },
  126. Home: {
  127. NewChat: "Nuova chat",
  128. DeleteChat: "Confermi l'eliminazione della conversazione selezionata?",
  129. DeleteToast: "Conversazione eliminata",
  130. Revert: "Annulla",
  131. },
  132. Settings: {
  133. Title: "Impostazioni",
  134. SubTitle: "Tutte le opzioni di impostazione",
  135. Danger: {
  136. Reset: {
  137. Title: "Ripristina tutte le impostazioni",
  138. SubTitle: "Ripristina tutte le opzioni ai valori predefiniti",
  139. Action: "Ripristina subito",
  140. Confirm: "Confermi il ripristino di tutte le impostazioni?",
  141. },
  142. Clear: {
  143. Title: "Elimina tutti i dati",
  144. SubTitle: "Elimina tutte le chat e i dati delle impostazioni",
  145. Action: "Elimina subito",
  146. Confirm:
  147. "Confermi l'eliminazione di tutte le chat e dei dati delle impostazioni?",
  148. },
  149. },
  150. Lang: {
  151. Name: "Language", // ATTENZIONE: se vuoi aggiungere una nuova traduzione, non tradurre questo valore, lascialo come `Language`
  152. All: "Tutte le lingue",
  153. },
  154. Avatar: "Avatar",
  155. FontSize: {
  156. Title: "Dimensione del carattere",
  157. SubTitle: "Dimensione del carattere per il contenuto della chat",
  158. },
  159. InjectSystemPrompts: {
  160. Title: "Inserisci suggerimenti di sistema",
  161. SubTitle:
  162. "Aggiungi forzatamente un suggerimento di sistema simulato di ChatGPT all'inizio della lista dei messaggi per ogni richiesta",
  163. },
  164. InputTemplate: {
  165. Title: "Preprocessing dell'input utente",
  166. SubTitle:
  167. "L'ultimo messaggio dell'utente verrà inserito in questo modello",
  168. },
  169. Update: {
  170. Version: (x: string) => `Versione attuale: ${x}`,
  171. IsLatest: "È l'ultima versione",
  172. CheckUpdate: "Controlla aggiornamenti",
  173. IsChecking: "Verifica aggiornamenti in corso...",
  174. FoundUpdate: (x: string) => `Nuova versione trovata: ${x}`,
  175. GoToUpdate: "Vai all'aggiornamento",
  176. },
  177. SendKey: "Tasto di invio",
  178. Theme: "Tema",
  179. TightBorder: "Modalità senza bordi",
  180. SendPreviewBubble: {
  181. Title: "Bolla di anteprima",
  182. SubTitle: "Anteprima del contenuto Markdown nella bolla di anteprima",
  183. },
  184. AutoGenerateTitle: {
  185. Title: "Generazione automatica del titolo",
  186. SubTitle:
  187. "Genera un titolo appropriato in base al contenuto della conversazione",
  188. },
  189. Sync: {
  190. CloudState: "Dati cloud",
  191. NotSyncYet: "Non è ancora avvenuta alcuna sincronizzazione",
  192. Success: "Sincronizzazione riuscita",
  193. Fail: "Sincronizzazione fallita",
  194. Config: {
  195. Modal: {
  196. Title: "Configura sincronizzazione cloud",
  197. Check: "Controlla disponibilità",
  198. },
  199. SyncType: {
  200. Title: "Tipo di sincronizzazione",
  201. SubTitle: "Scegli il server di sincronizzazione preferito",
  202. },
  203. Proxy: {
  204. Title: "Abilita proxy",
  205. SubTitle:
  206. "Durante la sincronizzazione nel browser, è necessario abilitare il proxy per evitare restrizioni CORS",
  207. },
  208. ProxyUrl: {
  209. Title: "Indirizzo proxy",
  210. SubTitle: "Solo per il proxy CORS fornito con questo progetto",
  211. },
  212. WebDav: {
  213. Endpoint: "Indirizzo WebDAV",
  214. UserName: "Nome utente",
  215. Password: "Password",
  216. },
  217. UpStash: {
  218. Endpoint: "URL REST di UpStash Redis",
  219. UserName: "Nome di backup",
  220. Password: "Token REST di UpStash Redis",
  221. },
  222. },
  223. LocalState: "Dati locali",
  224. Overview: (overview: any) => {
  225. return `${overview.chat} chat, ${overview.message} messaggi, ${overview.prompt} suggerimenti, ${overview.mask} maschere`;
  226. },
  227. ImportFailed: "Importazione fallita",
  228. },
  229. Mask: {
  230. Splash: {
  231. Title: "Pagina di avvio delle maschere",
  232. SubTitle:
  233. "Mostra la pagina di avvio delle maschere quando si avvia una nuova chat",
  234. },
  235. Builtin: {
  236. Title: "Nascondi maschere predefinite",
  237. SubTitle:
  238. "Nascondi le maschere predefinite in tutte le liste delle maschere",
  239. },
  240. },
  241. Prompt: {
  242. Disable: {
  243. Title: "Disabilita completamento automatico dei suggerimenti",
  244. SubTitle:
  245. "Inserisci / all'inizio della casella di input per attivare il completamento automatico",
  246. },
  247. List: "Elenco dei suggerimenti personalizzati",
  248. ListCount: (builtin: number, custom: number) =>
  249. `${builtin} predefiniti, ${custom} definiti dall'utente`,
  250. Edit: "Modifica",
  251. Modal: {
  252. Title: "Elenco dei suggerimenti",
  253. Add: "Nuovo",
  254. Search: "Cerca suggerimenti",
  255. },
  256. EditModal: {
  257. Title: "Modifica suggerimenti",
  258. },
  259. },
  260. HistoryCount: {
  261. Title: "Numero di messaggi storici inclusi",
  262. SubTitle: "Numero di messaggi storici inclusi in ogni richiesta",
  263. },
  264. CompressThreshold: {
  265. Title: "Soglia di compressione dei messaggi storici",
  266. SubTitle:
  267. "Quando i messaggi storici non compressi superano questo valore, verranno compressi",
  268. },
  269. Usage: {
  270. Title: "Verifica saldo",
  271. SubTitle(used: any, total: any) {
  272. return `Utilizzato questo mese $${used}, totale abbonamento $${total}`;
  273. },
  274. IsChecking: "Verifica in corso…",
  275. Check: "Verifica di nuovo",
  276. NoAccess:
  277. "Inserisci API Key o password di accesso per visualizzare il saldo",
  278. },
  279. Access: {
  280. AccessCode: {
  281. Title: "Password di accesso",
  282. SubTitle: "L'amministratore ha abilitato l'accesso criptato",
  283. Placeholder: "Inserisci la password di accesso",
  284. },
  285. CustomEndpoint: {
  286. Title: "Interfaccia personalizzata",
  287. SubTitle: "Utilizzare servizi Azure o OpenAI personalizzati",
  288. },
  289. Provider: {
  290. Title: "Fornitore del modello",
  291. SubTitle: "Cambia fornitore di servizi",
  292. },
  293. OpenAI: {
  294. ApiKey: {
  295. Title: "API Key",
  296. SubTitle:
  297. "Utilizza una chiave OpenAI personalizzata per bypassare le limitazioni di accesso",
  298. Placeholder: "API Key OpenAI",
  299. },
  300. Endpoint: {
  301. Title: "Indirizzo dell'interfaccia",
  302. SubTitle: "Deve includere http(s):// oltre all'indirizzo predefinito",
  303. },
  304. },
  305. Azure: {
  306. ApiKey: {
  307. Title: "Chiave dell'interfaccia",
  308. SubTitle:
  309. "Utilizza una chiave Azure personalizzata per bypassare le limitazioni di accesso",
  310. Placeholder: "Chiave API Azure",
  311. },
  312. Endpoint: {
  313. Title: "Indirizzo dell'interfaccia",
  314. SubTitle: "Esempio:",
  315. },
  316. ApiVerion: {
  317. Title: "Versione dell'interfaccia (versione api azure)",
  318. SubTitle: "Scegli una versione specifica",
  319. },
  320. },
  321. Anthropic: {
  322. ApiKey: {
  323. Title: "Chiave dell'interfaccia",
  324. SubTitle:
  325. "Utilizza una chiave Anthropic personalizzata per bypassare le limitazioni di accesso",
  326. Placeholder: "API Key Anthropic",
  327. },
  328. Endpoint: {
  329. Title: "Indirizzo dell'interfaccia",
  330. SubTitle: "Esempio:",
  331. },
  332. ApiVerion: {
  333. Title: "Versione dell'interfaccia (versione api claude)",
  334. SubTitle: "Scegli una versione API specifica",
  335. },
  336. },
  337. Google: {
  338. ApiKey: {
  339. Title: "API Key",
  340. SubTitle: "Ottieni la tua chiave API da Google AI",
  341. Placeholder: "Inserisci la tua chiave API Google AI Studio",
  342. },
  343. Endpoint: {
  344. Title: "Indirizzo dell'interfaccia",
  345. SubTitle: "Esempio:",
  346. },
  347. ApiVersion: {
  348. Title: "Versione API (solo per gemini-pro)",
  349. SubTitle: "Scegli una versione API specifica",
  350. },
  351. GoogleSafetySettings: {
  352. Title: "Livello di filtraggio sicurezza Google",
  353. SubTitle: "Imposta il livello di filtraggio dei contenuti",
  354. },
  355. },
  356. Baidu: {
  357. ApiKey: {
  358. Title: "API Key",
  359. SubTitle: "Utilizza una chiave API Baidu personalizzata",
  360. Placeholder: "API Key Baidu",
  361. },
  362. SecretKey: {
  363. Title: "Secret Key",
  364. SubTitle: "Utilizza una chiave segreta Baidu personalizzata",
  365. Placeholder: "Secret Key Baidu",
  366. },
  367. Endpoint: {
  368. Title: "Indirizzo dell'interfaccia",
  369. SubTitle:
  370. "Non supporta configurazioni personalizzate, andare su .env",
  371. },
  372. },
  373. ByteDance: {
  374. ApiKey: {
  375. Title: "Chiave dell'interfaccia",
  376. SubTitle: "Utilizza una chiave API ByteDance personalizzata",
  377. Placeholder: "API Key ByteDance",
  378. },
  379. Endpoint: {
  380. Title: "Indirizzo dell'interfaccia",
  381. SubTitle: "Esempio:",
  382. },
  383. },
  384. Alibaba: {
  385. ApiKey: {
  386. Title: "Chiave dell'interfaccia",
  387. SubTitle: "Utilizza una chiave API Alibaba Cloud personalizzata",
  388. Placeholder: "API Key Alibaba Cloud",
  389. },
  390. Endpoint: {
  391. Title: "Indirizzo dell'interfaccia",
  392. SubTitle: "Esempio:",
  393. },
  394. },
  395. CustomModel: {
  396. Title: "Nome del modello personalizzato",
  397. SubTitle:
  398. "Aggiungi opzioni di modelli personalizzati, separati da virgole",
  399. },
  400. },
  401. Model: "Modello (model)",
  402. Temperature: {
  403. Title: "Casualità (temperature)",
  404. SubTitle: "Valore più alto, risposte più casuali",
  405. },
  406. TopP: {
  407. Title: "Campionamento nucleare (top_p)",
  408. SubTitle:
  409. "Simile alla casualità, ma non cambiarlo insieme alla casualità",
  410. },
  411. MaxTokens: {
  412. Title: "Limite di token per risposta (max_tokens)",
  413. SubTitle: "Numero massimo di token per ogni interazione",
  414. },
  415. PresencePenalty: {
  416. Title: "Novità del tema (presence_penalty)",
  417. SubTitle:
  418. "Valore più alto, maggiore possibilità di espandere a nuovi argomenti",
  419. },
  420. FrequencyPenalty: {
  421. Title: "Penalità di frequenza (frequency_penalty)",
  422. SubTitle:
  423. "Valore più alto, maggiore possibilità di ridurre le ripetizioni",
  424. },
  425. },
  426. Store: {
  427. DefaultTopic: "Nuova chat",
  428. BotHello: "Come posso aiutarti?",
  429. Error: "Si è verificato un errore, riprova più tardi",
  430. Prompt: {
  431. History: (content: string) =>
  432. "Questo è un riassunto della chat storica come contesto: " + content,
  433. Topic:
  434. "Riporta il tema di questa frase in modo conciso con quattro o cinque parole, senza spiegazioni, punteggiatura, interiezioni, testo superfluo e senza grassetto. Se non c'è un tema, rispondi direttamente con 'chit-chat'",
  435. Summarize:
  436. "Riassumi brevemente il contenuto della conversazione come prompt di contesto per il seguito, mantenendolo entro 200 parole",
  437. },
  438. },
  439. Copy: {
  440. Success: "Copiato negli appunti",
  441. Failed: "Copia fallita, concedi i permessi per gli appunti",
  442. },
  443. Download: {
  444. Success: "Contenuto scaricato nella tua directory.",
  445. Failed: "Download fallito.",
  446. },
  447. Context: {
  448. Toast: (x: any) => `Include ${x} suggerimenti predefiniti`,
  449. Edit: "Impostazioni della conversazione attuale",
  450. Add: "Aggiungi una conversazione",
  451. Clear: "Contesto cancellato",
  452. Revert: "Ripristina contesto",
  453. },
  454. Plugin: {
  455. Name: "Plugin",
  456. },
  457. FineTuned: {
  458. Sysmessage: "Sei un assistente",
  459. },
  460. Mask: {
  461. Name: "Maschera",
  462. Page: {
  463. Title: "Maschere dei ruoli predefiniti",
  464. SubTitle: (count: number) => `${count} definizioni di ruoli predefiniti`,
  465. Search: "Cerca maschere di ruolo",
  466. Create: "Crea nuovo",
  467. },
  468. Item: {
  469. Info: (count: number) => `Include ${count} conversazioni predefinite`,
  470. Chat: "Conversazione",
  471. View: "Visualizza",
  472. Edit: "Modifica",
  473. Delete: "Elimina",
  474. DeleteConfirm: "Confermi eliminazione?",
  475. },
  476. EditModal: {
  477. Title: (readonly: boolean) =>
  478. `Modifica maschera predefinita ${readonly ? "(sola lettura)" : ""}`,
  479. Download: "Scarica predefinito",
  480. Clone: "Clona predefinito",
  481. },
  482. Config: {
  483. Avatar: "Avatar del ruolo",
  484. Name: "Nome del ruolo",
  485. Sync: {
  486. Title: "Utilizza impostazioni globali",
  487. SubTitle:
  488. "La conversazione attuale utilizzerà le impostazioni globali del modello",
  489. Confirm:
  490. "Le impostazioni personalizzate della conversazione attuale verranno sovrascritte automaticamente, confermi l'attivazione delle impostazioni globali?",
  491. },
  492. HideContext: {
  493. Title: "Nascondi conversazioni predefinite",
  494. SubTitle:
  495. "Le conversazioni predefinite non appariranno nella finestra della chat dopo averle nascoste",
  496. },
  497. Share: {
  498. Title: "Condividi questa maschera",
  499. SubTitle: "Genera un link diretto a questa maschera",
  500. Action: "Copia link",
  501. },
  502. },
  503. },
  504. NewChat: {
  505. Return: "Torna",
  506. Skip: "Inizia subito",
  507. NotShow: "Non mostrare più",
  508. ConfirmNoShow:
  509. "Confermi di disabilitare? Dopo la disabilitazione, puoi riattivare in qualsiasi momento dalle impostazioni.",
  510. Title: "Scegli una maschera",
  511. SubTitle: "Inizia ora e interagisci con il pensiero dietro la maschera",
  512. More: "Vedi tutto",
  513. },
  514. URLCommand: {
  515. Code: "Codice di accesso rilevato nel link, riempirlo automaticamente?",
  516. Settings:
  517. "Impostazioni predefinite rilevate nel link, riempirle automaticamente?",
  518. },
  519. UI: {
  520. Confirm: "Conferma",
  521. Cancel: "Annulla",
  522. Close: "Chiudi",
  523. Create: "Crea",
  524. Edit: "Modifica",
  525. Export: "Esporta",
  526. Import: "Importa",
  527. Sync: "Sincronizza",
  528. Config: "Configura",
  529. },
  530. Exporter: {
  531. Description: {
  532. Title:
  533. "Solo i messaggi dopo la cancellazione del contesto verranno visualizzati",
  534. },
  535. Model: "Modello",
  536. Messages: "Messaggi",
  537. Topic: "Tema",
  538. Time: "Tempo",
  539. },
  540. };
  541. export default it;