mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-29 04:55:02 +03:00
Добавлена поддержка вложенности и точечного синтаксиса в языковых строках (как в конфиге). Языковые строки плагинов доступны через plugins.<plugin_name>.<key>. По умолчанию опция отключена, для включения используется опция конфига 'lang.use_blocks'. При включенной опции не работают обычные строки в плагинах.
This commit is contained in:
parent
93a69f9e2f
commit
4d5f9f8e51
|
@ -22,7 +22,7 @@ $config['view']['skin'] = 'new';
|
|||
$config['view']['name'] = 'LiveStreet - бесплатный движок социальной сети'; // название сайта
|
||||
$config['view']['description'] = 'LiveStreet - официальный сайт бесплатного движка социальной сети'; // seo description
|
||||
$config['view']['keywords'] = 'движок, livestreet, блоги, социальная сеть, бесплатный, php'; // seo keywords
|
||||
$config['view']['tinymce'] = false; // использовать или нет визуальный редактор TinyMCE
|
||||
$config['view']['tinymce'] = false; // использовать или нет визуальный редактор TinyMCE
|
||||
$config['view']['noindex'] = true; // "прятать" или нет ссылки от поисковиков, оборачивая их в тег <noindex> и добавляя rel="nofollow"
|
||||
$config['view']['img_resize_width'] = 500; // до какого размера в пикселях ужимать картинку по щирине при загрузки её в топики и комменты
|
||||
$config['view']['img_max_width'] = 3000; // максимальная ширина загружаемых изображений в пикселях
|
||||
|
@ -130,6 +130,7 @@ $config['general']['reg']['activation'] = false; // использовать а
|
|||
$config['lang']['current'] = 'russian'; // текущий язык текстовок
|
||||
$config['lang']['default'] = 'russian'; // язык, который будет использовать на сайте по умолчанию
|
||||
$config['lang']['path'] = '___path.root.server___/templates/language'; // полный путь до языковых файлов
|
||||
$config['lang']['use_blocks'] =false; // Использование многоуровневого языкового файла (по примеру конфига)
|
||||
/**
|
||||
* Настройки ACL(Access Control List — список контроля доступа)
|
||||
*/
|
||||
|
@ -442,8 +443,8 @@ $config['head']['default']['js'] = array(
|
|||
"___path.static.skin___/js/login.js",
|
||||
"___path.static.skin___/js/panel.js",
|
||||
"___path.static.skin___/js/messages.js",
|
||||
"___path.static.skin___/js/userfeed.js",
|
||||
"___path.static.skin___/js/stream.js",
|
||||
"___path.static.skin___/js/userfeed.js",
|
||||
"___path.static.skin___/js/stream.js",
|
||||
"___path.static.skin___/js/Autocompleter.LS.js",
|
||||
"___path.root.engine_lib___/external/MooTools_1.2/plugs/Piechart/moocanvas.js"=>array('browser'=>'IE'),
|
||||
);
|
||||
|
@ -473,7 +474,7 @@ $config['compress']['css']['template'] = "highest_compression";
|
|||
/**
|
||||
* Параметры компрессии js-файлов
|
||||
*/
|
||||
$config['compress']['js']['merge'] = true; // указывает на необходимость слияния файлов по указанным блокам.
|
||||
$config['compress']['js']['merge'] =true; // указывает на необходимость слияния файлов по указанным блокам.
|
||||
$config['compress']['js']['use'] = true; // указывает на необходимость компрессии файлов. Компрессия используется только в активированном режиме слияния файлов.
|
||||
|
||||
/**
|
||||
|
|
|
@ -100,7 +100,7 @@ class ModuleLang extends Module {
|
|||
if ($sDirModule !='.' and $sDirModule !='..' and is_dir($sDirConfig.$sDirModule)) {
|
||||
$sFileConfig=$sDirConfig.$sDirModule.'/'.$sLangName.'.php';
|
||||
if (file_exists($sFileConfig)) {
|
||||
$this->AddMessages(include($sFileConfig));
|
||||
$this->AddMessages(include($sFileConfig), array('category' =>'module', 'name' =>$sDirModule));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ class ModuleLang extends Module {
|
|||
if($aFiles and count($aFiles)) {
|
||||
foreach ($aFiles as $sFile) {
|
||||
if (file_exists($sFile)) {
|
||||
$this->AddMessages(include($sFile));
|
||||
$this->AddMessages(include($sFile), array('category' =>'plugin', 'name' =>$sPluginName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -186,22 +186,35 @@ class ModuleLang extends Module {
|
|||
* @return string
|
||||
*/
|
||||
public function Get($sName,$aReplace=array()) {
|
||||
if (isset($this->aLangMsg[$sName])) {
|
||||
$sTranslate=$this->aLangMsg[$sName];
|
||||
if (Config::Get('lang.use_blocks') && strpos($sName, '.')) {
|
||||
$sLang = &$this->aLangMsg;
|
||||
$aKeys = explode('.', $sName);
|
||||
foreach ($aKeys as $k) {
|
||||
if (isset($sLang[$k])) {
|
||||
$sLang = $sLang[$k];
|
||||
} else {
|
||||
return 'NOT_FOUND_LANG_TEXT';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (isset($this->aLangMsg[$sName])) {
|
||||
$sLang=$this->aLangMsg[$sName];
|
||||
} else {
|
||||
return 'NOT_FOUND_LANG_TEXT';
|
||||
}
|
||||
}
|
||||
|
||||
if(is_array($aReplace)&&count($aReplace)&&is_string($sTranslate)) {
|
||||
foreach ($aReplace as $sFrom => $sTo) {
|
||||
$aReplacePairs["%%{$sFrom}%%"]=$sTo;
|
||||
}
|
||||
$sTranslate=strtr($sTranslate,$aReplacePairs);
|
||||
}
|
||||
if(is_array($aReplace)&&count($aReplace)&&is_string($sLang)) {
|
||||
foreach ($aReplace as $sFrom => $sTo) {
|
||||
$aReplacePairs["%%{$sFrom}%%"]=$sTo;
|
||||
}
|
||||
$sLang=strtr($sLang,$aReplacePairs);
|
||||
}
|
||||
|
||||
if(Config::Get('module.lang.delete_undefined') and is_string($sTranslate)) {
|
||||
$sTranslate=preg_replace("/\%\%[\S]+\%\%/U",'',$sTranslate);
|
||||
}
|
||||
return $sTranslate;
|
||||
}
|
||||
return 'NOT_FOUND_LANG_TEXT';
|
||||
if(Config::Get('module.lang.delete_undefined') and is_string($sLang)) {
|
||||
$sLang=preg_replace("/\%\%[\S]+\%\%/U",'',$sLang);
|
||||
}
|
||||
return $sLang;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -209,13 +222,22 @@ class ModuleLang extends Module {
|
|||
*
|
||||
* @param array $aMessages
|
||||
*/
|
||||
public function AddMessages($aMessages) {
|
||||
public function AddMessages($aMessages, $aBlock = null) {
|
||||
if (is_array($aMessages)) {
|
||||
if (count($this->aLangMsg)==0) {
|
||||
$this->aLangMsg = $aMessages;
|
||||
} else {
|
||||
$this->aLangMsg = array_merge($this->aLangMsg, $aMessages);
|
||||
}
|
||||
if (Config::Get('lang.use_blocks') && is_array($aBlock)) {
|
||||
if ($aBlock['category']) {
|
||||
if (!isset($aBlock['category']) || !$aBlock['category']) {$aBlock['category'] = array();}
|
||||
$this->aLangMsg[$aBlock['category']][$aBlock['name']] = $aMessages;
|
||||
} else {
|
||||
$this->aLangMsg [$aBlock['name']] = $aMessages;
|
||||
}
|
||||
} else {
|
||||
if (count($this->aLangMsg)==0) {
|
||||
$this->aLangMsg = $aMessages;
|
||||
} else {
|
||||
$this->aLangMsg = array_merge($this->aLangMsg, $aMessages);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue