class IcuResFileDumper in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/translation/Dumper/IcuResFileDumper.php \Symfony\Component\Translation\Dumper\IcuResFileDumper
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 vendor/
symfony/ translation/ Tests/ Dumper/ IcuResFileDumperTest.php
File
- vendor/
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:: |
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 |