forked from leftypol/leftypol
tools/inc/lib/jsgettext/: bundle jsgettext library from https://code.google.com/p/jsgettext
This commit is contained in:
parent
47640a0ce8
commit
7ab1ec4caa
6 changed files with 334 additions and 0 deletions
59
tools/inc/lib/jsgettext/jsgettext.php
Normal file
59
tools/inc/lib/jsgettext/jsgettext.php
Normal file
|
@ -0,0 +1,59 @@
|
|||
<?php
|
||||
|
||||
require_once 'JSParser.php';
|
||||
require_once 'PoeditParser.php';
|
||||
|
||||
function buildOptions($args) {
|
||||
$options = array(
|
||||
'files' => array(),
|
||||
'-o' => null,
|
||||
'-k' => '_'
|
||||
);
|
||||
$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['files'][] = $args[$i];
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
return $options;
|
||||
}
|
||||
|
||||
$options = buildOptions($argv);
|
||||
|
||||
if (!file_exists($options['-o']) || !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();
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue