Multi-language support

This commit is contained in:
bergware
2020-05-14 00:20:01 +02:00
parent 96e95d99f8
commit c5b5ccc00d

View File

@@ -21,7 +21,10 @@ function _($text) {
return strpos($data,'*')===false ? $data : preg_replace(['/\*\*(.+?)\*\*/','/\*(.+?)\*/'],['<b>$1</b>','<i>$1</i>'],$data);
}
function parse_lang_file($file) {
return array_filter(parse_ini_string(preg_replace(['/^(null|yes|no|true|false|on|off|none)=/mi','/^([^>].*)=([^"\'`].*)$/m','/^:(.+_(help|plug)):$/m','/^:end$/m'],['$1.=','$1="$2"',"_$1_=\"",'"'],str_replace(['"',"=\n"],["&#34;","=\"\"\n"],file_get_contents($file)))),'secured',ARRAY_FILTER_USE_BOTH);
return array_filter(parse_ini_string(preg_replace(['/^(null|yes|no|true|false|on|off|none)=/mi','/^([^>].*)=(.*)$/m','/^:(.+_(help|plug)):$/m','/^:end$/m'],['$1.=','$1="$2"','_$1_="','"'],str_replace('"','&#34;',file_get_contents($file)))),'secured',ARRAY_FILTER_USE_BOTH);
}
function parse_help_file($file) {
return parse_ini_string(preg_replace(['/^([^:].+)/m','/^:(.+_help):$/m','/^:end$/m'],['>$1','_$1_="','"'],str_replace('"','&#34;',file_get_contents($file))));
}
function parse_text($text) {
return preg_replace_callback('/_\((.+?)\)_/m',function($m){return _($m[1]);},preg_replace(["/^:(.+_help):$/m","/^:(.+_plug):$/m","/^:end$/m"],["<?translate(\"_$1_\");?>","<?if (translate(\"_$1_\")):?>","<?endif;?>"],$text));
@@ -113,7 +116,7 @@ foreach($uri as $more) {
}
}
// help text
if (!file_exists($help)) file_put_contents($help,serialize(parse_lang_file($root)));
if (!file_exists($help)) file_put_contents($help,serialize(parse_help_file($root)));
$language = array_merge($language,unserialize(file_get_contents($help)));
// remove unused variables