getIdentifier(), $path, $tag); } public static function translate($tag) { $string = self::translateFile('module', $tag); if ($string !== false) return $string; return self::translateFileModule('main', 'global-tags', $tag); } public static function getMessage($module, $id) { $string = self::translateFileModule($module, 'messages', $id); if ($string === false) { return "($id) ({{0}}, {{1}}, {{2}}, {{3}})"; } return $string; } public static function getCategoryName($category) { if ($category === false) { return 'No Category'; } if (!preg_match('/^(\w+)\.(.*)$/', $category, $out)) { return 'Invalid Category ID format: ' . $category; } $string = self::translateFileModule($out[1], 'categories', $out[2]); if ($string === false) { return "!!{$category}!!"; } return $string; } /** * Get all supported languages as array. * * @param boolean $withName true = return assoc array containinc cc and name of all languages; * false = regular array containing only the ccs * @return array List of languages */ public static function getLanguages($withName = false) { if (!$withName) return self::$languages; if (self::$languagesLong === false) { self::$languagesLong = array(); foreach (self::$languages as $lang) { if (file_exists("lang/$lang/name.txt")) { $name = file_get_contents("lang/$lang/name.txt"); } if (!isset($name) || $name === false) { $name = $lang; } self::$languagesLong[] = array( 'cc' => $lang, 'name' => $name ); } } return self::$languagesLong; } public static function getLanguageName($langCC) { if (file_exists("lang/$langCC/name.txt")) { $name = file_get_contents("lang/$langCC/name.txt"); } if (!isset($name) || $name === false) { $name = $langCC; } return $name; } } Dictionary::init();