LuckyCoinkydink/lang/plugin_lang.php
2006-11-30 21:42:01 +00:00

92 lines
3.4 KiB
PHP

<?php
exit;
function help() {
echo "This helper application lists all missing constants from plugin translations.\n\n";
echo "==================================================\n";
echo "Call Syntax:\n";
echo "\tphp plugin_lang.php [lang]\n";
echo "==================================================\n";
echo "\n";
echo "[lang] needs to replaced with the language you want to compare against.\n";
echo "Example:\n";
echo "\tphp plugin_lang.php de\n";
echo "\tThis command will show all untranslated german strings.\n\n";
}
if (!is_array($argv) || empty($argv[1])) {
echo "==================================================\n";
echo "This tool is intended to be called via commandline!\n";
echo "==================================================\n\n";
help();
die();
}
$lang = preg_replace('@[^a-z0-9]@', '', strtolower($argv[1]));
echo "Probing language $lang\n";
$base = '../plugins/';
$d = @opendir($base);
if (!$d) {
die('Failure');
}
$const = array();
$const['checked'] = get_defined_constants();
while(($file = readdir($d)) !== false) {
if ($file{0} == '.') {
continue;
}
if (!is_dir($base . '/' . $file)) {
continue;
}
$tfile = $base . '/' . $file . '/lang_en.inc.php';
$sfile = $base . '/' . $file . '/lang_' . $lang . '.inc.php';
if (file_exists($tfile)) {
echo "Parsing english language from $file - ";
include $tfile;
$current = get_defined_constants();
$const['native'][$file] = array_diff($current, $const['checked']);
$const['checked'] = array_merge($const['checked'], $current);
echo count($const['native'][$file]) . " constants.\n";
} else {
echo "NOTICE: English language of $file does not exist.\n";
continue;
}
if (file_exists($sfile)) {
echo "Parsing differences for $file - ";
include $sfile;
$current = get_defined_constants();
$const['missing'][$file] = array_diff($current, $const['checked']);
$const['checked'] = array_merge($const['checked'], $current);
echo count($const['missing'][$file]) . " missing constants.\n";
} else {
$const['missing'][$file] = $const['native'][$file];
}
echo "\n";
}
echo "Showing missing constants:\n\n";
foreach($const['missing'] AS $file => $constants) {
echo strtoupper($file) . ":\n";
foreach($constants AS $const => $val) {
echo "\t" . $const . "\n";
echo "\t\t" . $val . "\n";
}
echo "---------------------------\n";
}
@define('PERM_SET_CHILD', 'Set the same permissions on all child directories');
@define('PERMISSION_FORBIDDEN_PLUGINS', 'Forbidden plugins');
@define('PERMISSION_FORBIDDEN_HOOKS', 'Forbidden events');
@define('PERMISSION_FORBIDDEN_ENABLE', 'Enable Plugin ACL for usergroups?');
@define('PERMISSION_FORBIDDEN_ENABLE_DESC', 'If the option "Plugin ACL for usergroups" is enabled in the configuration, you can specify which usergroups are allowed to execute certain plugins/events.');
@define('DELETE_SELECTED_ENTRIES', 'Delete selected entries');
@define('PLUGIN_AUTHORS_MINCOUNT', 'Show only authors with at least X articles');
@define('FURTHER_LINKS_S9Y_BOOKMARKLET', 'Bookmarklet');
@define('FURTHER_LINKS_S9Y_BOOKMARKLET_DESC', 'Bookmark this link and then use it on any page you want to blog about to quickly access your Serendipity Blog.');