diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php index 808d1a4a7f..401cb0d371 100644 --- a/phpBB/includes/session.php +++ b/phpBB/includes/session.php @@ -1862,6 +1862,11 @@ class user extends session $args[0] = $lang; return call_user_func_array('sprintf', $args); } + else if (sizeof($lang) == 0) + { + // If the language entry is an empty array, we just return the language key + return $args[0]; + } // It is an array... now handle different nullar/singular/plural forms $key_found = false; diff --git a/tests/user/lang_test.php b/tests/user/lang_test.php index 36933a84d2..ee1be3c323 100644 --- a/tests/user/lang_test.php +++ b/tests/user/lang_test.php @@ -38,6 +38,8 @@ class phpbb_user_lang_test extends phpbb_test_case 1 => '1 post', // 1.x 2 => '%1$.1f posts', // 0.x, 2+.x ), + 'ARRY_EMPTY' => array( + ), 'dateformat' => array( 'AGO' => array( 1 => '%d second', @@ -69,6 +71,9 @@ class phpbb_user_lang_test extends phpbb_test_case $this->assertEquals($user->lang('ARRY', 2), '2 posts'); $this->assertEquals($user->lang('ARRY', 123), '123 posts'); + // Empty array returns the language key + $this->assertEquals($user->lang('ARRY_EMPTY', 123), 'ARRY_EMPTY'); + // No 0 key defined $this->assertEquals($user->lang('ARRY_NO_ZERO', 0), '0 posts'); $this->assertEquals($user->lang('ARRY_NO_ZERO', 1), '1 post');