Browse Source

Fixes #14276: Fixed I18N format with dotted parameters

tags/2.0.14
Elvira Sheina 7 years ago committed by Alexander Makarov
parent
commit
10e7b1b541
  1. 2
      framework/CHANGELOG.md
  2. 2
      framework/i18n/I18N.php
  3. 9
      tests/framework/i18n/I18NTest.php

2
framework/CHANGELOG.md

@ -4,7 +4,7 @@ Yii Framework 2 Change Log
2.0.14 under development 2.0.14 under development
------------------------ ------------------------
- no changes in this release. - Bug #14276: Fixed I18N format with dotted parameters (developeruz)
2.0.13.1 November 14, 2017 2.0.13.1 November 14, 2017

2
framework/i18n/I18N.php

@ -110,7 +110,7 @@ class I18N extends Component
return $message; return $message;
} }
if (preg_match('~{\s*[\w]+\s*,~u', $message)) { if (preg_match('~{\s*[\w.]+\s*,~u', $message)) {
$formatter = $this->getMessageFormatter(); $formatter = $this->getMessageFormatter();
$result = $formatter->format($message, $params, $language); $result = $formatter->format($message, $params, $language);
if ($result === false) { if ($result === false) {

9
tests/framework/i18n/I18NTest.php

@ -275,4 +275,13 @@ class I18NTest extends TestCase
$message = 'Incorrect password (length must be from {min, number} to {max, number} symbols).'; $message = 'Incorrect password (length must be from {min, number} to {max, number} symbols).';
$this->assertEquals($message, $this->i18n->format($message, ['attribute' => 'password'], 'en')); $this->assertEquals($message, $this->i18n->format($message, ['attribute' => 'password'], 'en'));
} }
public function testFormatMessageWithDottedParameters()
{
$message = 'date: {dt.test}';
$this->assertEquals('date: 1510147434', $this->i18n->format($message, ['dt.test' => 1510147434], 'en'));
$message = 'date: {dt.test,date}';
$this->assertEquals('date: Nov 8, 2017', $this->i18n->format($message, ['dt.test' => 1510147434], 'en'));
}
} }

Loading…
Cancel
Save