blob: 712b6c5817a16613b50bedc479a14dc8aae33ba4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?php
function get_ui_language(?array $possibleLanguages = null): string {
if ($possibleLanguages == null) {
$possibleLanguages = array_map(function ($path) {
$parts = explode('/', $path);
return str_replace('.json', '', $parts[count($parts) - 1]);
}, glob(__DIR__ . '/../locale/*.json'));
}
if (!isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
return $possibleLanguages[0];
}
$accepts = array_map(
fn($spec) => str_replace('-', '_', explode(';', $spec)[0]),
explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE'])
);
foreach ($accepts as $alang) {
foreach ($possibleLanguages as $candidate) {
if (str_starts_with(strtolower($candidate), strtolower($alang))) {
return $candidate;
}
}
}
return $possibleLanguages[0];
}
|