Thank you for your reply!
As I said I only want language variables for template, like you did that.
So I have copied and pasted the following your code to my functions.php
Now I have two files: en_US.php and ru_RU.php in my lang folder in the theme directory.
And I do have i18n and other plugins installed and two languages so far..
Now in my template.php I suppose I must use something like:
and get relevant translations from those two lang files.
But I don't get any output for some reason. What could you suggest?
As I said I only want language variables for template, like you did that.
So I have copied and pasted the following your code to my functions.php
PHP Code:
<?php
/*** Function to get variables from Lang array ***/
function get_lang_param($name="") {
if(empty($name)) return false;
if(isset($_COOKIE['current_lang'])) $def_lang = $_COOKIE['current_lang'];
if(!isset($def_lang)) {
global $language;
if(isset($language) && !empty($language)) $def_lang=$language;
else {
$LANG = getDefaultLanguage();
if(isset($LANG) && !empty($LANG) && substr($LANG,0,2)!="en") $def_lang = getDefaultLanguage();
else $def_lang="en_US";
}
if($def_lang == "en") $def_lang = "en_US";
if(strlen($def_lang)<3) $def_lang = $def_lang.'_'.strtoupper($def_lang);
}
if (file_exists(str_replace('\\','/',dirname(__FILE__)).'/lang/'.$def_lang.'.php')) {
require(str_replace('\\','/',dirname(__FILE__)).'/lang/'.$def_lang.'.php');
}
if(isset($set_lang[$name]) && !empty($set_lang[$name])) $lang_param = $set_lang[$name];
else $lang_param = "Search";
return $lang_param;
}
/*** i18n Set Language function ***/
function getDefaultLanguage() {
if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
return parseDefaultLanguage($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
else return parseDefaultLanguage(NULL);
}
function parseDefaultLanguage($http_accept, $deflang = "en") {
if(function_exists('return_theme_setting') && return_theme_setting('site_deflang') && strlen(return_theme_setting('site_deflang')) > 1) {
$deflang = return_theme_setting('site_deflang');
}
elseif(isset($http_accept) && strlen($http_accept) > 1) {
# Split possible languages into array
$x = explode(",",$http_accept);
foreach ($x as $val) {
#check for q-value and create associative array. No q-value means 1 by rule
if(preg_match("/(.*);q=([0-1]{0,1}.\d{0,4})/i",$val,$matches))
$lang[$matches[1]] = (float)$matches[2];
else
$lang[$val] = 1.0;
}
#return default language (highest q-value)
$qval = 0.0;
foreach ($lang as $key => $value) {
if ($value > $qval) {
$qval = (float)$value;
$deflang = $key;
}
}
}
return $deflang;
}
function check_language($long = true) {
global $language;
global $set_lang;
if(isset($_GET['setlang'])) {
$langas = $_GET['setlang'];
if(strlen($langas) == 2) {
if($langas == "en") $langas = $langas."_US";
else $langas = $langas."_".strtoupper($langas);
}
if (isset($_COOKIE['current_lang'])) {
setcookie("current_lang", $langas, time()-100 , '/');
$_COOKIE['current_lang']=$langas;
}
setcookie("current_lang", $langas, time()+3600 , '/');
}
if(isset($_COOKIE['current_lang'])) $langas = $_COOKIE['current_lang'];
elseif(!isset($langas) || empty($langas) || strlen($langas)<2) {
if(isset($language)) {
if($long) $langas = $language."_".strtoupper($language);
else $langas = $language;
}
else $langas = getDefaultLanguage();
}
if(!isset($langas) || empty($langas) || strlen($langas)<2) {
if($long) $langas = "en_US";
else $langas = "en";
}
if(strpos($langas, "-") !== false) $langas = str_replace("-", "_", $langas);
if (file_exists(str_replace('\\','/',dirname(__FILE__)).'/lang/'.$langas.'.php')) {
include(str_replace('\\','/',dirname(__FILE__)).'/lang/'.$langas.'.php');
}
else {
include(str_replace('\\','/',dirname(__FILE__)).'/lang/en_US.php');
}
}
?>
Now I have two files: en_US.php and ru_RU.php in my lang folder in the theme directory.
And I do have i18n and other plugins installed and two languages so far..
Now in my template.php I suppose I must use something like:
PHP Code:
<?php echo $set_lang['FX_MYTEXT']; ?>
and get relevant translations from those two lang files.
But I don't get any output for some reason. What could you suggest?