mirror of
https://github.com/itflow-org/itflow
synced 2026-09-21 14:11:17 +00:00
Bump imapengine from 1.25.4 to 1.25.6 and dependencies
This commit is contained in:
@@ -55,6 +55,7 @@ class PoFileLoader extends FileLoader
|
||||
* - No support for comments spanning multiple lines.
|
||||
* - Translator and extracted comments are treated as being the same type.
|
||||
* - Message IDs are allowed to have other encodings as just US-ASCII.
|
||||
* - Contexts (msgctxt) are parsed but discarded.
|
||||
*
|
||||
* Items with an empty id are ignored.
|
||||
*/
|
||||
@@ -65,6 +66,7 @@ class PoFileLoader extends FileLoader
|
||||
$defaults = [
|
||||
'ids' => [],
|
||||
'translated' => null,
|
||||
'context' => null,
|
||||
];
|
||||
|
||||
$messages = [];
|
||||
@@ -76,23 +78,28 @@ class PoFileLoader extends FileLoader
|
||||
|
||||
if ('' === $line) {
|
||||
// Whitespace indicated current item is done
|
||||
if (!\in_array('fuzzy', $flags, true)) {
|
||||
$this->addMessage($messages, $item);
|
||||
}
|
||||
$item = $defaults;
|
||||
$flags = [];
|
||||
$this->saveItem($messages, $item, $flags, $defaults);
|
||||
} elseif (str_starts_with($line, '#,')) {
|
||||
// flags belong to the next entry, so the previous one ends here
|
||||
if (null !== $item['translated']) {
|
||||
$this->saveItem($messages, $item, $flags, $defaults);
|
||||
}
|
||||
$flags = array_map('trim', explode(',', substr($line, 2)));
|
||||
} elseif (str_starts_with($line, 'msgctxt "')) {
|
||||
if (null !== $item['translated']) {
|
||||
$this->saveItem($messages, $item, $flags, $defaults);
|
||||
}
|
||||
$item['context'] = substr($line, 9, -1);
|
||||
} elseif (str_starts_with($line, 'msgid "')) {
|
||||
// We start a new msg so save previous
|
||||
// TODO: this fails when comments or contexts are added
|
||||
$this->addMessage($messages, $item);
|
||||
$item = $defaults;
|
||||
if ($item['ids']) {
|
||||
$this->saveItem($messages, $item, $flags, $defaults);
|
||||
}
|
||||
$item['ids']['singular'] = substr($line, 7, -1);
|
||||
} elseif (str_starts_with($line, 'msgstr "')) {
|
||||
$item['translated'] = substr($line, 8, -1);
|
||||
} elseif ('"' === $line[0]) {
|
||||
$continues = isset($item['translated']) ? 'translated' : 'ids';
|
||||
$continues = isset($item['translated']) ? 'translated' : ($item['ids'] ? 'ids' : 'context');
|
||||
|
||||
if (\is_array($item[$continues])) {
|
||||
end($item[$continues]);
|
||||
@@ -108,14 +115,21 @@ class PoFileLoader extends FileLoader
|
||||
}
|
||||
}
|
||||
// save last item
|
||||
if (!\in_array('fuzzy', $flags, true)) {
|
||||
$this->addMessage($messages, $item);
|
||||
}
|
||||
$this->saveItem($messages, $item, $flags, $defaults);
|
||||
fclose($stream);
|
||||
|
||||
return $messages;
|
||||
}
|
||||
|
||||
private function saveItem(array &$messages, array &$item, array &$flags, array $defaults): void
|
||||
{
|
||||
if (!\in_array('fuzzy', $flags, true)) {
|
||||
$this->addMessage($messages, $item);
|
||||
}
|
||||
$item = $defaults;
|
||||
$flags = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Save a translation item to the messages.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user