Example #1
0
 public static final function autogen($text, $lang = null)
 {
     if ($lang == NULL) {
         $lang = Config::language();
     }
     if (isset(self::$autogen[$lang])) {
         if (isset(self::$autogen[$lang][$text])) {
             return self::$autogen[$lang][$text];
         }
         if ($lang == Config::fallback_language()) {
             throw new \InvalidArgumentException("Cannot autogenerate text for '{$text}'");
         }
         return self::autogen($text, Config::fallback_language());
     }
     $filename = Config::lang_dir() . $lang . ".ini";
     self::$autogen[$lang] = parse_ini_file($filename);
     return self::autogen($text, $lang);
 }
Example #2
0
 public static final function autogen($text, $lang)
 {
     if ($lang == NULL) {
         $lang = Config::language();
     }
     if (isset(self::$autogen[$lang])) {
         if (isset(self::$autogen[$lang][$text])) {
             return self::$autogen[$lang][$text];
         }
         if ($lang == Config::fallback_language()) {
             throw new \InvalidArgumentException("Cannot autogenerate text for '{$text}'");
         }
         return self::autogen($text, Config::fallback_language());
     }
     $filename = Config::lang_dir() . $lang . ".xml";
     $r = new \XMLReader();
     if (!file_exists($filename) || !$r->open($filename)) {
         if ($lang == Config::fallback_language()) {
             throw new \Exception("Cannot open {$filename}");
         }
         return self::autogen($text, Config::fallback_language());
     }
     $autogen = array();
     while ($r->read()) {
         if ($r->nodeType != \XMLReader::ELEMENT) {
             continue;
         }
         if ($r->name == "term") {
             $r->read();
             $k = $r->value;
             $autogen[$k] = "";
         } else {
             if ($r->name == "simpara") {
                 $r->read();
                 $autogen[$k] = $r->value;
             }
         }
     }
     self::$autogen[$lang] = $autogen;
     return self::autogen($text, $lang);
 }