Add basic German locale, still failing though.
authorJan Schneider <jan@horde.org>
Wed, 27 May 2009 13:53:22 +0000 (15:53 +0200)
committerJan Schneider <jan@horde.org>
Wed, 27 May 2009 13:53:22 +0000 (15:53 +0200)
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De.php [new file with mode: 0644]
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Grabber.php [new file with mode: 0644]
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Ordinal.php [new file with mode: 0644]
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Pointer.php [new file with mode: 0644]
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Repeater.php [new file with mode: 0644]
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Scalar.php [new file with mode: 0644]
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Separator.php [new file with mode: 0644]
framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Timezone.php [new file with mode: 0644]
framework/Date_Parser/test/Horde/Date/Parser/Locale/DeTest.php [new file with mode: 0644]

diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De.php
new file mode 100644 (file)
index 0000000..e7e9467
--- /dev/null
@@ -0,0 +1,6 @@
+<?php
+/**
+ */
+class Horde_Date_Parser_Locale_De extends Horde_Date_Parser_Locale_Base
+{
+}
diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Grabber.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Grabber.php
new file mode 100644 (file)
index 0000000..9057404
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+class Horde_Date_Parser_Locale_De_Grabber extends Horde_Date_Parser_Locale_Base_Grabber
+{
+    /**
+     * Regex tokens
+     */
+    public $scanner = array(
+        '/letzte\w?/' => 'last',
+        '/diese\w?/' => 'this',
+        '/nächste\w?/' => 'next',
+    );
+
+}
diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Ordinal.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Ordinal.php
new file mode 100644 (file)
index 0000000..86707ee
--- /dev/null
@@ -0,0 +1,7 @@
+<?php
+class Horde_Date_Parser_Locale_De_Ordinal extends Horde_Date_Parser_Locale_Base_Ordinal
+{
+    public $ordinalRegex = '/^(\d*)\.$/';
+    public $ordinalDayRegex = '/^(\d*)\.$/';
+
+}
diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Pointer.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Pointer.php
new file mode 100644 (file)
index 0000000..fc0f326
--- /dev/null
@@ -0,0 +1,9 @@
+<?php
+class Horde_Date_Parser_Locale_De_Pointer extends Horde_Date_Parser_Locale_Base_Pointer
+{
+    public $scanner = array(
+        '/\bvor\b/' => 'past',
+        '/\bin\b/' => 'future',
+    );
+
+}
diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Repeater.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Repeater.php
new file mode 100644 (file)
index 0000000..0db68e8
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+class Horde_Date_Parser_Locale_De_Repeater extends Horde_Date_Parser_Locale_Base_Repeater
+{
+    public $monthNameScanner = array(
+        '/^jan\.?(uar)?$/' => 'january',
+        '/^feb\.?(ruar)?$/' => 'february',
+        '/^mär\.?(z)?$/' => 'march',
+        '/^apr\.?(il)?$/' => 'april',
+        '/^mai$/' => 'may',
+        '/^jun\.?i?$/' => 'june',
+        '/^jul\.?i?$/' => 'july',
+        '/^aug\.?(ust)?$/' => 'august',
+        '/^sep\.?(t\.?|tember)?$/' => 'september',
+        '/^okt\.?(ober)?$/' => 'october',
+        '/^nov\.?(ember)?$/' => 'november',
+        '/^dez\.?(ember)?$/' => 'december',
+    );
+
+    public $dayNameScanner = array(
+        '/^mo(n(d?tag)?)?$/' => 'monday',
+        '/^di(e(nst?tag)?)?$/' => 'tuesday',
+        '/^mi(t(t?woch)?)?$/' => 'wednesday',
+        '/^do(n(n?erstag)?)?$/' => 'thursday',
+        '/^fr(e(itag)?)?$/' => 'friday',
+        '/^sa(m(stag)?)?$/' => 'saturday',
+        '/^so(n(ntag)?)?$/' => 'sunday',
+    );
+
+    public $dayPortionScanner = array(
+        '/^vormittags?$/' => 'morning',
+        '/^morgens?$/' => 'morning',
+        '/^afternoons?$/' => 'afternoon',
+        '/^abends?$/' => 'evening',
+        '/^nachts?$/' => 'night',
+    );
+
+    public $unitScanner = array(
+        '/^jahre?$/' => 'year',
+        //'/^seasons?$/' => 'season', ???
+        '/^monate?$/' => 'month',
+        //'/^fortnights?$/' => 'fortnight', ??
+        '/^wochen?$/' => 'week',
+        '/^wochenenden?$/' => 'weekend',
+        '/^tage?$/' => 'day',
+        '/^stunden?$/' => 'hour',
+        '/^minuten?$/' => 'minute',
+        '/^sekunden?$/' => 'second',
+    );
+
+}
diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Scalar.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Scalar.php
new file mode 100644 (file)
index 0000000..15cc901
--- /dev/null
@@ -0,0 +1,4 @@
+<?php
+class Horde_Date_Parser_Locale_De_Scalar extends Horde_Date_Parser_Locale_Base_Scalar
+{
+}
diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Separator.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Separator.php
new file mode 100644 (file)
index 0000000..3031a58
--- /dev/null
@@ -0,0 +1,9 @@
+<?php
+class Horde_Date_Parser_Locale_De_Separator extends Horde_Date_Parser_Locale_Base_Separator
+{
+
+    public $atScanner = array(
+        '/^(um|@)$/' => 'at',
+    );
+
+}
diff --git a/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Timezone.php b/framework/Date_Parser/lib/Horde/Date/Parser/Locale/De/Timezone.php
new file mode 100644 (file)
index 0000000..23ca8a3
--- /dev/null
@@ -0,0 +1,8 @@
+<?php
+class Horde_Date_Parser_Locale_De_Timezone extends Horde_Date_Parser_Locale_Base_Timezone
+{
+    public $scanner = array(
+        '/MES?[ZT]/i' => 'tz',
+    );
+
+}
diff --git a/framework/Date_Parser/test/Horde/Date/Parser/Locale/DeTest.php b/framework/Date_Parser/test/Horde/Date/Parser/Locale/DeTest.php
new file mode 100644 (file)
index 0000000..84f30d4
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+/**
+ * @category   Horde
+ * @package    Horde_Date
+ * @subpackage UnitTests
+ */
+
+/**
+ * @category   Horde
+ * @package    Horde_Date
+ * @subpackage UnitTests
+ */
+class Horde_Date_Parser_Locale_DeTest extends Horde_Test_Case
+{
+    /**
+     * Wed Aug 16 14:00:00 UTC 2006
+     */
+    public function setUp()
+    {
+        $this->now = new Horde_Date('2006-08-16 14:00:00');
+        $this->parser = Horde_Date_Parser::factory(array('locale' => 'de', 'now' => $this->now));
+    }
+
+    public function testTodayAt11()
+    {
+        $this->assertEquals('2006-08-16 11:00:00', (string)$this->parser->parse('heute um 11'));
+    }
+
+    public function testTomorrow()
+    {
+        $this->assertEquals('2006-08-17 12:00:00', (string)$this->parser->parse('morgen'));
+    }
+
+}