⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lc_parse_strings.php

📁 Hippo CMS是一个以信息为中心的开源内容管理系统。Hippo CMS目标是供中,大型企业来管理其发布在互连网
💻 PHP
字号:
<?php//die("this script is disabled for security");/**  * LC-Parse-Strings-Script  *  * This script parses all xinhas source-files and creates base lang-files  * in the lang-folders (one for base and one every plugin)  *  * How To use it: - remove the die() in line 2 (security)  *                - make sure all lang-folders are writeable for your webserver  *                - open the contrib/lc_parse_strings.php in your browser  *                - lang/base.js will be written  *                - open base.js, translate all strings into your language and save it  *                  as yourlangauge.js  *                - send the translated file to the xinha-team **/error_reporting(E_ALL);$ret = array();$files = getFiles("../", "js$");foreach($files as $file){    $fp = fopen($file, "r");    $data = "";    while(!feof($fp)) {        $data .= fread($fp, 1024);    }    preg_match_all('#_lc\("([^"]+)"\)|_lc\(\'([^\']+)\'\)#', $data, $m);    foreach($m[1] as $i) {        if(trim($i)=="") continue;        $ret[] = $i;    }    foreach($m[2] as $i) {        if(trim($i)=="") continue;        $ret[] = $i;    }    if(eregi('htmlarea\\.js$', $file)) {        //toolbar-buttons        //bold:          [ "Bold"        preg_match_all('#[a-z]+: *\[ * "([^"]+)"#', $data, $m);        foreach($m[1] as $i) {            if(trim($i)=="") continue;            $ret[] = $i;        }        //HTMLArea._lc({key: 'button_bold', string        preg_match_all('#HTMLArea\\._lc\\({key: \'([^\']*)\'#', $data, $m);        foreach($m[1] as $i) {            if(trim($i)=="") continue;            $ret[] = $i;        }        //config.fontname, fontsize and formatblock        $data = substr($data, strpos($data, "this.fontname = {"), strpos($data, "this.customSelects = {};")-strpos($data, "this.fontname = {"));        preg_match_all('#"([^"]+)"[ \t]*:[ \t]*["\'][^"\']*["\'],?#', $data, $m);        foreach($m[1] as $i) {            if(trim($i)=="") continue;            $ret[] = $i;        }    }}$files = getFiles("../popups/", "html$");foreach($files as $file){    if(preg_match("#custom2.html$#", $file)) continue;    if(preg_match('#old_#', $file)) continue;    $ret = array_merge($ret, parseHtmlFile($file));}$ret = array_unique($ret);$langData['HTMLArea'] = $ret;$plugins = getFiles("../plugins/");foreach($plugins as $pluginDir){    $plugin = substr($pluginDir, 12);    if($plugin=="ibrowser") continue;    $ret = array();    $files = getFiles("$pluginDir/", "js$");    $files = array_merge($files, getFiles("$pluginDir/popups/", "html$"));    $files = array_merge($files, getFiles("$pluginDir/", "php$"));    foreach($files as $file)    {        $fp = fopen($file, "r");        $data = "";        if($fp) {            echo "$file open...<br>";            while(!feof($fp)) {              $data .= fread($fp, 1024);            }            preg_match_all('#_lc\("([^"]+)"|_lc\(\'([^\']+)\'#', $data, $m);            foreach($m[1] as $i) {                if(trim(strip_tags($i))=="") continue;                $ret[] = $i;            }            foreach($m[2] as $i) {                if(trim(strip_tags($i))=="") continue;                $ret[] = $i;            }        }    }    if($plugin=="TableOperations")    {        preg_match_all('#options = \\[([^\\]]+)\\];#', $data, $m);        foreach($m[1] as $i) {            preg_match_all('#"([^"]+)"#', $i, $m1);            foreach($m1[1] as $i) {                $ret[] = $i;            }        }                //["cell-delete",        "td", "Delete cell"],        preg_match_all('#\\["[^"]+",[ \t]*"[^"]+",[ \t]*"([^"]+)"\\]#', $data, $m);        foreach($m[1] as $i) {            $ret[] = $i;        }    }    $files = getFiles("$pluginDir/", "html$");    $files = array_merge($files, getFiles("$pluginDir/", "php$"));    foreach($files as $file)    {        $ret = array_merge($ret, parseHtmlFile($file, $plugin));    }        $files = getFiles("$pluginDir/popups/", "html$");    foreach($files as $file)    {        $ret = array_merge($ret, parseHtmlFile($file, $plugin));    }    $ret = array_unique($ret);    $langData[$plugin] = $ret;}foreach($langData as $plugin=>$strings){    if(sizeof($strings)==0) continue;        $data = "// I18N constants\n";    $data .= "//\n";    $data .= "//LANG: \"base\", ENCODING: UTF-8\n";    $data .= "//Author: Translator-Name, <email@example.com>\n";    $data .= "// FOR TRANSLATORS:\n";    $data .= "//\n";    $data .= "//   1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE\n";    $data .= "//      (at least a valid email address)\n";    $data .= "//\n";    $data .= "//   2. PLEASE TRY TO USE UTF-8 FOR ENCODING;\n";    $data .= "//      (if this is not possible, please include a comment\n";    $data .= "//       that states what encoding is necessary.)\n";    $data .= "\n";    $data .= "{\n";    sort($strings);    foreach($strings as $string) {        $string = str_replace(array('\\', '"'), array('\\\\', '\\"'), $string);        $data .= "  \"".$string."\": \"\",\n";    }    $data = substr($data, 0, -2);    $data .= "\n";    $data .= "}\n";    if($plugin=="HTMLArea")        $file = "../lang/base.js";    else        $file = "../plugins/$plugin/lang/base.js";        $fp = fopen($file, "w");    if(!$fp) continue;    fwrite($fp, $data);    fclose($fp);    echo "$file written...<br>";}function parseHtmlFile($file, $plugin=""){    $ret = array();        $fp = fopen($file, "r");    if(!$fp) {        die("invalid fp");    }    $data = "";    while(!feof($fp)) {        $data .= fread($fp, 1024);    }        if($plugin=="FormOperations" || $plugin=="SuperClean" || $plugin=="Linker") {        //<l10n>-tags for inline-dialog or panel-dialog based dialogs        $elems = array("l10n");    } else {        $elems = array("title", "input", "select", "legend", "span", "option", "td", "button", "div", "label");    }    foreach($elems as $elem) {        preg_match_all("#<{$elem}[^>]*>([^<^\"]+)</$elem>#i", $data, $m);        foreach($m[1] as $i) {            if(trim(strip_tags($i))=="") continue;            if($i=="/") continue;            if($plugin=="ImageManager" && preg_match('#^--+$#', $i)) continue; //skip those ------            if($plugin=="CharacterMap" && preg_match('#&[a-z0-9]+;#i', trim($i)) || $i=="@") continue;            if($plugin=="SpellChecker" && preg_match('#^\'\\.\\$[a-z]+\\.\'$#', $i)) continue;            $ret[] = trim($i);        }    }        if($plugin=="FormOperations" || $plugin=="SuperClean" || $plugin=="Linker")    {        //_( for inline-dialog or panel-dialog based dialogs        preg_match_all('#"_\(([^"]+)\)"#i', $data, $m);        foreach($m[1] as $i) {            if(trim($i)=="") continue;            $ret[] = $i;        }    }    else    {        preg_match_all('#title="([^"]+)"#i', $data, $m);        foreach($m[1] as $i) {            if(trim(strip_tags($i))=="") continue;            if(strip_tags($i)==" - ") continue; //skip those - (ImageManager)            $ret[] = $i;        }    }    return($ret);}function getFiles($rootdirpath, $eregi_match='') { $array = array(); if ($dir = @opendir($rootdirpath)) {   $array = array();   while (($file = readdir($dir)) !== false) {     if($file=="." || $file==".." || $file==".svn") continue;      if($eregi_match=="")        $array[] = $rootdirpath."/".$file;      else if(eregi($eregi_match,$file))        $array[] = $rootdirpath."/".$file;         }   closedir($dir); } return $array;}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -