Queer European MD passionate about IT

messages.py 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272
  1. """Default messages for bot functions."""
  2. davtelepot_messages = {
  3. 'long_message': {
  4. 'file_name': {
  5. 'en': "Long message.html",
  6. 'it': "Messaggio lungo.html",
  7. },
  8. 'caption': {
  9. 'en': "<b>Long message</b>\n\n"
  10. "This message is too long to be sent as individual "
  11. "messages.",
  12. 'it': "<b>Messaggio lungo</b>\n\n"
  13. "Questo messaggio è troppo lungo per essere inviato come "
  14. "messaggi separati.",
  15. }
  16. },
  17. 'part': {
  18. 'en': "part",
  19. 'it': "parte",
  20. },
  21. }
  22. default_admin_messages = {
  23. 'cancel': {
  24. 'button': {
  25. 'en': "↩️ Cancel",
  26. 'it': "↩️ Annulla"
  27. },
  28. 'done': {
  29. 'en': "↩️ Operation cancelled",
  30. 'it': "↩️ Operazione annullata",
  31. },
  32. 'lower': {
  33. 'en': "cancel",
  34. 'it': "annulla",
  35. },
  36. },
  37. 'config_command': {
  38. 'description': {
  39. 'en': "Add a variable to the configuration file",
  40. 'it': "Aggiungi una variabile al file di configurazione",
  41. },
  42. 'help_section': None,
  43. 'instructions': {
  44. 'en': "<b>Config 🔧</b>\n\n"
  45. "<i>Send me a new configuration variable, for example:</i>\n"
  46. "<code>variable = 2</code>",
  47. 'it': "<b>Configurazione 🔧</b>\n\n"
  48. "<i>Mandami una variabile da aggiungere al file di "
  49. "configurazione, per esempio:</i>\n"
  50. "<code>variabile = 2</code>",
  51. },
  52. 'invalid_input': {
  53. 'en': "<b>❌ Invalid input 🔧</b>\n\n"
  54. "<i>Send me a new configuration variable, for example:</i>\n"
  55. "<code>int_var = 2\n"
  56. "str_var = 'test'\n"
  57. "bool_var = False\n"
  58. "float_var = 3.5</code>",
  59. 'it': "<b>❌ Configurazione scorretta 🔧</b>\n\n"
  60. "<i>Mandami una variabile da aggiungere al file di "
  61. "configurazione, per esempio:</i>\n"
  62. "<code>var_int = 2\n"
  63. "var_str = 'test'\n"
  64. "var_bool = False\n"
  65. "var_float = 3.5</code>",
  66. },
  67. 'reply_keyboard_button': {
  68. 'en': "Config 🔧",
  69. 'it': "Configurazione 🔧",
  70. },
  71. 'success': {
  72. 'en': "<b>✔️ Configuration updated 🔧</b>\n\n"
  73. "The following variable has been added to the configuration "
  74. "file:\n"
  75. "<code>{new_variable}</code>\n\n"
  76. "/restart to apply",
  77. 'it': "<b>✔️ Configurazione aggiornata 🔧</b>\n\n"
  78. "La seguente variabile è stata aggiunta al file di "
  79. "configurazione:\n"
  80. "<code>{new_variable}</code>\n\n"
  81. "Per rendere effettive le modifiche fai /restart",
  82. },
  83. },
  84. 'confirm': {
  85. 'en': "🔄 Click again to confirm",
  86. 'it': "🔄 Clicka di nuovo per confermare",
  87. },
  88. 'db_command': {
  89. 'db_sent': {
  90. 'en': "Database sent.",
  91. 'it': "Database inviato.",
  92. },
  93. 'description': {
  94. 'en': "Ask for bot database via Telegram",
  95. 'it': "Ricevi il database del bot via Telegram",
  96. },
  97. 'error': {
  98. 'en': "Error sending database.",
  99. 'it': "Errore durante l'invio del database.",
  100. },
  101. 'file_caption': {
  102. 'en': "Here is bot database.",
  103. 'it': "Ecco il database!"
  104. },
  105. 'not_sqlite': {
  106. 'en': "Only SQLite databases may be sent via Telegram, since they "
  107. "are single-file databases.\n"
  108. "This bot has a `{db_type}` database.",
  109. 'it': "Via Telegram possono essere inviati solo database SQLite, "
  110. "in quanto composti di un solo file.\n"
  111. "Questo bot ha invece un database `{db_type}`."
  112. },
  113. },
  114. 'error': {
  115. 'text': {
  116. 'en': "❌️ Error!",
  117. 'it': "❌️ Errore!"
  118. },
  119. },
  120. 'errors_command': {
  121. 'description': {
  122. 'en': "Receive bot error log file, if set",
  123. 'it': "Ricevi il file di log degli errori del bot, se impostato"
  124. },
  125. 'no_log': {
  126. 'en': "Sorry but no errors log file is set.\n"
  127. "To set it, use `bot.set_errors_file_name` instance method "
  128. "or `Bot.set_class_errors_file_name` class method.",
  129. 'it': "Spiacente ma il file di log degli errori non è stato "
  130. "impostato.\n"
  131. "Per impostarlo, usa il metodo d'istanza "
  132. "`bot.set_errors_file_name` o il metodo di classe "
  133. "`Bot.set_class_errors_file_name`."
  134. },
  135. 'empty_log': {
  136. 'en': "Congratulations! Errors log is empty!",
  137. 'it': "Congratulazioni! Il log degli errori è vuoto!"
  138. },
  139. 'sending_failure': {
  140. 'en': "Sending errors log file failed!\n\n"
  141. "<b>Error:</b>\n"
  142. "<code>{e}</code>",
  143. 'it': "Inviio del messaggio di log degli errori fallito!\n\n"
  144. "<b>Errore:</b>\n"
  145. "<code>{e}</code>"
  146. },
  147. 'here_is_log_file': {
  148. 'en': "Here is the complete errors log file.",
  149. 'it': "Ecco il file di log degli errori completo."
  150. },
  151. 'log_file_first_lines': {
  152. 'en': "Here are the first {lines} lines of the errors log file.",
  153. 'it': "Ecco le prime {lines} righe del file di log degli errori."
  154. },
  155. 'log_file_last_lines': {
  156. 'en': "Here are the last {lines} lines of the errors log file.\n"
  157. "Newer lines are at the top of the file.",
  158. 'it': "Ecco le ultime {lines} righe del file di log degli "
  159. "errori.\n"
  160. "L'ordine è cronologico, con i messaggi nuovi in alto."
  161. }
  162. },
  163. 'father_command': {
  164. 'back': {
  165. 'en': "↩️ Back",
  166. 'it': "↩️ Indietro",
  167. },
  168. 'del': {
  169. 'done': {
  170. 'en': "✅ Commands deleted",
  171. 'it': "✅ Comandi rimossi",
  172. },
  173. 'error': {
  174. 'en': "Something went wrong 😕",
  175. 'it': "Qualcosa è andato storto 😕",
  176. },
  177. 'no_change': {
  178. 'en': "❌ No command stored",
  179. 'it': "❌ Nessun comando salvato",
  180. },
  181. },
  182. 'description': {
  183. 'en': "Edit the @BotFather commands",
  184. 'it': "Modifica i comandi con @BotFather",
  185. },
  186. 'error': {
  187. 'en': "❌ Error! ❌",
  188. 'it': "❌ Errore! ❌",
  189. },
  190. 'get': {
  191. 'empty': {
  192. 'en': "No command set yet. You may use <code>✏️ Change</code> "
  193. "button",
  194. 'it': "Nessun comando impostato ancora. Puoi usare il bottone "
  195. "<code>✏️ Modifica</code>",
  196. },
  197. 'panel': {
  198. 'en': "🤖 <b>BotFather commands</b> ℹ️\n\n"
  199. "{commands}",
  200. 'it': "🤖 <b>Comandi su BotFather</b> ℹ️\n\n"
  201. "{commands}",
  202. },
  203. },
  204. 'modes': [
  205. {
  206. 'id': "get",
  207. 'name': {
  208. 'en': "See",
  209. 'it': "Consulta"
  210. },
  211. 'symbol': "ℹ️",
  212. 'description': {
  213. 'en': "See commands stored by @BotFather",
  214. 'it': "Consulta i comandi salvati su @BotFather"
  215. },
  216. },
  217. {
  218. 'id': "set",
  219. 'name': {
  220. 'en': "Change",
  221. 'it': "Modifica"
  222. },
  223. 'symbol': "✏️",
  224. 'description': {
  225. 'en': "Change commands stored by @BotFather",
  226. 'it': "Modifica i comandi salvati su @BotFather"
  227. },
  228. },
  229. {
  230. 'id': "del",
  231. 'name': {
  232. 'en': "Delete",
  233. 'it': "Cancella"
  234. },
  235. 'symbol': "🗑",
  236. 'description': {
  237. 'en': "Delete commands stored by @BotFather",
  238. 'it': "Cancella i comandi salvati su @BotFather"
  239. },
  240. },
  241. {
  242. 'id': "settings",
  243. 'name': {
  244. 'en': "Settings",
  245. 'it': "Impostazioni"
  246. },
  247. 'symbol': "⚙️",
  248. 'description': {
  249. 'en': "Set commands to hide or to add",
  250. 'it': "Imposta comandi da nascondere o aggiungere"
  251. },
  252. },
  253. ],
  254. 'set': {
  255. 'button': {
  256. 'en': "⚠️ Set these commands 🔧",
  257. 'it': "⚠️ Imposta questi comandi 🔧",
  258. },
  259. 'done': {
  260. 'en': "✅ Done!",
  261. 'it': "✅ Fatto!",
  262. },
  263. 'error': {
  264. 'en': "Something went wrong 😕",
  265. 'it': "Qualcosa è andato storto 😕",
  266. },
  267. 'header': {
  268. 'en': "✏️ <b>Change commands stored by @BotFather 🤖</b>",
  269. 'it': "✏️ <b>Modifica i comandi salvati su @BotFather 🤖</b>",
  270. },
  271. 'legend': {
  272. 'en': "<b>Legend</b>\n"
  273. "✅ <i>Already stored</i>\n"
  274. "✏️ <i>New description</i>\n"
  275. "☑ <i>New command</i>\n"
  276. "❌ <i>Will be removed</i>",
  277. 'it': "<b>Legenda</b>\n"
  278. "✅ <i>Già presente</i>\n"
  279. "✏️ <i>Nuova descrizione</i>\n"
  280. "☑ <i>Nuovo comando</i>\n"
  281. "❌ <i>Comando da eliminare</i>",
  282. },
  283. 'no_change': {
  284. 'en': "❌ No change detected",
  285. 'it': "❌ Nessuna modifica",
  286. },
  287. },
  288. 'settings': {
  289. 'browse_records': {
  290. 'en': "✏️ <b>Edit BotFather settings</b> ⚙️\n\n"
  291. "Select a record to edit.\n\n"
  292. "{commands_list}\n\n"
  293. "<i>Legend</i>\n"
  294. "➕ Added commands\n"
  295. "➖ Hidden commands\n\n"
  296. "Showing records from {record_interval[0]} to "
  297. "{record_interval[1]} of {record_interval[2]}",
  298. 'it': "✏️ <b>Modifica impostazioni di BotFather</b> ⚙\n\n️"
  299. "Seleziona un'impostazione da modificare.\n\n"
  300. "{commands_list}\n\n"
  301. "<i>Legenda</i>\n"
  302. "➕ Comandi aggiunti\n"
  303. "➖ Comandi nascosti\n\n"
  304. "Record da {record_interval[0]} a "
  305. "{record_interval[1]} di {record_interval[2]}",
  306. },
  307. 'modes': {
  308. 'add': {
  309. 'add': {
  310. 'done': {
  311. 'en': "➕️️ <b>Added additional command</b>\n\n"
  312. "Command: {command}\n"
  313. "Description: {description}",
  314. 'it': "➕️️ <b>Inserito comando aggiuntivo</b>\n\n"
  315. "Comando: {command}\n"
  316. "Descrizione: {description}",
  317. },
  318. 'popup': {
  319. 'en': "Write the command to add",
  320. 'it': "Scrivimi il comando da aggiungere",
  321. },
  322. 'text': {
  323. 'en': "Write the command to add or /cancel this operation",
  324. 'it': "Scrivimi il comando da aggiungere o /annulla",
  325. },
  326. },
  327. 'description': {
  328. 'en': "Add command to default list",
  329. 'it': "Aggiungi un comando dalla lista autogenerata"
  330. },
  331. 'edit': {
  332. 'done': {
  333. 'en': "✏️ <b>Edited additional command</b>\n\n"
  334. "Command: {command}\n"
  335. "Description: {description}",
  336. 'it': "✏️ <b>Comando da nascondere modificato</b>\n\n"
  337. "Comando: {command}\n"
  338. "Descrizione: {description}",
  339. },
  340. },
  341. 'error': {
  342. 'description_too_long': {
  343. 'en': "<b>Description is too long</b>\n\n"
  344. "Description length must be 3-256 chars.",
  345. 'it': "<b>Descrizione troppo lunga</b>\n\n"
  346. "La descrizione deve essere di 3-256 caratteri.",
  347. },
  348. 'duplicate_record': {
  349. 'en': "<b>Duplicate record</b>\n\n"
  350. "Command is already being added to default "
  351. "output. Edit that record if you need to.",
  352. 'it': "<b>Record già presente</b>\n\n"
  353. "Questo comando è già aggiunto a quelli di "
  354. "default. Modifica il record già presente se "
  355. "necessario.",
  356. },
  357. 'missing_description': {
  358. 'en': "<b>Missing description</b>\n\n"
  359. "Additional commands must have a description "
  360. "(3-256 chars).",
  361. 'it': "<b>Descrizione mancante</b>\n\n"
  362. "I comandi aggiuntivi devono avere una "
  363. "descrizione di 3-256 caratteri.",
  364. },
  365. 'unhandled_exception': {
  366. 'en': "❌ <b>Unhandled exception </b> ⚠️",
  367. 'it': "❌ <b>Errore imprevisto </b> ⚠️",
  368. },
  369. },
  370. 'name': {
  371. 'en': "Add",
  372. 'it': "Aggiungi"
  373. },
  374. 'symbol': "➕️",
  375. },
  376. 'hide': {
  377. 'add': {
  378. 'done': {
  379. 'en': "➖ <b>Added hidden command</b>\n\n"
  380. "Command: {command}\n",
  381. 'it': "➖ <b>Comando da nascondere aggiunto</b>"
  382. "Comando: {command}\n",
  383. },
  384. 'popup': {
  385. 'en': "Write the command to hide",
  386. 'it': "Scrivimi il comando da nascondere",
  387. },
  388. 'text': {
  389. 'en': "Write the command to hide or /cancel this operation",
  390. 'it': "Scrivimi il comando da nascondere o /annulla",
  391. }
  392. },
  393. 'description': {
  394. 'en': "Hide command from default list",
  395. 'it': "Nascondi un comando dalla lista autogenerata"
  396. },
  397. 'edit': {
  398. 'done': {
  399. 'en': "✏️ <b>Edited hidden command</b>\n\n"
  400. "Command: {command}\n"
  401. "Description: {description}",
  402. 'it': "✏️ <b>Comando da nascondere modificato</b>\n\n"
  403. "Comando: {command}\n"
  404. "Descrizione: {description}",
  405. },
  406. },
  407. 'name': {
  408. 'en': "Hide",
  409. 'it': "Nascondi"
  410. },
  411. 'symbol': "➖️",
  412. },
  413. 'edit': {
  414. 'button': {
  415. 'en': "✏️ Edit record",
  416. 'it': "✏️ Modifica record"
  417. },
  418. 'description': {
  419. 'en': "Edit added or hidden commands",
  420. 'it': "Modifica i comandi aggiunti o nascosti"
  421. },
  422. 'edit': {
  423. 'popup': {
  424. 'en': "Write the new description",
  425. 'it': "Scrivimi la nuova descrizione",
  426. },
  427. 'text': {
  428. 'en': "Write the new description for command "
  429. "{command} or /cancel",
  430. 'it': "Scrivimi la nuova descrizione per il "
  431. "comando {command} o /annulla",
  432. },
  433. 'done': {
  434. 'en': "✏️ Edit succeeded ✅\n\n"
  435. "Command: {command}\n"""
  436. "Description: {description}",
  437. 'it': "✏️ Modifica completata ✅\n\n"
  438. "Comando: {command}\n"""
  439. "Descrizione: {description}",
  440. }
  441. },
  442. 'name': {
  443. 'en': "Edit",
  444. 'it': "Modifica"
  445. },
  446. 'panel': {
  447. 'delete': {
  448. 'button': {
  449. 'en': "❌ Delete record",
  450. 'it': "❌ Elimina record",
  451. },
  452. 'done': {
  453. 'popup': {
  454. 'en': "Record deleted ✅",
  455. 'it': "Record eliminato ✅",
  456. },
  457. 'text': {
  458. 'en': "Record deleted ✅",
  459. 'it': "Record eliminato ✅",
  460. },
  461. },
  462. },
  463. 'edit_description': {
  464. 'button': {
  465. 'en': "✏️ Edit description",
  466. 'it': "✏️ Modifica descrizione",
  467. },
  468. },
  469. 'text': {
  470. 'en': "✏️ Edit record ✅\n\n"
  471. "Command: {command}\n"""
  472. "Description: {description}",
  473. 'it': "✏️ Modifica record\n\n"
  474. "Comando: {command}\n"""
  475. "Descrizione: {description}",
  476. },
  477. },
  478. 'symbol': "✏️",
  479. },
  480. },
  481. 'panel': {
  482. 'en': "🤖 <b>@BotFather settings</b> ⚙️\n\n"
  483. "➕ <i>Additional commands</i>\n"
  484. "{additional_commands}\n\n"
  485. "➖ <i>Hidden commands</i>\n"
  486. "{hidden_commands}",
  487. 'it': "⚙️ <b>Impostazioni di @BotFather</b> 🤖\n\n"
  488. "➕ <i>Comandi aggiuntivi</i>\n"
  489. "{additional_commands}\n\n"
  490. "➖ <i>Comandi nascosti</i>\n"
  491. "{hidden_commands}",
  492. },
  493. },
  494. 'title': {
  495. 'en': "🤖 <b>BotFather</b>",
  496. 'it': "🤖 <b>BotFather</b>",
  497. },
  498. },
  499. 'log_command': {
  500. 'description': {
  501. 'en': "Receive bot log file, if set",
  502. 'it': "Ricevi il file di log del bot, se impostato"
  503. },
  504. 'no_log': {
  505. 'en': "Sorry but no log file is set.\n"
  506. "To set it, use `bot.set_log_file_name` instance method or "
  507. "`Bot.set_class_log_file_name` class method.",
  508. 'it': "Spiacente ma il file di log non è stato impostato.\n"
  509. "Per impostarlo, usa il metodo d'istanza "
  510. "`bot.set_log_file_name` o il metodo di classe"
  511. "`Bot.set_class_log_file_name`."
  512. },
  513. 'sending_failure': {
  514. 'en': "Sending log file failed!\n\n"
  515. "<b>Error:</b>\n"
  516. "<code>{e}</code>",
  517. 'it': "Inviio del messaggio di log fallito!\n\n"
  518. "<b>Errore:</b>\n"
  519. "<code>{e}</code>"
  520. },
  521. 'here_is_log_file': {
  522. 'en': "Here is the complete log file.",
  523. 'it': "Ecco il file di log completo."
  524. },
  525. 'log_file_first_lines': {
  526. 'en': "Here are the first {lines} lines of the log file.",
  527. 'it': "Ecco le prime {lines} righe del file di log."
  528. },
  529. 'log_file_last_lines': {
  530. 'en': "Here are the last {lines} lines of the log file.\n"
  531. "Newer lines are at the top of the file.",
  532. 'it': "Ecco le ultime {lines} righe del file di log.\n"
  533. "L'ordine è cronologico, con i messaggi nuovi in alto."
  534. }
  535. },
  536. 'maintenance_command': {
  537. 'description': {
  538. 'en': "Put the bot under maintenance",
  539. 'it': "Metti il bot in manutenzione"
  540. },
  541. 'maintenance_started': {
  542. 'en': "<i>Bot has just been put under maintenance!</i>\n\n"
  543. "Until further notice, it will reply to users "
  544. "with the following message:\n\n"
  545. "{message}",
  546. 'it': "<i>Il bot è stato messo in manutenzione!</i>\n\n"
  547. "Fino a nuovo ordine, risponderà a tutti i comandi con il "
  548. "seguente messaggio\n\n"
  549. "{message}"
  550. },
  551. 'maintenance_ended': {
  552. 'en': "<i>Maintenance ended!</i>",
  553. 'it': "<i>Manutenzione terminata!</i>"
  554. }
  555. },
  556. 'new_version': {
  557. 'title': {
  558. 'en': "🔔 New version installed ✅",
  559. 'it': "🔔 Rilevata nuova versione installata! ✅",
  560. },
  561. 'last_commit': {
  562. 'en': "Old commit: <code>{old_record[last_commit]}</code>\n"
  563. "New commit: <code>{new_record[last_commit]}</code>",
  564. 'it': "Vecchio commit: <code>{old_record[last_commit]}</code>\n"
  565. "Nuovo commit: <code>{new_record[last_commit]}</code>",
  566. },
  567. },
  568. 'query_button': {
  569. 'error': {
  570. 'en': "Error!",
  571. 'it': "Errore!",
  572. },
  573. 'file_name': {
  574. 'en': "Query result.csv",
  575. 'it': "Risultato della query.csv",
  576. },
  577. 'empty_file': {
  578. 'en': "No result to show.",
  579. 'it': "Nessun risultato da mostrare.",
  580. }
  581. },
  582. 'query_command': {
  583. 'description': {
  584. 'en': "Receive the result of a SQL query performed on bot "
  585. "database",
  586. 'it': "Ricevi il risultato di una query SQL sul database del bot"
  587. },
  588. 'help': {
  589. 'en': "Write a SQL query to be run on bot database.\n\n"
  590. "<b>Example</b>\n"
  591. "<code>/query SELECT * FROM users WHERE 0</code>",
  592. 'it': "Invia una query SQL da eseguire sul database del bot.\n\n"
  593. "<b>Esempio</b>\n"
  594. "<code>/query SELECT * FROM users WHERE 0</code>"
  595. },
  596. 'no_iterable': {
  597. 'en': "No result to show was returned",
  598. 'it': "La query non ha restituito risultati da mostrare"
  599. },
  600. 'exception': {
  601. 'en': "The query threw this error:",
  602. 'it': "La query ha dato questo errore:"
  603. },
  604. 'result': {
  605. 'en': "Query result",
  606. 'it': "Risultato della query"
  607. }
  608. },
  609. 'restart_command': {
  610. 'description': {
  611. 'en': "Restart bots",
  612. 'it': "Riavvia i bot"
  613. },
  614. 'restart_scheduled_message': {
  615. 'en': "Bots are being restarted, after pulling from repository.",
  616. 'it': "I bot verranno riavviati in pochi secondi, caricando "
  617. "prima le eventuali modifiche al codice."
  618. },
  619. 'restart_completed_message': {
  620. 'en': "<i>Restart was successful.</i>",
  621. 'it': "<i>Restart avvenuto con successo.</i>"
  622. }
  623. },
  624. 'select_command': {
  625. 'description': {
  626. 'en': "Receive the result of a SELECT query performed on bot "
  627. "database",
  628. 'it': "Ricevi il risultato di una query SQL di tipo SELECT "
  629. "sul database del bot"
  630. }
  631. },
  632. 'stop_button': {
  633. 'stop_text': {
  634. 'en': "Stop bots",
  635. 'it': "Ferma i bot"
  636. },
  637. 'cancel': {
  638. 'en': "Cancel",
  639. 'it': "Annulla"
  640. },
  641. 'confirm': {
  642. 'en': "Do you really want to stop all bots?",
  643. 'it': "Vuoi davvero fermare tutti i bot?"
  644. },
  645. 'stopping': {
  646. 'en': "Stopping bots...",
  647. 'it': "Arresto in corso..."
  648. },
  649. 'cancelled': {
  650. 'en': "Operation was cancelled",
  651. 'it': "Operazione annullata"
  652. }
  653. },
  654. 'stop_command': {
  655. 'description': {
  656. 'en': "Stop bots",
  657. 'it': "Ferma i bot"
  658. },
  659. 'text': {
  660. 'en': "Are you sure you want to stop all bots?\n"
  661. "To make them start again you will have to ssh-log "
  662. "in server.\n\n"
  663. "To restart the bots remotely use the /restart command "
  664. "instead (before starting over, a <code>git pull</code> "
  665. "is performed).",
  666. 'it': "Sei sicuro di voler fermare i bot?\n"
  667. "Per farli ripartire dovrai accedere al server.\n\n"
  668. "Per far ripartire i bot da remoto usa invece il comando "
  669. "/restart (prima di ripartire farò un "
  670. "<code>git pull</code>)."
  671. }
  672. },
  673. 'talk_command': {
  674. 'description': {
  675. 'en': "Choose a user and forward messages to each other",
  676. 'it': "Scegli un utente e il bot farà da tramite inoltrando a "
  677. "ognuno i messaggi dell'altro finché non terminerai la "
  678. "sessione"
  679. }
  680. },
  681. 'updates_available': {
  682. 'header': {
  683. 'en': "🔔 Updates available! ⬇️\n\n"
  684. "Click to /restart bot",
  685. 'it': "🔔 Aggiornamenti disponibili! ⬇\n\n"
  686. "Clicka qui per fare il /restart",
  687. },
  688. },
  689. 'version_command': {
  690. 'all_packages_updated': {
  691. 'en': "⌛️ All packages are updated! ✅",
  692. 'it': "⌛️ Tutti i pacchetti sono aggiornati! ✅",
  693. },
  694. 'checking_for_updates': {
  695. 'en': "⏳ Checking for updates... ☑️",
  696. 'it': "⏳ Sto cercando aggiornamenti... ☑️",
  697. },
  698. 'description': {
  699. 'en': "Get packages version and source code last commit",
  700. 'it': "Chiedi la versione dei pacchetti e del codice sorgente",
  701. },
  702. 'header': {
  703. 'en': "ℹ️ Version information #️⃣\n\n"
  704. "Last commit: <code>{last_commit}</code>",
  705. 'it': "ℹ️ Informazioni sulle versioni dei pacchetti #️⃣\n\n"
  706. "Ultimo commit: <code>{last_commit}</code>"
  707. },
  708. 'help_section': None,
  709. 'reply_keyboard_button': {
  710. 'en': "Version #️⃣",
  711. 'it': "Versione #️⃣",
  712. },
  713. },
  714. }
  715. default_authorization_messages = {
  716. 'auth_command': {
  717. 'description': {
  718. 'en': "Edit user permissions. To select a user, reply to "
  719. "a message of theirs or write their username",
  720. 'it': "Cambia il grado di autorizzazione di un utente "
  721. "(in risposta o scrivendone lo username)"
  722. },
  723. 'unhandled_case': {
  724. 'en': "<code>Unhandled case :/</code>",
  725. 'it': "<code>Caso non previsto :/</code>"
  726. },
  727. 'instructions': {
  728. 'en': "Reply with this command to a user or write "
  729. "<code>/{command} username</code> to edit their permissions.",
  730. 'it': "Usa questo comando in risposta a un utente "
  731. "oppure scrivi <code>/{command} username</code> per "
  732. "cambiarne il grado di autorizzazione."
  733. },
  734. 'unknown_user': {
  735. 'en': "Unknown user.",
  736. 'it': "Utente sconosciuto."
  737. },
  738. 'choose_user': {
  739. 'en': "{n} users match your query. Please select one.",
  740. 'it': "Ho trovato {n} utenti che soddisfano questi criteri.\n"
  741. "Per procedere selezionane uno."
  742. },
  743. 'no_match': {
  744. 'en': "No user matches your query. Please try again.",
  745. 'it': "Non ho trovato utenti che soddisfino questi criteri.\n"
  746. "Prova di nuovo."
  747. }
  748. },
  749. 'ban_command': {
  750. 'description': {
  751. 'en': "Reply to a user with /ban to ban them",
  752. 'it': "Banna l'utente (da usare in risposta)"
  753. }
  754. },
  755. 'auth_button': {
  756. 'appointed': {
  757. 'en': "Permission granted",
  758. 'it': "Permesso conferito"
  759. },
  760. 'browse': {
  761. 'browse_button_az': {
  762. 'en': "🆎 Users A-Z",
  763. 'it': "🆎 Utenti A-Z",
  764. },
  765. 'browse_button_by_role': {
  766. 'en': "👑 Users by role",
  767. 'it': "👑 Utenti per ruolo",
  768. },
  769. },
  770. 'back_to_user': {
  771. 'en': "Back to user",
  772. 'it': "Torna all'utente"
  773. },
  774. 'confirm': {
  775. 'en': "Are you sure?",
  776. 'it': "Sicuro sicuro?"
  777. },
  778. 'description': {
  779. 'en': "Edit user permissions",
  780. 'it': "Cambia il grado di autorizzazione di un utente"
  781. },
  782. 'no_change': {
  783. 'en': "No change suggested!",
  784. 'it': "È già così!"
  785. },
  786. 'permission_denied': {
  787. 'user': {
  788. 'en': "You cannot appoint this user!",
  789. 'it': "Non hai l'autorità di modificare i permessi di questo "
  790. "utente!"
  791. },
  792. 'role': {
  793. 'en': "You're not allowed to appoint someone to this role!",
  794. 'it': "Non hai l'autorità di conferire questo permesso!"
  795. }
  796. },
  797. 'profile_picture_button': {
  798. 'en': "🖼 Profile picture",
  799. 'it': "🖼 Foto profilo",
  800. },
  801. },
  802. }
  803. default_authorization_denied_message = {
  804. 'en': "You are not allowed to use this command, sorry.",
  805. 'it': "Non disponi di autorizzazioni sufficienti per questa richiesta, spiacente.",
  806. }
  807. default_help_messages = {
  808. 'help_command': {
  809. 'header': {
  810. 'en': "<b>{bot.name} commands</b>\n\n"
  811. "{commands}",
  812. 'it': "<b>Comandi di {bot.name}</b>\n\n"
  813. "{commands}",
  814. },
  815. 'text': {
  816. 'en': "<b>Guide</b>",
  817. 'it': "<b>Guida</b>"
  818. },
  819. 'reply_keyboard_button': {
  820. 'en': "Help 📖",
  821. 'it': "Guida 📖"
  822. },
  823. 'description': {
  824. 'en': "Help",
  825. 'it': "Aiuto"
  826. },
  827. 'access_denied_message': {
  828. 'en': "Ask for authorization. If your request is accepted, send "
  829. "/help command again to read the guide.",
  830. 'it': "Chiedi di essere autorizzato: se la tua richiesta "
  831. "verrà accolta, ripeti il comando /help per leggere "
  832. "il messaggio di aiuto."
  833. },
  834. 'back_to_help_menu': {
  835. 'en': "Back to guide menu 📖",
  836. 'it': "Torna al menu Guida 📖",
  837. },
  838. },
  839. 'commands_button_label': {
  840. 'en': "Commands 🤖",
  841. 'it': "Comandi 🤖",
  842. },
  843. }
  844. default_language_messages = {
  845. 'language_command': {
  846. 'name': {
  847. 'en': "/language",
  848. 'it': "/lingua"
  849. },
  850. 'alias': {
  851. 'en': "Language 🗣",
  852. 'it': "Lingua 🗣"
  853. },
  854. 'reply_keyboard_button': {
  855. 'en': "Language 🗣",
  856. 'it': "Lingua 🗣"
  857. },
  858. 'description': {
  859. 'en': "Change language settings",
  860. 'it': "Cambia le impostazioni della lingua"
  861. }
  862. },
  863. 'language_button': {
  864. 'description': {
  865. 'en': "Change language settings",
  866. 'it': "Cambia le impostazioni della lingua"
  867. },
  868. 'language_set': {
  869. 'en': "Selected language: English 🇬🇧",
  870. 'it': "Lingua selezionata: Italiano 🇮🇹"
  871. }
  872. },
  873. 'language_panel': {
  874. 'text': {
  875. 'en': "<b>Choose a language</b>",
  876. 'it': "<b>Seleziona una lingua</b>"
  877. }
  878. }
  879. }
  880. default_suggestion_messages = {
  881. 'suggestions_command': {
  882. 'command': "/suggestion",
  883. 'aliases': [
  884. "/suggestions", "/ideas",
  885. "/suggerimento", "/suggerimenti", "idee"
  886. ],
  887. 'reply_keyboard_button': {
  888. 'en': "Ideas 💡",
  889. 'it': "Idee 💡"
  890. },
  891. 'description': {
  892. 'en': "Send a suggestion to help improve the bot",
  893. 'it': "Invia un suggerimento per aiutare a migliorare il bot"
  894. },
  895. 'prompt_text': {
  896. 'en': (
  897. "Send a suggestion to bot administrator.\n\n"
  898. "Maximum 1500 characters (extra ones will be ignored).\n"
  899. "If you need more space, you may create a telegra.ph topic and link it here.\n\n"
  900. "/cancel if you misclicked."
  901. ),
  902. 'it': (
  903. "Inserisci un suggerimento da inviare agli amministratori.\n\n"
  904. "Massimo 1500 caratteri (quelli in più non verranno registrati).\n"
  905. "Se ti serve maggiore libertà, puoi per esempio creare un topic "
  906. "su telegra.ph e linkarlo qui!\n\n"
  907. "/annulla se hai clickato per errore."
  908. ),
  909. },
  910. 'prompt_popup': {
  911. 'en': (
  912. "Send a suggestion"
  913. ),
  914. 'it': (
  915. "Inserisci un suggerimento"
  916. ),
  917. },
  918. 'entered_suggestion': {
  919. 'text': {
  920. 'en': (
  921. "Entered suggestions:\n\n"
  922. "<code>{suggestion}</code>\n\n"
  923. "Do you want to send it to bot administrators?"
  924. ),
  925. 'it': (
  926. "Suggerimento inserito:\n\n"
  927. "<code>{suggestion}</code>\n\n"
  928. "Vuoi inviarlo agli amministratori?"
  929. ),
  930. },
  931. 'buttons': {
  932. 'send': {
  933. 'en': "Send it! 📧",
  934. 'it': "Invia! 📧",
  935. },
  936. 'cancel': {
  937. 'en': "Cancel ❌",
  938. 'it': "Annulla ❌",
  939. },
  940. }
  941. },
  942. 'received_suggestion': {
  943. 'text': {
  944. 'en': (
  945. "💡 We received a new suggestion! 💡\n\n"
  946. "{user}\n\n"
  947. "<code>{suggestion}</code>\n\n"
  948. "#suggestions #{bot.name}"
  949. ),
  950. 'it': (
  951. "💡 Abbiamo ricevuto un nuovo suggerimento! 💡\n\n"
  952. "{user}\n\n"
  953. "<code>{suggestion}</code>\n\n"
  954. "#suggestions #{bot.name}"
  955. ),
  956. },
  957. 'buttons': {
  958. 'new': {
  959. 'en': "New suggestion 💡",
  960. 'it': "Nuovo suggerimento 💡",
  961. },
  962. },
  963. },
  964. 'invalid_suggestion': {
  965. 'en': "Invalid suggestion.",
  966. 'it': "Suggerimento non valido."
  967. },
  968. 'cancel_messages': {
  969. 'en': ['cancel'],
  970. 'it': ['annulla', 'cancella'],
  971. },
  972. 'operation_cancelled': {
  973. 'en': "Operation cancelled.",
  974. 'it': "Operazione annullata con successo.",
  975. },
  976. 'suggestion_sent': {
  977. 'popup': {
  978. 'en': "Thanks!",
  979. 'it': "Grazie!",
  980. },
  981. 'text': {
  982. 'en': (
  983. "💡 Suggestion sent, thank you! 💡\n\n"
  984. "<code>{suggestion}</code>\n\n"
  985. "#suggestions #{bot.name}"
  986. ),
  987. 'it': (
  988. "💡 Suggerimento inviato, grazie! 💡\n\n"
  989. "<code>{suggestion}</code>\n\n"
  990. "#suggerimenti #{bot.name}"
  991. ),
  992. },
  993. }
  994. },
  995. 'suggestions_button': {
  996. 'file_name': {
  997. 'en': "Suggestions.csv",
  998. 'it': "Suggerimenti.csv",
  999. },
  1000. 'file_caption': {
  1001. 'en': "Here is the suggestions file.",
  1002. 'it': "Ecco il file dei suggerimenti.",
  1003. }
  1004. },
  1005. 'see_suggestions': {
  1006. 'command': "/getsuggestions",
  1007. 'aliases': [
  1008. "/vedisuggerimenti",
  1009. ],
  1010. 'description': {
  1011. 'en': "Get a file containing all suggestions",
  1012. 'it': "Richiedi un file con tutti i suggerimenti"
  1013. },
  1014. }
  1015. }
  1016. default_talk_messages = {
  1017. 'admin_session_ended': {
  1018. 'en': 'Session with user {u} ended.',
  1019. 'it': 'Sessione terminata con l\'utente {u}.',
  1020. },
  1021. 'admin_warning': {
  1022. 'en': (
  1023. 'You are now talking to {u}.\n'
  1024. 'Until you end this session, your messages will be '
  1025. 'forwarded to each other.'
  1026. ),
  1027. 'it': (
  1028. 'Sei ora connesso con {u}.\n'
  1029. 'Finché non chiuderai la connessione, i messaggi che scriverai '
  1030. 'qui saranno inoltrati a {u}, e ti inoltrerò i suoi.'
  1031. ),
  1032. },
  1033. 'end_session': {
  1034. 'en': 'End session?',
  1035. 'it': 'Chiudere la sessione?',
  1036. },
  1037. 'error': {
  1038. 'text': {
  1039. 'en': "❌️ Error!",
  1040. 'it': "❌️ Errore!"
  1041. },
  1042. },
  1043. 'help_text': {
  1044. 'en': 'Press the button to search for user.',
  1045. 'it': 'Premi il pulsante per scegliere un utente.',
  1046. },
  1047. 'search_button': {
  1048. 'en': "🔍 Search for user",
  1049. 'it': "🔍 Cerca utente",
  1050. },
  1051. 'select_user': {
  1052. 'en': 'Which user would you like to talk to?',
  1053. 'it': 'Con quale utente vorresti parlare?',
  1054. },
  1055. 'user_not_found': {
  1056. 'en': (
  1057. "Sory, but no user matches your query for\n"
  1058. "<code>{q}</code>"
  1059. ),
  1060. 'it': (
  1061. "Spiacente, ma nessun utente corrisponde alla ricerca per\n"
  1062. "<code>{q}</code>"
  1063. ),
  1064. },
  1065. 'instructions': {
  1066. 'en': (
  1067. 'Write a part of name, surname or username of the user you want '
  1068. 'to talk to.'
  1069. ),
  1070. 'it': (
  1071. 'Scrivi una parte del nome, cognome o username dell\'utente con '
  1072. 'cui vuoi parlare.'
  1073. ),
  1074. },
  1075. 'stop': {
  1076. 'en': 'End session',
  1077. 'it': 'Termina la sessione',
  1078. },
  1079. 'user_session_ended': {
  1080. 'en': 'Session with admin {u} ended.',
  1081. 'it': 'Sessione terminata con l\'amministratore {u}.',
  1082. },
  1083. 'user_warning': {
  1084. 'en': (
  1085. '{u}, admin of this bot, wants to talk to you.\n'
  1086. 'Until this session is ended by {u}, your messages will be '
  1087. 'forwarded to each other.'
  1088. ),
  1089. 'it': (
  1090. '{u}, amministratore di questo bot, vuole parlare con te.\n'
  1091. 'Finché non chiuderà la connessione, i messaggi che scriverai '
  1092. 'qui saranno inoltrati a {u}, e ti inoltrerò i suoi.'
  1093. ),
  1094. },
  1095. }
  1096. default_unknown_command_message = {
  1097. 'en': "Unknown command! Touch /help to read the guide and available commands.",
  1098. 'it': "Comando sconosciuto! Fai /help per leggere la guida e i comandi."
  1099. }
  1100. default_useful_tools_messages = {
  1101. 'calculate_command': {
  1102. 'description': {
  1103. 'en': "Do calculations",
  1104. 'it': "Calcola",
  1105. },
  1106. 'help_section': None,
  1107. 'instructions': {
  1108. 'en': "🔢 <b>Calculator</b> 🧮\n\n"
  1109. "Enter an algebraic expression after /calc to get its "
  1110. "result, or use the command in reply to a message containing "
  1111. "an expression, or use the keyboard below.\n\n"
  1112. "- <code>ℹ️</code>: show information about special keys\n",
  1113. 'it': "🔢 <b>Calcolatrice</b> 🧮\n\n"
  1114. "Inserisci un'espressione algebrica dopo /calcola per "
  1115. "ottenerne il risultato, oppure usa il comando in risposta, "
  1116. "o ancora usa la tastiera qui sotto.\n\n"
  1117. "- <code>ℹ️</code>: mostra informazioni sui tasti speciali\n",
  1118. },
  1119. 'invalid_expression': {
  1120. 'en': "Invalid expression: {error}",
  1121. 'it': "Espressione non valida: {error}",
  1122. },
  1123. 'language_labelled_commands': {
  1124. 'en': "calculate",
  1125. 'it': "calcola",
  1126. },
  1127. 'message_input': {
  1128. 'en': "🔢 <b>Calculator</b> 🧮\n\n"
  1129. "<i>Enter an expression</i>",
  1130. 'it': "🔢 <b>Calcolatrice</b> 🧮\n\n"
  1131. "<i>Mandami l'espressione</i>",
  1132. },
  1133. 'special_keys': {
  1134. 'en': "<b>Special keys</b>\n"
  1135. "- <code>**</code>: exponentiation\n"
  1136. "- <code>//</code>: floor division\n"
  1137. "- <code>mod</code>: modulus (remainder of division)\n"
  1138. "- <code>MR</code>: result of last expression\n"
  1139. "- <code>ℹ️</code>: show this help message\n"
  1140. "- <code>💬</code>: write your expression in a message\n"
  1141. "- <code>⬅️</code>: delete last character\n"
  1142. "- <code>✅</code>: start a new line (and a new expression)\n",
  1143. 'it': "<b>Tasti speciali</b>\n"
  1144. "- <code>**</code>: elevamento a potenza\n"
  1145. "- <code>//</code>: quoziente della divisione\n"
  1146. "- <code>mod</code>: resto della divisione\n"
  1147. "- <code>MR</code>: risultato dell'espressione precedente\n"
  1148. "- <code>ℹ️</code>: mostra questo messaggio\n"
  1149. "- <code>💬</code>: invia un messaggio con l'espressione\n"
  1150. "- <code>⬅️</code>: cancella ultimo carattere\n"
  1151. "- <code>✅</code>: vai a capo (inizia una nuova espressione)\n",
  1152. },
  1153. 'use_buttons': {
  1154. 'en': "Use buttons to enter an algebraic expression.\n\n"
  1155. "<i>The input will be displayed after you stop typing for a "
  1156. "while.</i>",
  1157. 'it': "Usa i pulsanti per comporre un'espressione algebrica.\n\n"
  1158. "<i>L'espressione verrà mostrata quando smetterai di "
  1159. "digitare per un po'.</i>",
  1160. },
  1161. 'result': {
  1162. 'en': "🔢 <b>Calculator</b> 🧮\n\n"
  1163. "<i>Expressions evaluation:</i>\n\n"
  1164. "{expressions}",
  1165. 'it': "🔢 <b>Calcolatrice</b> 🧮\n\n"
  1166. "<i>Risultato delle espresisoni:</i>\n\n"
  1167. "{expressions}",
  1168. },
  1169. },
  1170. 'info_command': {
  1171. 'description': {
  1172. 'en': "Use this command in reply to get information about a message",
  1173. 'it': "Usa questo comando in risposta per ottenere informazioni "
  1174. "su un messaggio",
  1175. },
  1176. 'help_section': None,
  1177. 'instructions': {
  1178. 'en': "Use this command in reply to a message to get information "
  1179. "about it.",
  1180. 'it': "Usa questo comando in risposta per ottenere informazioni "
  1181. "su un messaggio.",
  1182. },
  1183. 'result': {
  1184. 'en': "<i>Here is the information about the selected "
  1185. "message:</i>\n\n"
  1186. "<code>{info}</code>",
  1187. 'it': "<i>Ecco le informazioni sul messaggio selezionato:</i>\n\n"
  1188. "<code>{info}</code>",
  1189. },
  1190. },
  1191. 'length_command': {
  1192. 'description': {
  1193. 'en': "Use this command in reply to a message to get its length",
  1194. 'it': "Usa questo comando in risposta a un messaggio per sapere "
  1195. "quanti caratteri contenga",
  1196. },
  1197. 'help_section': {
  1198. 'description': {
  1199. 'en': "Use the /length command in reply to a message to get "
  1200. "its length.\n"
  1201. "Beware that emojis may count as multiple characters.",
  1202. 'it': "Usa il comando /caratteri in risposta a un messaggio "
  1203. "per sapere quanti caratteri contenga.\n"
  1204. "Attenzione alle emoji, che contano come più caratteri.",
  1205. },
  1206. 'label': {
  1207. 'en': "Length #️⃣",
  1208. 'it': "Caratteri #️⃣"
  1209. },
  1210. 'name': "length",
  1211. },
  1212. 'instructions': {
  1213. 'en': "Use this command in reply to a message to get its length.",
  1214. 'it': "Usa questo comando in risposta a un messaggio per sapere "
  1215. "quanti caratteri contenga.",
  1216. },
  1217. 'language_labelled_commands': {
  1218. 'en': "length",
  1219. 'it': "caratteri",
  1220. },
  1221. 'result': {
  1222. 'en': "<i>According to my calculations, this message is "
  1223. "</i><code>{n}</code><i> characters long.</i>",
  1224. 'it': "<i>Questo messaggio contiene </i><code>{n}</code><i> "
  1225. "caratteri secondo i miei calcoli.</i>",
  1226. },
  1227. },
  1228. 'ping_command': {
  1229. 'description': {
  1230. 'en': "Check if bot is online",
  1231. 'it': "Verifica se il bot è online",
  1232. },
  1233. },
  1234. 'when_command': {
  1235. 'description': {
  1236. 'en': "Use this command in reply to get information about a message",
  1237. 'it': "Usa questo comando in risposta per ottenere informazioni "
  1238. "su un messaggio",
  1239. },
  1240. 'help_section': None,
  1241. 'forwarded_message': {
  1242. 'en': "<b>— Original message —</b>",
  1243. 'it': "<b>— Messaggio originale —</b>",
  1244. },
  1245. 'instructions': {
  1246. 'en': "Use this command in reply to a message to get its original "
  1247. "sending time.",
  1248. 'it': "Usa questo comando in risposta per ottenere l'ora di invio "
  1249. "di un messaggio.",
  1250. },
  1251. 'language_labelled_commands': {
  1252. 'en': "when",
  1253. 'it': "quando",
  1254. },
  1255. 'who_when': {
  1256. 'en': "👤 {who}\n"
  1257. "🗓 {when:%Y-%m-%d ore %H:%M:%S}",
  1258. 'it': "👤 {who}\n"
  1259. "🗓 {when:%Y-%m-%d ore %H:%M:%S}",
  1260. },
  1261. }
  1262. }