File: /home/httpd/html/baretube.com.new/admin/functions.multilang.php
<?php
if (!isset($config['default_language'])) {
$config['default_language'] = 'EN';
}
if (!isset($config['default_language_label'])) {
$config['default_language_label'] = 'English';
}
// Preload translations from cache
if ($language != $config['core_language']) {
$_translations = loadCache('cache', 'translations_strings_' . $language);
$_translations_contextual = loadCache('cache', 'translations_strings_contextual_' . $language);
if (count($_translations) == 0) {
$tmp = dbQuery("SELECT `locales_source`.`text`, `locales_target`.`translated_text`, `locales_target`.`translated_text_contextual` FROM `locales_source` JOIN `locales_target` ON `locales_source`.`record_num` = `locales_target`.`source_id` WHERE `locales_target`.`language` = '" . mysqli_real_escape_string($dbconn, $language) . "'", false);
if (is_array($tmp)) {
foreach ($tmp as $t) {
$_translations[$t['text']] = $t['translated_text'];
$_translations_contextual[$t['text']] = $t['translated_text_contextual'];
}
}
loadCache('cache', 'translations_strings_' . $language, $_translations);
loadCache('cache', 'translations_strings_contextual_' . $language, $_translations_contextual);
}
}
/**
* _t - Function used to translate text, uses locales_source and locales_target tables.
*
* @param [in] $string Text to be translated
* @return string
*
*/
function _t($string, $args = array()) {
global $language, $_translations, $_translations_contextual, $basehttp, $sitename, $config, $dblink;
if ($language != $config['core_language']) {
$args += array('%basehttp' => $basehttp, '%domain' => $basehttp, '%sitename' => $sitename);
if (trim($string) == "") {
return;
} elseif (isset($args['_g'])) {
if (($args['_g'] == 1 || $args['_g'] == 'Female') && isset($_translations_contextual[$string]) && $_translations_contextual[$string] != "") {
return strtr($_translations_contextual[$string], $args);
} elseif (isset($_translations[$string])) {
return strtr($_translations[$string], $args);
}
} elseif (isset($_translations[$string])) {
return strtr($_translations[$string], $args);
}
if (isset($args['_g']) && ($args['_g'] == 1 || $args['_g'] == 'Female')) {
$result = dbRow("SELECT *, (SELECT IF(`translated_text_contextual` != '', `translated_text_contextual`, `translated_text`) AS `translated_text` FROM `locales_target` WHERE `locales_source`.`record_num` = `locales_target`.`source_id` AND `locales_target`.`language` = '" . mysqli_real_escape_string($dblink, $language) . "') `translated_text` FROM `locales_source` WHERE BINARY `locales_source`.`text` = '" . mysqli_real_escape_string($dblink, $string) . "'", true, 60);
} else {
$result = dbRow("SELECT *, (SELECT `translated_text` FROM `locales_target` WHERE `locales_source`.`record_num` = `locales_target`.`source_id` AND `locales_target`.`language` = '" . mysqli_real_escape_string($dblink, $language) . "') `translated_text` FROM `locales_source` WHERE BINARY `locales_source`.`text` = '" . mysqli_real_escape_string($dblink, $string) . "'", true, 60);
}
if (!is_array($result)) {
dbInsert('locales_source', array('text' => $string), true);
dbQuery("DELETE FROM `cache` WHERE `key` LIKE 'translations_strings_%'");
}
$string = is_array($result) && $result['translated_text'] !== null ? $result['translated_text'] : $string;
}
return strtr($string, $args);
}
/**
* flags - Returns array of countries and flags
*
* @return array
*
*/
function flags() {
global $basehttp, $currentLang, $config, $dblink;
$httpParts = explode(":",$basehttp);
$protocol = (stripos($_SERVER['SERVER_PROTOCOL'], 'https') === true || strtolower($httpParts[0]) == 'https') ? 'https://' : 'http://';
$mdomain = str_replace($protocol, "", $basehttp);
$domainParts = explode(".", str_replace($protocol,"",$mdomain));
if ($domainParts[0] === 'www' || ($currentLang && $domainParts[0] === strtolower($currentLang))) {
unset($domainParts[0]);
}
if ($currentLang && $domainParts[1] === strtolower($currentLang)) {
unset($domainParts[1]);
}
$domain = join('.', $domainParts);
$langs['list'][strtolower($config['default_language'])]['name'] = $config['default_language_label'];
$langs['list'][strtolower($config['default_language'])]['iso'] = $config['default_language'];
$langs['list'][strtolower($config['default_language'])]['http'] = "$protocol$domain";
if (strtoupper($config['default_language']) != $config['core_language']) {
$langs['list'][strtolower($config['default_language'])]['http'] = "$protocol" . strtolower($config['default_language']) . "." . $domain;
}
if (strtoupper($config['default_language']) != 'EN') {
$langs['list']['en']['name'] = 'English';
$langs['list']['en']['iso'] = 'EN';
$langs['list']['en']['http'] = "$protocol" . "en." . $domain;
}
$getLangs = dbQuery("SELECT * FROM `languages` ORDER BY `name`");
if (!empty($getLangs)) {
foreach ($getLangs as $lang) {
if (strtoupper($config['default_language']) != $config['core_language']) {
if (strtoupper($currentLang) == $config['default_language']) {
$langs['current']['name'] = $config['default_language_label'];
$langs['current']['iso'] = $config['default_language'];
$langs['current']['http'] = "$protocol" . strtolower($config['default_language']) . ".$domain";
}
if ($currentLang && strtoupper($currentLang) == strtoupper($lang['iso'])) {
if (!$langs['current']) {
$langs['current']['name'] = $lang['name'];
$langs['current']['iso'] = $lang['iso'];
$langs['current']['http'] = "$protocol" . strtolower($lang['iso']) . ".$domain";
}
}
} else {
if ($currentLang && strtoupper($currentLang) == strtoupper($lang['iso'])) {
if (!$langs['current']) {
$langs['current']['name'] = $lang['name'];
$langs['current']['iso'] = $lang['iso'];
$langs['current']['http'] = "$protocol" . strtolower($lang['iso']) . ".$domain";
}
} else {
if (!$langs['current']) {
$langs['current']['name'] = $config['default_language_label'];
$langs['current']['iso'] = $config['default_language'];
$langs['current']['http'] = "$protocol" . "$domain";
}
}
}
if (strtoupper($lang['iso']) == strtoupper($config['default_language'])) {
$langs['list'][strtolower($lang['iso'])]['name'] = $lang['name'];
$langs['list'][strtolower($lang['iso'])]['iso'] = $lang['iso'];
$langs['list'][strtolower($lang['iso'])]['http'] = "$protocol" . $domain;
} else {
$langs['list'][strtolower($lang['iso'])]['name'] = $lang['name'];
$langs['list'][strtolower($lang['iso'])]['iso'] = $lang['iso'];
$langs['list'][strtolower($lang['iso'])]['http'] = "$protocol" . strtolower($lang['iso']) . ".$domain";
}
if (strtoupper($currentLang) == strtoupper($lang['iso'])) {
$langs['current']['name'] = $lang['name'];
$langs['current']['iso'] = $lang['iso'];
$langs['current']['http'] = "$protocol" . $domain;
} else if (strtoupper($currentLang) == 'EN') {
$langs['current']['name'] = 'English';
$langs['current']['iso'] = 'EN';
$langs['current']['http'] = "$protocol" . "en." . $domain;
}
++$i;
}
}
if (!isset($langs['current']) && count($langs['list']) == 1) {
$langs['current'] = $langs['list'][strtolower($config['default_language'])];
unset($langs['list']);
}
return $langs;
}