class IcuResFileDumper in Plug 7
IcuResDumper generates an ICU ResourceBundle formatted string representation of a message catalogue.
@author Stealth35
Hierarchy
- class \Symfony\Component\Translation\Dumper\FileDumper implements DumperInterface
- class \Symfony\Component\Translation\Dumper\IcuResFileDumper
 
 
Expanded class hierarchy of IcuResFileDumper
1 file declares its use of IcuResFileDumper
- IcuResFileDumperTest.php in lib/
Symfony/ translation/ Tests/ Dumper/ IcuResFileDumperTest.php  
File
- lib/
Symfony/ translation/ Dumper/ IcuResFileDumper.php, line 21  
Namespace
Symfony\Component\Translation\DumperView source
class IcuResFileDumper extends FileDumper {
  /**
   * {@inheritdoc}
   */
  protected $relativePathTemplate = '%domain%/%locale%.%extension%';
  /**
   * {@inheritdoc}
   */
  public function format(MessageCatalogue $messages, $domain = 'messages') {
    $data = $indexes = $resources = '';
    foreach ($messages
      ->all($domain) as $source => $target) {
      $indexes .= pack('v', strlen($data) + 28);
      $data .= $source . "\0";
    }
    $data .= $this
      ->writePadding($data);
    $keyTop = $this
      ->getPosition($data);
    foreach ($messages
      ->all($domain) as $source => $target) {
      $resources .= pack('V', $this
        ->getPosition($data));
      $data .= pack('V', strlen($target)) . mb_convert_encoding($target . "\0", 'UTF-16LE', 'UTF-8') . $this
        ->writePadding($data);
    }
    $resOffset = $this
      ->getPosition($data);
    $data .= pack('v', count($messages)) . $indexes . $this
      ->writePadding($data) . $resources;
    $bundleTop = $this
      ->getPosition($data);
    $root = pack('V7', $resOffset + (2 << 28), 6, $keyTop, $bundleTop, $bundleTop, count($messages), 0);
    $header = pack('vC2v4C12@32', 32, 0xda, 0x27, 20, 0, 0, 2, 0x52, 0x65, 0x73, 0x42, 1, 2, 0, 0, 1, 4, 0, 0);
    $output = $header . $root . $data;
    return $output;
  }
  private function writePadding($data) {
    $padding = strlen($data) % 4;
    if ($padding) {
      return str_repeat("", 4 - $padding);
    }
  }
  private function getPosition($data) {
    $position = (strlen($data) + 28) / 4;
    return $position;
  }
  /**
   * {@inheritdoc}
   */
  protected function getExtension() {
    return 'res';
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            FileDumper:: | 
                  private | property | Make file backup before the dump. | |
| 
            FileDumper:: | 
                  public | function | 
            Dumps the message catalogue. Overrides DumperInterface:: | 
                  1 | 
| 
            FileDumper:: | 
                  protected | function | Transforms a domain of a message catalogue to its string representation. | 1 | 
| 
            FileDumper:: | 
                  private | function | Gets the relative file path using the template. | |
| 
            FileDumper:: | 
                  public | function | Sets backup flag. | |
| 
            FileDumper:: | 
                  public | function | Sets the template for the relative paths to files. | |
| 
            IcuResFileDumper:: | 
                  protected | property | 
            A template for the relative paths to files. Overrides FileDumper:: | 
                  |
| 
            IcuResFileDumper:: | 
                  public | function | 
            Transforms a domain of a message catalogue to its string representation. Overrides FileDumper:: | 
                  |
| 
            IcuResFileDumper:: | 
                  protected | function | 
            Gets the file extension of the dumper. Overrides FileDumper:: | 
                  |
| 
            IcuResFileDumper:: | 
                  private | function | ||
| 
            IcuResFileDumper:: | 
                  private | function |