Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/translation/Dumper/IcuResFileDumper.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | 7a779792577d |
children |
comparison
equal
deleted
inserted
replaced
16:c2387f117808 | 17:129ea1e6d783 |
---|---|
26 protected $relativePathTemplate = '%domain%/%locale%.%extension%'; | 26 protected $relativePathTemplate = '%domain%/%locale%.%extension%'; |
27 | 27 |
28 /** | 28 /** |
29 * {@inheritdoc} | 29 * {@inheritdoc} |
30 */ | 30 */ |
31 public function formatCatalogue(MessageCatalogue $messages, $domain, array $options = array()) | 31 public function formatCatalogue(MessageCatalogue $messages, $domain, array $options = []) |
32 { | 32 { |
33 $data = $indexes = $resources = ''; | 33 $data = $indexes = $resources = ''; |
34 | 34 |
35 foreach ($messages->all($domain) as $source => $target) { | 35 foreach ($messages->all($domain) as $source => $target) { |
36 $indexes .= pack('v', strlen($data) + 28); | 36 $indexes .= pack('v', \strlen($data) + 28); |
37 $data .= $source."\0"; | 37 $data .= $source."\0"; |
38 } | 38 } |
39 | 39 |
40 $data .= $this->writePadding($data); | 40 $data .= $this->writePadding($data); |
41 | 41 |
42 $keyTop = $this->getPosition($data); | 42 $keyTop = $this->getPosition($data); |
43 | 43 |
44 foreach ($messages->all($domain) as $source => $target) { | 44 foreach ($messages->all($domain) as $source => $target) { |
45 $resources .= pack('V', $this->getPosition($data)); | 45 $resources .= pack('V', $this->getPosition($data)); |
46 | 46 |
47 $data .= pack('V', strlen($target)) | 47 $data .= pack('V', \strlen($target)) |
48 .mb_convert_encoding($target."\0", 'UTF-16LE', 'UTF-8') | 48 .mb_convert_encoding($target."\0", 'UTF-16LE', 'UTF-8') |
49 .$this->writePadding($data) | 49 .$this->writePadding($data) |
50 ; | 50 ; |
51 } | 51 } |
52 | 52 |
53 $resOffset = $this->getPosition($data); | 53 $resOffset = $this->getPosition($data); |
54 | 54 |
55 $data .= pack('v', count($messages->all($domain))) | 55 $data .= pack('v', \count($messages->all($domain))) |
56 .$indexes | 56 .$indexes |
57 .$this->writePadding($data) | 57 .$this->writePadding($data) |
58 .$resources | 58 .$resources |
59 ; | 59 ; |
60 | 60 |
64 $resOffset + (2 << 28), // Resource Offset + Resource Type | 64 $resOffset + (2 << 28), // Resource Offset + Resource Type |
65 6, // Index length | 65 6, // Index length |
66 $keyTop, // Index keys top | 66 $keyTop, // Index keys top |
67 $bundleTop, // Index resources top | 67 $bundleTop, // Index resources top |
68 $bundleTop, // Index bundle top | 68 $bundleTop, // Index bundle top |
69 count($messages->all($domain)), // Index max table length | 69 \count($messages->all($domain)), // Index max table length |
70 0 // Index attributes | 70 0 // Index attributes |
71 ); | 71 ); |
72 | 72 |
73 $header = pack('vC2v4C12@32', | 73 $header = pack('vC2v4C12@32', |
74 32, // Header size | 74 32, // Header size |
82 return $header.$root.$data; | 82 return $header.$root.$data; |
83 } | 83 } |
84 | 84 |
85 private function writePadding($data) | 85 private function writePadding($data) |
86 { | 86 { |
87 $padding = strlen($data) % 4; | 87 $padding = \strlen($data) % 4; |
88 | 88 |
89 if ($padding) { | 89 if ($padding) { |
90 return str_repeat("\xAA", 4 - $padding); | 90 return str_repeat("\xAA", 4 - $padding); |
91 } | 91 } |
92 } | 92 } |
93 | 93 |
94 private function getPosition($data) | 94 private function getPosition($data) |
95 { | 95 { |
96 return (strlen($data) + 28) / 4; | 96 return (\strlen($data) + 28) / 4; |
97 } | 97 } |
98 | 98 |
99 /** | 99 /** |
100 * {@inheritdoc} | 100 * {@inheritdoc} |
101 */ | 101 */ |