Example #1
0
 /**
  * @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);
 }
Example #2
0
 /**
  * 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);
 }