Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- define('ROOT', 'path/to/your/web/folder');
- $language_files = array(
- 'administrator/language/en-GB/en-GB.com_rdsubs.ini',
- 'administrator/language/en-GB/en-GB.com_rdsubs.sys.ini',
- 'language/en-GB/en-GB.com_rdsubs.ini',
- 'language/en-GB/en-GB.com_rdsubs.sys.ini',
- );
- $file_folders = array(
- 'administrator/components/com_rdsubs',
- 'components/com_rdsubs',
- );
- /* ====================================*/
- require_once '../functions.php';
- $unused_keys = getLanguageUnusedKeys($file_folders, $language_files);
- echo "<pre>\n";
- print_r($unused_keys);
- echo "\n</pre>";
- function getLanguageKeys($files)
- {
- $language_keys = array();
- foreach ($files as $file)
- {
- if ((strpos($file, '.ini') === false))
- {
- continue;
- }
- $contents = file_get_contents(ROOT . '/' . $file);
- $contents = preg_replace('#^.*?([A-Z][A-Z_]+=)#s', '\1', $contents);
- $lines = explode("\n", $contents);
- $keys = array();
- foreach ($lines as $line)
- {
- if (!$line || (strpos($line, '=') === false))
- {
- continue;
- }
- $line = explode('=', $line, 2);
- $keys[$line['0']] = $line['1'];
- }
- if (empty($keys))
- {
- continue;
- }
- ksort($keys);
- $language_keys[$file] = $keys;
- }
- return $language_keys;
- }
- function getLanguageUnusedKeys($file_folders, $language_files)
- {
- $language_keys = getLanguageKeys($language_files);
- foreach ($file_folders as $folder)
- {
- if (empty($language_keys))
- {
- break;
- }
- if (!is_dir(ROOT . '/' .$folder))
- {
- continue;
- }
- $files = listdir(ROOT . '/' . $folder);
- sort($files, SORT_LOCALE_STRING);
- foreach ($files as $file)
- {
- if (empty($language_keys))
- {
- break;
- }
- if ((strpos($file, '.php') === false) && (strpos($file, '.xml') === false))
- {
- continue;
- }
- removeUsedKeys($file, $language_keys);
- }
- }
- return $language_keys;
- }
- function removeUsedKeys($file, &$language_keys)
- {
- $contents = file_get_contents($file);
- foreach ($language_keys as $path => $keys)
- {
- foreach ($keys as $key => $value)
- {
- if (!preg_match('#[^A-Z0-9]' . $key . '[^A-Z0-9]#s', $contents))
- {
- continue;
- }
- unset($language_keys[$path][$key]);
- }
- if (empty($language_keys[$path]))
- {
- unset($language_keys[$path]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement