Subversion Repositories LCARS

Rev

Rev 214 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 214 Rev 227
1
<?php
1
<?php
2
2
3
$encoding = 'UTF-8';
3
$encoding = 'UTF-8';
4
header("Content-Type: text/html" . ($encoding ? "; charset=$encoding" : ""));
4
header("Content-Type: text/html" . ($encoding ? "; charset=$encoding" : ""));
5
5
6
$modi = max(array(
6
$modi = max(array(
7
  @filemtime(__FILE__),
7
  @filemtime(__FILE__),
8
  @filemtime('LocaleData'),
8
  @filemtime('LocaleData'),
9
  @filemtime('index.phtml'),
9
  @filemtime('index.phtml'),
10
  @filemtime('footer.phtml'),
10
  @filemtime('footer.phtml'),
11
  @filemtime('styles/lcars-basic.css'),
11
  @filemtime('styles/lcars-basic.css'),
12
  @filemtime('styles/lcars22.css'),
12
  @filemtime('styles/lcars22.css'),
13
  @filemtime('styles/lcars22-ie6.css'),
13
  @filemtime('styles/lcars22-ie6.css'),
14
  @filemtime('styles/lcars-ani.css'),
14
  @filemtime('styles/lcars-ani.css'),
15
  @filemtime('scripts/object.js'),
15
  @filemtime('scripts/object.js'),
16
));
16
));
17
17
18
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $modi) . ' GMT');
18
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $modi) . ' GMT');
19
19
20
/* Cached resource expires in HTTP/1.1 caches 24h after last retrieval */
20
/* Cached resource expires in HTTP/1.1 caches 24h after last retrieval */
21
header('Cache-Control: max-age=86400, s-maxage=86400, must-revalidate, proxy-revalidate');
21
header('Cache-Control: max-age=86400, s-maxage=86400, must-revalidate, proxy-revalidate');
22
22
23
/* Cached resource expires in HTTP/1.0 caches 24h after last retrieval */
23
/* Cached resource expires in HTTP/1.0 caches 24h after last retrieval */
24
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT');
24
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT');
25
25
26
// $vulcan = 'x-vulcan-latin';
26
// $vulcan = 'x-vulcan-latin';
-
 
27
$klingon = 'tlh-Latn';
27
$vulcan = 'vuh-Latn-Gol-modern';
28
$vulcan = 'vuh-Latn-Gol-modern';
28
$languages = array(
29
$languages = array(
29
  'en' => 'English',
30
  'en' => 'English',
30
  'de' => 'Deutsch',
31
  'de' => 'Deutsch',
31
  'ru' => 'по-русски',
32
  'ru' => 'по-русски',
32
//   'x-klingon-latin' => array(
33
  $klingon => array(
33
//     'key'  => 'tlh',
34
    'key'  => 'tlh',
34
//     'name' => 'tlhIngan Hol'
35
    'name' => 'tlhIngan Hol'
35
//   ),
36
  ),
36
  $vulcan => array(
37
  $vulcan => array(
37
    'key' => 'vu',
38
    'key' => 'vuh',
38
    'name' => '<abbr title="Gen-lis">G-l</abbr> Vuhlkansu'
39
    'name' => 'Gen-lis Vuhlkansu'
39
  )
40
  )
40
);
41
);
41
42
42
/**
43
/**
43
 * Returns the short language key.
44
 * Returns the short language key.
44
 *
45
 *
45
 * Needed for safely mapping extra-terrestrial languages.
46
 * Needed for safely mapping extra-terrestrial languages.
46
 */
47
 */
47
function language_key_short ($key)
48
function language_key_short ($key)
48
{
49
{
49
  global $languages;
50
  global $languages;
50
  preg_match('/^[^-]{2,3}/', $key, $matches);
51
  preg_match('/^[^-]{2,3}/', $key, $matches);
51
  $language = $languages[$key];
52
  $language = $languages[$key];
52
  return (is_array($language) && isset($language['key'])
53
  return (is_array($language) && isset($language['key'])
53
    ? $language['key']
54
    ? $language['key']
54
    : $matches[0]);
55
    : $matches[0]);
55
}
56
}
56
57
57
/**
58
/**
58
 * Returns the language name.
59
 * Returns the language name.
59
 *
60
 *
60
 * Needed for safely mapping extra-terrestrial languages.
61
 * Needed for safely mapping extra-terrestrial languages.
61
 */
62
 */
62
function language_name ($key)
63
function language_name ($key)
63
{
64
{
64
  global $languages;
65
  global $languages;
65
  $language = $languages[$key];
66
  $language = $languages[$key];
66
  return (is_array($language) && isset($language['name'])
67
  return (is_array($language) && isset($language['name'])
67
    ? $language['name']
68
    ? $language['name']
68
    : $language);
69
    : $language);
69
}
70
}
70
71
71
require_once 'Zend/Loader/StandardAutoloader.php';
72
require_once 'Zend/Loader/StandardAutoloader.php';
72
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
73
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
73
$loader->register();
74
$loader->register();
74
75
75
$translator = new Zend\I18n\Translator\Translator();
76
$translator = new Zend\I18n\Translator\Translator();
76
// $translator->setCache(new Zend\Cache\Storage\*Adapter());
77
// $translator->setCache(new Zend\Cache\Storage\*Adapter());
77
$type = 'gettext';
78
$type = 'gettext';
78
$baseDir = './i18n/LocaleData';
79
$baseDir = './i18n/LocaleData';
79
$textDomain = 'de.pointedears';
80
$textDomain = 'de.pointedears';
80
$pattern = "%s/LC_MESSAGES/{$textDomain}.mo";
81
$pattern = "%s/LC_MESSAGES/{$textDomain}.mo";
81
$translator->addTranslationFilePattern($type, $baseDir, $pattern, $textDomain);
82
$translator->addTranslationFilePattern($type, $baseDir, $pattern, $textDomain);
82
83
83
/**
84
/**
84
 * Returns the translation of the parameter, if any,
85
 * Returns the translation of the parameter, if any,
85
 * using Zend Framework 2.1 Translate
86
 * using Zend Framework 2.1 Translate
86
 *
87
 *
87
 * @param string $s
88
 * @param string $s
88
 *   String to be translated
89
 *   String to be translated
89
 * @param string $lang = null
90
 * @param string $lang = null
90
 *   Target language.  The default is the document language
91
 *   Target language.  The default is the document language
91
 *   ($language).
92
 *   ($language).
92
 * @return string
93
 * @return string
93
 */
94
 */
94
function tr ($s, $lang = null)
95
function tr ($s, $lang = null)
95
{
96
{
96
  global $translator;
97
  global $translator;
97
  global $textDomain;
98
  global $textDomain;
98
  global $language;
99
  global $language;
99
100
100
  if ($lang === null)
101
  if ($lang === null)
101
  {
102
  {
102
    $lang = $language;
103
    $lang = $language;
103
  }
104
  }
104
105
105
  /* DEBUG */
106
  /* DEBUG */
106
//   echo "return \$translator->translate(\"$s\", \"$textDomain\", \"$language\");<br>\n";
107
//   echo "return \$translator->translate(\"$s\", \"$textDomain\", \"$language\");<br>\n";
107
108
108
  return $translator->translate($s, $textDomain, $lang);
109
  return $translator->translate($s, $textDomain, $lang);
109
}
110
}
110
111
111
$menu = array(
112
$menu = array(
112
  'scripts'   => array('path' => 'scripts/', 'text' => tr('Scripting')),
113
  'scripts'   => array('path' => 'scripts/', 'text' => tr('Scripting')),
113
  'es-matrix' => array(
114
  'es-matrix' => array(
114
    'path'  => 'es-matrix',
115
    'path'  => 'es-matrix',
115
    'text'  => 'ES Matrix',
116
    'text'  => 'ES Matrix',
116
    'title' => 'ECMAScript Support Matrix: ' . tr("A comparison of features of ECMAScript implementations")
117
    'title' => 'ECMAScript Support Matrix: ' . tr("A comparison of features of ECMAScript implementations")
117
  ),
118
  ),
118
  'devel'     => array('path' => 'wsvn/',   'text' => tr('Software projects')),
119
  'devel'     => array('path' => 'wsvn/',   'text' => tr('Software projects')),
119
  'series'    => array('path' => "media/video/series/", 'text' => 'Seri-o-meter'),
120
  'series'    => array('path' => "media/video/series/", 'text' => 'Seri-o-meter'),
120
  'ufpdb'     => array(
121
  'ufpdb'     => array(
121
    'path'  => "ufpdb/index.$language",
122
    'path'  => "ufpdb/index.$language",
122
    'text'  => 'UFPDB',
123
    'text'  => 'UFPDB',
123
    'title' => tr('United Federation of Planets DataBase')
124
    'title' => tr('United Federation of Planets DataBase')
124
  )
125
  )
125
);
126
);
126
 
127