Merge pull request #6724 from open-sausages/pulls/4.0/fix-i18n-pluralise

Fix and test pluralisation usages
This commit is contained in:
Chris Joe 2017-03-21 18:20:16 +13:00 committed by GitHub
commit 66f37012f7
4 changed files with 25 additions and 8 deletions

View File

@ -681,10 +681,10 @@ class DataObject extends ViewableData implements DataObjectInterface, i18nEntity
public function i18n_pluralise($count) public function i18n_pluralise($count)
{ {
$default = 'one ' . $this->i18n_singular_name() . '|{count} ' . $this->i18n_plural_name(); $default = 'one ' . $this->i18n_singular_name() . '|{count} ' . $this->i18n_plural_name();
return i18n::pluralise( return i18n::_t(
static::class.'.PLURALS', static::class.'.PLURALS',
$default, $default,
$count [ 'count' => $count ]
); );
} }

View File

@ -493,16 +493,16 @@ class ChangeSet extends DataObject
// Describe non-important items // Describe non-important items
if ($countedOther) { if ($countedOther) {
if ($counted) { if ($counted) {
$parts[] = i18n::pluralise( $parts[] = i18n::_t(
'ChangeSet.DESCRIPTION_OTHER_ITEM_PLURALS', 'ChangeSet.DESCRIPTION_OTHER_ITEM_PLURALS',
'one other item|{count} other items', 'one other item|{count} other items',
$countedOther [ 'count' => $countedOther ]
); );
} else { } else {
$parts[] = i18n::pluralise( $parts[] = i18n::_t(
'ChangeSet.DESCRIPTION_ITEM_PLURALS', 'ChangeSet.DESCRIPTION_ITEM_PLURALS',
'one item|{count} items', 'one item|{count} items',
$countedOther [ 'count' => $countedOther ]
); );
} }
} }

View File

@ -104,6 +104,17 @@ class ChangeSetTest extends SapphireTest
); );
} }
public function testDescription()
{
$cs = new ChangeSet();
$cs->write();
$cs->addObject($this->objFromFixture(ChangeSetTest\EndObject::class, 'end1'));
$this->assertEquals('one item', $cs->getDescription());
$cs->addObject($this->objFromFixture(ChangeSetTest\EndObjectChild::class, 'endchild1'));
$this->assertEquals('2 items', $cs->getDescription());
}
public function testRepeatedSyncIsNOP() public function testRepeatedSyncIsNOP()
{ {
$this->publishAllFixtures(); $this->publishAllFixtures();

View File

@ -4,6 +4,7 @@ namespace SilverStripe\ORM\Tests;
use SilverStripe\Core\Config\Config; use SilverStripe\Core\Config\Config;
use SilverStripe\Dev\SapphireTest; use SilverStripe\Dev\SapphireTest;
use SilverStripe\i18n\i18n;
use SilverStripe\ORM\DataObjectSchema; use SilverStripe\ORM\DataObjectSchema;
use SilverStripe\ORM\FieldType\DBBoolean; use SilverStripe\ORM\FieldType\DBBoolean;
use SilverStripe\ORM\FieldType\DBField; use SilverStripe\ORM\FieldType\DBField;
@ -1645,13 +1646,18 @@ class DataObjectTest extends SapphireTest
DataObjectTest\Bogey::class => 'Bogeys', DataObjectTest\Bogey::class => 'Bogeys',
DataObjectTest\Ploy::class => 'Ploys', DataObjectTest\Ploy::class => 'Ploys',
); );
i18n::set_locale('en_NZ');
foreach ($assertions as $class => $expectedPluralName) { foreach ($assertions as $class => $expectedPluralName) {
$this->assertEquals( $this->assertEquals(
$expectedPluralName, $expectedPluralName,
singleton($class)->plural_name(), DataObject::singleton($class)->plural_name(),
"Assert that the plural_name for '$class' is correct." "Assert that the plural_name for '$class' is correct."
); );
$this->assertEquals(
$expectedPluralName,
DataObject::singleton($class)->i18n_plural_name(),
"Assert that the i18n_plural_name for '$class' is correct."
);
} }
} }