Add multiple language support

This commit is contained in:
Thijs Raymakers 2025-02-26 23:35:24 +01:00
parent 3763f335cb
commit 0094d7cbbd
No known key found for this signature in database
5 changed files with 74 additions and 0 deletions

8
header.php Normal file
View file

@ -0,0 +1,8 @@
<?php
require_once("language/language.php");
$lang = Language::getPreferredLanguage();
echo $lang->get("Test");
?>

4
index.php Normal file
View file

@ -0,0 +1,4 @@
<?php require_once("header.php"); ?>
<html lang="<?= $lang->languageCode ?>">
</html>

11
language/en.php Normal file
View file

@ -0,0 +1,11 @@
<?php
require_once("language.php");
class English extends Language {
public function __construct() {
parent::__construct("en");
$this->keys = array("Test" => "Test EN");
}
}
?>

40
language/language.php Normal file
View file

@ -0,0 +1,40 @@
<?php
class Language {
public $languageCode;
protected $keys;
public function __construct($languageCode) {
$this->languageCode = $languageCode;
}
public function get($key) {
return $this->keys[$key];
}
public static function getPreferredLanguage() {
$language = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
$languages = array(
"en",
"nl"
);
$preferredLanguage = Locale::lookup($languages, $language, true, "en");
switch ($preferredLanguage) {
case "nl":
require_once("nl.php");
return new Dutch();
case "en":
default:
require_once("en.php");
return new English();
break;
}
}
}
?>

11
language/nl.php Normal file
View file

@ -0,0 +1,11 @@
<?php
require_once("language.php");
class Dutch extends Language {
public function __construct() {
parent::__construct("nl");
$this->keys = array("Test" => "Test NL");
}
}
?>