You are here

PoFileDumper.php in Plug 7

File

lib/Symfony/translation/Dumper/PoFileDumper.php
View source
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Symfony\Component\Translation\Dumper;

use Symfony\Component\Translation\MessageCatalogue;

/**
 * PoFileDumper generates a gettext formatted string representation of a message catalogue.
 *
 * @author Stealth35
 */
class PoFileDumper extends FileDumper {

  /**
   * {@inheritdoc}
   */
  public function format(MessageCatalogue $messages, $domain = 'messages') {
    $output = 'msgid ""' . "\n";
    $output .= 'msgstr ""' . "\n";
    $output .= '"Content-Type: text/plain; charset=UTF-8\\n"' . "\n";
    $output .= '"Content-Transfer-Encoding: 8bit\\n"' . "\n";
    $output .= '"Language: ' . $messages
      ->getLocale() . '\\n"' . "\n";
    $output .= "\n";
    $newLine = false;
    foreach ($messages
      ->all($domain) as $source => $target) {
      if ($newLine) {
        $output .= "\n";
      }
      else {
        $newLine = true;
      }
      $output .= sprintf('msgid "%s"' . "\n", $this
        ->escape($source));
      $output .= sprintf('msgstr "%s"', $this
        ->escape($target));
    }
    return $output;
  }

  /**
   * {@inheritdoc}
   */
  protected function getExtension() {
    return 'po';
  }
  private function escape($str) {
    return addcslashes($str, "\0..\37\"\\");
  }

}

Classes

Namesort descending Description
PoFileDumper PoFileDumper generates a gettext formatted string representation of a message catalogue.