| <?php | 
 |  | 
 | function array_diff_key_recursive (array $arr1, array $arr2) { | 
 |   $diff = array_diff_key($arr1, $arr2); | 
 |   $intersect = array_intersect_key($arr1, $arr2); | 
 |  | 
 |   foreach ($intersect as $k => $v) { | 
 |     if (is_array($arr1[$k]) && is_array($arr2[$k])) { | 
 |       $d = array_diff_key_recursive($arr1[$k], $arr2[$k]); | 
 |  | 
 |       if ($d) { | 
 |         $diff[$k] = $d; | 
 |       } | 
 |     } | 
 |   } | 
 |  | 
 |   return $diff; | 
 | } | 
 |  | 
 | // target lang | 
 | $targetLang = $argv[1]; | 
 |  | 
 | if(empty($targetLang)) { | 
 |   die('Please specify target lang as the first argument, to which you want to add missing keys from master lang (EN). Use the lowercase name, | 
 |   for example `sk` for the Slovak language'."\n"); | 
 | } | 
 |  | 
 | // load master lang | 
 | $masterLang = file_get_contents(__DIR__.'/../data/web/lang/lang.en-gb.json'); | 
 | $masterLang = json_decode($masterLang, true); | 
 |  | 
 | // load target lang | 
 | $lang = file_get_contents(__DIR__.'/../data/web/lang/lang.'.$targetLang.'.json'); | 
 | $lang = json_decode($lang, true); | 
 |  | 
 | // compare lang keys | 
 | $result = array_diff_key_recursive($masterLang, $lang); | 
 |  | 
 | if(empty($result)) { | 
 |   die('No new keys were added. Looks like target lang is up to date.'."\n"); | 
 | } | 
 |  | 
 | foreach($result as $key => $val) { | 
 |   // check if section key exists in target lang | 
 |   if(array_key_exists($key, $lang)) { | 
 |     // add only missing section keys | 
 |     foreach ($val as $k => $v) { | 
 |       $lang[$key][$k] = $v; | 
 |     } | 
 |     // sort keys | 
 |     ksort($lang[$key]); | 
 |   } else { | 
 |     // add whole section | 
 |     $lang[$key] = $val; | 
 |     ksort($lang); | 
 |   } | 
 | } | 
 |  | 
 | $lang = json_encode($lang, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); | 
 | file_put_contents(__DIR__.'/../data/web/lang/lang.'.$targetLang.'.json', $lang); | 
 |  | 
 | echo 'Following new lang keys were added and need translation:'."\n"; | 
 | print_r($result); |