X-Git-Url: https://git.p6c8.net/jirafeau_mojo42.git/blobdiff_plain/a6c1ba9e0d7305fc75eb216d1646d5a59d044986..48a4d0a7e7535a5c05a5f6d2dde44c1ec066d822:/lib/lang.php?ds=sidebyside

diff --git a/lib/lang.php b/lib/lang.php
index bf74e8d..0aec1e4 100644
--- 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,8 +19,13 @@
 
  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 t ($text)
@@ -40,18 +45,25 @@ function t ($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];
 }
 
 ?>