Skip to content

Commit

Permalink
can combine domain and spaces in message (#29)
Browse files Browse the repository at this point in the history
  • Loading branch information
aleswita authored Jun 25, 2020
1 parent 8043156 commit 26fa993
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 5 deletions.
5 changes: 4 additions & 1 deletion src/Helpers.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ public static function whitelistRegexp(?array $whitelist): ?string
*/
public static function extractMessage(string $message): array
{
if (strpos($message, '.') !== false && strpos($message, ' ') === false) {
$dot = strpos($message, '.');
$space = strpos($message, ' ');

if ($dot !== false && ($space === false || $dot < $space)) {
[$domain, $message] = explode('.', $message, 2);

} else {
Expand Down
4 changes: 3 additions & 1 deletion tests/Tests/Helpers.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,12 @@ class Helpers extends Tests\TestAbstract
Tester\Assert::same(['messages', 'message'], Contributte\Translation\Helpers::extractMessage('message'));
Tester\Assert::same(['messages', 'message with space'], Contributte\Translation\Helpers::extractMessage('message with space'));
Tester\Assert::same(['domain', 'message'], Contributte\Translation\Helpers::extractMessage('domain.message'));
Tester\Assert::same(['messages', 'domain.message with space'], Contributte\Translation\Helpers::extractMessage('domain.message with space'));
Tester\Assert::same(['domain', 'message with space'], Contributte\Translation\Helpers::extractMessage('domain.message with space'));
Tester\Assert::same(['domain', 'long.message'], Contributte\Translation\Helpers::extractMessage('domain.long.message'));
Tester\Assert::same(['domain', ''], Contributte\Translation\Helpers::extractMessage('domain.'));
Tester\Assert::same(['', 'message'], Contributte\Translation\Helpers::extractMessage('.message'));
Tester\Assert::same(['domain', 'Some sentense.'], Contributte\Translation\Helpers::extractMessage('domain.Some sentense.'));
Tester\Assert::same(['messages', 'domain .some_sentense'], Contributte\Translation\Helpers::extractMessage('domain .some_sentense'));
}

}
Expand Down
13 changes: 10 additions & 3 deletions tests/Tests/Translator.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ class Translator extends Tests\TestAbstract
Tester\Assert::same('missing.translation', $translator->translate('messages.missing.translation'));
Tester\Assert::same('', $translator->translate('messages.'));
Tester\Assert::same('emptyDomain', $translator->translate('.emptyDomain'));
Tester\Assert::same('messages.some broken message', $translator->translate('messages.some broken message'));
Tester\Assert::same('some broken message', $translator->translate('messages.some broken message'));
Tester\Assert::same('Yes, we can!', $translator->translate('another_domain.Can you translate this message?'));

$translator->addPrefix('messages');

Expand All @@ -142,6 +143,12 @@ class Translator extends Tests\TestAbstract

$translator->removePrefix();

$translator->addPrefix('another_domain');

Tester\Assert::same('Yes, we can!', $translator->translate('Can you translate this message?'));

$translator->removePrefix();

$prefixedTranslator = $translator->createPrefixedTranslator('messages');
Tester\Assert::same('Hello', $prefixedTranslator->translate('hello'));
}
Expand Down Expand Up @@ -225,8 +232,8 @@ class Translator extends Tests\TestAbstract
Tester\Assert::same('en', (string) $dom->find('td[class="contributte-translation-locales-whitelist"]')[0]);
Tester\Assert::count(1, $dom->find('tr[class="contributte-translation-missing-translation"]'));
Tester\Assert::count(1, $dom->find('tr[class="contributte-translation-locale-resolvers"]'));
Tester\Assert::count(2, $dom->find('tr[class="contributte-translation-resources"]'));
Tester\Assert::count(1, $dom->find('tr[class="contributte-translation-ignored-resources"]'));
Tester\Assert::count(3, $dom->find('tr[class="contributte-translation-resources"]'));// lang/another_domain.en_US.neon, lang/messages.en_US.neon, lang_overloading/messages.en_US.neon
Tester\Assert::count(1, $dom->find('tr[class="contributte-translation-ignored-resources"]'));// lang/messages.cs_CZ.neon

$psrLogger = new class() extends Psr\Log\AbstractLogger {

Expand Down
1 change: 1 addition & 0 deletions tests/lang/another_domain.en_US.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Can you translate this message?: "Yes, we can!"

0 comments on commit 26fa993

Please sign in to comment.