mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
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
This commit is contained in:
parent
76aab0a635
commit
17b25388b3
2 changed files with 17 additions and 2 deletions
|
@ -124,12 +124,14 @@ class I18n {
|
||||||
*
|
*
|
||||||
* @param string $singular String to translate
|
* @param string $singular String to translate
|
||||||
* @param string $plural Plural string (if any)
|
* @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 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 integer $count Count Count is used with $plural to choose the correct plural form.
|
||||||
* @param string $language Language to translate string to.
|
* @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.
|
* @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) {
|
public static function translate($singular, $plural = null, $domain = null, $category = 6, $count = null, $language = null) {
|
||||||
$_this = I18n::getInstance();
|
$_this = I18n::getInstance();
|
||||||
|
@ -162,6 +164,9 @@ class I18n {
|
||||||
if (is_null($domain)) {
|
if (is_null($domain)) {
|
||||||
$domain = self::$defaultDomain;
|
$domain = self::$defaultDomain;
|
||||||
}
|
}
|
||||||
|
if ($domain === '') {
|
||||||
|
throw new CakeException(__d('cake_dev', 'You cannot use "" as a domain.'));
|
||||||
|
}
|
||||||
|
|
||||||
$_this->domain = $domain . '_' . $_this->l10n->lang;
|
$_this->domain = $domain . '_' . $_this->l10n->lang;
|
||||||
|
|
||||||
|
|
|
@ -1854,6 +1854,16 @@ class I18nTest extends CakeTestCase {
|
||||||
$this->assertEquals($expected, $result);
|
$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
|
* Singular method
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue