Elaborazione del linguaggio naturale per il selettore di date

Our date picker and conversion is a powerful feature. I’d love to see us make it simpler to add a date/time to a post. A common way this is done is through natural language processing. Apps like Fantastical on iOS have used this for years for date input.

Instead of fiddling with the mouse to input a date, you could type in something like:

  • monday at 2pm which would output the date and time to your timezone
  • next friday at 10am NZST which outputs the date/time next friday in NZST
  • 11am which outputs today’s date at 11am
  • 8/9 to 8/13 which outputs a date range.

This could either replace the modal shown by clicking the calendar icon in the composer with a textbox (and an advanced button which shows the existing modal contents) or a separate modal launched by a keyboard shortcut.

9 Mi Piace

This library might help with implementation: GitHub - wanasit/chrono: A natural language date parser in Javascript

That said I suspect it would be a challenge to get robust language support for this.

The current fully supported languages are en , ja , and fr ( de and pt are partially supported). Other languages from v1 ( nl and zh ) are under development.


Also, another UX pattern to consider is automatically replacing date strings in the body of a post with Discourse date/time objects. Sort of like one-boxing but for dates. E.g. if I type “next monday at 2pm” in my post, it automatically converts that to 2021-08-17T18:00:00Z.

5 Mi Piace

I really like this idea!

3 Mi Piace

Mi piace molto questa idea, puoi mostrarmi la bozza dell’interfaccia utente di come la vedi funzionare? È questo che manca qui.

Potrebbe non essere nemmeno necessaria un’interfaccia utente. Quando un post viene elaborato, l’NLP potrebbe elaborarlo, tornare al client e confermare con una semplice modale:

È stata trovata 1 data. Desideri convertirla in timestamp dinamici?
- martedì alle 14:00 -- > [data di discourse]

Oppure, potrebbe essere più semplice. Fai clic sull’icona del calendario e, invece di un selettore di date, sarà una semplice casella di testo.

E, analogamente alla nostra modale per gli inviti, potrebbe esserci un pulsante per i controlli avanzati che mostra il nostro attuale selettore di data/ora/fuso orario per opzioni più granulari.

Spetta a @j.jaffeux decidere, non sono sicuro che si adatti in alcun modo all’interfaccia utente attuale che abbiamo? Non sono nemmeno sicuro che le persone normali vogliano digitare così tanto invece di cliccare, specialmente su uno smartphone?

Ha senso in Google Calendar perché puoi farlo mentre digiti il nome dell’evento, ad esempio, invece di digitare

“Idraulico”

digiti

“Idraulico 15:00 - 17:00”

ma è facile perché sono su un dispositivo con una tastiera.

In realtà trovo il nostro modale noioso da usare sia su desktop che su mobile, motivo per cui ho suggerito questa funzionalità in primo luogo. È significativamente più veloce digitare oggi alle 11:31 in un modale piuttosto che usare le rotelle di scorrimento o fare clic su un grande modale. Il fatto che molti calendari lo facciano già rende meno un sovraccarico mentale per le persone da capire.

1 Mi Piace

Concordo no desktop. Não concordo no smartphone, porque digitar no smartphone é brutal. Talvez este possa ser um comportamento apenas para desktop?

1 Mi Piace

Personalmente non avrei problemi con questo.

Ci sono molti codici nelle date che in realtà fanno già questo, ci abbiamo lavorato con @daniel

Ci sono fondamentalmente 3 modi per risolvere questo problema:

  • una modale migliore
  • qualche !comando
  • analisi del testo

L’analisi del testo è ottima, ma non risolve tutto e dobbiamo anche farla funzionare per tutte le localizzazioni. Ma sono d’accordo che potremmo abilitare il supporto per un piccolo sottoinsieme. È per lo più già qui, dovrei solo finirla/abilitarla.

5 Mi Piace