summaryrefslogtreecommitdiff
path: root/scripts/sync-locales.php
blob: 181686b7b14a40fe8ffbde7f469478108935ae53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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 (isset($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));
    }
}