Skip to content
Permalink
Browse files

Throw exceptions when '' is used as translation domain.

'' is never a good translation domain and often indicates developer
error. Treat it as a mistake and throw an exception.

Fixes #3939
  • Loading branch information...
markstory committed Jul 28, 2013
1 parent 76aab0a commit 17b25388b32b063534935a01d1b43e7ee13b8bb5
Showing with 17 additions and 2 deletions.
  1. +7 −2 lib/Cake/I18n/I18n.php
  2. +10 −0 lib/Cake/Test/Case/I18n/I18nTest.php
@@ -124,12 +124,14 @@ public static function getInstance() {
*
* @param string $singular String to translate
* @param string $plural Plural string (if any)
* @param string $domain Domain The domain of the translation. Domains are often used by plugin translations
* @param string $domain Domain The domain of the translation. Domains are often used by plugin translations.
* If null, the default domain will be used.
* @param string $category Category The integer value of the category to use.
* @param integer $count Count Count is used with $plural to choose the correct plural form.
* @param string $language Language to translate string to.
* If null it checks for language in session followed by Config.language configuration variable.
* If null it checks for language in session followed by Config.language configuration variable.
* @return string translated string.
* @throws CakeException When '' is provided as a domain.
*/
public static function translate($singular, $plural = null, $domain = null, $category = 6, $count = null, $language = null) {
$_this = I18n::getInstance();
@@ -162,6 +164,9 @@ public static function translate($singular, $plural = null, $domain = null, $cat
if (is_null($domain)) {
$domain = self::$defaultDomain;
}
if ($domain === '') {
throw new CakeException(__d('cake_dev', 'You cannot use "" as a domain.'));
}
$_this->domain = $domain . '_' . $_this->l10n->lang;
@@ -1854,6 +1854,16 @@ public function testTranslateLanguageParam() {
$this->assertEquals($expected, $result);
}
/**
* Test that the '' domain causes exceptions.
*
* @expectedException CakeException
* @return void
*/
public function testTranslateEmptyDomain() {
I18n::translate('Plural Rule 1', null, '');
}
/**
* Singular method
*

0 comments on commit 17b2538

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.