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. 10
      main/inc/lib/internationalization.lib.php

@ -154,13 +154,14 @@ function get_lang($variable, $reserved = null, $language = null) {
return $ret;
}
/**
* Gets the current interface language.
* @param bool $purified (optional) When it is true, a purified (refined)
* language value will be returned, for example 'french' instead of 'french_unicode'.
* @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;
@ -174,6 +175,7 @@ function api_get_interface_language($purified = false, $check_sub_language = fal
if (!isset($parent_language_name)) {
// 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
$language_id = api_get_language_id($language_interface);
$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'])) {
$language_info = api_get_language_info($language_info['parent_id']);
if ($setParentLanguageName) {
$parent_language_name = $language_info['english_name'];
}
if (!empty($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;
}
/**
* 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'.
@ -236,6 +239,7 @@ function api_get_language_isocode($language = null, $default_code = 'en')
if (empty($language)) {
$language = api_get_interface_language(false, true);
}
if (!isset($iso_code[$language])) {
if (!class_exists('Database')) {
// 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
if (empty($language)) {
$language = api_get_interface_language(false, true);
$language = api_get_interface_language(false, true, false);
}
if (!isset($valid[$format][$language])) {

Loading…
Cancel
Save