/**
* Class for working with MO files
*
- * @version $Id: mo.php 718 2012-10-31 00:32:02Z nbachiyski $
+ * @version $Id: mo.php 1157 2015-11-20 04:30:11Z dd32 $
* @package pomo
* @subpackage mo
*/
require_once dirname(__FILE__) . '/translations.php';
require_once dirname(__FILE__) . '/streams.php';
-if ( !class_exists( 'MO' ) ):
+if ( ! class_exists( 'MO', false ) ):
class MO extends Gettext_Translations {
var $_nplurals = 2;
return $this->import_from_reader($reader);
}
+ /**
+ * @param string $filename
+ * @return bool
+ */
function export_to_file($filename) {
$fh = fopen($filename, 'wb');
if ( !$fh ) return false;
return $res;
}
+ /**
+ * @return string|false
+ */
function export() {
$tmp_fh = fopen("php://temp", 'r+');
if ( !$tmp_fh ) return false;
return stream_get_contents( $tmp_fh );
}
+ /**
+ * @param Translation_Entry $entry
+ * @return bool
+ */
function is_entry_good_for_export( $entry ) {
if ( empty( $entry->translations ) ) {
return false;
return true;
}
+ /**
+ * @param resource $fh
+ * @return true
+ */
function export_to_file_handle($fh) {
$entries = array_filter( $this->entries, array( $this, 'is_entry_good_for_export' ) );
ksort($entries);
return true;
}
+ /**
+ * @param Translation_Entry $entry
+ * @return string
+ */
function export_original($entry) {
//TODO: warnings for control characters
$exported = $entry->singular;
if ($entry->is_plural) $exported .= chr(0).$entry->plural;
- if (!is_null($entry->context)) $exported = $entry->context . chr(4) . $exported;
+ if ($entry->context) $exported = $entry->context . chr(4) . $exported;
return $exported;
}
+ /**
+ * @param Translation_Entry $entry
+ * @return string
+ */
function export_translations($entry) {
//TODO: warnings for control characters
- return implode(chr(0), $entry->translations);
+ return $entry->is_plural ? implode(chr(0), $entry->translations) : $entry->translations[0];
}
+ /**
+ * @return string
+ */
function export_headers() {
$exported = '';
foreach($this->headers as $header => $value) {
return $exported;
}
+ /**
+ * @param int $magic
+ * @return string|false
+ */
function get_byteorder($magic) {
// The magic is 0x950412de
return $entry;
}
+ /**
+ * @param int $count
+ * @return string
+ */
function select_plural_form($count) {
return $this->gettext_select_plural_form($count);
}
+ /**
+ * @return int
+ */
function get_plural_forms_count() {
return $this->_nplurals;
}