From 50b783e3a5af17485443f55e51aa57c9c67be7e2 Mon Sep 17 00:00:00 2001 From: Andy Staudacher Date: Thu, 12 Feb 2009 07:11:24 +0000 Subject: Change i18n message key to include the plural form (to ensure that it's truly unique). --- core/libraries/I18n.php | 5 ++--- core/tests/I18n_Test.php | 8 ++++---- 2 files changed, 6 insertions(+), 7 deletions(-) (limited to 'core') diff --git a/core/libraries/I18n.php b/core/libraries/I18n.php index a2d412f8..edf6a6ac 100644 --- a/core/libraries/I18n.php +++ b/core/libraries/I18n.php @@ -168,9 +168,8 @@ class I18n_Core { } public static function get_message_key($message) { - // If message is an array (plural forms), use the first form as message id. - $key = is_array($message) ? array_shift($message) : $message; - return md5($key, true); + $as_string = is_array($message) ? implode('|', $message) : $message; + return md5($as_string, true); } private function interpolate($locale, $string, $values) { diff --git a/core/tests/I18n_Test.php b/core/tests/I18n_Test.php index 4a353538..75170a1d 100644 --- a/core/tests/I18n_Test.php +++ b/core/tests/I18n_Test.php @@ -64,15 +64,15 @@ class I18n_Test extends Unit_Test_Case { public function translate_plural_other_test() { $result = $this->i18n->translate(array('one' => 'One item has been added', - 'other' => '%count items have been added.'), - array('count' => 5)); + 'other' => '%count elements have been added'), + array('count' => 5)); $this->assert_equal('5 Elemente wurden hinzugefuegt.', $result); } public function translate_plural_one_test() { $result = $this->i18n->translate(array('one' => 'One item has been added', - 'other' => '%count items have been added.'), - array('count' => 1)); + 'other' => '%count elements have been added'), + array('count' => 1)); $this->assert_equal('Ein Element wurde hinzugefuegt.', $result); } -- cgit v1.2.3