Jirafeau/lib/lang.php
Jerome Jutteau 9d3160e354 lib/lang: move translations to json based files
This should ease translation efforts #9

Signed-off-by: Jerome Jutteau <mojo@couak.net>
2015-04-14 19:31:39 +02:00

67 lines
2.0 KiB
PHP

<?php
/*
* Jirafeau, your web file repository
* 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',
'en' => 'English',
'fr' => 'Français');
/* Translation */
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);
error_log(print_r($trans, true));
if ($trans === NULL)
return $text;
/* Try to find translation. */
$translation = $trans[$text];
if (empty ($translation))
return $text;
return $translation;
}
?>