Queer European MD passionate about IT

messages.py 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008
  1. """Default messages for bot functions."""
  2. default_admin_messages = {
  3. 'cancel': {
  4. 'button': {
  5. 'en': "↩️ Cancel",
  6. 'it': "↩️ Annulla"
  7. },
  8. 'done': {
  9. 'en': "↩️ Operation cancelled",
  10. 'it': "↩️ Operazione annullata",
  11. },
  12. 'lower': {
  13. 'en': "cancel",
  14. 'it': "annulla",
  15. },
  16. },
  17. 'confirm': {
  18. 'en': "🔄 Click again to confirm",
  19. 'it': "🔄 Clicka di nuovo per confermare",
  20. },
  21. 'db_command': {
  22. 'description': {
  23. 'en': "Ask for bot database via Telegram",
  24. 'it': "Ricevi il database del bot via Telegram"
  25. },
  26. 'not_sqlite': {
  27. 'en': "Only SQLite databases may be sent via Telegram, since they "
  28. "are single-file databases.\n"
  29. "This bot has a `{db_type}` database.",
  30. 'it': "Via Telegram possono essere inviati solo database SQLite, "
  31. "in quanto composti di un solo file.\n"
  32. "Questo bot ha invece un database `{db_type}`."
  33. },
  34. 'file_caption': {
  35. 'en': "Here is bot database.",
  36. 'it': "Ecco il database!"
  37. },
  38. 'db_sent': {
  39. 'en': "Database sent.",
  40. 'it': "Database inviato."
  41. }
  42. },
  43. 'error': {
  44. 'text': {
  45. 'en': "❌️ Error!",
  46. 'it': "❌️ Errore!"
  47. },
  48. },
  49. 'errors_command': {
  50. 'description': {
  51. 'en': "Receive bot error log file, if set",
  52. 'it': "Ricevi il file di log degli errori del bot, se impostato"
  53. },
  54. 'no_log': {
  55. 'en': "Sorry but no errors log file is set.\n"
  56. "To set it, use `bot.set_errors_file_name` instance method"
  57. "or `Bot.set_class_errors_file_name` class method.",
  58. 'it': "Spiacente ma il file di log degli errori non è stato "
  59. "impostato.\n"
  60. "Per impostarlo, usa il metodo d'istanza "
  61. "`bot.set_errors_file_name` o il metodo di classe"
  62. "`Bot.set_class_errors_file_name`."
  63. },
  64. 'empty_log': {
  65. 'en': "Congratulations! Errors log is empty!",
  66. 'it': "Congratulazioni! Il log degli errori è vuoto!"
  67. },
  68. 'sending_failure': {
  69. 'en': "Sending errors log file failed!\n\n"
  70. "<b>Error:</b>\n"
  71. "<code>{e}</code>",
  72. 'it': "Inviio del messaggio di log degli errori fallito!\n\n"
  73. "<b>Errore:</b>\n"
  74. "<code>{e}</code>"
  75. },
  76. 'here_is_log_file': {
  77. 'en': "Here is the complete errors log file.",
  78. 'it': "Ecco il file di log degli errori completo."
  79. },
  80. 'log_file_first_lines': {
  81. 'en': "Here are the first {lines} lines of the errors log file.",
  82. 'it': "Ecco le prime {lines} righe del file di log degli errori."
  83. },
  84. 'log_file_last_lines': {
  85. 'en': "Here are the last {lines} lines of the errors log file.\n"
  86. "Newer lines are at the top of the file.",
  87. 'it': "Ecco le ultime {lines} righe del file di log degli "
  88. "errori.\n"
  89. "L'ordine è cronologico, con i messaggi nuovi in alto."
  90. }
  91. },
  92. 'father_command': {
  93. 'back': {
  94. 'en': "↩️ Back",
  95. 'it': "↩️ Indietro",
  96. },
  97. 'del': {
  98. 'done': {
  99. 'en': "✅ Commands deleted",
  100. 'it': "✅ Comandi rimossi",
  101. },
  102. 'error': {
  103. 'en': "Something went wrong 😕",
  104. 'it': "Qualcosa è andato storto 😕",
  105. },
  106. 'no_change': {
  107. 'en': "❌ No command stored",
  108. 'it': "❌ Nessun comando salvato",
  109. },
  110. },
  111. 'description': {
  112. 'en': "Edit the @BotFather commands",
  113. 'it': "Modifica i comandi con @BotFather",
  114. },
  115. 'error': {
  116. 'en': "❌ Error! ❌",
  117. 'it': "❌ Errore! ❌",
  118. },
  119. 'get': {
  120. 'empty': {
  121. 'en': "No command set yet. You may use <code>✏️ Change</code> "
  122. "button",
  123. 'it': "Nessun comando impostato ancora. Puoi usare il bottone "
  124. "<code>✏️ Modifica</code>",
  125. },
  126. 'panel': {
  127. 'en': "🤖 <b>BotFather commands</b> ℹ️\n\n"
  128. "{commands}",
  129. 'it': "🤖 <b>Comandi su BotFather</b> ℹ️\n\n"
  130. "{commands}",
  131. },
  132. },
  133. 'modes': [
  134. {
  135. 'id': "get",
  136. 'name': {
  137. 'en': "See",
  138. 'it': "Consulta"
  139. },
  140. 'symbol': "ℹ️",
  141. 'description': {
  142. 'en': "See commands stored by @BotFather",
  143. 'it': "Consulta i comandi salvati su @BotFather"
  144. },
  145. },
  146. {
  147. 'id': "set",
  148. 'name': {
  149. 'en': "Change",
  150. 'it': "Modifica"
  151. },
  152. 'symbol': "✏️",
  153. 'description': {
  154. 'en': "Change commands stored by @BotFather",
  155. 'it': "Modifica i comandi salvati su @BotFather"
  156. },
  157. },
  158. {
  159. 'id': "del",
  160. 'name': {
  161. 'en': "Delete",
  162. 'it': "Cancella"
  163. },
  164. 'symbol': "🗑",
  165. 'description': {
  166. 'en': "Delete commands stored by @BotFather",
  167. 'it': "Cancella i comandi salvati su @BotFather"
  168. },
  169. },
  170. {
  171. 'id': "settings",
  172. 'name': {
  173. 'en': "Settings",
  174. 'it': "Impostazioni"
  175. },
  176. 'symbol': "⚙️",
  177. 'description': {
  178. 'en': "Set commands to hide or to add",
  179. 'it': "Imposta comandi da nascondere o aggiungere"
  180. },
  181. },
  182. ],
  183. 'set': {
  184. 'button': {
  185. 'en': "⚠️ Set these commands 🔧",
  186. 'it': "⚠️ Imposta questi comandi 🔧",
  187. },
  188. 'done': {
  189. 'en': "✅ Done!",
  190. 'it': "✅ Fatto!",
  191. },
  192. 'error': {
  193. 'en': "Something went wrong 😕",
  194. 'it': "Qualcosa è andato storto 😕",
  195. },
  196. 'header': {
  197. 'en': "✏️ <b>Change commands stored by @BotFather 🤖</b>",
  198. 'it': "✏️ <b>Modifica i comandi salvati su @BotFather 🤖</b>",
  199. },
  200. 'legend': {
  201. 'en': "<b>Legend</b>\n"
  202. "✅ <i>Already stored</i>\n"
  203. "✏️ <i>New description</i>\n"
  204. "☑ <i>New command</i>\n"
  205. "❌ <i>Will be removed</i>",
  206. 'it': "<b>Legenda</b>\n"
  207. "✅ <i>Già presente</i>\n"
  208. "✏️ <i>Nuova descrizione</i>\n"
  209. "☑ <i>Nuovo comando</i>\n"
  210. "❌ <i>Comando da eliminare</i>",
  211. },
  212. 'no_change': {
  213. 'en': "❌ No change detected",
  214. 'it': "❌ Nessuna modifica",
  215. },
  216. },
  217. 'settings': {
  218. 'browse_records': {
  219. 'en': "✏️ <b>Edit BotFather settings</b> ⚙️\n\n"
  220. "Select a record to edit.\n\n"
  221. "{commands_list}\n\n"
  222. "<i>Legend</i>\n"
  223. "➕ Added commands\n"
  224. "➖ Hidden commands\n\n"
  225. "Showing records from {record_interval[0]} to "
  226. "{record_interval[1]} of {record_interval[2]}",
  227. 'it': "✏️ <b>Modifica impostazioni di BotFather</b> ⚙\n\n️"
  228. "Seleziona un'impostazione da modificare.\n\n"
  229. "{commands_list}\n\n"
  230. "<i>Legenda</i>\n"
  231. "➕ Comandi aggiunti\n"
  232. "➖ Comandi nascosti\n\n"
  233. "Record da {record_interval[0]} a "
  234. "{record_interval[1]} di {record_interval[2]}",
  235. },
  236. 'modes': {
  237. 'add': {
  238. 'add': {
  239. 'done': {
  240. 'en': "➕️️ <b>Added additional command</b>\n\n"
  241. "Command: {command}\n"
  242. "Description: {description}",
  243. 'it': "➕️️ <b>Inserito comando aggiuntivo</b>\n\n"
  244. "Comando: {command}\n"
  245. "Descrizione: {description}",
  246. },
  247. 'popup': {
  248. 'en': "Write the command to add",
  249. 'it': "Scrivimi il comando da aggiungere",
  250. },
  251. 'text': {
  252. 'en': "Write the command to add or /cancel this operation",
  253. 'it': "Scrivimi il comando da aggiungere o /annulla",
  254. },
  255. },
  256. 'description': {
  257. 'en': "Add command to default list",
  258. 'it': "Aggiungi un comando dalla lista autogenerata"
  259. },
  260. 'edit': {
  261. 'done': {
  262. 'en': "✏️ <b>Edited additional command</b>\n\n"
  263. "Command: {command}\n"
  264. "Description: {description}",
  265. 'it': "✏️ <b>Comando da nascondere modificato</b>\n\n"
  266. "Comando: {command}\n"
  267. "Descrizione: {description}",
  268. },
  269. },
  270. 'error': {
  271. 'description_too_long': {
  272. 'en': "<b>Description is too long</b>\n\n"
  273. "Description length must be 3-256 chars.",
  274. 'it': "<b>Descrizione troppo lunga</b>\n\n"
  275. "La descrizione deve essere di 3-256 caratteri.",
  276. },
  277. 'duplicate_record': {
  278. 'en': "<b>Duplicate record</b>\n\n"
  279. "Command is already being added to default "
  280. "output. Edit that record if you need to.",
  281. 'it': "<b>Record già presente</b>\n\n"
  282. "Questo comando è già aggiunto a quelli di "
  283. "default. Modifica il record già presente se "
  284. "necessario.",
  285. },
  286. 'missing_description': {
  287. 'en': "<b>Missing description</b>\n\n"
  288. "Additional commands must have a description "
  289. "(3-256 chars).",
  290. 'it': "<b>Descrizione mancante</b>\n\n"
  291. "I comandi aggiuntivi devono avere una "
  292. "descrizione di 3-256 caratteri.",
  293. },
  294. 'unhandled_exception': {
  295. 'en': "❌ <b>Unhandled exception </b> ⚠️",
  296. 'it': "❌ <b>Errore imprevisto </b> ⚠️",
  297. },
  298. },
  299. 'name': {
  300. 'en': "Add",
  301. 'it': "Aggiungi"
  302. },
  303. 'symbol': "➕️",
  304. },
  305. 'hide': {
  306. 'add': {
  307. 'done': {
  308. 'en': "➖ <b>Added hidden command</b>\n\n"
  309. "Command: {command}\n",
  310. 'it': "➖ <b>Comando da nascondere aggiunto</b>"
  311. "Comando: {command}\n",
  312. },
  313. 'popup': {
  314. 'en': "Write the command to hide",
  315. 'it': "Scrivimi il comando da nascondere",
  316. },
  317. 'text': {
  318. 'en': "Write the command to hide or /cancel this operation",
  319. 'it': "Scrivimi il comando da nascondere o /annulla",
  320. }
  321. },
  322. 'description': {
  323. 'en': "Hide command from default list",
  324. 'it': "Nascondi un comando dalla lista autogenerata"
  325. },
  326. 'edit': {
  327. 'done': {
  328. 'en': "✏️ <b>Edited hidden command</b>\n\n"
  329. "Command: {command}\n"
  330. "Description: {description}",
  331. 'it': "✏️ <b>Comando da nascondere modificato</b>\n\n"
  332. "Comando: {command}\n"
  333. "Descrizione: {description}",
  334. },
  335. },
  336. 'name': {
  337. 'en': "Hide",
  338. 'it': "Nascondi"
  339. },
  340. 'symbol': "➖️",
  341. },
  342. 'edit': {
  343. 'button': {
  344. 'en': "✏️ Edit record",
  345. 'it': "✏️ Modifica record"
  346. },
  347. 'description': {
  348. 'en': "Edit added or hidden commands",
  349. 'it': "Modifica i comandi aggiunti o nascosti"
  350. },
  351. 'edit': {
  352. 'popup': {
  353. 'en': "Write the new description",
  354. 'it': "Scrivimi la nuova descrizione",
  355. },
  356. 'text': {
  357. 'en': "Write the new description for command "
  358. "{command} or /cancel",
  359. 'it': "Scrivimi la nuova descrizione per il "
  360. "comando {command} o /annulla",
  361. },
  362. 'done': {
  363. 'en': "✏️ Edit succeeded ✅\n\n"
  364. "Command: {command}\n"""
  365. "Description: {description}",
  366. 'it': "✏️ Modifica completata ✅\n\n"
  367. "Comando: {command}\n"""
  368. "Descrizione: {description}",
  369. }
  370. },
  371. 'name': {
  372. 'en': "Edit",
  373. 'it': "Modifica"
  374. },
  375. 'panel': {
  376. 'delete': {
  377. 'button': {
  378. 'en': "❌ Delete record",
  379. 'it': "❌ Elimina record",
  380. },
  381. 'done': {
  382. 'popup': {
  383. 'en': "Record deleted ✅",
  384. 'it': "Record eliminato ✅",
  385. },
  386. 'text': {
  387. 'en': "Record deleted ✅",
  388. 'it': "Record eliminato ✅",
  389. },
  390. },
  391. },
  392. 'edit_description': {
  393. 'button': {
  394. 'en': "✏️ Edit description",
  395. 'it': "✏️ Modifica descrizione",
  396. },
  397. },
  398. 'text': {
  399. 'en': "✏️ Edit record ✅\n\n"
  400. "Command: {command}\n"""
  401. "Description: {description}",
  402. 'it': "✏️ Modifica record\n\n"
  403. "Comando: {command}\n"""
  404. "Descrizione: {description}",
  405. },
  406. },
  407. 'symbol': "✏️",
  408. },
  409. },
  410. 'panel': {
  411. 'en': "🤖 <b>@BotFather settings</b> ⚙️\n\n"
  412. "➕ <i>Additional commands</i>\n"
  413. "{additional_commands}\n\n"
  414. "➖ <i>Hidden commands</i>\n"
  415. "{hidden_commands}",
  416. 'it': "⚙️ <b>Impostazioni di @BotFather</b> 🤖\n\n"
  417. "➕ <i>Comandi aggiuntivi</i>\n"
  418. "{additional_commands}\n\n"
  419. "➖ <i>Comandi nascosti</i>\n"
  420. "{hidden_commands}",
  421. },
  422. },
  423. 'title': {
  424. 'en': "🤖 <b>BotFather</b>",
  425. 'it': "🤖 <b>BotFather</b>",
  426. },
  427. },
  428. 'log_command': {
  429. 'description': {
  430. 'en': "Receive bot log file, if set",
  431. 'it': "Ricevi il file di log del bot, se impostato"
  432. },
  433. 'no_log': {
  434. 'en': "Sorry but no log file is set.\n"
  435. "To set it, use `bot.set_log_file_name` instance method or "
  436. "`Bot.set_class_log_file_name` class method.",
  437. 'it': "Spiacente ma il file di log non è stato impostato.\n"
  438. "Per impostarlo, usa il metodo d'istanza "
  439. "`bot.set_log_file_name` o il metodo di classe"
  440. "`Bot.set_class_log_file_name`."
  441. },
  442. 'sending_failure': {
  443. 'en': "Sending log file failed!\n\n"
  444. "<b>Error:</b>\n"
  445. "<code>{e}</code>",
  446. 'it': "Inviio del messaggio di log fallito!\n\n"
  447. "<b>Errore:</b>\n"
  448. "<code>{e}</code>"
  449. },
  450. 'here_is_log_file': {
  451. 'en': "Here is the complete log file.",
  452. 'it': "Ecco il file di log completo."
  453. },
  454. 'log_file_first_lines': {
  455. 'en': "Here are the first {lines} lines of the log file.",
  456. 'it': "Ecco le prime {lines} righe del file di log."
  457. },
  458. 'log_file_last_lines': {
  459. 'en': "Here are the last {lines} lines of the log file.\n"
  460. "Newer lines are at the top of the file.",
  461. 'it': "Ecco le ultime {lines} righe del file di log.\n"
  462. "L'ordine è cronologico, con i messaggi nuovi in alto."
  463. }
  464. },
  465. 'maintenance_command': {
  466. 'description': {
  467. 'en': "Put the bot under maintenance",
  468. 'it': "Metti il bot in manutenzione"
  469. },
  470. 'maintenance_started': {
  471. 'en': "<i>Bot has just been put under maintenance!</i>\n\n"
  472. "Until further notice, it will reply to users "
  473. "with the following message:\n\n"
  474. "{message}",
  475. 'it': "<i>Il bot è stato messo in manutenzione!</i>\n\n"
  476. "Fino a nuovo ordine, risponderà a tutti i comandi con il "
  477. "seguente messaggio\n\n"
  478. "{message}"
  479. },
  480. 'maintenance_ended': {
  481. 'en': "<i>Maintenance ended!</i>",
  482. 'it': "<i>Manutenzione terminata!</i>"
  483. }
  484. },
  485. 'new_version': {
  486. 'title': {
  487. 'en': "🔔 New version installed ✅",
  488. 'it': "🔔 Rilevata nuova versione installata! ✅",
  489. },
  490. 'last_commit': {
  491. 'en': "Old commit: <code>{old_record[last_commit]}</code>\n"
  492. "New commit: <code>{new_record[last_commit]}</code>",
  493. 'it': "Vecchio commit: <code>{old_record[last_commit]}</code>\n"
  494. "Nuovo commit: <code>{new_record[last_commit]}</code>",
  495. },
  496. },
  497. 'query_button': {
  498. 'error': {
  499. 'en': "Error!",
  500. 'it': "Errore!",
  501. },
  502. 'file_name': {
  503. 'en': "Query result.csv",
  504. 'it': "Risultato della query.csv",
  505. },
  506. 'empty_file': {
  507. 'en': "No result to show.",
  508. 'it': "Nessun risultato da mostrare.",
  509. }
  510. },
  511. 'query_command': {
  512. 'description': {
  513. 'en': "Receive the result of a SQL query performed on bot "
  514. "database",
  515. 'it': "Ricevi il risultato di una query SQL sul database del bot"
  516. },
  517. 'help': {
  518. 'en': "Write a SQL query to be run on bot database.\n\n"
  519. "<b>Example</b>\n"
  520. "<code>/query SELECT * FROM users WHERE 0</code>",
  521. 'it': "Invia una query SQL da eseguire sul database del bot.\n\n"
  522. "<b>Esempio</b>\n"
  523. "<code>/query SELECT * FROM users WHERE 0</code>"
  524. },
  525. 'no_iterable': {
  526. 'en': "No result to show was returned",
  527. 'it': "La query non ha restituito risultati da mostrare"
  528. },
  529. 'exception': {
  530. 'en': "The query threw this error:",
  531. 'it': "La query ha dato questo errore:"
  532. },
  533. 'result': {
  534. 'en': "Query result",
  535. 'it': "Risultato della query"
  536. }
  537. },
  538. 'restart_command': {
  539. 'description': {
  540. 'en': "Restart bots",
  541. 'it': "Riavvia i bot"
  542. },
  543. 'restart_scheduled_message': {
  544. 'en': "Bots are being restarted, after pulling from repository.",
  545. 'it': "I bot verranno riavviati in pochi secondi, caricando "
  546. "prima le eventuali modifiche al codice."
  547. },
  548. 'restart_completed_message': {
  549. 'en': "<i>Restart was successful.</i>",
  550. 'it': "<i>Restart avvenuto con successo.</i>"
  551. }
  552. },
  553. 'select_command': {
  554. 'description': {
  555. 'en': "Receive the result of a SELECT query performed on bot "
  556. "database",
  557. 'it': "Ricevi il risultato di una query SQL di tipo SELECT "
  558. "sul database del bot"
  559. }
  560. },
  561. 'stop_button': {
  562. 'stop_text': {
  563. 'en': "Stop bots",
  564. 'it': "Ferma i bot"
  565. },
  566. 'cancel': {
  567. 'en': "Cancel",
  568. 'it': "Annulla"
  569. },
  570. 'confirm': {
  571. 'en': "Do you really want to stop all bots?",
  572. 'it': "Vuoi davvero fermare tutti i bot?"
  573. },
  574. 'stopping': {
  575. 'en': "Stopping bots...",
  576. 'it': "Arresto in corso..."
  577. },
  578. 'cancelled': {
  579. 'en': "Operation was cancelled",
  580. 'it': "Operazione annullata"
  581. }
  582. },
  583. 'stop_command': {
  584. 'description': {
  585. 'en': "Stop bots",
  586. 'it': "Ferma i bot"
  587. },
  588. 'text': {
  589. 'en': "Are you sure you want to stop all bots?\n"
  590. "To make them start again you will have to ssh-log "
  591. "in server.\n\n"
  592. "To restart the bots remotely use the /restart command "
  593. "instead (before starting over, a <code>git pull</code> "
  594. "is performed).",
  595. 'it': "Sei sicuro di voler fermare i bot?\n"
  596. "Per farli ripartire dovrai accedere al server.\n\n"
  597. "Per far ripartire i bot da remoto usa invece il comando "
  598. "/restart (prima di ripartire farò un "
  599. "<code>git pull</code>)."
  600. }
  601. },
  602. 'talk_command': {
  603. 'description': {
  604. 'en': "Choose a user and forward messages to each other",
  605. 'it': "Scegli un utente e il bot farà da tramite inoltrando a "
  606. "ognuno i messaggi dell'altro finché non terminerai la "
  607. "sessione"
  608. }
  609. },
  610. 'updates_available': {
  611. 'header': {
  612. 'en': "🔔 Updates available! ⬇️\n\n"
  613. "Click to /restart bot",
  614. 'it': "🔔 Aggiornamenti disponibili! ⬇\n\n"
  615. "Clicka qui per fare il /restart",
  616. },
  617. },
  618. 'version_command': {
  619. 'reply_keyboard_button': {
  620. 'en': "Version #️⃣",
  621. 'it': "Versione #️⃣",
  622. },
  623. 'description': {
  624. 'en': "Get packages version and source code last commit",
  625. 'it': "Chiedi la versione dei pacchetti e del codice sorgente",
  626. },
  627. 'help_section': None,
  628. 'header': {
  629. 'en': "ℹ️ Version information #️⃣\n\n"
  630. "Last commit: <code>{last_commit}</code>",
  631. 'it': "ℹ️ Informazioni sulle versioni dei pacchetti #️⃣\n\n"
  632. "Ultimo commit: <code>{last_commit}</code>"
  633. },
  634. },
  635. }
  636. default_authorization_messages = {
  637. 'auth_command': {
  638. 'description': {
  639. 'en': "Edit user permissions. To select a user, reply to "
  640. "a message of theirs or write their username",
  641. 'it': "Cambia il grado di autorizzazione di un utente "
  642. "(in risposta o scrivendone lo username)"
  643. },
  644. 'unhandled_case': {
  645. 'en': "<code>Unhandled case :/</code>",
  646. 'it': "<code>Caso non previsto :/</code>"
  647. },
  648. 'instructions': {
  649. 'en': "Reply with this command to a user or write "
  650. "<code>/auth username</code> to edit their permissions.",
  651. 'it': "Usa questo comando in risposta a un utente "
  652. "oppure scrivi <code>/auth username</code> per "
  653. "cambiarne il grado di autorizzazione."
  654. },
  655. 'unknown_user': {
  656. 'en': "Unknown user.",
  657. 'it': "Utente sconosciuto."
  658. },
  659. 'choose_user': {
  660. 'en': "{n} users match your query. Please select one.",
  661. 'it': "Ho trovato {n} utenti che soddisfano questi criteri.\n"
  662. "Per procedere selezionane uno."
  663. },
  664. 'no_match': {
  665. 'en': "No user matches your query. Please try again.",
  666. 'it': "Non ho trovato utenti che soddisfino questi criteri.\n"
  667. "Prova di nuovo."
  668. }
  669. },
  670. 'ban_command': {
  671. 'description': {
  672. 'en': "Reply to a user with /ban to ban them",
  673. 'it': "Banna l'utente (da usare in risposta)"
  674. }
  675. },
  676. 'auth_button': {
  677. 'description': {
  678. 'en': "Edit user permissions",
  679. 'it': "Cambia il grado di autorizzazione di un utente"
  680. },
  681. 'confirm': {
  682. 'en': "Are you sure?",
  683. 'it': "Sicuro sicuro?"
  684. },
  685. 'back_to_user': {
  686. 'en': "Back to user",
  687. 'it': "Torna all'utente"
  688. },
  689. 'permission_denied': {
  690. 'user': {
  691. 'en': "You cannot appoint this user!",
  692. 'it': "Non hai l'autorità di modificare i permessi di questo "
  693. "utente!"
  694. },
  695. 'role': {
  696. 'en': "You're not allowed to appoint someone to this role!",
  697. 'it': "Non hai l'autorità di conferire questo permesso!"
  698. }
  699. },
  700. 'no_change': {
  701. 'en': "No change suggested!",
  702. 'it': "È già così!"
  703. },
  704. 'appointed': {
  705. 'en': "Permission granted",
  706. 'it': "Permesso conferito"
  707. }
  708. },
  709. }
  710. default_authorization_denied_message = {
  711. 'en': "You are not allowed to use this command, sorry.",
  712. 'it': "Non disponi di autorizzazioni sufficienti per questa richiesta, spiacente.",
  713. }
  714. default_help_messages = {
  715. 'help_command': {
  716. 'header': {
  717. 'en': "<b>{bot.name} commands</b>\n\n"
  718. "{commands}",
  719. 'it': "<b>Comandi di {bot.name}</b>\n\n"
  720. "{commands}",
  721. },
  722. 'text': {
  723. 'en': "<b>Guide</b>",
  724. 'it': "<b>Guida</b>"
  725. },
  726. 'reply_keyboard_button': {
  727. 'en': "Help 📖",
  728. 'it': "Guida 📖"
  729. },
  730. 'description': {
  731. 'en': "Help",
  732. 'it': "Aiuto"
  733. },
  734. 'access_denied_message': {
  735. 'en': "Ask for authorization. If your request is accepted, send "
  736. "/help command again to read the guide.",
  737. 'it': "Chiedi di essere autorizzato: se la tua richiesta "
  738. "verrà accolta, ripeti il comando /help per leggere "
  739. "il messaggio di aiuto."
  740. },
  741. 'back_to_help_menu': {
  742. 'en': "Back to guide menu 📖",
  743. 'it': "Torna al menu Guida 📖",
  744. },
  745. },
  746. 'commands_button_label': {
  747. 'en': "Commands 🤖",
  748. 'it': "Comandi 🤖",
  749. },
  750. }
  751. default_language_messages = {
  752. 'language_command': {
  753. 'name': {
  754. 'en': "/language",
  755. 'it': "/lingua"
  756. },
  757. 'alias': {
  758. 'en': "Language 🗣",
  759. 'it': "Lingua 🗣"
  760. },
  761. 'reply_keyboard_button': {
  762. 'en': "Language 🗣",
  763. 'it': "Lingua 🗣"
  764. },
  765. 'description': {
  766. 'en': "Change language settings",
  767. 'it': "Cambia le impostazioni della lingua"
  768. }
  769. },
  770. 'language_button': {
  771. 'description': {
  772. 'en': "Change language settings",
  773. 'it': "Cambia le impostazioni della lingua"
  774. },
  775. 'language_set': {
  776. 'en': "Selected language: English 🇬🇧",
  777. 'it': "Lingua selezionata: Italiano 🇮🇹"
  778. }
  779. },
  780. 'language_panel': {
  781. 'text': {
  782. 'en': "<b>Choose a language</b>",
  783. 'it': "<b>Seleziona una lingua</b>"
  784. }
  785. }
  786. }
  787. default_suggestion_messages = {
  788. 'suggestions_command': {
  789. 'command': "/suggestion",
  790. 'aliases': [
  791. "/suggestions", "/ideas",
  792. "/suggerimento", "/suggerimenti", "idee"
  793. ],
  794. 'reply_keyboard_button': {
  795. 'en': "Ideas 💡",
  796. 'it': "Idee 💡"
  797. },
  798. 'description': {
  799. 'en': "Send a suggestion to help improve the bot",
  800. 'it': "Invia un suggerimento per aiutare a migliorare il bot"
  801. },
  802. 'prompt_text': {
  803. 'en': (
  804. "Send a suggestion to bot administrator.\n\n"
  805. "Maximum 1500 characters (extra ones will be ignored).\n"
  806. "If you need more space, you may create a telegra.ph topic and link it here.\n\n"
  807. "/cancel if you misclicked."
  808. ),
  809. 'it': (
  810. "Inserisci un suggerimento da inviare agli amministratori.\n\n"
  811. "Massimo 1500 caratteri (quelli in più non verranno registrati).\n"
  812. "Se ti serve maggiore libertà, puoi per esempio creare un topic "
  813. "su telegra.ph e linkarlo qui!\n\n"
  814. "/annulla se hai clickato per errore."
  815. ),
  816. },
  817. 'prompt_popup': {
  818. 'en': (
  819. "Send a suggestion"
  820. ),
  821. 'it': (
  822. "Inserisci un suggerimento"
  823. ),
  824. },
  825. 'entered_suggestion': {
  826. 'text': {
  827. 'en': (
  828. "Entered suggestions:\n\n"
  829. "<code>{suggestion}</code>\n\n"
  830. "Do you want to send it to bot administrators?"
  831. ),
  832. 'it': (
  833. "Suggerimento inserito:\n\n"
  834. "<code>{suggestion}</code>\n\n"
  835. "Vuoi inviarlo agli amministratori?"
  836. ),
  837. },
  838. 'buttons': {
  839. 'send': {
  840. 'en': "Send it! 📧",
  841. 'it': "Invia! 📧",
  842. },
  843. 'cancel': {
  844. 'en': "Cancel ❌",
  845. 'it': "Annulla ❌",
  846. },
  847. }
  848. },
  849. 'received_suggestion': {
  850. 'text': {
  851. 'en': (
  852. "💡 We received a new suggestion! 💡\n\n"
  853. "{user}\n\n"
  854. "<code>{suggestion}</code>\n\n"
  855. "#suggestions #{bot.name}"
  856. ),
  857. 'it': (
  858. "💡 Abbiamo ricevuto un nuovo suggerimento! 💡\n\n"
  859. "{user}\n\n"
  860. "<code>{suggestion}</code>\n\n"
  861. "#suggestions #{bot.name}"
  862. ),
  863. },
  864. 'buttons': {
  865. 'new': {
  866. 'en': "New suggestion 💡",
  867. 'it': "Nuovo suggerimento 💡",
  868. },
  869. },
  870. },
  871. 'invalid_suggestion': {
  872. 'en': "Invalid suggestion.",
  873. 'it': "Suggerimento non valido."
  874. },
  875. 'cancel_messages': {
  876. 'en': ['cancel'],
  877. 'it': ['annulla', 'cancella'],
  878. },
  879. 'operation_cancelled': {
  880. 'en': "Operation cancelled.",
  881. 'it': "Operazione annullata con successo.",
  882. },
  883. 'suggestion_sent': {
  884. 'popup': {
  885. 'en': "Thanks!",
  886. 'it': "Grazie!",
  887. },
  888. 'text': {
  889. 'en': (
  890. "💡 Suggestion sent, thank you! 💡\n\n"
  891. "<code>{suggestion}</code>\n\n"
  892. "#suggestions #{bot.name}"
  893. ),
  894. 'it': (
  895. "💡 Suggerimento inviato, grazie! 💡\n\n"
  896. "<code>{suggestion}</code>\n\n"
  897. "#suggerimenti #{bot.name}"
  898. ),
  899. },
  900. }
  901. },
  902. 'suggestions_button': {
  903. 'file_name': {
  904. 'en': "Suggestions.csv",
  905. 'it': "Suggerimenti.csv",
  906. },
  907. 'file_caption': {
  908. 'en': "Here is the suggestions file.",
  909. 'it': "Ecco il file dei suggerimenti.",
  910. }
  911. },
  912. 'see_suggestions': {
  913. 'command': "/getsuggestions",
  914. 'aliases': [
  915. "/vedisuggerimenti",
  916. ],
  917. 'description': {
  918. 'en': "Get a file containing all suggestions",
  919. 'it': "Richiedi un file con tutti i suggerimenti"
  920. },
  921. }
  922. }
  923. default_talk_messages = {
  924. 'admin_session_ended': {
  925. 'en': 'Session with user {u} ended.',
  926. 'it': 'Sessione terminata con l\'utente {u}.',
  927. },
  928. 'admin_warning': {
  929. 'en': (
  930. 'You are now talking to {u}.\n'
  931. 'Until you end this session, your messages will be '
  932. 'forwarded to each other.'
  933. ),
  934. 'it': (
  935. 'Sei ora connesso con {u}.\n'
  936. 'Finché non chiuderai la connessione, i messaggi che scriverai '
  937. 'qui saranno inoltrati a {u}, e ti inoltrerò i suoi.'
  938. ),
  939. },
  940. 'end_session': {
  941. 'en': 'End session?',
  942. 'it': 'Chiudere la sessione?',
  943. },
  944. 'help_text': {
  945. 'en': 'Press the button to search for user.',
  946. 'it': 'Premi il pulsante per scegliere un utente.',
  947. },
  948. 'search_button': {
  949. 'en': "🔍 Search for user",
  950. 'it': "🔍 Cerca utente",
  951. },
  952. 'select_user': {
  953. 'en': 'Which user would you like to talk to?',
  954. 'it': 'Con quale utente vorresti parlare?',
  955. },
  956. 'user_not_found': {
  957. 'en': (
  958. "Sory, but no user matches your query for\n"
  959. "<code>{q}</code>"
  960. ),
  961. 'it': (
  962. "Spiacente, ma nessun utente corrisponde alla ricerca per\n"
  963. "<code>{q}</code>"
  964. ),
  965. },
  966. 'instructions': {
  967. 'en': (
  968. 'Write a part of name, surname or username of the user you want '
  969. 'to talk to.'
  970. ),
  971. 'it': (
  972. 'Scrivi una parte del nome, cognome o username dell\'utente con '
  973. 'cui vuoi parlare.'
  974. ),
  975. },
  976. 'stop': {
  977. 'en': 'End session',
  978. 'it': 'Termina la sessione',
  979. },
  980. 'user_session_ended': {
  981. 'en': 'Session with admin {u} ended.',
  982. 'it': 'Sessione terminata con l\'amministratore {u}.',
  983. },
  984. 'user_warning': {
  985. 'en': (
  986. '{u}, admin of this bot, wants to talk to you.\n'
  987. 'Until this session is ended by {u}, your messages will be '
  988. 'forwarded to each other.'
  989. ),
  990. 'it': (
  991. '{u}, amministratore di questo bot, vuole parlare con te.\n'
  992. 'Finché non chiuderà la connessione, i messaggi che scriverai '
  993. 'qui saranno inoltrati a {u}, e ti inoltrerò i suoi.'
  994. ),
  995. },
  996. }
  997. default_unknown_command_message = {
  998. 'en': "Unknown command! Touch /help to read the guide and available commands.",
  999. 'it': "Comando sconosciuto! Fai /help per leggere la guida e i comandi."
  1000. }