<?php require_once 'PoeditParser.php'; function buildOptions($args) { $options = array('-o' => null, '-i' => null, '-n' => 'l10n'); $len = count($args); $i = 0; while ($i < $len) { if (preg_match('#^-[a-z]$#i', $args[$i])) { $options[$args[$i]] = isset($args[$i + 1]) ? trim($args[$i + 1]) : true; $i += 2; } else { $options[] = $args[$i]; $i++; } } return $options; } $options = buildOptions($argv); if (!file_exists($options['-i']) || !is_readable($options['-i'])) { die("Invalid input file. Make sure it exists and is readable."); } $poeditParser = new PoeditParser($options['-i']); $poeditParser->parse(); if ($poeditParser->toJSON($options['-o'], $options['-n'])) { $strings = count($poeditParser->getStrings()); echo "Successfully exported " . count($strings) . " strings.\n"; } else { echo "Cannor write to file '{$options['-o']}'.\n"; }
} } return $options; } $options = buildOptions($argv); if (!file_exists($options['-o'])) { touch($options['-o']); } if (!is_writable($options['-o'])) { die("Invalid output file name. Make sure it exists and is writable."); } $inputFiles = $options['files']; if (empty($inputFiles)) { die("You did not provide any input file."); } $poeditParser = new PoeditParser($options['-o']); $poeditParser->parse(); $errors = array(); foreach ($inputFiles as $f) { if (!is_readable($f) || !preg_match('#\\.js$#', $f)) { $errors[] = "{$f} is not a valid javascript file."; continue; } $jsparser = new JSParser($f, explode(' ', $options['-k'])); $jsStrings = $jsparser->parse(); $poeditParser->merge($jsStrings); } if (!empty($errors)) { echo "\nThe following errors occured:\n" . implode("\n", $errors) . "\n"; } $poeditParser->save();