| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- <?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.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);
 
 
  |