X-Git-Url: https://git.p6c8.net/jirafeau.git/blobdiff_plain/6165f1ef9bf8abf6d07caff88f14a36f368832c6..2b7fd594eb127b5a7e01e664ed54a5fa0be860c2:/lib/lang.php

diff --git a/lib/lang.php b/lib/lang.php
old mode 100755
new mode 100644
index b1265f8..0aec1e4
--- a/lib/lang.php
+++ b/lib/lang.php
@@ -1,7 +1,7 @@
 <?php
 /*
  *  Jirafeau, your web file repository
- *  Copyright (C) 2012  Jerome Jutteau <j.jutteau@gmail.com>
+ *  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
@@ -19,11 +19,16 @@
 
  global $languages_list;
  $languages_list = array ('auto' => 'Automatic',
+                          'de' => 'Deutsch',
                           'en' => 'English',
-                          'fr' => 'Français');
+                          'fi' => 'Suomi',
+                          'fr' => 'Français',
+                          'it' => 'Italiano',
+                          'nl' => 'Nederlands',
+                          'ro' => 'Limba română');
 
 /* Translation */
-function _ ($text)
+function t ($text)
 {
     $cfg = $GLOBALS['cfg'];
     $languages_list = $GLOBALS['languages_list'];
@@ -40,18 +45,25 @@ function _ ($text)
         if (strcmp ($l, $key) == 0)
             $found = true;
 
-    /* Get translation execpt for english. */
-    if ($found && strcmp ($l, "en"))
-    {
-        /* $tr is defined in this requirement. */
-        require (JIRAFEAU_ROOT . "lib/lang/$l.php");
-
-        foreach ($tr as $o => $t)
-            if (strcmp ($text, $o) == 0)
-                return "$t";
-    }
-    /* Return original text if no translation is found or already in english. */
-    return ($text);
+    /* 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];
 }
 
-?>
\ No newline at end of file
+?>