Skip to content

Commit d391b73

Browse files
Merge pull request #9 from eddypouw/master
Skip loading translations for array constants
2 parents c468992 + 389931f commit d391b73

File tree

4 files changed

+43
-0
lines changed

4 files changed

+43
-0
lines changed

src/Loader/EnumLoader.php

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ public function load($resource, $locale, $domain = 'messages')
4242
// constant value as key and the translation as values, or the constant
4343
// name if no translation was found.
4444
foreach ($consts as $const => $value) {
45+
if (is_array($value)) {
46+
continue;
47+
}
48+
4549
$key = $this->getPrettyName($domain) . "." . strtolower($const);
4650

4751
$merged[(string) $value] = $translations->has($key) ? $translations->get($key) : strtolower($const);

test/Loader/EnumLoaderTest.php

+22
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
namespace Hostnet\Bundle\EntityTranslationBundle\Loader;
33

44
use Hostnet\Bundle\EntityTranslationBundle\Mock\MockEnum;
5+
use Hostnet\Bundle\EntityTranslationBundle\MockArray\MockArrayEnum;
56
use Symfony\Component\Translation\Loader\YamlFileLoader;
67
use Symfony\Component\Translation\Translator;
78

@@ -47,6 +48,27 @@ public function testTranslation()
4748
);
4849
}
4950

51+
public function testTranslationArray()
52+
{
53+
if(defined('HHVM_VERSION')) $this->markTestSkipped();
54+
55+
$this->translator->addResource(
56+
"enum",
57+
__DIR__ . "/../MockArray/Resources/translations/enum.en.yml",
58+
"en",
59+
MockArrayEnum::class
60+
);
61+
62+
$this->assertEquals(
63+
"Foo1",
64+
$this->translator->trans(MockArrayEnum::FOO, [], MockArrayEnum::class)
65+
);
66+
$this->assertEquals(
67+
"Bar2",
68+
$this->translator->trans(MockArrayEnum::BAR, [], MockArrayEnum::class)
69+
);
70+
}
71+
5072
/**
5173
* @expectedException \RuntimeException
5274
*/

test/MockArray/MockArrayEnum.php

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
namespace Hostnet\Bundle\EntityTranslationBundle\MockArray;
3+
4+
class MockArrayEnum
5+
{
6+
const FOO = 1;
7+
const BAR = 2;
8+
const FOO_ARRAY = [1, 2];
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
hostnet:
2+
bundle:
3+
entity_translation_bundle:
4+
mock_array:
5+
# Hostnet\Bundle\EntityTranslationBundle\MockArray\MockArrayEnum enum translations
6+
mock_array_enum:
7+
foo : "Foo1"
8+
bar : "Bar2"

0 commit comments

Comments
 (0)