} } } // 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);
$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); }