}
     }
 }
 // now we can write locale.php
 $fp = fopen(__DIR__ . "/" . $locale . ".php", "w");
 if ($is_utf8) {
     // put back UTF-8 header
     fwrite($fp, "");
 }
 fwrite($fp, "<?php\n\n/**\n * {$locale} template file\n * Generated from '{$file}' at " . date('r') . "\n */\n\n");
 fwrite($fp, '$' . "result = array(\n");
 for ($i = 0; $i < count($input); $i++) {
     $input_replaced = preg_replace("/<([a-z0-9_]+)>/i", ":\\1", $input[$i]);
     $translation_replaced = preg_replace("/<([a-z0-9_]+)>/i", ":\\1", $translated[$i]);
     $translation_replaced = trim($translation_replaced);
     fwrite($fp, "\t\"" . phpescapestring($input_replaced) . "\" => \"" . phpescapestring($translation_replaced) . "\",\n");
 }
 fwrite($fp, ");\n");
 fclose($fp);
 // also write a locale_locale.json for loading into Transifex
 $fp = fopen(__DIR__ . "/translated/locale_" . $locale . ".json", "w");
 // no UTF-8 header; json_encode will deal with UTF-8
 fwrite($fp, "{");
 for ($i = 0; $i < count($input); $i++) {
     $input_replaced = preg_replace("/<([a-z0-9_]+)>/i", ":\\1", $input[$i]);
     $translation_replaced = preg_replace("/<([a-z0-9_]+)>/i", ":\\1", $translated[$i]);
     $translation_replaced = trim($translation_replaced);
     fwrite($fp, ($i == 0 ? "" : ",") . "\n\t" . json_encode($input_replaced) . ": " . json_encode($translation_replaced));
 }
 fwrite($fp, "\n}");
 fclose($fp);
Exemple #2
0
        $matches = false;
        if (preg_match("/_([a-z@]+).json\$/i", $file, $matches) && !preg_match("/^locale_/i", $file)) {
            $locale = $matches[1];
            // switch over specific locales
            switch ($locale) {
                case "en@lolcat":
                    $locale = "lolcat";
                    continue;
            }
            if ($languages && !in_array($locale, $languages)) {
                echo "skipping locale {$locale}\n";
                continue;
            }
            echo $dir . $file . " -> " . $locale . "\n";
            $json = json_decode(file_get_contents($dir . $file));
            if (!$json) {
                throw new Exception("Could not load {$dir}{$file}: invalid JSON");
            }
            // now write locale.php
            $fp = fopen(__DIR__ . "/" . $locale . ".php", "w");
            fwrite($fp, "<?php\n\n/**\n * {$locale} template file\n * Generated from '{$file}' at " . date('r') . "\n */\n\n");
            fwrite($fp, '$' . "result = array(\n");
            foreach ($json as $key => $value) {
                fwrite($fp, "\t\"" . phpescapestring($key) . "\" => \"" . phpescapestring($value) . "\",\n");
            }
            fwrite($fp, ");\n");
            fclose($fp);
        }
    }
    closedir($dh);
}