fusionpbx/resources/classes/text.php

85 lines
2.3 KiB
PHP
Raw Normal View History

<?php
/**
* Get the text for the correct translation
2015-01-18 10:25:50 +01:00
*
* @method array get
*/
class text {
/**
* Called when the object is created
*/
public function __construct() {
//place holder
}
/**
* Called when there are no references to a particular object
* unset the variables used in the class
*/
public function __destruct() {
foreach ($this as $key => $value) {
unset($this->$key);
}
}
/**
* Get a specific item from the cache
2015-01-18 08:42:17 +01:00
* @var string $language_code examples: en-us, es-cl, fr-fr, pt-pt
* @var string $app_path examples: app/exec or core/domains
*/
2015-01-18 08:42:17 +01:00
public function get($language_code = null, $app_path = null) {
//get the global app_languages.php
include $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH."/resources/app_languages.php";
//get the app_languages.php
2015-01-18 11:40:41 +01:00
if ($app_path != null) {
$lang_path = $_SERVER["DOCUMENT_ROOT"].PROJECT_PATH."/".$app_path."/app_languages.php";
}
else {
$lang_path = getcwd().'/app_languages.php';
}
if(file_exists($lang_path)){
require $lang_path;
}
//get the available languages
krsort($text);
foreach ($text as $lang_label => $lang_codes) {
foreach ($lang_codes as $lang_code => $lang_text) {
if ($lang_text != '') {
$app_languages[] = $lang_code;
}
}
}
$_SESSION['app']['languages'] = array_unique($app_languages);
//check the session language
if(isset($_SESSION['domain']) and $language_code == null){
$language_code = $_SESSION['domain']['language']['code'];
}elseif($language_code == null){
$language_code = 'en-us';
}
2015-01-18 10:25:50 +01:00
//reduce to specific language
2015-01-18 08:42:17 +01:00
if ($language_code != 'all') {
foreach($text as $key => $value) {
2015-12-10 10:57:54 +01:00
if(strlen($value[$language_code]) > 0) {
$text[$key] = $value[$language_code];
}else{
//fallback to en-us
$text[$key] = $value['en-us'];
}
2015-01-18 08:42:17 +01:00
}
}
if ($language_code != 'all') {
foreach($language_name as $code => $value) {
$text["language-$code"] = $value;
}
}else{
foreach($language_name as $code => $value) {
foreach($language_name as $c_code => $value) {
$text["language-$code"][$c_code] = $value;
}
}
}
//return the array of translations
return $text;
}
}
?>