/** * @dataProvider data_match_begin_and_end_newlines */ function test_match_begin_and_end_newlines($original, $translation, $expected_translation, $message) { $this->assertEquals($expected_translation, PO::match_begin_and_end_newlines($translation, $original), $message); }
/** * Builds a string from the entry for inclusion in PO file * * @static * @param object &$entry the entry to convert to po string * @return string|bool PO-style formatted string for the entry or * false if the entry is empty */ 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); }