Advertisement
Guest User

Untitled

a guest
Nov 29th, 2015
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.17 KB | None | 0 0
  1. <?php
  2. define('ROOT', 'path/to/your/web/folder');
  3. $language_files = array(
  4. 'administrator/language/en-GB/en-GB.com_rdsubs.ini',
  5. 'administrator/language/en-GB/en-GB.com_rdsubs.sys.ini',
  6. 'language/en-GB/en-GB.com_rdsubs.ini',
  7. 'language/en-GB/en-GB.com_rdsubs.sys.ini',
  8. );
  9. $file_folders = array(
  10. 'administrator/components/com_rdsubs',
  11. 'components/com_rdsubs',
  12. );
  13. /* ====================================*/
  14.  
  15. require_once '../functions.php';
  16.  
  17. $unused_keys = getLanguageUnusedKeys($file_folders, $language_files);
  18. echo "<pre>\n";
  19. print_r($unused_keys);
  20. echo "\n</pre>";
  21.  
  22. function getLanguageKeys($files)
  23. {
  24. $language_keys = array();
  25.  
  26. foreach ($files as $file)
  27. {
  28. if ((strpos($file, '.ini') === false))
  29. {
  30. continue;
  31. }
  32.  
  33. $contents = file_get_contents(ROOT . '/' . $file);
  34.  
  35. $contents = preg_replace('#^.*?([A-Z][A-Z_]+=)#s', '\1', $contents);
  36.  
  37. $lines = explode("\n", $contents);
  38.  
  39. $keys = array();
  40.  
  41. foreach ($lines as $line)
  42. {
  43. if (!$line || (strpos($line, '=') === false))
  44. {
  45. continue;
  46. }
  47.  
  48. $line = explode('=', $line, 2);
  49.  
  50. $keys[$line['0']] = $line['1'];
  51. }
  52.  
  53. if (empty($keys))
  54. {
  55. continue;
  56. }
  57.  
  58. ksort($keys);
  59.  
  60. $language_keys[$file] = $keys;
  61. }
  62.  
  63. return $language_keys;
  64. }
  65.  
  66. function getLanguageUnusedKeys($file_folders, $language_files)
  67. {
  68. $language_keys = getLanguageKeys($language_files);
  69.  
  70. foreach ($file_folders as $folder)
  71. {
  72. if (empty($language_keys))
  73. {
  74. break;
  75. }
  76.  
  77. if (!is_dir(ROOT . '/' .$folder))
  78. {
  79. continue;
  80. }
  81.  
  82. $files = listdir(ROOT . '/' . $folder);
  83. sort($files, SORT_LOCALE_STRING);
  84.  
  85. foreach ($files as $file)
  86. {
  87. if (empty($language_keys))
  88. {
  89. break;
  90. }
  91.  
  92. if ((strpos($file, '.php') === false) && (strpos($file, '.xml') === false))
  93. {
  94. continue;
  95. }
  96.  
  97. removeUsedKeys($file, $language_keys);
  98. }
  99. }
  100.  
  101. return $language_keys;
  102. }
  103.  
  104. function removeUsedKeys($file, &$language_keys)
  105. {
  106. $contents = file_get_contents($file);
  107.  
  108. foreach ($language_keys as $path => $keys)
  109. {
  110. foreach ($keys as $key => $value)
  111. {
  112. if (!preg_match('#[^A-Z0-9]' . $key . '[^A-Z0-9]#s', $contents))
  113. {
  114. continue;
  115. }
  116.  
  117. unset($language_keys[$path][$key]);
  118. }
  119.  
  120. if (empty($language_keys[$path]))
  121. {
  122. unset($language_keys[$path]);
  123. }
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement