Added site default language setting.
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Fri, 13 Feb 2009 21:08:48 +0000 (21:08 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Fri, 13 Feb 2009 21:08:48 +0000 (21:08 +0000)
admin/inst_lang.php
includes/lang/language.php
lang/installed_languages.inc

index 0d0ddf58bb4f6dc1331a74667fc5c8065eb7eedc..ccdd3d8e31245d3e56c739c87ff01ff41ce75446 100644 (file)
@@ -37,8 +37,10 @@ else
 
 function check_data()
 {
-       if ($_POST['code'] == "" || $_POST['name'] == "" || $_POST['encoding'] == "")
+       if ($_POST['code'] == "" || $_POST['name'] == "" || $_POST['encoding'] == "") {
+               display_error(_("Language name, code nor encoding cannot be empty"));
                return false;
+       }
        return true;
 }
 
@@ -87,7 +89,7 @@ function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false)
 
 function write_lang()
 {
-       global $path_to_root, $installed_languages;
+       global $path_to_root, $installed_languages, $dflt_lang;
        include_once($path_to_root . "/lang/installed_languages.inc");
 
        $conn = array_natsort($installed_languages, 'code', 'code');
@@ -120,7 +122,9 @@ function write_lang()
                else
                        $msg .= "),\n";
        }
-       $msg .= "\t);\n?>";
+
+       $msg .= "\t);\n";
+       $msg .= "\n\$dflt_lang = '$dflt_lang';\n?>\n";
 
        $filename = $path_to_root . "/lang/installed_languages.inc";
        // Check if the file exists and is writable first.
@@ -155,13 +159,17 @@ function write_lang()
 
 function handle_submit()
 {
-       global $path_to_root, $installed_languages;
+       global $path_to_root, $installed_languages, $dflt_lang;
 
        if (!check_data())
                return false;
 
        $id = $_GET['id'];
 
+       if ($_POST['dflt']) {
+                       $dflt_lang = $_POST['code'];
+       }
+       
        $installed_languages[$id]['code'] = $_POST['code'];
        $installed_languages[$id]['name'] = $_POST['name'];
        $installed_languages[$id]['encoding'] = $_POST['encoding'];
@@ -197,42 +205,28 @@ function handle_submit()
 
 function handle_delete()
 {
-       global  $path_to_root, $installed_languages;
+       global  $path_to_root, $installed_languages, $dflt_lang;
 
        $id = $_GET['id'];
 
        $lang = $installed_languages[$id]['code'];
        $filename = "$path_to_root/lang/$lang/LC_MESSAGES";
-       if ($h = opendir($filename))
-       {
-               while (($file = readdir($h)) !== false)
-               {
-                       if (is_file("$filename/$file"))
-                       unlink("$filename/$file");
-               }
-               closedir($h);
-       }
-       rmdir($filename);
-       $filename = "$path_to_root/lang/$lang";
-       if ($h = opendir($filename))
-       {
-               while (($file = readdir($h)) !== false)
-               {
-                       if (is_file("$filename/$file"))
-                       unlink("$filename/$file");
-               }
-               closedir($h);
-       }
-       rmdir($filename);
 
+       if ($lang == $dflt_lang ) { 
+               // on delete set default to current.
+               $dflt_lang = $_SESSION['language']->code;
+       }
+       
        unset($installed_languages[$id]);
-       $conn = array_values($installed_languages);
-       $installed_languages = $conn;
-
-       //$$db_connections = array_values($db_connections);
+       $installed_languages = array_values($installed_languages);
 
        if (!write_lang())
                return;
+
+       $filename = "$path_to_root/lang/$lang";
+       flush_dir($filename);
+       rmdir($filename);
+
        meta_forward($_SERVER['PHP_SELF']);
 }
 
@@ -240,7 +234,7 @@ function handle_delete()
 
 function display_languages()
 {
-       global $table_style, $installed_languages;
+       global $table_style, $installed_languages, $dflt_lang;
 
        $lang = $_SESSION["language"]->code;
 
@@ -253,7 +247,7 @@ function display_languages()
                }
                </script>";
        start_table($table_style);
-       $th = array(_("Language"), _("Name"), _("Encoding"), _("Right To Left"), "", "");
+       $th = array(_("Language"), _("Name"), _("Encoding"), _("Right To Left"), _("Default"), "", "");
        table_header($th);
 
        $k = 0;
@@ -274,6 +268,7 @@ function display_languages()
                else
                        $rtl = _("No");
                label_cell($rtl);
+               label_cell($dflt_lang == $conn[$i]['code'] ? _("Yes") :_("No"));
                $edit = _("Edit");
                $delete = _("Delete");
                if (user_graphic_links())
@@ -295,7 +290,7 @@ function display_languages()
 
 function display_language_edit($selected_id)
 {
-       global $installed_languages, $table_style2;
+       global $installed_languages, $table_style2, $dflt_lang;
 
        if ($selected_id != -1)
                $n = $selected_id;
@@ -324,13 +319,15 @@ function display_language_edit($selected_id)
                        $_POST['rtl']  = $conn['rtl'];
                else
                        $_POST['rtl'] = false;
+               $_POST['dflt'] = $dflt_lang == $conn['code'];
                hidden('selected_id', $selected_id);
        }
-       text_row_ex(_("Language"), 'code', 20);
-       text_row_ex(_("Name"), 'name', 20);
+       text_row_ex(_("Language Code"), 'code', 20);
+       text_row_ex(_("Language Name"), 'name', 20);
        text_row_ex(_("Encoding"), 'encoding', 20);
 
        yesno_list_row(_("Right To Left"), 'rtl', null, "", "", false);
+       yesno_list_row(_("Default Language"), 'dflt', null, "", "", false);
 
        label_row(_("Language File") . " (PO)", "<input name='uploadfile' type='file'>");
        label_row(_("Language File") . " (MO)", "<input name='uploadfile2' type='file'>");
index 35c37c72689ab6eb8d8db0c50c6ccc5904d5b64d..50a88dfcb563c2f3972df447d778bd587b0d2154 100644 (file)
@@ -10,7 +10,7 @@
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
 if (!isset($path_to_root) || isset($_GET['path_to_root']) || isset($_POST['path_to_root']))
-       die("Restricted access");
+       die(_("Restricted access"));
 include_once($path_to_root . "/lang/installed_languages.inc");
 include_once($path_to_root . "/includes/lang/gettext.php");
 
@@ -66,7 +66,7 @@ class language
      */
        function load_languages() 
        {
-               global $installed_languages;
+               global $installed_languages, $dflt_lang;
 
                $_SESSION['languages'] = array();
 
@@ -79,7 +79,7 @@ class language
         }
 
                if (!isset($_SESSION['language']))
-                       $_SESSION['language'] = $_SESSION['languages']['en_GB'];
+                       $_SESSION['language'] = $_SESSION['languages'][$dflt_lang];
        }
 
 }
index 5be1f689e50b238065bb8bc50b3ab3d492aa8964..158bab00284c76bbf5c2e8ae52283e1e6837c51e 100644 (file)
@@ -14,4 +14,6 @@ $installed_languages = array (
        0 => array ('code' => 'en_GB', 'name' => 'English', 'encoding' => 'iso-8859-1'),
                array ('code' => 'en_US', 'name' => 'English (US)', 'encoding' => 'iso-8859-1'),
        );
+
+$dflt_lang = 'en_GB';
 ?>
\ No newline at end of file