summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Häusler <msquare@notrademark.de>2013-11-25 19:12:19 +0100
committerPhilip Häusler <msquare@notrademark.de>2013-11-25 19:12:19 +0100
commit96a263f7129fbcf01ef644c531cdcc0a0be59085 (patch)
tree1dcb780aad3926e308a7daae9db5d88ca4d459f6
parent33b97e3ad3f4baa82bb754c46134554c90b30346 (diff)
initial gettext integration
-rw-r--r--includes/helper/internationalization_helper.php43
-rw-r--r--includes/pages/guest_login.php2
-rw-r--r--includes/sys_menu.php54
-rw-r--r--locale/de_DE.UTF-8/LC_MESSAGES/default.mobin0 -> 648 bytes
-rw-r--r--locale/de_DE.UTF-8/LC_MESSAGES/default.po25
-rw-r--r--public/css/style2.css1
-rw-r--r--public/index.php15
-rw-r--r--public/pic/flag/de_DE.UTF-8.png (renamed from public/pic/flag/de.png)bin545 -> 545 bytes
-rw-r--r--public/pic/flag/en_US.UTF-8.png (renamed from public/pic/flag/en.png)bin599 -> 599 bytes
9 files changed, 101 insertions, 39 deletions
diff --git a/includes/helper/internationalization_helper.php b/includes/helper/internationalization_helper.php
new file mode 100644
index 00000000..ae88eb21
--- /dev/null
+++ b/includes/helper/internationalization_helper.php
@@ -0,0 +1,43 @@
+<?php
+$locales = array(
+ 'de_DE.UTF-8' => "Deutsch",
+ 'en_US.UTF-8' => "English"
+);
+
+$default_locale = 'en_US.UTF-8';
+
+/**
+ * Initializes gettext for internationalization and updates the sessions locale to use for translation.
+ */
+function gettext_init() {
+ global $locales, $default_locale;
+
+ if (isset($_REQUEST['set_locale']) && in_array($_REQUEST['set_locale'], array_keys($locales)))
+ $_SESSION['locale'] = $_REQUEST['set_locale'];
+ elseif (! isset($_SESSION['locale']))
+ $_SESSION['locale'] = $default_locale;
+
+ putenv('LC_ALL=' . $_SESSION['locale']);
+ setlocale(LC_ALL, $_SESSION['locale']);
+ bindtextdomain('default', '../locale');
+ bind_textdomain_codeset('default', 'UTF-8');
+ textdomain('default');
+}
+
+/**
+ * Renders language selection.
+ *
+ * @return string
+ */
+function make_langselect() {
+ global $locales;
+ $URL = $_SERVER["REQUEST_URI"] . (strpos($_SERVER["REQUEST_URI"], "?") > 0 ? '&' : '?') . "set_locale=";
+
+ $html = '<p class="content">';
+ foreach ($locales as $locale => $name)
+ $html .= '<a class="sprache" href="' . htmlspecialchars($URL) . $locale . '"><img src="pic/flag/' . $locale . '.png" alt="' . $name . '" title="' . $name . '"></a>';
+ $html .= '</p>';
+ return '<nav class="container"><h4>' . _("Language") . '</h4>' . $html . '</nav>';
+}
+
+?> \ No newline at end of file
diff --git a/includes/pages/guest_login.php b/includes/pages/guest_login.php
index bdd98d33..8c77cce0 100644
--- a/includes/pages/guest_login.php
+++ b/includes/pages/guest_login.php
@@ -9,7 +9,7 @@ function guest_register() {
$nick = "";
$lastname = "";
$prename = "";
- $age = 23;
+ $age = "";
$tel = "";
$dect = "";
$mobile = "";
diff --git a/includes/sys_menu.php b/includes/sys_menu.php
index f2611397..805888e2 100644
--- a/includes/sys_menu.php
+++ b/includes/sys_menu.php
@@ -13,24 +13,24 @@ function page_link_to_absolute($page) {
*/
function header_toolbar() {
global $p, $privileges, $user;
-
+
$toolbar_items = array();
-
- if(in_array('register', $privileges))
+
+ if (in_array('register', $privileges))
$toolbar_items[] = toolbar_item_link(page_link_to('register'), 'register', "Register", $p == 'register');
-
- if(in_array('user_myshifts', $privileges))
+
+ if (in_array('user_myshifts', $privileges))
$toolbar_items[] = toolbar_item_link(page_link_to('user_myshifts'), 'engel', $user['Nick'], $p == 'user_myshifts');
-
- if(in_array('user_settings', $privileges))
+
+ if (in_array('user_settings', $privileges))
$toolbar_items[] = toolbar_item_link(page_link_to('user_settings'), 'settings', "Settings", $p == 'user_settings');
-
- if(in_array('login', $privileges))
+
+ if (in_array('login', $privileges))
$toolbar_items[] = toolbar_item_link(page_link_to('login'), 'login', "Login", $p == 'login');
-
- if(in_array('logout', $privileges))
+
+ if (in_array('logout', $privileges))
$toolbar_items[] = toolbar_item_link(page_link_to('logout'), 'logout', "Logout", $p == 'logout');
-
+
return toolbar($toolbar_items);
}
@@ -38,11 +38,11 @@ function make_navigation() {
global $p;
global $privileges;
$menu = "";
-
+
$specials = array(
- "faq"
+ "faq"
);
-
+
$pages = array(
"news",
"user_meetings",
@@ -65,28 +65,28 @@ function make_navigation() {
"admin_faq",
"admin_language",
"admin_import",
- "admin_log"
+ "admin_log"
);
-
+
foreach ($pages as $page)
if (in_array($page, $privileges) || in_array($page, $specials))
$menu .= '<li' . ($page == $p ? ' class="selected"' : '') . '><a href="' . page_link_to($page) . '">' . Get_Text($page) . '</a></li>';
-
+
return '<nav><ul>' . $menu . '</ul></nav>';
}
function make_navigation_for($name, $pages) {
global $privileges, $p;
-
+
$specials = array(
- "faq"
+ "faq"
);
-
+
$menu = "";
foreach ($pages as $page)
if (in_array($page, $privileges) || in_array($page, $specials))
$menu .= '<li' . ($page == $p ? ' class="selected"' : '') . '><a href="' . page_link_to($page) . '">' . Get_Text($page) . '</a></li>';
-
+
if ($menu != "")
$menu = '<nav class="container"><h4>' . $name . '</h4><ul class="content">' . $menu . '</ul></nav>';
return $menu;
@@ -96,14 +96,4 @@ function make_menu() {
return make_navigation() . make_langselect();
}
-function make_langselect() {
- if (strpos($_SERVER["REQUEST_URI"], "?") > 0)
- $URL = $_SERVER["REQUEST_URI"] . "&SetLanguage=";
- else
- $URL = $_SERVER["REQUEST_URI"] . "?SetLanguage=";
-
- $html = '<p class="content"><a class="sprache" href="' . htmlspecialchars($URL) . 'DE"><img src="pic/flag/de.png" alt="DE" title="Deutsch"></a>';
- $html .= '<a class="sprache" href="' . htmlspecialchars($URL) . 'EN"><img src="pic/flag/en.png" alt="EN" title="English"></a></p>';
- return '<nav class="container"><h4>' . Get_Text("Sprache") . '</h4>' . $html . '</nav>';
-}
?>
diff --git a/locale/de_DE.UTF-8/LC_MESSAGES/default.mo b/locale/de_DE.UTF-8/LC_MESSAGES/default.mo
new file mode 100644
index 00000000..741be3fb
--- /dev/null
+++ b/locale/de_DE.UTF-8/LC_MESSAGES/default.mo
Binary files differ
diff --git a/locale/de_DE.UTF-8/LC_MESSAGES/default.po b/locale/de_DE.UTF-8/LC_MESSAGES/default.po
new file mode 100644
index 00000000..aae53868
--- /dev/null
+++ b/locale/de_DE.UTF-8/LC_MESSAGES/default.po
@@ -0,0 +1,25 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Engelsystem 2.0\n"
+"POT-Creation-Date: 2013-11-25 19:11+0100\n"
+"PO-Revision-Date: 2013-11-25 19:11+0100\n"
+"Last-Translator: msquare <msquare@notrademark.de>\n"
+"Language-Team: \n"
+"Language: de_DE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Poedit-SearchPath-0: /Users/msquare/workspace/projects/engelsystem\n"
+"X-Poedit-SearchPath-1: .\n"
+
+#: /Users/msquare/workspace/projects/engelsystem/includes/helper/internationalization_helper.php:40
+msgid "Language"
+msgstr "Sprache"
+
+#~ msgid "asdf"
+#~ msgstr "fdsa"
diff --git a/public/css/style2.css b/public/css/style2.css
index 30d6d748..d7cec284 100644
--- a/public/css/style2.css
+++ b/public/css/style2.css
@@ -33,6 +33,7 @@ a {
}
.error,.success,.info {
+ color: #fff;
background-color: #333;
}
diff --git a/public/index.php b/public/index.php
index fb4c3c7f..ddb727f8 100644
--- a/public/index.php
+++ b/public/index.php
@@ -18,6 +18,7 @@ require_once ('includes/view/Shifts_view.php');
require_once ('includes/view/Sprache_view.php');
require_once ('includes/view/User_view.php');
+require_once ('includes/helper/internationalization_helper.php');
require_once ('includes/helper/message_helper.php');
require_once ('includes/helper/error_helper.php');
@@ -30,6 +31,8 @@ require_once ('includes/pages/user_messages.php');
session_start();
+gettext_init();
+
sql_connect($config['host'], $config['user'], $config['pw'], $config['db']);
load_auth();
@@ -37,7 +40,7 @@ load_auth();
// JSON Authorisierung gewünscht?
if (isset($_REQUEST['auth']))
json_auth_service();
-
+
// Gewünschte Seite/Funktion
$p = isset($user) ? "news" : "login";
if (isset($_REQUEST['p']) && preg_match("/^[a-z0-9_]*$/i", $_REQUEST['p']) && ($_REQUEST['p'] == 'stats' || (sql_num_query("SELECT * FROM `Privileges` WHERE `name`='" . sql_escape($_REQUEST['p']) . "' LIMIT 1") > 0)))
@@ -163,26 +166,26 @@ elseif (in_array($p, $privileges)) {
// Hinweis für ungelesene Nachrichten
if (isset($user) && $p != "user_messages")
$content = user_unread_messages() . $content;
-
+
// Hinweis für Engel, die noch nicht angekommen sind
if (isset($user) && $user['Gekommen'] == 0)
$content = error("You are not marked as arrived. Please go to heaven's desk, get your angel badge and/or tell them that you arrived already.", true) . $content;
-
+
// Erzengel Hinweis für unbeantwortete Fragen
if (isset($user) && $p != "admin_questions")
$content = admin_new_questions() . $content;
-
+
// Erzengel Hinweis für freizuschaltende Engeltypen
if (isset($user) && $p != "admin_user_angeltypes")
$content = admin_new_user_angeltypes() . $content;
-echo template_render('../templates/layout.html', array (
+echo template_render('../templates/layout.html', array(
'theme' => isset($user) ? $user['color'] : $default_theme,
'title' => $title,
'atom_link' => ($p == 'news' || $p == 'user_meetings') ? '<link href="' . page_link_to('atom') . (($p == 'user_meetings') ? '&amp;meetings=1' : '') . '&amp;key=' . $user['api_key'] . '" type="application/atom+xml" rel="alternate" title="Atom Feed">' : '',
'menu' => make_menu(),
'content' => $content,
- 'header_toolbar' => header_toolbar()
+ 'header_toolbar' => header_toolbar()
));
counter();
diff --git a/public/pic/flag/de.png b/public/pic/flag/de_DE.UTF-8.png
index ac4a9773..ac4a9773 100644
--- a/public/pic/flag/de.png
+++ b/public/pic/flag/de_DE.UTF-8.png
Binary files differ
diff --git a/public/pic/flag/en.png b/public/pic/flag/en_US.UTF-8.png
index ff701e19..ff701e19 100644
--- a/public/pic/flag/en.png
+++ b/public/pic/flag/en_US.UTF-8.png
Binary files differ