PO::export_entry( Translation_Entry $entry ): string|false

In this article

Builds a string from the entry for inclusion in PO file

Parameters

$entryTranslation_Entryrequired
the entry to convert to po string.

Return

string|false PO-style formatted string for the entry or false if the entry is empty

Source

public static function export_entry( $entry ) {
	if ( null === $entry->singular || '' === $entry->singular ) {
		return false;
	}
	$po = array();
	if ( ! empty( $entry->translator_comments ) ) {
		$po[] = PO::comment_block( $entry->translator_comments );
	}
	if ( ! empty( $entry->extracted_comments ) ) {
		$po[] = PO::comment_block( $entry->extracted_comments, '.' );
	}
	if ( ! empty( $entry->references ) ) {
		$po[] = PO::comment_block( implode( ' ', $entry->references ), ':' );
	}
	if ( ! empty( $entry->flags ) ) {
		$po[] = PO::comment_block( implode( ', ', $entry->flags ), ',' );
	}
	if ( $entry->context ) {
		$po[] = 'msgctxt ' . PO::poify( $entry->context );
	}
	$po[] = 'msgid ' . PO::poify( $entry->singular );
	if ( ! $entry->is_plural ) {
		$translation = empty( $entry->translations ) ? '' : $entry->translations[0];
		$translation = PO::match_begin_and_end_newlines( $translation, $entry->singular );
		$po[]        = 'msgstr ' . PO::poify( $translation );
	} else {
		$po[]         = 'msgid_plural ' . PO::poify( $entry->plural );
		$translations = empty( $entry->translations ) ? array( '', '' ) : $entry->translations;
		foreach ( $translations as $i => $translation ) {
			$translation = PO::match_begin_and_end_newlines( $translation, $entry->plural );
			$po[]        = "msgstr[$i] " . PO::poify( $translation );
		}
	}
	return implode( "\n", $po );
}

User Contributed Notes

You must log in before being able to contribute a note or feedback.