source: t29-www/lib/messages.php @ 255

Last change on this file since 255 was 255, checked in by sven, 7 years ago

Backend: Class cleanup, multi language support builtin, Message system (with experimental JSON connection). Template is ready to be deployed for multi language.

File size: 2.3 KB
Line 
1<?php
2
3if(realpath($_SERVER['SCRIPT_FILENAME']) == __FILE__) {
4        header('Content-Type: application/json');
5        if(isset($_GET['pre'])) echo $_GET['pre'];
6        echo t29Messages::create_json();
7        if(isset($_GET['post'])) echo ";\n".$_GET['post'];
8}
9
10class t29Messages {
11        public $lang;
12        public static $order = array('de' => 0, 'en' => 1);
13       
14        function __construct($lang) {
15                $this->lang = $lang;
16        }
17
18        function _($str_id) {
19                if(!isset(self::$msg[$str_id])) {
20                        return "&lt;$str_id&gt;"; // error; mediawiki style
21                } else {
22                        if(is_array(self::$msg[$str_id])) {
23                                return self::$msg[$str_id][ self::$order[$this->lang] ];
24                        } else
25                                return self::$msg[$str_id];
26                }
27        }
28       
29        /**
30         * $msg = new t29Messages("foo");
31         * print $msg->_("foobar");              // ordinary long version
32         * $_ = $msg->get_shorthand_printer();
33         * $_("foobar");                         // same but shorter
34         **/
35        function get_shorthand_printer() {
36                $t = $this;
37                return function($str)use($t) { print $t->_($str); };
38        }
39
40        /// same but return instead of print
41        function get_shorthand_returner() {
42                $t = $this;
43                return function($str)use($t) { return $t->_($str); };
44        }
45
46        static function create_json($filter_regexp=false) {
47                $msg = $filter_regexp ? array_intersect_key(self::$msg,
48                                array_flip(preg_grep($filter_regexp, array_keys(self::$msg)))
49                                ) : self::$msg;
50                return json_encode(array(
51                        'order' => self::$order,
52                        'msg'   => $msg
53                ));
54        }
55
56        public static $msg = array(
57                'html-title'             => 'technikum29',
58                'head-h1-title'          => array('Zur technikum29 Startseite', 'Go to technikum29 homepage'),
59                'head-h1'                => 'technikum29',
60
61                'sidebar-h2-tour'        => array('Museumstour', 'Museum Tour'),
62                'sidebar-h2-mainnav'     => array('Hauptnavigation', 'Main Navigation'),
63                'sidebar-h2-lang'        => array('Sprachauswahl', 'Language'),
64                'sidebar-search-label'   => array('Suchen', 'Search'),
65
66                'js-menu-collapse-out'   => array('Menü ausklappen', 'Expand menu'),
67                'js-menu-collapse-in'    => array('Menü einklappen', 'Fold menu'),
68                'js-menu-scroll-show'    => array('Menü einblenden', 'Show menu'),
69                'js-menu-scroll-hide'    => array('Menü ausblenden', 'Hide menu'),
70
71                'footer-copyright-tag'   => '&copy; 2003-2012 technikum29.',
72                'footer-legal-link'      => array('Impressum und Kontakt', 'Legal notices'),
73        );
74}
Note: See TracBrowser for help on using the repository browser.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License