Revert "Updated package.xml (includes locale files). Made translation optional."
authorJan Schneider <jan@horde.org>
Fri, 22 Oct 2010 14:26:35 +0000 (16:26 +0200)
committerJan Schneider <jan@horde.org>
Fri, 22 Oct 2010 17:27:03 +0000 (19:27 +0200)
This reverts commit 5c3e6593a08a30e19b0c6f8812a8ad448666c074.

framework/Cli/lib/Horde/Cli.php
framework/Cli/package.xml

index d8f7bb1..74b3dfd 100644 (file)
 class Horde_Cli
 {
     /**
-     * The location of the data directory which contains locale information.
-     * This contains @data_dir@ if the package has not been installed via
-     * PEAR.
-     */
-    const LOCALE_DIR = '@data_dir@/locale';
-
-    /**
      * Are we running on a console?
      *
      * @var boolean
@@ -135,9 +128,20 @@ class Horde_Cli
     /**
      * Detect the current environment (web server or console) and sets
      * internal values accordingly.
+     *
+     * The constructor must not be called after init().
+     *
+     * @param Horde_Translation $dict  A translation handler implementing
+     *                                 Horde_Translation.
      */
-    public function __construct()
+    public function __construct($dict = null)
     {
+        if ($dict) {
+            $this->_dict = $dict;
+        } else {
+            $this->_dict = new Horde_Translation_Gettext('Horde_Cli', dirname(__FILE__) . '/../../locale');
+        }
+
         $this->_console = $this->runningFromCLI();
 
         if ($this->_console) {
@@ -331,7 +335,7 @@ class Horde_Cli
         }
         $this->writeln($this->red('===================='));
         $this->writeln();
-        $this->writeln($this->red($this->_t("Fatal Error:")));
+        $this->writeln($this->red($this->_dict->t("Fatal Error:")));
         $this->writeln($this->red($error));
         $this->writeln();
         $this->writeln((string)$backtrace);
@@ -365,7 +369,7 @@ class Horde_Cli
                 foreach ($choices as $key => $choice) {
                     $this->writeln($this->indent('(' . $this->bold($key) . ') ' . $choice));
                 }
-                $this->writeln($this->_t("Type your choice: "), true);
+                $this->writeln($this->_dict->t("Type your choice: "), true);
                 @ob_flush();
 
                 // Get the user choice.
@@ -376,7 +380,7 @@ class Horde_Cli
                 if (isset($choices[$response])) {
                     return $response;
                 } else {
-                    $this->writeln($this->red(sprintf($this->_t("\"%s\" is not a valid choice."), $response)));
+                    $this->writeln($this->red(sprintf($this->_dict->t("\"%s\" is not a valid choice."), $response)));
                 }
             } else {
                 @ob_flush();
@@ -446,18 +450,20 @@ class Horde_Cli
      * none. Also initialize a few variables in $_SERVER that aren't present
      * from the CLI.
      *
-     * @param Horde_Translation_Factory $t  A translation factory that
-     *                                      generates a Horde_Translation
-     *                                      instance.
+     * You must not call init() statically before calling the constructor.
+     * Either use the singleton() method to retrieve a Horde_Cli object after
+     * calling init(), or don't call init() statically.
+     *
+     * @param Horde_Translation $dict  A translation handler implementing
+     *                                 Horde_Translation.
      *
      * @return Horde_Cli  A Horde_Cli instance.
      */
-    static public function init(Horde_Translation_Factory $t = null)
+    static public function init($dict = null)
     {
         /* Run constructor now because it requires $_SERVER['SERVER_NAME'] to
          * be empty if called with a CGI SAPI. */
-        $cli = new self();
-        $cli->initTranslation($t);
+        $cli = new self($dict);
 
         @set_time_limit(0);
         ob_implicit_flush(true);
@@ -482,46 +488,6 @@ class Horde_Cli
     }
 
     /**
-     * Try to initialize the translation system.
-     *
-     * @param Horde_Translation_Factory $t  A translation factory that
-     *                                      generates a Horde_Translation
-     *                                      instance.
-     *
-     * @return Horde_Cli  A Horde_Cli instance.
-     */
-    public function initTranslation(Horde_Translation_Factory $t = null)
-    {
-        if ($t === null && class_exists('Horde_Translation_Factory_Gettext')) {
-            $t = new Horde_Translation_Factory_Gettext();
-        }
-        if ($t !== null) {
-            $this->_dict = $t->createTranslation('Horde_Cli', self::LOCALE_DIR, dirname(__FILE__) . '/../../locale');
-        } else {
-            $this->_dict = false;
-        }
-    }
-
-    /**
-     * Returns the translation of a message.
-     *
-     * @param string $message  The string to translate.
-     *
-     * @return string  The string translation, or the original string if no
-     *                 translation exists.
-     */
-    private function _t($message)
-    {
-        if ($this->_dict === false) {
-            return $message;
-        } else if ($this->_dict === null) {
-            $this->initTranslation();
-            return $this->_t($message);
-        }
-        return $this->_dict->t($message);
-    }
-
-    /**
      * Make sure we're being called from the command line, and not via
      * the web.
      *
index 28ccb02..d323cae 100644 (file)
@@ -16,8 +16,8 @@
   <email>jan@horde.org</email>
   <active>yes</active>
  </lead>
- <date>2010-10-18</date>
- <time>14:33:41</time>
+ <date>2010-08-15</date>
+ <time>15:33:56</time>
  <version>
   <release>0.2.0</release>
   <api>0.2.0</api>
    </dir> <!-- /doc -->
    <dir name="lib">
     <dir name="Horde">
-     <file name="Cli.php" role="php">
-      <tasks:replace from="@data_dir@" to="data_dir" type="pear-config" />
-     </file>
+     <file name="Cli.php" role="php" />
     </dir> <!-- /lib/Horde -->
    </dir> <!-- /lib -->
-   <dir name="locale">
-    <dir name="ar">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/ar/LC_MESSAGES -->
-    </dir> <!-- /locale/ar -->
-    <dir name="bg">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/bg/LC_MESSAGES -->
-    </dir> <!-- /locale/bg -->
-    <dir name="bs">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/bs/LC_MESSAGES -->
-    </dir> <!-- /locale/bs -->
-    <dir name="ca">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/ca/LC_MESSAGES -->
-    </dir> <!-- /locale/ca -->
-    <dir name="cs">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/cs/LC_MESSAGES -->
-    </dir> <!-- /locale/cs -->
-    <dir name="da">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/da/LC_MESSAGES -->
-    </dir> <!-- /locale/da -->
-    <dir name="de">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/de/LC_MESSAGES -->
-    </dir> <!-- /locale/de -->
-    <dir name="el">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/el/LC_MESSAGES -->
-    </dir> <!-- /locale/el -->
-    <dir name="en">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/en/LC_MESSAGES -->
-    </dir> <!-- /locale/en -->
-    <dir name="es">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/es/LC_MESSAGES -->
-    </dir> <!-- /locale/es -->
-    <dir name="et">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/et/LC_MESSAGES -->
-    </dir> <!-- /locale/et -->
-    <dir name="eu">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/eu/LC_MESSAGES -->
-    </dir> <!-- /locale/eu -->
-    <dir name="fa">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/fa/LC_MESSAGES -->
-    </dir> <!-- /locale/fa -->
-    <dir name="fi">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/fi/LC_MESSAGES -->
-    </dir> <!-- /locale/fi -->
-    <dir name="fr">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/fr/LC_MESSAGES -->
-    </dir> <!-- /locale/fr -->
-    <dir name="gl">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/gl/LC_MESSAGES -->
-    </dir> <!-- /locale/gl -->
-    <dir name="he">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/he/LC_MESSAGES -->
-    </dir> <!-- /locale/he -->
-    <dir name="hr">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/hr/LC_MESSAGES -->
-    </dir> <!-- /locale/hr -->
-    <dir name="hu">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/hu/LC_MESSAGES -->
-    </dir> <!-- /locale/hu -->
-    <dir name="id">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/id/LC_MESSAGES -->
-    </dir> <!-- /locale/id -->
-    <dir name="is">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/is/LC_MESSAGES -->
-    </dir> <!-- /locale/is -->
-    <dir name="it">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/it/LC_MESSAGES -->
-    </dir> <!-- /locale/it -->
-    <dir name="ja">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/ja/LC_MESSAGES -->
-    </dir> <!-- /locale/ja -->
-    <dir name="km">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/km/LC_MESSAGES -->
-    </dir> <!-- /locale/km -->
-    <dir name="ko">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/ko/LC_MESSAGES -->
-    </dir> <!-- /locale/ko -->
-    <dir name="lt">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/lt/LC_MESSAGES -->
-    </dir> <!-- /locale/lt -->
-    <dir name="lv">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/lv/LC_MESSAGES -->
-    </dir> <!-- /locale/lv -->
-    <dir name="mk">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/mk/LC_MESSAGES -->
-    </dir> <!-- /locale/mk -->
-    <dir name="nb">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/nb/LC_MESSAGES -->
-    </dir> <!-- /locale/nb -->
-    <dir name="nl">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/nl/LC_MESSAGES -->
-    </dir> <!-- /locale/nl -->
-    <dir name="nn">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/nn/LC_MESSAGES -->
-    </dir> <!-- /locale/nn -->
-    <dir name="pl">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/pl/LC_MESSAGES -->
-    </dir> <!-- /locale/pl -->
-    <dir name="pt">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/pt/LC_MESSAGES -->
-    </dir> <!-- /locale/pt -->
-    <dir name="pt_BR">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/pt_BR/LC_MESSAGES -->
-    </dir> <!-- /locale/pt_BR -->
-    <dir name="ro">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/ro/LC_MESSAGES -->
-    </dir> <!-- /locale/ro -->
-    <dir name="ru">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/ru/LC_MESSAGES -->
-    </dir> <!-- /locale/ru -->
-    <dir name="sk">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/sk/LC_MESSAGES -->
-    </dir> <!-- /locale/sk -->
-    <dir name="sl">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/sl/LC_MESSAGES -->
-    </dir> <!-- /locale/sl -->
-    <dir name="sv">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/sv/LC_MESSAGES -->
-    </dir> <!-- /locale/sv -->
-    <dir name="tr">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/tr/LC_MESSAGES -->
-    </dir> <!-- /locale/tr -->
-    <dir name="uk">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/uk/LC_MESSAGES -->
-    </dir> <!-- /locale/uk -->
-    <dir name="zh_CN">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/zh_CN/LC_MESSAGES -->
-    </dir> <!-- /locale/zh_CN -->
-    <dir name="zh_TW">
-     <dir name="LC_MESSAGES">
-      <file name="Horde_Cli.mo" role="data" />
-      <file name="Horde_Cli.po" role="data" />
-     </dir> <!-- /locale/zh_TW/LC_MESSAGES -->
-    </dir> <!-- /locale/zh_TW -->
-    <file name="Horde_Cli.pot" role="data" />
-   </dir> <!-- /locale -->
   </dir> <!-- / -->
  </contents>
  <dependencies>
     <name>Support</name>
     <channel>pear.horde.org</channel>
    </package>
-  </required>
-  <optional>
    <package>
     <name>Translation</name>
     <channel>pear.horde.org</channel>
    </package>
-  </optional>
+   <extension>
+    <name>gettext</name>
+   </extension>
+  </required>
  </dependencies>
  <phprelease>
   <filelist>
@@ -391,7 +129,7 @@ Add &apos;default&apos; parameter to Horde_CLI::prompt().
     <release>beta</release>
     <api>beta</api>
    </stability>
-   <date>2010-10-18</date>
+   <date>2010-08-15</date>
    <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
    <notes>
 * Horde_CLI:: -&gt; Horde_Cli::