Jirafeau/lib/lang.php

70 lines
2.2 KiB
PHP
Raw Normal View History

<?php
/*
* Jirafeau, your web file repository
2015-03-10 10:18:48 +01:00
* Copyright (C) 2015 Jerome Jutteau <j.jutteau@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
global $languages_list;
$languages_list = array ('auto' => 'Automatic',
'de' => 'Deutsch',
'en' => 'English',
'fi' => 'Suomi',
'fr' => 'Français',
'it' => 'Italiano',
'nl' => 'Nederlands',
'ro' => 'Limba română');
/* Translation */
2012-12-31 15:48:30 +01:00
function t ($text)
{
$cfg = $GLOBALS['cfg'];
$languages_list = $GLOBALS['languages_list'];
/* Detect user's langage if we are in automatic mode. */
if (strcmp ($cfg['lang'], 'auto') == 0)
$l = substr ($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
else
$l = $cfg['lang'];
/* Is the langage in the list ? */
$found = false;
foreach ($languages_list as $key => $v)
if (strcmp ($l, $key) == 0)
$found = true;
/* Don't translate english. */
if (!($found && strcmp ($l, "en")))
return $text;
/* Open translation file. */
$trans_j = file_get_contents (JIRAFEAU_ROOT . "lib/locales/$l.json");
if ($trans_j === FALSE)
return $text;
/* Decode JSON. */
$trans = json_decode ($trans_j, true);
if ($trans === NULL)
return $text;
/* Try to find translation. */
if (!array_key_exists ($text, $trans))
return $text;
return $trans[$text];
}
?>