From 48b2c52b13ceb23ee965611d72360abda9d6de26 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Thu, 29 Jul 2010 14:34:35 +0200 Subject: [PATCH] Portuguese fixes. --- .../Date_Parser/lib/Horde/Date/Parser/Locale/Pt.php | 19 +++++++++---------- .../lib/Horde/Date/Parser/Locale/Pt/Grabber.php | 12 ++++++++---- .../lib/Horde/Date/Parser/Locale/Pt/Ordinal.php | 6 +++--- .../lib/Horde/Date/Parser/Locale/Pt/Pointer.php | 5 ++++- .../lib/Horde/Date/Parser/Locale/Pt/Repeater.php | 18 +++++++++++++++++- .../lib/Horde/Date/Parser/Locale/Pt/Scalar.php | 3 ++- .../lib/Horde/Date/Parser/Locale/Pt/Separator.php | 2 ++ 7 files changed, 45 insertions(+), 20 deletions(-) diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt.php index 099db78cd..ed1a5844d 100644 --- a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt.php +++ b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt.php @@ -120,6 +120,7 @@ class Horde_Date_Parser_Locale_Pt extends Horde_Date_Parser_Locale_Base return $result->span; case 'date': return $result->guess(); + // TODO: return end date (force) like all day event = 0-24 } } @@ -191,27 +192,25 @@ class Horde_Date_Parser_Locale_Pt extends Horde_Date_Parser_Locale_Base public function preNormalize($text) { $text = strtolower($text); - // $text = $this->numericizeNumbers($text); + $text = $this->numericizeNumbers($text); $text = preg_replace('/[\'"\.]/', '', $text); $text = preg_replace('/([\/\-\,\@])/', ' $1 ', $text); $text = preg_replace('/\bhoje\b/', 'this day', $text); - // $text = preg_replace('/^amanh[aã]$/', 'next day', $text); - $text = preg_replace('/^amanha$/', 'next day', $text); - - $text = preg_replace('/^ontem$/', 'last day', $text); + $text = preg_replace('/\bamanh[aã]\b/', 'next day', $text); + $text = preg_replace('/\bontem\b/', 'last day', $text); $text = preg_replace('/\bmeio\s+dia\b/', '12:00', $text); $text = preg_replace('/\bmeia\s+noite\b/', '24:00', $text); $text = preg_replace('/\b(antes|anterior)\b/', 'past', $text); $text = preg_replace('/\b(agora|j[aá])\b/', 'this second', $text); - $text = preg_replace('/\b[uú]ltimo\b/', 'last', $text); + $text = preg_replace('/\b[uú]ltim[oa]\b/', 'last', $text); $text = preg_replace('/\b(?:de|na|durante\s+a|logo(?:\s[aà]|de))\s+(manh[aã]|madrugada)\b/', 'morning', $text); $text = preg_replace('/\b(?:de|[àa]|durante\s+a|logo(?:\s[aà]|de))\s+tarde\b/', 'afternoon', $text); $text = preg_replace('/\b((?:de|[àa]|durante\s+a|logo(?:\s[aà]))\s+noite|(?:ao)\s+anoitecer)\b/', 'this night', $text); - $text = preg_replace('/\b(horas?|h|hrs?)\b/', 'oclock', $text); + $text = preg_replace('/\b(horas?|h|hrs?)\b/', ' oclock', $text); $text = preg_replace('/\b(depois|ap[oó]s)\b/', 'future', $text); - $text = $this->numericizeNumbers($text); -// $text = preg_replace('/\bdebug\b/', 'filho da mae', $text); - return $text; + // $text = $this->numericizeNumbers($text); + + return $text; } /** diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Grabber.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Grabber.php index 8ba01f5e4..4d5bbf25f 100644 --- a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Grabber.php +++ b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Grabber.php @@ -5,10 +5,14 @@ class Horde_Date_Parser_Locale_Pt_Grabber extends Horde_Date_Parser_Locale_Base_ * Regex tokens */ public $scanner = array( - '/^(passado|[uú]ltim[ao]|anterior)$/' => 'last', - '/^n?est[ea]$/' => 'this', - '/^(pr[oó]xim[oa]|seguinte)$/' => 'next', - ); + '/(passado|[uú]ltim[ao]|anterior)/' => 'last', + '/n?est[ea]/' => 'this', + '/(pr[oó]xim[oa]|seguinte)/' => 'next', + '/last/' => 'last', + '/this/' => 'this', + '/next/' => 'next', + ); + public function scan($tokens) { diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Ordinal.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Ordinal.php index 76251e607..4a22682f7 100644 --- a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Ordinal.php +++ b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Ordinal.php @@ -2,9 +2,9 @@ class Horde_Date_Parser_Locale_Pt_Ordinal extends Horde_Date_Parser_Locale_Base_Ordinal { - public $ordinalRegex = '/^(\d*)(\.|\xBA|\xAA|º|ª)?$/'; - public $ordinalDayRegex = '/^(0[1-9]|[12][0-9]|3[01])(\.|\xBA|\xAA|º|ª)?$/'; - public $ordinalMonthsRegex = '/^(0[1-9]|1[012])(\.|\xBA|\xAA|º|ª)?$/'; + public $ordinalRegex = '/^(\d*)(\.|\xBA|\xAA|º|ª|st|nd|rd|th)?$/'; + public $ordinalDayRegex = '/^(0[1-9]|[12][0-9]|3[01])(\.|\xBA|\xAA|º|ª|st|nd|rd|th)?$/'; + public $ordinalMonthsRegex = '/^(0[1-9]|1[012])(\.|\xBA|\xAA|º|ª|st|nd|rd|th)?$/'; public function scan($tokens) { diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Pointer.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Pointer.php index 9a6f0ceaa..d40c49ca3 100644 --- a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Pointer.php +++ b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Pointer.php @@ -4,7 +4,10 @@ class Horde_Date_Parser_Locale_Pt_Pointer extends Horde_Date_Parser_Locale_Base_ public $scanner = array( '/^antes$/' => 'past', '/^(depois(\s+de)?|ap[oó]s|dentro\s+de|daqui\s+a)$/' => 'future', - ); + '/\bpast\b/' => 'past', + '/\bfuture\b/' => 'future', + '/\bin\b/' => 'future', + ); public function scan($tokens) { diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Repeater.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Repeater.php index 2e46c6ca2..393d07554 100644 --- a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Repeater.php +++ b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Repeater.php @@ -67,7 +67,13 @@ class Horde_Date_Parser_Locale_Pt_Repeater extends Horde_Date_Parser_Locale_Base '/^(?:de|na|a|durante\s+a) tarde$/' => 'afternoon', '/^((fim\s(d[ea]\s)tarde)|anoitecer)$/' => 'evening', '/^noite$/' => 'night', - ); + '/^ams?$/' => 'am', + '/^pms?$/' => 'pm', + '/^mornings?$/' => 'morning', + '/^afternoons?$/' => 'afternoon', + '/^evenings?$/' => 'evening', + '/^(night|nite)s?$/' => 'night', + ); public $unitScanner = array( '/^anos?$/' => 'year', @@ -80,6 +86,16 @@ class Horde_Date_Parser_Locale_Pt_Repeater extends Horde_Date_Parser_Locale_Base '/^horas?$/' => 'hour', '/^minutos?$/' => 'minute', '/^segundos?$/' => 'second', + '/^years?$/' => 'year', + '/^seasons?$/' => 'season', + '/^months?$/' => 'month', + '/^fortnights?$/' => 'fortnight', + '/^weeks?$/' => 'week', + '/^weekends?$/' => 'weekend', + '/^days?$/' => 'day', + '/^hours?$/' => 'hour', + '/^minutes?$/' => 'minute', + '/^seconds?$/' => 'second', ); public $timeRegex = '/^\d{1,2}(:?\d{2})?([\.:]?\d{2})?$/'; diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Scalar.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Scalar.php index 2236460c2..4a95c1b40 100644 --- a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Scalar.php +++ b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Scalar.php @@ -5,7 +5,8 @@ class Horde_Date_Parser_Locale_Pt_Scalar extends Horde_Date_Parser_Locale_Base_S public $dayRegex = '/^(0[1-9]|[12][0-9]|3[01])?$/'; public $monthRegex = '/^(0[1-9]|1[012])$/'; public $yearRegex = '/^(19|20)?\d\d$/'; - public $timeSignifiers = array('manha', 'manhã', 'tarde', 'noite', 'madrugada', 'anoitecer'); + // public $timeSignifiers = array('manha', 'manhã', 'tarde', 'noite', 'madrugada', 'anoitecer'); + public $timeSignifiers = array('am', 'pm', 'morning', 'afternoon', 'evening', 'night'); public function scan($tokens) { diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Separator.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Separator.php index 42cf175fe..5d609ec23 100644 --- a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Separator.php +++ b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/Pt/Separator.php @@ -14,11 +14,13 @@ class Horde_Date_Parser_Locale_Pt_Separator extends Horde_Date_Parser_Locale_Bas public $atScanner = array( '/^(em|@|de)$/' => 'at', '/^(as|ao)$/' => 'at', + '/^(at|@)$/' => 'at', ); public $inScanner = array( '/^no$/' => 'in', + '/^in$/' => 'in', ); public function scan($tokens) -- 2.11.0