Documentation ¶
Index ¶
- Variables
- func DeleteDates(locale, sentence string) string
- func DeleteTimes(locale, sentence string) string
- func RegisterRule(rule Rule)
- func RuleDate(locale, sentence string) time.Time
- func RuleDayOfWeek(locale, sentence string) time.Time
- func RuleNaturalDate(locale, sentence string) time.Time
- func RuleTime(sentence string) time.Time
- func RuleToday(locale, sentence string) (result time.Time)
- func RuleTomorrow(locale, sentence string) (result time.Time)
- func SearchTime(locale, sentence string) (string, time.Time)
- type PatternTranslations
- type Rule
- type RuleTranslation
Constants ¶
This section is empty.
Variables ¶
var PatternTranslation = map[string]PatternTranslations{
"en": {
DateRegex: `(of )?(the )?((after )?tomorrow|((today|tonight)|(next )?(monday|tuesday|wednesday|thursday|friday|saturday|sunday))|(\d{2}|\d)(th|rd|st|nd)? (of )?(january|february|march|april|may|june|july|august|september|october|november|december)|((\d{2}|\d)/(\d{2}|\d)))`,
TimeRegex: `(at )?(\d{2}|\d)(:\d{2}|\d)?( )?(pm|am|p\.m|a\.m)`,
},
"de": {
DateRegex: `(von )?(das )?((nach )?morgen|((heute|abends)|(nächsten )?(montag|dienstag|mittwoch|donnerstag|freitag|samstag|sonntag))|(\d{2}|\d)(th|rd|st|nd)? (of )?(januar|februar|märz|april|mai|juli|juli|august|september|oktober|november|dezember)|((\d{2}|\d)/(\d{2}|\d)))`,
TimeRegex: `(um )?(\d{2}|\d)(:\d{2}|\d)?( )?(pm|am|p\.m|a\.m)`,
},
"fr": {
DateRegex: `(le )?(après )?demain|((aujourd'hui'|ce soir)|(lundi|mardi|mecredi|jeudi|vendredi|samedi|dimanche)( prochain)?|(\d{2}|\d) (janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)|((\d{2}|\d)/(\d{2}|\d)))`,
TimeRegex: `(à )?(\d{2}|\d)(:\d{2}|\d)?( )?(pm|am|p\.m|a\.m)`,
},
"es": {
DateRegex: `(el )?((pasado )?mañana|((hoy|esta noche)|(el )?(proximo )?(lunes|martes|miercoles|jueves|viernes|sabado|domingo))|(\d{2}|\d) (de )?(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)|((\d{2}|\d)/(\d{2}|\d)))`,
TimeRegex: `(a )?(las )?(\d{2}|\d)(:\d{2}|\d)?( )?(de )?(la )?(pm|am|p\.m|a\.m|tarde|mañana)`,
},
"ca": {
DateRegex: `(el )?((després )?(de )?demà|((avui|aquesta nit)|(el )?(proper )?(dilluns|dimarts|dimecres|dijous|divendres|dissabte|diumenge))|(\d{2}|\d) (de )?(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre)|((\d{2}|\d)/(\d{2}|\d)))`,
TimeRegex: `(a )?(les )?(\d{2}|\d)(:\d{2}|\d)?( )?(pm|am|p\.m|a\.m)`,
},
"nl": {
DateRegex: `(van )?(de )?((na )?morgen|((vandaag|vanavond)|(volgende )?(maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag|zondag))|(\d{2}|\d)(te|de)? (vab )?(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december)|((\d{2}|\d)/(\d{2}|\d)))`,
TimeRegex: `(om )?(\d{2}|\d)(:\d{2}|\d)?( )?(pm|am|p\.m|a\.m)`,
},
"el": {
DateRegex: `(από )?(το )?((μεθ )?αύριο|((σήμερα|απόψε)|(επόμενη )?(δευτέρα|τρίτη|τετάρτη|πέμπτη|παρασκευή|σάββατο|κυριακή))|(\d{2}|\d)(η)? (of )?(ιανουάριος|φεβρουάριος|μάρτιος|απρίλιος|μάιος|ιούνιος|ιούλιος|αύγουστος|σεπτέμβριος|οκτώβριος|νοέμβριος|δεκέμβριος)|((\d{2}|\d)/(\d{2}|\d)))`,
TimeRegex: `(at )?(\d{2}|\d)(:\d{2}|\d)?( )?(μμ|πμ|μ\.μ|π\.μ)`,
},
}
PatternTranslation are the map of regexs in different languages
var RuleTranslations = map[string]RuleTranslation{ "en": { DaysOfWeek: []string{ "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday", }, Months: []string{ "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december", }, RuleToday: `today|tonight`, RuleTomorrow: `(after )?tomorrow`, RuleAfterTomorrow: "after", RuleDayOfWeek: `(next )?(monday|tuesday|wednesday|thursday|friday|saturday|sunday)`, RuleNextDayOfWeek: "next", RuleNaturalDate: `january|february|march|april|may|june|july|august|september|october|november|december`, }, "de": { DaysOfWeek: []string{ "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag", }, Months: []string{ "Januar", "Februar", "Marsch", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", }, RuleToday: `heute|abends`, RuleTomorrow: `(nach )?tomorrow`, RuleAfterTomorrow: "nach", RuleDayOfWeek: `(nächsten )?(Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|Sonntag)`, RuleNextDayOfWeek: "nächste", RuleNaturalDate: `Januar|Februar|März|April|Mai|Juli|Juli|August|September|Oktober|November|Dezember`, }, "fr": { DaysOfWeek: []string{ "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche", }, Months: []string{ "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre", }, RuleToday: `aujourd'hui|ce soir`, RuleTomorrow: `(après )?demain`, RuleAfterTomorrow: "après", RuleDayOfWeek: `(lundi|mardi|mecredi|jeudi|vendredi|samedi|dimanche)( prochain)?`, RuleNextDayOfWeek: "prochain", RuleNaturalDate: `janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre`, }, "es": { DaysOfWeek: []string{ "lunes", "martes", "miercoles", "jueves", "viernes", "sabado", "domingo", }, Months: []string{ "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre", }, RuleToday: `hoy|esta noche`, RuleTomorrow: `(pasado )?mañana`, RuleAfterTomorrow: "pasado", RuleDayOfWeek: `(el )?(proximo )?(lunes|martes|miercoles|jueves|viernes|sabado|domingo))`, RuleNextDayOfWeek: "proximo", RuleNaturalDate: `enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre`, }, "ca": { DaysOfWeek: []string{ "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte", "diumenge", }, Months: []string{ "gener", "febrer", "març", "abril", "maig", "juny", "juliol", "agost", "setembre", "octubre", "novembre", "desembre", }, RuleToday: `avui|aquesta nit`, RuleTomorrow: `((després )?(de )?demà`, RuleAfterTomorrow: "després", RuleDayOfWeek: `(el )?(proper )?(dilluns|dimarts|dimecres|dijous|divendres|dissabte|diumenge))`, RuleNextDayOfWeek: "proper", RuleNaturalDate: `gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre`, }, "nl": { DaysOfWeek: []string{ "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag", "zondag", }, Months: []string{ "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december", }, RuleToday: `vandaag|vanavond`, RuleTomorrow: `(na )?morgen`, RuleAfterTomorrow: "na", RuleDayOfWeek: `(volgende )?(maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag|zondag)`, RuleNextDayOfWeek: "volgende", RuleNaturalDate: `januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|november|december`, }, "el": { DaysOfWeek: []string{ "δευτέρα", "τρίτη", "τετάρτη", "πέμπτη", "παρασκευή", "σάββατο", "κυριακή", }, Months: []string{ "ιανουάριος", "φεβρουάριος", "μάρτιος", "απρίλιος", "μάιος", "ιούνιος", "ιούλιος", "αύγουστος", "σεπτέμβριος", "οκτώβριος", "νοέμβριος", "δεκέμβριος", }, RuleToday: `σήμερα|απόψε`, RuleTomorrow: `(μεθ )?άυριο`, RuleAfterTomorrow: "μεθ", RuleDayOfWeek: `(επόμενη )?(δευτέρα|τρίτη|τετάρτη|πέμπτη|παρασκευή|σάββατο|κυριακή)`, RuleNextDayOfWeek: "επόμενη", RuleNaturalDate: `ιανουάριος|φεβρουάριος|μάρτιος|απρίλιος|μάιος|ιούνιος|ιούλιος|αύγουστος|σεπτέμβριος|οκτώβριος|νοέμβριος|δεκέμβριος`, }, }
RuleTranslations are the translations of the rules in different languages
Functions ¶
func DeleteDates ¶
DeleteDates removes the dates of the given sentence and returns it
func DeleteTimes ¶
DeleteTimes removes the times of the given sentence and returns it
func RegisterRule ¶
func RegisterRule(rule Rule)
RegisterRule takes a rule in parameter and register it to the array of rules
func RuleDayOfWeek ¶
RuleDayOfWeek checks for the days of the week and the keyword "next" in the given sentence, then it returns the date parsed.
func RuleNaturalDate ¶
RuleNaturalDate checks for the dates written in natural language in the given sentence, then it returns the date parsed.
func RuleToday ¶
RuleToday checks for today, tonight, this afternoon dates in the given sentence, then it returns the date parsed.
func RuleTomorrow ¶
RuleTomorrow checks for "tomorrow" and "after tomorrow" dates in the given sentence, then it returns the date parsed.
Types ¶
type PatternTranslations ¶
PatternTranslations are the translations of the regexs for dates