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); }
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); }