Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/translation/Dumper/XliffFileDumper.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
13:5fb285c0d0e3 | 14:1fec387a4317 |
---|---|
83 | 83 |
84 $xliffBody = $xliffFile->appendChild($dom->createElement('body')); | 84 $xliffBody = $xliffFile->appendChild($dom->createElement('body')); |
85 foreach ($messages->all($domain) as $source => $target) { | 85 foreach ($messages->all($domain) as $source => $target) { |
86 $translation = $dom->createElement('trans-unit'); | 86 $translation = $dom->createElement('trans-unit'); |
87 | 87 |
88 $translation->setAttribute('id', md5($source)); | 88 $translation->setAttribute('id', strtr(substr(base64_encode(hash('sha256', $source, true)), 0, 7), '/+', '._')); |
89 $translation->setAttribute('resname', $source); | 89 $translation->setAttribute('resname', $source); |
90 | 90 |
91 $s = $translation->appendChild($dom->createElement('source')); | 91 $s = $translation->appendChild($dom->createElement('source')); |
92 $s->appendChild($dom->createTextNode($source)); | 92 $s->appendChild($dom->createTextNode($source)); |
93 | 93 |
143 $xliffFile = $xliff->appendChild($dom->createElement('file')); | 143 $xliffFile = $xliff->appendChild($dom->createElement('file')); |
144 $xliffFile->setAttribute('id', $domain.'.'.$messages->getLocale()); | 144 $xliffFile->setAttribute('id', $domain.'.'.$messages->getLocale()); |
145 | 145 |
146 foreach ($messages->all($domain) as $source => $target) { | 146 foreach ($messages->all($domain) as $source => $target) { |
147 $translation = $dom->createElement('unit'); | 147 $translation = $dom->createElement('unit'); |
148 $translation->setAttribute('id', md5($source)); | 148 $translation->setAttribute('id', strtr(substr(base64_encode(hash('sha256', $source, true)), 0, 7), '/+', '._')); |
149 $metadata = $messages->getMetadata($source, $domain); | |
150 | |
151 // Add notes section | |
152 if ($this->hasMetadataArrayInfo('notes', $metadata)) { | |
153 $notesElement = $dom->createElement('notes'); | |
154 foreach ($metadata['notes'] as $note) { | |
155 $n = $dom->createElement('note'); | |
156 $n->appendChild($dom->createTextNode(isset($note['content']) ? $note['content'] : '')); | |
157 unset($note['content']); | |
158 | |
159 foreach ($note as $name => $value) { | |
160 $n->setAttribute($name, $value); | |
161 } | |
162 $notesElement->appendChild($n); | |
163 } | |
164 $translation->appendChild($notesElement); | |
165 } | |
149 | 166 |
150 $segment = $translation->appendChild($dom->createElement('segment')); | 167 $segment = $translation->appendChild($dom->createElement('segment')); |
151 | 168 |
152 $s = $segment->appendChild($dom->createElement('source')); | 169 $s = $segment->appendChild($dom->createElement('source')); |
153 $s->appendChild($dom->createTextNode($source)); | 170 $s->appendChild($dom->createTextNode($source)); |
154 | 171 |
155 // Does the target contain characters requiring a CDATA section? | 172 // Does the target contain characters requiring a CDATA section? |
156 $text = 1 === preg_match('/[&<>]/', $target) ? $dom->createCDATASection($target) : $dom->createTextNode($target); | 173 $text = 1 === preg_match('/[&<>]/', $target) ? $dom->createCDATASection($target) : $dom->createTextNode($target); |
157 | 174 |
158 $targetElement = $dom->createElement('target'); | 175 $targetElement = $dom->createElement('target'); |
159 $metadata = $messages->getMetadata($source, $domain); | |
160 if ($this->hasMetadataArrayInfo('target-attributes', $metadata)) { | 176 if ($this->hasMetadataArrayInfo('target-attributes', $metadata)) { |
161 foreach ($metadata['target-attributes'] as $name => $value) { | 177 foreach ($metadata['target-attributes'] as $name => $value) { |
162 $targetElement->setAttribute($name, $value); | 178 $targetElement->setAttribute($name, $value); |
163 } | 179 } |
164 } | 180 } |