#!/usr/bin/env php
<?php

$reference_lang = 'fr_FR';
$reference_file = 'app/Locale/'.$reference_lang.'/translations.php';
$reference = include $reference_file;


function update_missing_locales(array $reference, $outdated_file)
{
    $outdated = include $outdated_file;

    $output = '<?php'.PHP_EOL.PHP_EOL;
    $output .= 'return array('.PHP_EOL;

    foreach ($reference as $key => $value) {

        if (! empty($outdated[$key])) {
            //$output .= "    '".str_replace("'", "\'", $key)."' => '".str_replace("'", "\'", $value)."',\n";
            $output .= "    '".str_replace("'", "\'", $key)."' => '".str_replace("'", "\'", $outdated[$key])."',\n";
        }
        else {
            //$output .= "    // '".str_replace("'", "\'", $key)."' => '".str_replace("'", "\'", $value)."',\n";
            $output .= "    // '".str_replace("'", "\'", $key)."' => '',\n";
        }
    }

    $output .= ");\n";
    return $output;
}


foreach (new DirectoryIterator('app/Locale') as $fileInfo) {

    if (! $fileInfo->isDot() && $fileInfo->isDir() && $fileInfo->getFilename() !== $reference_lang) {

        $filename = 'app/Locale/'.$fileInfo->getFilename().'/translations.php';

        echo $fileInfo->getFilename().' ('.$filename.')'.PHP_EOL;

        file_put_contents($filename, update_missing_locales($reference, $filename));
    }
}