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 */