Skip to content

Commit

Permalink
Merge pull request #12675 from Iandenh/fix-empty-context
Browse files Browse the repository at this point in the history
Fix MoParser if a message exist with and without context
  • Loading branch information
markstory committed Oct 26, 2018
2 parents 6fa82ae + 86aea26 commit 708dd02
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 18 deletions.
4 changes: 2 additions & 2 deletions src/I18n/Parser/MoFileParser.php
Expand Up @@ -134,9 +134,9 @@ public function parse($resource)
continue;
}

$messages[$singularId] = $singular;
$messages[$singularId]['_context'][''] = $singular;
if ($pluralId !== null) {
$messages[$pluralId] = $plurals;
$messages[$pluralId]['_context'][''] = $plurals;
}
}

Expand Down
80 changes: 64 additions & 16 deletions tests/TestCase/I18n/Parser/MoFileParserTest.php
Expand Up @@ -35,12 +35,24 @@ public function testParse()
$messages = $parser->parse($file);
$this->assertCount(3, $messages);
$expected = [
'%d = 1 (from core)' => '%d = 1 (from core translated)',
'%d = 1 (from core)' => [
'_context' => [
'' => '%d = 1 (from core translated)'
]
],
'%d = 0 or > 1 (from core)' => [
'%d = 1 (from core translated)',
'%d = 0 or > 1 (from core translated)'
'_context' => [
'' => [
'%d = 1 (from core translated)',
'%d = 0 or > 1 (from core translated)'
]
]
],
'Plural Rule 1 (from core)' => 'Plural Rule 1 (from core translated)'
'Plural Rule 1 (from core)' => [
'_context' => [
'' => 'Plural Rule 1 (from core translated)'
]
]
];
$this->assertEquals($expected, $messages);
}
Expand All @@ -57,10 +69,22 @@ public function testParse0()
$messages = $parser->parse($file);
$this->assertCount(3, $messages);
$expected = [
'Plural Rule 1 (from core)' => 'Plural Rule 0 (from core translated)',
'%d = 1 (from core)' => '%d ends with any # (from core translated)',
'Plural Rule 1 (from core)' => [
'_context' => [
'' => 'Plural Rule 0 (from core translated)'
]
],
'%d = 1 (from core)' => [
'_context' => [
'' => '%d ends with any # (from core translated)'
]
],
'%d = 0 or > 1 (from core)' => [
'%d ends with any # (from core translated)',
'_context' => [
'' => [
'%d ends with any # (from core translated)',
]
]
],
];
$this->assertEquals($expected, $messages);
Expand All @@ -78,13 +102,25 @@ public function testParse2()
$messages = $parser->parse($file);
$this->assertCount(3, $messages);
$expected = [
'%d = 1 (from core)' => '%d is 1 (from core translated)',
'%d = 1 (from core)' => [
'_context' => [
'' => '%d is 1 (from core translated)'
]
],
'%d = 0 or > 1 (from core)' => [
'%d is 1 (from core translated)',
'%d ends in 2-4, not 12-14 (from core translated)',
'%d everything else (from core translated)'
'_context' => [
'' => [
'%d is 1 (from core translated)',
'%d ends in 2-4, not 12-14 (from core translated)',
'%d everything else (from core translated)'
]
]
],
'Plural Rule 1 (from core)' => 'Plural Rule 9 (from core translated)'
'Plural Rule 1 (from core)' => [
'_context' => [
'' => 'Plural Rule 9 (from core translated)'
]
]
];
$this->assertEquals($expected, $messages);
}
Expand All @@ -101,7 +137,11 @@ public function testParseFull()
$messages = $parser->parse($file);
$this->assertCount(5, $messages);
$expected = [
'Plural Rule 1' => 'Plural Rule 1 (translated)',
'Plural Rule 1' => [
'_context' => [
'' => 'Plural Rule 1 (translated)'
]
],
'%d = 1' => [
'_context' => [
'This is the context' => 'First Context trasnlation',
Expand All @@ -116,10 +156,18 @@ public function testParseFull()
]
]
],
'%-5d = 1' => '%-5d = 1 (translated)',
'%-5d = 1' => [
'_context' => [
'' => '%-5d = 1 (translated)'
]
],
'%-5d = 0 or > 1' => [
'%-5d = 1 (translated)',
'%-5d = 0 or > 1 (translated)'
'_context' => [
'' => [
'%-5d = 1 (translated)',
'%-5d = 0 or > 1 (translated)'
]
]
]
];
$this->assertEquals($expected, $messages);
Expand Down

0 comments on commit 708dd02

Please sign in to comment.