Fix error when user has set his language but HTML is not set to that language see BT#10668

ofaj
jmontoyaa 9 years ago
parent 54fda876e9
commit edd03a8596
  1. 12
      main/inc/lib/internationalization.lib.php

@ -154,13 +154,14 @@ function get_lang($variable, $reserved = null, $language = null) {
return $ret; return $ret;
} }
/** /**
* Gets the current interface language. * Gets the current interface language.
* @param bool $purified (optional) When it is true, a purified (refined) * @param bool $purified (optional) When it is true, a purified (refined)
* language value will be returned, for example 'french' instead of 'french_unicode'. * language value will be returned, for example 'french' instead of 'french_unicode'.
* @return string The current language of the interface. * @return string The current language of the interface.
*/ */
function api_get_interface_language($purified = false, $check_sub_language = false) function api_get_interface_language($purified = false, $check_sub_language = false, $setParentLanguageName = true)
{ {
global $language_interface; global $language_interface;
@ -174,6 +175,7 @@ function api_get_interface_language($purified = false, $check_sub_language = fal
if (!isset($parent_language_name)) { if (!isset($parent_language_name)) {
// 2. The current language is a sub language so we grab the father's // 2. The current language is a sub language so we grab the father's
// setting according to the internalization_database/name_order_convetions.php file // setting according to the internalization_database/name_order_convetions.php file
$language_id = api_get_language_id($language_interface); $language_id = api_get_language_id($language_interface);
$language_info = api_get_language_info($language_id); $language_info = api_get_language_info($language_id);
@ -183,7 +185,9 @@ function api_get_interface_language($purified = false, $check_sub_language = fal
) { ) {
if (!empty($language_info['parent_id'])) { if (!empty($language_info['parent_id'])) {
$language_info = api_get_language_info($language_info['parent_id']); $language_info = api_get_language_info($language_info['parent_id']);
$parent_language_name = $language_info['english_name']; if ($setParentLanguageName) {
$parent_language_name = $language_info['english_name'];
}
if (!empty($parent_language_name)) { if (!empty($parent_language_name)) {
return $parent_language_name; return $parent_language_name;
@ -204,7 +208,6 @@ function api_get_interface_language($purified = false, $check_sub_language = fal
return $interface_language; return $interface_language;
} }
/** /**
* Returns a purified language id, without possible suffixes that will disturb language identification in certain cases. * Returns a purified language id, without possible suffixes that will disturb language identification in certain cases.
* @param string $language The input language identificator, for example 'french_unicode'. * @param string $language The input language identificator, for example 'french_unicode'.
@ -236,6 +239,7 @@ function api_get_language_isocode($language = null, $default_code = 'en')
if (empty($language)) { if (empty($language)) {
$language = api_get_interface_language(false, true); $language = api_get_interface_language(false, true);
} }
if (!isset($iso_code[$language])) { if (!isset($iso_code[$language])) {
if (!class_exists('Database')) { if (!class_exists('Database')) {
// This might happen, in case of calling this function early during the global initialization. // This might happen, in case of calling this function early during the global initialization.
@ -781,7 +785,7 @@ function api_get_person_name(
//We check if the language is supported, otherwise we check the interface language of the parent language of sublanguage //We check if the language is supported, otherwise we check the interface language of the parent language of sublanguage
if (empty($language)) { if (empty($language)) {
$language = api_get_interface_language(false, true); $language = api_get_interface_language(false, true, false);
} }
if (!isset($valid[$format][$language])) { if (!isset($valid[$format][$language])) {

Loading…
Cancel
Save