Skip to content

Commit 7cdb260

Browse files
committed
[Translation] make IdentityTranslater consistent with normal translator
1 parent 8d85745 commit 7cdb260

File tree

6 files changed

+41
-43
lines changed

6 files changed

+41
-43
lines changed

src/Symfony/Component/Translation/Dumper/FileDumper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ abstract class FileDumper implements DumperInterface
3030
public function dump(MessageCatalogue $messages, $options = array())
3131
{
3232
if (!array_key_exists('path', $options)) {
33-
throw new \InvalidArgumentException('The file dumper need a path options.');
33+
throw new \InvalidArgumentException('The file dumper needs a path option.');
3434
}
3535

3636
// save a file for each domain

src/Symfony/Component/Translation/IdentityTranslator.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ class IdentityTranslator implements TranslatorInterface
2626
/**
2727
* Constructor.
2828
*
29-
* @param MessageSelector $selector The message selector for pluralization
29+
* @param MessageSelector|null $selector The message selector for pluralization
3030
*
3131
* @api
3232
*/
33-
public function __construct(MessageSelector $selector)
33+
public function __construct(MessageSelector $selector = null)
3434
{
35-
$this->selector = $selector;
35+
$this->selector = $selector ?: new MessageSelector();
3636
}
3737

3838
/**
@@ -60,7 +60,7 @@ public function getLocale()
6060
*
6161
* @api
6262
*/
63-
public function trans($id, array $parameters = array(), $domain = 'messages', $locale = null)
63+
public function trans($id, array $parameters = array(), $domain = null, $locale = null)
6464
{
6565
return strtr((string) $id, $parameters);
6666
}
@@ -70,7 +70,7 @@ public function trans($id, array $parameters = array(), $domain = 'messages', $l
7070
*
7171
* @api
7272
*/
73-
public function transChoice($id, $number, array $parameters = array(), $domain = 'messages', $locale = null)
73+
public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
7474
{
7575
return strtr($this->selector->choose((string) $id, (int) $number, $locale ?: $this->getLocale()), $parameters);
7676
}

src/Symfony/Component/Translation/PluralizationRules.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ class PluralizationRules
3131
*/
3232
public static function get($number, $locale)
3333
{
34-
if ("pt_BR" == $locale) {
34+
if ('pt_BR' === $locale) {
3535
// temporary set a locale for brazilian
36-
$locale = "xbr";
36+
$locale = 'xbr';
3737
}
3838

3939
if (strlen($locale) > 3) {
@@ -197,9 +197,9 @@ public static function get($number, $locale)
197197
*/
198198
public static function set($rule, $locale)
199199
{
200-
if ("pt_BR" == $locale) {
200+
if ('pt_BR' === $locale) {
201201
// temporary set a locale for brazilian
202-
$locale = "xbr";
202+
$locale = 'xbr';
203203
}
204204

205205
if (strlen($locale) > 3) {

src/Symfony/Component/Translation/Tests/IdentityTranslatorTest.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Symfony\Component\Translation\Tests;
1313

1414
use Symfony\Component\Translation\IdentityTranslator;
15-
use Symfony\Component\Translation\MessageSelector;
1615

1716
class IdentityTranslatorTest extends \PHPUnit_Framework_TestCase
1817
{
@@ -21,7 +20,7 @@ class IdentityTranslatorTest extends \PHPUnit_Framework_TestCase
2120
*/
2221
public function testTrans($expected, $id, $parameters)
2322
{
24-
$translator = new IdentityTranslator(new MessageSelector());
23+
$translator = new IdentityTranslator();
2524

2625
$this->assertEquals($expected, $translator->trans($id, $parameters));
2726
}
@@ -31,7 +30,7 @@ public function testTrans($expected, $id, $parameters)
3130
*/
3231
public function testTransChoiceWithExplicitLocale($expected, $id, $number, $parameters)
3332
{
34-
$translator = new IdentityTranslator(new MessageSelector());
33+
$translator = new IdentityTranslator();
3534
$translator->setLocale('en');
3635

3736
$this->assertEquals($expected, $translator->transChoice($id, $number, $parameters));
@@ -44,22 +43,22 @@ public function testTransChoiceWithDefaultLocale($expected, $id, $number, $param
4443
{
4544
\Locale::setDefault('en');
4645

47-
$translator = new IdentityTranslator(new MessageSelector());
46+
$translator = new IdentityTranslator();
4847

4948
$this->assertEquals($expected, $translator->transChoice($id, $number, $parameters));
5049
}
5150

5251
public function testGetSetLocale()
5352
{
54-
$translator = new IdentityTranslator(new MessageSelector());
53+
$translator = new IdentityTranslator();
5554
$translator->setLocale('en');
5655

5756
$this->assertEquals('en', $translator->getLocale());
5857
}
5958

6059
public function testGetLocaleReturnsDefaultLocaleIfNotSet()
6160
{
62-
$translator = new IdentityTranslator(new MessageSelector());
61+
$translator = new IdentityTranslator();
6362

6463
\Locale::setDefault('en');
6564
$this->assertEquals('en', $translator->getLocale());

src/Symfony/Component/Translation/Tests/TranslatorTest.php

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@
1212
namespace Symfony\Component\Translation\Tests;
1313

1414
use Symfony\Component\Translation\Translator;
15-
use Symfony\Component\Translation\MessageSelector;
1615
use Symfony\Component\Translation\Loader\ArrayLoader;
1716

1817
class TranslatorTest extends \PHPUnit_Framework_TestCase
1918
{
2019
public function testSetGetLocale()
2120
{
22-
$translator = new Translator('en', new MessageSelector());
21+
$translator = new Translator('en');
2322

2423
$this->assertEquals('en', $translator->getLocale());
2524

@@ -29,7 +28,7 @@ public function testSetGetLocale()
2928

3029
public function testSetFallbackLocales()
3130
{
32-
$translator = new Translator('en', new MessageSelector());
31+
$translator = new Translator('en');
3332
$translator->addLoader('array', new ArrayLoader());
3433
$translator->addResource('array', array('foo' => 'foofoo'), 'en');
3534
$translator->addResource('array', array('bar' => 'foobar'), 'fr');
@@ -43,7 +42,7 @@ public function testSetFallbackLocales()
4342

4443
public function testSetFallbackLocalesMultiple()
4544
{
46-
$translator = new Translator('en', new MessageSelector());
45+
$translator = new Translator('en');
4746
$translator->addLoader('array', new ArrayLoader());
4847
$translator->addResource('array', array('foo' => 'foo (en)'), 'en');
4948
$translator->addResource('array', array('bar' => 'bar (fr)'), 'fr');
@@ -57,7 +56,7 @@ public function testSetFallbackLocalesMultiple()
5756

5857
public function testTransWithFallbackLocale()
5958
{
60-
$translator = new Translator('fr_FR', new MessageSelector());
59+
$translator = new Translator('fr_FR');
6160
$translator->addLoader('array', new ArrayLoader());
6261
$translator->addResource('array', array('foo' => 'foofoo'), 'en_US');
6362
$translator->addResource('array', array('bar' => 'foobar'), 'en');
@@ -69,7 +68,7 @@ public function testTransWithFallbackLocale()
6968

7069
public function testAddResourceAfterTrans()
7170
{
72-
$translator = new Translator('fr', new MessageSelector());
71+
$translator = new Translator('fr');
7372
$translator->addLoader('array', new ArrayLoader());
7473

7574
$translator->setFallbackLocale(array('en'));
@@ -88,7 +87,7 @@ public function testAddResourceAfterTrans()
8887
public function testTransWithoutFallbackLocaleFile($format, $loader)
8988
{
9089
$loaderClass = 'Symfony\\Component\\Translation\\Loader\\'.$loader;
91-
$translator = new Translator('en', new MessageSelector());
90+
$translator = new Translator('en');
9291
$translator->addLoader($format, new $loaderClass());
9392
$translator->addResource($format, __DIR__.'/fixtures/non-existing', 'en');
9493
$translator->addResource($format, __DIR__.'/fixtures/resources.'.$format, 'en');
@@ -103,7 +102,7 @@ public function testTransWithoutFallbackLocaleFile($format, $loader)
103102
public function testTransWithFallbackLocaleFile($format, $loader)
104103
{
105104
$loaderClass = 'Symfony\\Component\\Translation\\Loader\\'.$loader;
106-
$translator = new Translator('en_GB', new MessageSelector());
105+
$translator = new Translator('en_GB');
107106
$translator->addLoader($format, new $loaderClass());
108107
$translator->addResource($format, __DIR__.'/fixtures/non-existing', 'en_GB');
109108
$translator->addResource($format, __DIR__.'/fixtures/resources.'.$format, 'en', 'resources');
@@ -113,7 +112,7 @@ public function testTransWithFallbackLocaleFile($format, $loader)
113112

114113
public function testTransWithFallbackLocaleBis()
115114
{
116-
$translator = new Translator('en_US', new MessageSelector());
115+
$translator = new Translator('en_US');
117116
$translator->addLoader('array', new ArrayLoader());
118117
$translator->addResource('array', array('foo' => 'foofoo'), 'en_US');
119118
$translator->addResource('array', array('bar' => 'foobar'), 'en');
@@ -122,7 +121,7 @@ public function testTransWithFallbackLocaleBis()
122121

123122
public function testTransWithFallbackLocaleTer()
124123
{
125-
$translator = new Translator('fr_FR', new MessageSelector());
124+
$translator = new Translator('fr_FR');
126125
$translator->addLoader('array', new ArrayLoader());
127126
$translator->addResource('array', array('foo' => 'foo (en_US)'), 'en_US');
128127
$translator->addResource('array', array('bar' => 'bar (en)'), 'en');
@@ -135,7 +134,7 @@ public function testTransWithFallbackLocaleTer()
135134

136135
public function testTransNonExistentWithFallback()
137136
{
138-
$translator = new Translator('fr', new MessageSelector());
137+
$translator = new Translator('fr');
139138
$translator->setFallbackLocales(array('en'));
140139
$translator->addLoader('array', new ArrayLoader());
141140
$this->assertEquals('non-existent', $translator->trans('non-existent'));
@@ -146,7 +145,7 @@ public function testTransNonExistentWithFallback()
146145
*/
147146
public function testWhenAResourceHasNoRegisteredLoader()
148147
{
149-
$translator = new Translator('en', new MessageSelector());
148+
$translator = new Translator('en');
150149
$translator->addResource('array', array('foo' => 'foofoo'), 'en');
151150

152151
$translator->trans('foo');
@@ -157,7 +156,7 @@ public function testWhenAResourceHasNoRegisteredLoader()
157156
*/
158157
public function testTrans($expected, $id, $translation, $parameters, $locale, $domain)
159158
{
160-
$translator = new Translator('en', new MessageSelector());
159+
$translator = new Translator('en');
161160
$translator->addLoader('array', new ArrayLoader());
162161
$translator->addResource('array', array((string) $id => $translation), $locale, $domain);
163162

@@ -169,7 +168,7 @@ public function testTrans($expected, $id, $translation, $parameters, $locale, $d
169168
*/
170169
public function testFlattenedTrans($expected, $messages, $id)
171170
{
172-
$translator = new Translator('en', new MessageSelector());
171+
$translator = new Translator('en');
173172
$translator->addLoader('array', new ArrayLoader());
174173
$translator->addResource('array', $messages, 'fr', '');
175174

@@ -181,7 +180,7 @@ public function testFlattenedTrans($expected, $messages, $id)
181180
*/
182181
public function testTransChoice($expected, $id, $translation, $number, $parameters, $locale, $domain)
183182
{
184-
$translator = new Translator('en', new MessageSelector());
183+
$translator = new Translator('en');
185184
$translator->addLoader('array', new ArrayLoader());
186185
$translator->addResource('array', array((string) $id => $translation), $locale, $domain);
187186

@@ -260,7 +259,7 @@ public function getTransChoiceTests()
260259

261260
public function testTransChoiceFallback()
262261
{
263-
$translator = new Translator('ru', new MessageSelector());
262+
$translator = new Translator('ru');
264263
$translator->setFallbackLocales(array('en'));
265264
$translator->addLoader('array', new ArrayLoader());
266265
$translator->addResource('array', array('some_message2' => 'one thing|%count% things'), 'en');
@@ -270,7 +269,7 @@ public function testTransChoiceFallback()
270269

271270
public function testTransChoiceFallbackBis()
272271
{
273-
$translator = new Translator('ru', new MessageSelector());
272+
$translator = new Translator('ru');
274273
$translator->setFallbackLocales(array('en_US', 'en'));
275274
$translator->addLoader('array', new ArrayLoader());
276275
$translator->addResource('array', array('some_message2' => 'one thing|%count% things'), 'en_US');
@@ -280,7 +279,7 @@ public function testTransChoiceFallbackBis()
280279

281280
public function testTransChoiceFallbackWithNoTranslation()
282281
{
283-
$translator = new Translator('ru', new MessageSelector());
282+
$translator = new Translator('ru');
284283
$translator->setFallbackLocales(array('en'));
285284
$translator->addLoader('array', new ArrayLoader());
286285

src/Symfony/Component/Translation/TranslatorInterface.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ interface TranslatorInterface
2323
/**
2424
* Translates the given message.
2525
*
26-
* @param string $id The message id (may also be an object that can be cast to string)
27-
* @param array $parameters An array of parameters for the message
28-
* @param string $domain The domain for the message
29-
* @param string $locale The locale
26+
* @param string $id The message id (may also be an object that can be cast to string)
27+
* @param array $parameters An array of parameters for the message
28+
* @param string|null $domain The domain for the message or null to use the default
29+
* @param string|null $locale The locale or null to use the default
3030
*
3131
* @return string The translated string
3232
*
@@ -37,11 +37,11 @@ public function trans($id, array $parameters = array(), $domain = null, $locale
3737
/**
3838
* Translates the given choice message by choosing a translation according to a number.
3939
*
40-
* @param string $id The message id (may also be an object that can be cast to string)
41-
* @param integer $number The number to use to find the indice of the message
42-
* @param array $parameters An array of parameters for the message
43-
* @param string $domain The domain for the message
44-
* @param string $locale The locale
40+
* @param string $id The message id (may also be an object that can be cast to string)
41+
* @param integer $number The number to use to find the indice of the message
42+
* @param array $parameters An array of parameters for the message
43+
* @param string|null $domain The domain for the message or null to use the default
44+
* @param string|null $locale The locale or null to use the default
4545
*
4646
* @return string The translated string
4747
*

0 commit comments

Comments
 (0)