2019-02-25 10:04:09 +01:00

115 lines
2.8 KiB
PHP

<?php
/* μlogger
*
* Copyright(C) 2019 Bartek Fabiszewski (www.fabiszewski.net)
*
* This is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
require_once(ROOT_DIR . "/helpers/config.php");
/**
* Localization
*/
class uLang {
/**
* Available languages
*
* @var array
*/
private static $languages = [
"en" => "English",
"pl" => "Polski",
"de" => "Deutsch",
"hu" => "Magyar",
"fr" => "Français",
"it" => "Italiano",
"es" => "Español",
"nl" => "Nederlands",
"zh" => "中文"
];
/**
* Application strings
* Array of key => translation pairs
*
* @var array
*/
private $strings = [];
/**
* Setup script strings
* Array of key => translation pairs
*
* @var array
*/
private $setupStrings = [];
/**
* Constructor
*
* @param string $language Language code (IANA)
*/
public function __construct($language = "en") {
$lang = [];
$langSetup = [];
// always load en base
require(ROOT_DIR . "/lang/en.php");
// override with translated strings if needed
// missing strings will be displayed in English
if ($language != "en" && array_key_exists($language, self::$languages)) {
require(ROOT_DIR . "/lang/$language.php");
}
// choose password messages based on config
$lang['passrules'] = isset($lang["passrules_" . uConfig::$pass_strength]) ? $lang["passrules_" . uConfig::$pass_strength] : "";
$lang['passlenmin'] = sprintf($lang["passlenmin"], uConfig::$pass_lenmin);
$this->strings = $lang;
$this->setupStrings = $langSetup;
}
/**
* Get supported languages array
* Language code => Native language name
*
* @return array
*/
public static function getLanguages() {
return self::$languages;
}
/**
* Get translated strings array
* Key => translation string
*
* @return array
*/
public function getStrings() {
return $this->strings;
}
/**
* Get translated strings array for setup script
* Key => translation string
*
* @return array
*/
public function getSetupStrings() {
return $this->setupStrings;
}
}
?>