Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/translation/Loader/PoFileLoader.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 |
---|---|
74 $flags = array(); | 74 $flags = array(); |
75 | 75 |
76 while ($line = fgets($stream)) { | 76 while ($line = fgets($stream)) { |
77 $line = trim($line); | 77 $line = trim($line); |
78 | 78 |
79 if ($line === '') { | 79 if ('' === $line) { |
80 // Whitespace indicated current item is done | 80 // Whitespace indicated current item is done |
81 if (!in_array('fuzzy', $flags)) { | 81 if (!in_array('fuzzy', $flags)) { |
82 $this->addMessage($messages, $item); | 82 $this->addMessage($messages, $item); |
83 } | 83 } |
84 $item = $defaults; | 84 $item = $defaults; |
85 $flags = array(); | 85 $flags = array(); |
86 } elseif (substr($line, 0, 2) === '#,') { | 86 } elseif ('#,' === substr($line, 0, 2)) { |
87 $flags = array_map('trim', explode(',', substr($line, 2))); | 87 $flags = array_map('trim', explode(',', substr($line, 2))); |
88 } elseif (substr($line, 0, 7) === 'msgid "') { | 88 } elseif ('msgid "' === substr($line, 0, 7)) { |
89 // We start a new msg so save previous | 89 // We start a new msg so save previous |
90 // TODO: this fails when comments or contexts are added | 90 // TODO: this fails when comments or contexts are added |
91 $this->addMessage($messages, $item); | 91 $this->addMessage($messages, $item); |
92 $item = $defaults; | 92 $item = $defaults; |
93 $item['ids']['singular'] = substr($line, 7, -1); | 93 $item['ids']['singular'] = substr($line, 7, -1); |
94 } elseif (substr($line, 0, 8) === 'msgstr "') { | 94 } elseif ('msgstr "' === substr($line, 0, 8)) { |
95 $item['translated'] = substr($line, 8, -1); | 95 $item['translated'] = substr($line, 8, -1); |
96 } elseif ($line[0] === '"') { | 96 } elseif ('"' === $line[0]) { |
97 $continues = isset($item['translated']) ? 'translated' : 'ids'; | 97 $continues = isset($item['translated']) ? 'translated' : 'ids'; |
98 | 98 |
99 if (is_array($item[$continues])) { | 99 if (is_array($item[$continues])) { |
100 end($item[$continues]); | 100 end($item[$continues]); |
101 $item[$continues][key($item[$continues])] .= substr($line, 1, -1); | 101 $item[$continues][key($item[$continues])] .= substr($line, 1, -1); |
102 } else { | 102 } else { |
103 $item[$continues] .= substr($line, 1, -1); | 103 $item[$continues] .= substr($line, 1, -1); |
104 } | 104 } |
105 } elseif (substr($line, 0, 14) === 'msgid_plural "') { | 105 } elseif ('msgid_plural "' === substr($line, 0, 14)) { |
106 $item['ids']['plural'] = substr($line, 14, -1); | 106 $item['ids']['plural'] = substr($line, 14, -1); |
107 } elseif (substr($line, 0, 7) === 'msgstr[') { | 107 } elseif ('msgstr[' === substr($line, 0, 7)) { |
108 $size = strpos($line, ']'); | 108 $size = strpos($line, ']'); |
109 $item['translated'][(int) substr($line, 7, 1)] = substr($line, $size + 3, -1); | 109 $item['translated'][(int) substr($line, 7, 1)] = substr($line, $size + 3, -1); |
110 } | 110 } |
111 } | 111 } |
112 // save last item | 112 // save last item |
121 /** | 121 /** |
122 * Save a translation item to the messages. | 122 * Save a translation item to the messages. |
123 * | 123 * |
124 * A .po file could contain by error missing plural indexes. We need to | 124 * A .po file could contain by error missing plural indexes. We need to |
125 * fix these before saving them. | 125 * fix these before saving them. |
126 * | |
127 * @param array $messages | |
128 * @param array $item | |
129 */ | 126 */ |
130 private function addMessage(array &$messages, array $item) | 127 private function addMessage(array &$messages, array $item) |
131 { | 128 { |
132 if (is_array($item['translated'])) { | 129 if (is_array($item['translated'])) { |
133 $messages[stripcslashes($item['ids']['singular'])] = stripcslashes($item['translated'][0]); | 130 $messages[stripcslashes($item['ids']['singular'])] = stripcslashes($item['translated'][0]); |