blob: b1305b3623baef6c391826626f3083c926a091aa (
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 $parts[count($parts) - 2];
}, glob(__DIR__ . '/../locale/*/LC_MESSAGES'));
}
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];
}
|