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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
<?php
// languages for home
$langs = array(
'cs' => 'Čeština',
'de' => 'Deutsch',
'el' => 'Ελληνικά',
'en' => 'English',
'es' => 'Español',
'et' => 'Eesti',
'fi' => 'Suomeksi',
'fr' => 'Français',
'it' => 'Italiano',
'lv' => 'Latviešu',
'nb' => 'Bokmål',
'nl' => 'Nederlands',
'pl' => 'Polski',
'pt' => 'Português',
'pt-br' => 'Português do Brasil',
'ro' => 'Română',
'ru' => 'Русский',
'sl' => 'Slovenščina',
'tr' => 'Türkçe',
'uk' => 'украї́нська мо́ва',
'zh-cn' => '简体中文',
'zh-tw' => '正體中文'
);
// TODO (rda) define fallback languages for each language
// for instance, pt-br could fallback on pt and pt on pt-br (but without
// a cycle) then on es, etc.
/**
* Redirect to a localized path.
*
* @param array $langs list of languages
* @param string $page optional path to which we want to redirect
* @param string $default_locale
*
* @return void
*/
function relocate($langs, $page = '', $default_locale = 'en')
{
require_once 'localeDetection.class.php';
$locale = new ChooseLocale(array_keys($langs));
$locale->setDefaultLocale($default_locale);
header(sprintf('Location: /%s/%s',
$locale->getCompatibleLocale(),
$page
));
die;
}
/**
*/
function show_langs($langs)
{
header('Content-Type: text/html; charset=utf-8');
$count = count($langs);
$s = <<<S
<!DOCTYPE html>
<html lang="en">
<head>
<charset="utf-8">
<meta name="robots" content="noindex,nosnippet">
<title>Mageia</title>
</head>
<body>
<p><a href="/">Mageia.org</a> is currently available in {$count} languages:</p>
<ul>
S;
foreach ($langs as $k => $v) {
$s .= sprintf('<li><a href="/%s/" hreflang="%s">%s</a></li>',
$k, $k, $v);
}
echo $s, '</ul><hr />',
'<p>If you would like to help improving this Web site or its translations, ',
'check out our <a href="/wiki/doku.php?id=web">Web</a> and ',
'<a href="/wiki/doku.php?id=i18n">localization</a> teams!</p>',
'<hr /></body></html>';
}
|