mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 07:15:13 +00:00
86 lines
2.3 KiB
PHP
86 lines
2.3 KiB
PHP
<?php
|
|
|
|
if (! class_exists('App')) {
|
|
class App
|
|
{
|
|
public static $rtl;
|
|
public static $strings = array();
|
|
}
|
|
}
|
|
|
|
if ($argc != 2) {
|
|
print 'Usage: ' . $argv[0] . " <strings.php>\n\n";
|
|
return;
|
|
}
|
|
|
|
$phpfile = $argv[1];
|
|
$pofile = dirname($phpfile) . '/messages.po';
|
|
|
|
if (!file_exists($phpfile)) {
|
|
print "Unable to find '$phpfile'\n";
|
|
return;
|
|
}
|
|
|
|
include_once($phpfile);
|
|
|
|
print "Out to '$pofile'\n";
|
|
|
|
$out = '';
|
|
$infile = file($pofile);
|
|
$k = '';
|
|
$c = '';
|
|
$ink = false;
|
|
foreach ($infile as $l) {
|
|
$l = trim($l, ' ');
|
|
if (!preg_match('/^msgstr\[[1-9]/', $l)) {
|
|
if ($k != '' && (substr($l, 0, 7) == 'msgstr ' || substr($l, 0, 8) == 'msgstr[0')) {
|
|
$ink = false;
|
|
$k = stripcslashes($k);
|
|
$v = '';
|
|
if (isset(App::$strings[$k])) {
|
|
$v = App::$strings[$k];
|
|
} else {
|
|
$k = '__ctx:' . $c . '__ ' . $k;
|
|
if (isset(App::$strings[$k])) {
|
|
$v = App::$strings[$k];
|
|
$c = '';
|
|
}
|
|
}
|
|
if (!empty($v)) {
|
|
if (is_array($v)) {
|
|
$l = '';
|
|
$n = 0;
|
|
foreach ($v as &$value) {
|
|
$l .= 'msgstr[' . $n . "] \"" . addcslashes($value, "\"\n") . "\"\n";
|
|
$n++;
|
|
}
|
|
} else {
|
|
$l = "msgstr \"" . addcslashes($v, "\"\n") . "\"\n";
|
|
}
|
|
}
|
|
}
|
|
|
|
if (substr($l, 0, 6) == 'msgid_' || substr($l, 0, 7) == 'msgstr[') {
|
|
$ink = false;
|
|
}
|
|
|
|
if ($ink) {
|
|
preg_match('/^"(.*)"$/', $l, $m);
|
|
$k .= $m[1];
|
|
}
|
|
|
|
if (substr($l, 0, 6) == 'msgid ') {
|
|
preg_match('/^msgid "(.*)"$/', $l, $m);
|
|
$k = $m[1];
|
|
$ink = true;
|
|
}
|
|
|
|
if (substr($l, 0, 8) == 'msgctxt ') {
|
|
preg_match('/^msgctxt "(.*)"$/', $l, $m);
|
|
$c = $m[1];
|
|
}
|
|
|
|
$out .= $l;
|
|
}
|
|
}
|
|
file_put_contents($pofile, $out);
|