From 375658acf45223ab3927896c80f537040254ed66 Mon Sep 17 00:00:00 2001 From: Michal Lulco Date: Wed, 16 Dec 2020 14:54:06 +0100 Subject: [PATCH 1/7] Fix translation of messages with dot at the end --- src/Translator.php | 10 ++++++++++ tests/KdybyTests/Translation/TranslatorTest.phpt | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/src/Translator.php b/src/Translator.php index c47a5e6c..272c1a59 100644 --- a/src/Translator.php +++ b/src/Translator.php @@ -200,6 +200,11 @@ public function trans($message, array $parameters = [], $domain = NULL, $locale $id = $message; } + if ($id === '') { + $id = $message; + $domain = NULL; + } + $result = parent::trans($id, $parameters, $domain, $locale); if ($result === "\x01") { $this->logMissingTranslation($message, $domain, $locale); @@ -229,6 +234,11 @@ public function transChoice($message, $number, array $parameters = [], $domain = $id = $message; } + if ($id === '') { + $id = $message; + $domain = NULL; + } + try { $result = parent::transChoice($id, $number, $parameters, $domain, $locale); diff --git a/tests/KdybyTests/Translation/TranslatorTest.phpt b/tests/KdybyTests/Translation/TranslatorTest.phpt index 97f54c49..2c7c302d 100644 --- a/tests/KdybyTests/Translation/TranslatorTest.phpt +++ b/tests/KdybyTests/Translation/TranslatorTest.phpt @@ -157,6 +157,13 @@ class TranslatorTest extends \KdybyTests\Translation\TestCase Assert::same('Hello world', $translator->translate('Hello %value%', ['value' => 'world'])); } + public function testBugMessageWithDotAtTheEnd() + { + $translator = $this->createTranslator(); + + Assert::same('Hello.', $translator->translate('Hello.'])); + Assert::same('Hello world.', $translator->translate('Hello world.'])); + } } (new TranslatorTest())->run(); From 9f5106aba8512e22aa17cbc79672705b9539345c Mon Sep 17 00:00:00 2001 From: Michal Lulco Date: Wed, 16 Dec 2020 14:57:45 +0100 Subject: [PATCH 2/7] Fixed mixed indentations --- src/Translator.php | 14 +++++++------- tests/KdybyTests/Translation/TranslatorTest.phpt | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Translator.php b/src/Translator.php index 272c1a59..6103a145 100644 --- a/src/Translator.php +++ b/src/Translator.php @@ -201,9 +201,9 @@ public function trans($message, array $parameters = [], $domain = NULL, $locale } if ($id === '') { - $id = $message; - $domain = NULL; - } + $id = $message; + $domain = NULL; + } $result = parent::trans($id, $parameters, $domain, $locale); if ($result === "\x01") { @@ -234,10 +234,10 @@ public function transChoice($message, $number, array $parameters = [], $domain = $id = $message; } - if ($id === '') { - $id = $message; - $domain = NULL; - } + if ($id === '') { + $id = $message; + $domain = NULL; + } try { $result = parent::transChoice($id, $number, $parameters, $domain, $locale); diff --git a/tests/KdybyTests/Translation/TranslatorTest.phpt b/tests/KdybyTests/Translation/TranslatorTest.phpt index 2c7c302d..e1f6ac3e 100644 --- a/tests/KdybyTests/Translation/TranslatorTest.phpt +++ b/tests/KdybyTests/Translation/TranslatorTest.phpt @@ -157,11 +157,11 @@ class TranslatorTest extends \KdybyTests\Translation\TestCase Assert::same('Hello world', $translator->translate('Hello %value%', ['value' => 'world'])); } - public function testBugMessageWithDotAtTheEnd() + public function testBugMessageWithDotAtTheEnd() { $translator = $this->createTranslator(); - Assert::same('Hello.', $translator->translate('Hello.'])); + Assert::same('Hello.', $translator->translate('Hello.'])); Assert::same('Hello world.', $translator->translate('Hello world.'])); } } From 4e32874da1d4df8d1a7ad3d14507413b9c5e800b Mon Sep 17 00:00:00 2001 From: Michal Lulco Date: Wed, 16 Dec 2020 15:29:22 +0100 Subject: [PATCH 3/7] Fixed syntax error in test --- tests/KdybyTests/Translation/TranslatorTest.phpt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/KdybyTests/Translation/TranslatorTest.phpt b/tests/KdybyTests/Translation/TranslatorTest.phpt index e1f6ac3e..dba359a1 100644 --- a/tests/KdybyTests/Translation/TranslatorTest.phpt +++ b/tests/KdybyTests/Translation/TranslatorTest.phpt @@ -161,8 +161,8 @@ class TranslatorTest extends \KdybyTests\Translation\TestCase { $translator = $this->createTranslator(); - Assert::same('Hello.', $translator->translate('Hello.'])); - Assert::same('Hello world.', $translator->translate('Hello world.'])); + Assert::same('Hello.', $translator->translate('Hello.')); + Assert::same('Hello world.', $translator->translate('Hello world.')); } } From 99f934fa2ee2232f3f255c2ce35a07a2b185af4b Mon Sep 17 00:00:00 2001 From: Michal Lulco Date: Mon, 11 Jan 2021 16:46:37 +0100 Subject: [PATCH 4/7] Rerun travis --- tests/KdybyTests/Translation/TranslatorTest.phpt | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/KdybyTests/Translation/TranslatorTest.phpt b/tests/KdybyTests/Translation/TranslatorTest.phpt index dba359a1..60972888 100644 --- a/tests/KdybyTests/Translation/TranslatorTest.phpt +++ b/tests/KdybyTests/Translation/TranslatorTest.phpt @@ -160,7 +160,6 @@ class TranslatorTest extends \KdybyTests\Translation\TestCase public function testBugMessageWithDotAtTheEnd() { $translator = $this->createTranslator(); - Assert::same('Hello.', $translator->translate('Hello.')); Assert::same('Hello world.', $translator->translate('Hello world.')); } From 022fb2af3859eb54ee9a09208b2c412c1e1b56e3 Mon Sep 17 00:00:00 2001 From: Michal Lulco Date: Mon, 25 Jan 2021 14:17:42 +0100 Subject: [PATCH 5/7] Fix Closure::fromCallable + coding standards --- src/DI/TranslationExtension.php | 4 ++-- tests/KdybyTests/Translation/TranslatorTest.phpt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/DI/TranslationExtension.php b/src/DI/TranslationExtension.php index 5178400c..189ca3d1 100644 --- a/src/DI/TranslationExtension.php +++ b/src/DI/TranslationExtension.php @@ -10,6 +10,7 @@ namespace Kdyby\Translation\DI; +use Closure; use Kdyby\Console\DI\ConsoleExtension; use Kdyby\Monolog\Logger as KdybyLogger; use Kdyby\Translation\Caching\PhpFileStorage; @@ -40,7 +41,6 @@ use Nette\Reflection\ClassType as ReflectionClassType; use Nette\Schema\Expect; use Nette\Schema\Schema; -use Nette\Utils\Callback; use Nette\Utils\Finder; use Nette\Utils\Validators; use Symfony\Component\Translation\Extractor\ChainExtractor; @@ -372,7 +372,7 @@ public function beforeCompile() return str_replace((DIRECTORY_SEPARATOR === '/') ? '\\' : '/', DIRECTORY_SEPARATOR, Helpers::expand($dir, $builder->parameters)); }, $config['dirs']); - $dirs = array_values(array_filter($config['dirs'], Callback::closure('is_dir'))); + $dirs = array_values(array_filter($config['dirs'], Closure::fromCallable('is_dir'))); if (count($dirs) > 0) { foreach ($dirs as $dir) { $builder->addDependency($dir); diff --git a/tests/KdybyTests/Translation/TranslatorTest.phpt b/tests/KdybyTests/Translation/TranslatorTest.phpt index 60972888..d6e0cb00 100644 --- a/tests/KdybyTests/Translation/TranslatorTest.phpt +++ b/tests/KdybyTests/Translation/TranslatorTest.phpt @@ -163,6 +163,7 @@ class TranslatorTest extends \KdybyTests\Translation\TestCase Assert::same('Hello.', $translator->translate('Hello.')); Assert::same('Hello world.', $translator->translate('Hello world.')); } + } (new TranslatorTest())->run(); From b721828aa263546468789e0adca06a7597b3ab32 Mon Sep 17 00:00:00 2001 From: Michal Lulco Date: Fri, 19 Feb 2021 11:45:52 +0100 Subject: [PATCH 6/7] Dot cannot be at last position --- src/Translator.php | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/Translator.php b/src/Translator.php index 6103a145..4d99dd70 100644 --- a/src/Translator.php +++ b/src/Translator.php @@ -200,11 +200,6 @@ public function trans($message, array $parameters = [], $domain = NULL, $locale $id = $message; } - if ($id === '') { - $id = $message; - $domain = NULL; - } - $result = parent::trans($id, $parameters, $domain, $locale); if ($result === "\x01") { $this->logMissingTranslation($message, $domain, $locale); @@ -234,11 +229,6 @@ public function transChoice($message, $number, array $parameters = [], $domain = $id = $message; } - if ($id === '') { - $id = $message; - $domain = NULL; - } - try { $result = parent::transChoice($id, $number, $parameters, $domain, $locale); @@ -445,7 +435,7 @@ protected function assertValidLocale($locale) */ private function extractMessageDomain($message) { - if (strpos($message, '.') !== FALSE && strpos($message, ' ') === FALSE) { + if (strpos($message, '.') !== FALSE && strpos(strrev($message), '.') !== 0 && strpos($message, ' ') === FALSE) { list($domain, $message) = explode('.', $message, 2); } else { From c9ee221d923abe6e08b27fd0ff5ef29468c562e2 Mon Sep 17 00:00:00 2001 From: Michal Lulco Date: Fri, 19 Feb 2021 20:42:43 +0100 Subject: [PATCH 7/7] Update src/Translator.php MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jáchym Toušek --- src/Translator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Translator.php b/src/Translator.php index 4d99dd70..d10ef4eb 100644 --- a/src/Translator.php +++ b/src/Translator.php @@ -435,7 +435,7 @@ protected function assertValidLocale($locale) */ private function extractMessageDomain($message) { - if (strpos($message, '.') !== FALSE && strpos(strrev($message), '.') !== 0 && strpos($message, ' ') === FALSE) { + if (strpos(substr($message, 0, -1), '.') !== FALSE && strpos($message, ' ') === FALSE) { list($domain, $message) = explode('.', $message, 2); } else {