yoursecretsareours/language.class.inc.php
2020-08-07 04:19:02 +02:00

82 lines
1.8 KiB
PHP

<?php
/**
* Class language
*
* 1xx Error codes
*/
class language
{
public static $languages = array(
'de_DE' => 'German',
'en_EN' => 'English',
);
public const
TITLE = 'TITLE',
MAIN_TITLE = 'MAIN_TITLE',
DESCRIPTION = 'DESCRIPTION',
EXPLANATION_QUESTIONS = 'EXPLANATION_QUESTIONS',
EXPLANATION_SCORE = 'EXPLANATION_SCORE',
SCORE_FINISHED = 'SCORE_FINISHED',
PROJECT_DESCRIPTION = 'PROJECT_DESCRIPTION',
HELP_US = 'HELP_US',
REQUEST_MORE = 'REQUEST_MORE',
JOIN_DISCORD = 'JOIN_DISCORD',
LANGUAGE_CHOOSE = 'LANGUAGE_CHOOSE',
CALCULATE = 'CALCULATE'
;
public static $lang_file;
/**
* @var string
*/
public static $lang;
public static function checkLanguage ( ): void
{
// Check cookie
if( isset( $_GET['lang'] ) )
{
if( isset( self::$languages[$_GET['lang']] ) )
{
self::setLangauge( $_GET['lang'] );
}
else
{
self::setLangauge();
}
}
else if ( isset( $_COOKIE['lang'], self::$languages[$_COOKIE['lang']] ) )
{
self::setLangauge( $_COOKIE['lang'] );
}
else
{
self::setLangauge();
}
}
private static function setLangauge ( $a_language = 'en_EN' ): void
{
self::$lang = $a_language;
if( !isset( $_COOKIE['lang'] ) || $_COOKIE['lang'] !== $a_language )
{
setcookie( 'lang', $a_language, 0 );
}
try
{
self::$lang_file = parse_ini_file( LANG_DIRECTORY . $a_language . '.ini', true );
} catch( Exception $e )
{
throw new RuntimeException( 'Cannot load the language file!', 101 );
}
}
}