chimera-mark2-core-release/core/fox/langPack.php

40 lines
1.4 KiB
PHP

<?php namespace fox;
class langPack {
public static function getAndReplace(string $key, array $values=[], $lang=null) {
return static::replaceKeys(static::get($key,$lang), $values);
}
public static function replaceKeys(string $text,array $values=[]) {
if (!array_key_exists("svcName", $values)) { $values["svcName"]=empty(config::get("svcName"))?(empty(config::get("TITLE"))?config::get("sitePrefix"):config::get("TITLE")):config::get("svcName"); }
if (!array_key_exists("sitePrefix",$values)) { $values["sitePrefix"]=config::get("sitePrefix"); }
return common::replaceMessageFromArray($text, $values);
}
public static function get($key, $lang=null) {
$ref=explode(".",$key);
if (empty($lang)) { $lang = config::get("DEFAULT_LANGUAGE"); }
if (empty($lang)) { $lang = "ru"; }
$mod=moduleInfo::getByInstance($ref[0]);
if (array_search($lang, $mod->languages) === false ) {
$lang = $mod->languages[0];
}
$langClass=$mod->namespace."\\lang\\".$lang;
if (!class_exists($langClass)) {
$langClass=$mod->namespace."\\lang_".$lang;
}
if (!class_exists($langClass)) {
throw new foxException("Class ".$langClass." not found!");
}
try {
return constant($langClass."::".$ref[1]);
} catch (\Exception $e) {
return null;
}
}
}
?>