fusionpbx/resources/classes/text.php

83 lines
2.0 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 {
2015-12-19 23:00:10 +01:00
/**
* Called when the object is created
*/
public function __construct() {
//place holder
}
2015-12-19 23:00:10 +01:00
/**
* 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);
}
}
2015-12-19 23:00:10 +01:00
/**
* 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
*/
public function get($language_code = null, $app_path = null, $exclude_global = false) {
//get the global app_languages.php
if (!$exclude_global){
include $_SERVER["PROJECT_ROOT"]."/resources/app_languages.php";
}
//get the app_languages.php
2015-01-18 11:40:41 +01:00
if ($app_path != null) {
$lang_path = $_SERVER["PROJECT_ROOT"]."/".$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) {
if (strlen($value[$language_code]) > 0) {
2015-12-10 10:57:54 +01:00
$text[$key] = $value[$language_code];
} else {
2015-12-10 10:57:54 +01:00
//fallback to en-us
$text[$key] = $value['en-us'];
}
2015-01-18 08:42:17 +01:00
}
}
2015-12-19 23:00:10 +01:00
//return the array of translations
return $text;
}
}
?>