function save($file = null)
{
if (!isset($file)) {
$file = $this->file;
}
// open PO file
if (!is_resource($fh = @fopen($file, 'w'))) {
return false;
}
// lock PO file exclusively
if (!flock($fh, LOCK_EX)) {
fclose($fh);
return false;
}
// write meta info
if (count($this->meta)) {
$meta = 'msgid ""' . "\nmsgstr " . '""' . "\n";
foreach ($this->meta as $k => $v) {
$meta .= '"' . $k . ': ' . $v . '\\n"' . "\n";
}
fwrite($fh, $meta . "\n");
}
// write strings
foreach ($this->strings as $o => $t) {
fwrite($fh, 'msgid "' . parent::prepare($o, true) . '"' . "\n" . 'msgstr "' . parent::prepare($t, true) . '"' . "\n\n");
}
//done
@flock($fh, LOCK_UN);
@fclose($fh);
chmod($file, PRADO_CHMOD);
return true;
}