Support multiple languages in translation function
This commit is contained in:
parent
0eccce6536
commit
66f71b294f
|
@ -680,27 +680,32 @@ class Translations
|
||||||
$this->language = "en";
|
$this->language = "en";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->filename = "translations/".$this->language.".php";
|
foreach($this->loaded_languages as $language) {
|
||||||
if (file_exists($this->filename)) {
|
$this->filename = "translations/".$this->language.".php";
|
||||||
$this->loaded_translations = require($this->filename);
|
if (file_exists($this->filename)) {
|
||||||
} else {
|
$this->loaded_translations[$language] = require($this->filename);
|
||||||
throw new Exception("Language file not found");
|
} else {
|
||||||
|
throw new Exception("Language file not found");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function translate($string)
|
public function translate($string, $language=null)
|
||||||
{
|
{
|
||||||
|
if(is_null($language)) {
|
||||||
|
$language = $this->language;
|
||||||
|
}
|
||||||
if(strpos($string, ".") !== false) {
|
if(strpos($string, ".") !== false) {
|
||||||
$string = explode(".", $string);
|
$string = explode(".", $string);
|
||||||
if (!array_key_exists($string[1], $this->loaded_translations[$string[0]])) {
|
if (!array_key_exists($string[1], $this->loaded_translations[$language][$string[0]])) {
|
||||||
throw new Exception('string does not exist');
|
throw new Exception('string does not exist');
|
||||||
}
|
}
|
||||||
return $this->loaded_translations[$string[0]][$string[1]];
|
return $this->loaded_translations[$language][$string[0]][$string[1]];
|
||||||
} else {
|
} else {
|
||||||
if (!array_key_exists($string, $this->loaded_translations)) {
|
if (!array_key_exists($string, $this->loaded_translations[$language])) {
|
||||||
throw new Exception('string does not exist');
|
throw new Exception('string does not exist');
|
||||||
}
|
}
|
||||||
return $this->loaded_translations[$string];
|
return $this->loaded_translations[$language][$string];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -712,8 +717,8 @@ $services = new Services($db, $users, $places);
|
||||||
$schedules = new Schedules($db, $users);
|
$schedules = new Schedules($db, $users);
|
||||||
$translations = new Translations();
|
$translations = new Translations();
|
||||||
|
|
||||||
function __(string $string)
|
function __(string $string, $language=null)
|
||||||
{
|
{
|
||||||
global $translations;
|
global $translations;
|
||||||
return $translations->translate($string);
|
return $translations->translate($string, $language);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue