doudoudzj %!s(int64=6) %!d(string=hai) anos
pai
achega
bb133f7613
Modificáronse 61 ficheiros con 685 adicións e 721 borrados
  1. 1 1
      admin/views/account_list.php
  2. 5 5
      admin/views/footer.php
  3. 2 2
      admin/views/header.php
  4. 4 4
      admin/views/login.php
  5. 25 7
      admin/views/main.php
  6. 7 7
      admin/views/navbar.php
  7. 37 41
      admin/views/news.php
  8. 32 36
      admin/views/news_add.php
  9. 14 18
      admin/views/news_details.php
  10. 38 42
      admin/views/tickets.php
  11. 23 27
      admin/views/tickets_details.php
  12. 24 24
      bak/register_bak.php
  13. 1 1
      bak/resetpass.php
  14. 3 3
      clientarea/views/footer.php
  15. 3 3
      clientarea/views/header.php
  16. 1 1
      clientarea/views/login.php
  17. 1 1
      clientarea/views/main.php
  18. 1 1
      clientarea/views/navbar.php
  19. 3 3
      clientarea/views/tickets.php
  20. 2 2
      clientarea/views/tickets_add.php
  21. 3 3
      clientarea/views/tickets_details.php
  22. 4 1
      core.php
  23. 2 2
      core/controllers/about.php
  24. 1 1
      core/controllers/cancellation-refund.php
  25. 1 1
      core/controllers/contact.php
  26. 1 1
      core/controllers/help.php
  27. 2 2
      core/controllers/legal.php
  28. 1 1
      core/controllers/login.php
  29. 1 1
      core/controllers/news.php
  30. 1 1
      core/controllers/payment-methods.php
  31. 1 1
      core/controllers/register.php
  32. 1 1
      core/controllers/solution.php
  33. 1 1
      core/controllers/support.php
  34. 1 1
      core/views/about_crogram.php
  35. 1 1
      core/views/about_ifastnet.php
  36. 1 1
      core/views/about_uiisc.php
  37. 1 1
      core/views/cancellation-refund.php
  38. 2 2
      core/views/contact.php
  39. 5 5
      core/views/footer.php
  40. 1 1
      core/views/forum.php
  41. 2 2
      core/views/header.php
  42. 1 1
      core/views/help.php
  43. 1 1
      core/views/legal_privacy.php
  44. 1 1
      core/views/legal_terms.php
  45. 9 12
      core/views/login.php
  46. 20 20
      core/views/navbar.php
  47. 2 2
      core/views/payment-methods.php
  48. 21 21
      core/views/register.php
  49. 44 44
      core/views/solution.php
  50. 4 4
      core/views/support.php
  51. 111 0
      data/lang.php
  52. 8 4
      data/language/en-US/language.php
  53. 4 0
      data/language/ko/language.php
  54. 5 1
      data/language/zh-CN/language.php
  55. 3 0
      data/language/zh-HK/language.php
  56. 3 0
      data/language/zh-SG/language.php
  57. 5 1
      data/language/zh-TW/language.php
  58. 182 0
      library/lang.class.php
  59. 0 276
      library/language.php
  60. 0 3
      library/language/zh-SG/language.php
  61. 0 70
      library/language/zh-TW/language.php

+ 1 - 1
admin/views/account_list.php

@@ -39,7 +39,7 @@ if (!defined('IN_SYS')) {
                                 <td><?php echo $value["password"]; ?></td>
                                 <td><?php echo implode(",", $value["nameserver"]); ?></td>
                                 <td style="width: 206px;">
-                                    <a class="btn btn-default btn-xs" href="#" role="button"><?php echo I18N('login'); ?></a>
+                                    <a class="btn btn-default btn-xs" href="#" role="button"><?php echo $lang->I18N('login'); ?></a>
                                     <button class="btn btn-default btn-xs" type="submit">View</button>
                                     <button class="btn btn-default btn-xs" type="submit">Active</button>
                                     <button class="btn btn-default btn-xs" type="submit">Disable</button>

+ 5 - 5
admin/views/footer.php

@@ -20,13 +20,13 @@ if (!defined('IN_SYS')) {
                     <li class="dropup">
                         <div class="dropdown-toggle" id="changelanguage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                             <span class="glyphicon glyphicon-globe"></span>
-                            <a href="#"><?php echo $languages[$current_lang][0]; ?></a>
+                            <a href="#"><?php echo $lang->get_language_name(); ?></a>
                         </div>
-                        <ul class="dropdown-menu language-change"><?php echo $language_tags; ?></ul>
+                        <ul class="dropdown-menu language-change"><?php echo $lang->get_languages_tags(); ?></ul>
                     </li>
-                    <li><a href="about.php"><?php echo I18N('about'); ?></a></li>
-                    <li><a href="contact.php"><?php echo I18N('contact'); ?></a></li>
-                    <li><a href="support.php"><?php echo I18N('support'); ?></a></li>
+                    <li><a href="about.php"><?php echo $lang->I18N('about'); ?></a></li>
+                    <li><a href="contact.php"><?php echo $lang->I18N('contact'); ?></a></li>
+                    <li><a href="support.php"><?php echo $lang->I18N('support'); ?></a></li>
                 </ul>
             </div>
         </div>

+ 2 - 2
admin/views/header.php

@@ -6,7 +6,7 @@ if (!defined('IN_SYS')) {
 }
 ?>
 <!DOCTYPE html>
-<html lang="<?php echo $current_lang; ?>">
+<html lang="<?php echo $lang->get_lang(); ?>">
 
 <head>
     <meta charset="utf-8" />
@@ -26,7 +26,7 @@ if (!defined('IN_SYS')) {
     <![endif]-->
     <script type="text/javascript">
         var domain = "<?php echo $lang->getDomain(); ?>";
-        var cur_lang = "<?php echo $current_lang; ?>";
+        var cur_lang = "<?php echo $lang->get_lang(); ?>";
         var ifastnet_aff = <?php echo $iFastNetAff; ?>;
     </script>
 </head>

+ 4 - 4
admin/views/login.php

@@ -11,7 +11,7 @@ if (!defined('IN_SYS')) {
         <div class="col-md-6 col-sm-6 margin-auto">
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <h3 class="panel-title"><?php echo I18N('login'); ?></h3>
+                    <h3 class="panel-title"><?php echo $lang->I18N('login'); ?></h3>
                 </div>
                 <div class="panel-body">
                     <?php if (!isAdminLoggedIn()) { ?>
@@ -21,14 +21,14 @@ if (!defined('IN_SYS')) {
                                 <input type="text" name="username" class="form-control" maxlength="18" placeholder="Username" autofocus required>
                             </label>
                             <label>
-                                <span><?php echo I18N('password'); ?>:</span>
-                                <input type="password" name="password" class="form-control" maxlength="35" placeholder="<?php echo I18N('password'); ?>" required>
+                                <span><?php echo $lang->I18N('password'); ?>:</span>
+                                <input type="password" name="password" class="form-control" maxlength="35" placeholder="<?php echo $lang->I18N('password'); ?>" required>
                             </label>
                             <label>
                                 <span>Captcha:</span>
                                 <input type="text" name="captcha" class="form-control" maxlength="18" placeholder="CAPTCHA" required autocomplete="off" style="background-image: url(library/captcha.php);">
                             </label>
-                            <button type="submit" name="do_login" class="btn btn-primary"><?php echo I18N('login'); ?></button>
+                            <button type="submit" name="do_login" class="btn btn-primary"><?php echo $lang->I18N('login'); ?></button>
                         </form>
                     <?php } elseif (isAdminLoggedIn() && !isset($message[0])) { ?>
                         <div class="alert alert-success">You have logged in</div>

+ 25 - 7
admin/views/main.php

@@ -11,20 +11,38 @@ if (file_exists("{$ROOT}/install.php")) {
 ?>
 
 <div class="container">
+    <div class="page-header">
+        <h1><?php echo $lang->I18N('managearea'); ?></h1>
+    </div>
+</div>
+
+<div class="container">
+    <?php echo getMsg("msg_notify"); ?>
     <div class="row">
-        <div class="col-md-12">
-            <?php echo getMsg("msg_notify"); ?>
+        <div class="col-md-6">
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <h3 class="panel-title">Content Management System for Reseller</h3>
+                    <h3 class="panel-title">统计信息</h3>
                 </div>
                 <div class="panel-body">
-
+                    <p>客户:100 个</p>
+                    <p>工单:待处理 100 个(总共:1000 个)</p>
+                    <p>订单:100 个</p>
+                </div>
+                <div class="panel-footer"></div>
+            </div>
+        </div>
+        <div class="col-md-6">
+            <?php echo getMsg("msg_notify"); ?>
+            <div class="panel panel-default">
+                <div class="panel-heading">
+                    <h3 class="panel-title">快捷操作</h3>
                 </div>
-                <div class="panel-footer">
-                    <a href="<?php echo setRouter('clientarea', 'forget_password'); ?>" class="btn btn-link">Forget Passsword?</a>
-                    <a href="<?php echo setRouter('clientarea', 'register'); ?>" class="btn btn-link">No account? Register</a>
+                <div class="panel-body">
+                    <a class="btn btn-default" href="<?php echo setRouter('admin', 'news_add'); ?>">添加新闻</a>
+                    <a class="btn btn-default" href="<?php echo setRouter('admin', 'account_add'); ?>">添加账号</a>
                 </div>
+                <div class="panel-footer"></div>
             </div>
         </div>
     </div>

+ 7 - 7
admin/views/navbar.php

@@ -20,7 +20,7 @@ if (!defined('IN_SYS')) {
             </div>
             <div id="navbar" class="navbar-collapse collapse">
                 <ul class="nav navbar-nav">
-                    <li><a href="<?php echo setRouter('admin'); ?>"><?php echo I18N('home'); ?></a></li>
+                    <li><a href="<?php echo setRouter('admin'); ?>"><?php echo $lang->I18N('home'); ?></a></li>
                     <?php if (isAdminLoggedIn()) { ?>
                         <li class="dropdown">
                             <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown">Account&nbsp;<span class="caret"></span></a>
@@ -37,8 +37,8 @@ if (!defined('IN_SYS')) {
                                 <li><a href="<?php echo setRouter('admin', 'account_disable'); ?>">Account Suspend</a></li>
                             </ul>
                         </li>
-                        <li><a href="<?php echo setRouter('admin', 'tickets'); ?>"><?php echo I18N('Tickets'); ?></a></li>
-                        <li><a href="<?php echo setRouter('admin', 'news'); ?>"><?php echo I18N('news'); ?></a></li>
+                        <li><a href="<?php echo setRouter('admin', 'tickets'); ?>"><?php echo $lang->I18N('tickets'); ?></a></li>
+                        <li><a href="<?php echo setRouter('admin', 'news'); ?>"><?php echo $lang->I18N('news'); ?></a></li>
                     <?php } ?>
                 </ul>
                 <ul class="nav navbar-nav navbar-right">
@@ -50,14 +50,14 @@ if (!defined('IN_SYS')) {
                                 <li><a href="<?php echo setRouter('admin', 'edit_details'); ?>">Edit Account Details</a></li>
                                 <li><a href="<?php echo setRouter('admin', 'change_password'); ?>">Change password</a></li>
                                 <li role="separator" class="divider"></li>
-                                <li><a href="<?php echo setRouter('clientarea'); ?>" target="_blank"><?php echo I18N('clientarea'); ?></a></li>
+                                <li><a href="<?php echo setRouter('clientarea'); ?>" target="_blank"><?php echo $lang->I18N('clientarea'); ?></a></li>
                                 <li role="separator" class="divider"></li>
-                                <li><a href="<?php echo setRouter('admin', 'logout'); ?>"><?php echo I18N('Logout'); ?></a></li>
+                                <li><a href="<?php echo setRouter('admin', 'logout'); ?>"><?php echo $lang->I18N('Logout'); ?></a></li>
                             </ul>
                         </li>
                     <?php } else { ?>
-                        <li><a href="<?php echo setRouter('admin'); ?>"><?php echo I18N('managearea'); ?></a></li>
-                        <li><a href="<?php echo setRouter('clientarea'); ?>"><?php echo I18N('clientarea'); ?></a></li>
+                        <li><a href="<?php echo setRouter('admin'); ?>"><?php echo $lang->I18N('managearea'); ?></a></li>
+                        <li><a href="<?php echo setRouter('clientarea'); ?>"><?php echo $lang->I18N('clientarea'); ?></a></li>
                     <?php } ?>
                 </ul>
             </div>

+ 37 - 41
admin/views/news.php

@@ -7,50 +7,46 @@ if (!defined('IN_SYS')) {
 ?>
 
 <div class="container">
-    <div class="row">
-        <div class="col-md-12">
-            <?php echo (getMsg("msg_notify")); ?>
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <span class="panel-title"><?php echo I18N('news'); ?></span>
-                    <div class="pull-right">
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news_add'); ?>"><?php echo I18N('add'); ?></a>
-                    </div>
-                </div>
-                <div class="panel-body">
-                    <div class="table-responsive">
-                        <table class="table table-bordered table-striped table-hover">
-                            <thead>
+    <?php echo (getMsg("msg_notify")); ?>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <span class="panel-title"><?php echo $lang->I18N('news'); ?></span>
+            <div class="pull-right">
+                <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news_add'); ?>"><?php echo $lang->I18N('add'); ?></a>
+            </div>
+        </div>
+        <div class="panel-body">
+            <div class="table-responsive">
+                <table class="table table-bordered table-striped table-hover">
+                    <thead>
+                        <tr>
+                            <th style="width: 150px;">Date</th>
+                            <th>Title</th>
+                            <th>Status</th>
+                            <th></th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <?php if ($news["total"] && $news["list"]) {
+                            foreach ($news["list"] as $key => $value) { ?>
                                 <tr>
-                                    <th style="width: 150px;">Date</th>
-                                    <th>Title</th>
-                                    <th>Status</th>
-                                    <th></th>
+                                    <td style="width: 150px;"><?php echo cTime($value["date"]); ?></td>
+                                    <td><?php echo $value["title"]; ?></td>
+                                    <td><?php echo $status_types[$value['status']]; ?></td>
+                                    <td><a class="btn btn-default btn-xs pull-right" href="<?php echo setRouter('admin', 'news_details', ['id' => $value['id']]); ?>"><?php echo $lang->I18N('details'); ?></a></td>
                                 </tr>
-                            </thead>
-                            <tbody>
-                                <?php if ($news["total"] && $news["list"]) {
-                                    foreach ($news["list"] as $key => $value) { ?>
-                                        <tr>
-                                            <td style="width: 150px;"><?php echo cTime($value["date"]); ?></td>
-                                            <td><?php echo $value["title"]; ?></td>
-                                            <td><?php echo $status_types[$value['status']]; ?></td>
-                                            <td><a class="btn btn-default btn-xs pull-right" href="<?php echo setRouter('admin', 'news_details', ['id' => $value['id']]); ?>">Details</a></td>
-                                        </tr>
-                                    <?php }
-                            } else { ?>
-                                    <tr>
-                                        <td colspan="5" class="text-center">No Records Found</td>
-                                    </tr>
-                                <?php } ?>
-                            </tbody>
-                        </table>
-                    </div>
-                </div>
-                <div class="panel-footer">
-                    <span><?php echo $news["total"]; ?> Records Found, Page <?php echo $news["page"]; ?> of <?php echo $news["pages"]; ?></span>
-                </div>
+                            <?php }
+                    } else { ?>
+                            <tr>
+                                <td colspan="5" class="text-center">No Records Found</td>
+                            </tr>
+                        <?php } ?>
+                    </tbody>
+                </table>
             </div>
         </div>
+        <div class="panel-footer">
+            <span><?php echo $news["total"]; ?> Records Found, Page <?php echo $news["page"]; ?> of <?php echo $news["pages"]; ?></span>
+        </div>
     </div>
 </div>

+ 32 - 36
admin/views/news_add.php

@@ -7,44 +7,40 @@ if (!defined('IN_SYS')) {
 ?>
 
 <div class="container">
-    <div class="row">
-        <div class="col-md-10 margin-auto">
-            <?php echo (getMsg("msg_notify")); ?>
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <span class="panel-title">News Add</span>
-                    <div class="pull-right">
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news'); ?>"><?php echo I18N('list'); ?></a>
-                    </div>
+    <?php echo (getMsg("msg_notify")); ?>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <span class="panel-title">News Add</span>
+            <div class="pull-right">
+                <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news'); ?>"><?php echo $lang->I18N('list'); ?></a>
+            </div>
+        </div>
+        <div class="panel-body">
+            <form action="" method="POST">
+                <div class="form-group">
+                    <label for="title">Title: <sup>*</sup></label>
+                    <input type="text" name="title" id="title" value="<?php echo ($data['title']); ?>" class="form-control <?php echo (isset($err['title_err'])) ? 'is-invalid' : ''; ?>" maxlength="100" placeholder="Title">
+                    <span class="text-warning"><?php echo isset($err["title_err"]) ? $err["title_err"] : ""; ?></span>
                 </div>
-                <div class="panel-body">
-                    <form action="" method="POST">
-                        <div class="form-group">
-                            <label for="title">Title: <sup>*</sup></label>
-                            <input type="text" name="title" id="title" value="<?php echo ($data['title']); ?>" class="form-control <?php echo (isset($err['title_err'])) ? 'is-invalid' : ''; ?>" maxlength="100" placeholder="Title">
-                            <span class="text-warning"><?php echo isset($err["title_err"]) ? $err["title_err"] : ""; ?></span>
-                        </div>
-                        <div class="form-group">
-                            <label for="content">Content: <sup>*</sup></label>
-                            <textarea name="content" id="content" value="<?php echo ($data['content']); ?>" class="form-control <?php echo (isset($err['content_err'])) ? 'is-invalid' : ''; ?>" rows="10" maxlength="5000" placeholder="Content"></textarea>
-                            <span class="text-warning"><?php echo isset($err["content_err"]) ? $err["content_err"] : ""; ?></span>
-                        </div>
-                        <div class="form-group">
-                            <label for="status">Status: <sup>*</sup></label>
-                            <select name="status" id="status" class="form-control <?php echo (isset($err['status_err'])) ? 'is-invalid' : ''; ?>">
-                                <?php foreach ($status_types as $key => $value) { ?>
-                                    <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
-                                <?php } ?>
-                            </select>
-                            <span class="text-warning"><?php echo isset($err["status_err"]) ? $err["status_err"] : ""; ?></span>
-                        </div>
-                        <div class="form-group">
-                            <button type="submit" name="do_add_news" class="btn btn-primary"><?php echo I18N('add'); ?></button>
-                        </div>
-                    </form>
+                <div class="form-group">
+                    <label for="content">Content: <sup>*</sup></label>
+                    <textarea name="content" id="content" value="<?php echo ($data['content']); ?>" class="form-control <?php echo (isset($err['content_err'])) ? 'is-invalid' : ''; ?>" rows="10" maxlength="5000" placeholder="Content"></textarea>
+                    <span class="text-warning"><?php echo isset($err["content_err"]) ? $err["content_err"] : ""; ?></span>
                 </div>
-                <div class="panel-footer"></div>
-            </div>
+                <div class="form-group">
+                    <label for="status">Status: <sup>*</sup></label>
+                    <select name="status" id="status" class="form-control <?php echo (isset($err['status_err'])) ? 'is-invalid' : ''; ?>">
+                        <?php foreach ($status_types as $key => $value) { ?>
+                            <option value="<?php echo $key; ?>"><?php echo $value; ?></option>
+                        <?php } ?>
+                    </select>
+                    <span class="text-warning"><?php echo isset($err["status_err"]) ? $err["status_err"] : ""; ?></span>
+                </div>
+                <div class="form-group">
+                    <button type="submit" name="do_add_news" class="btn btn-primary"><?php echo $lang->I18N('add'); ?></button>
+                </div>
+            </form>
         </div>
+        <div class="panel-footer"></div>
     </div>
 </div>

+ 14 - 18
admin/views/news_details.php

@@ -7,25 +7,21 @@ if (!defined('IN_SYS')) {
 ?>
 
 <div class="container">
-    <div class="row">
-        <div class="col-md-12">
-            <?php echo (getMsg("msg_notify")); ?>
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <span class="panel-title">News Details</span>
-                    <div class="pull-right">
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news'); ?>"><?php echo I18N('list'); ?></a>
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news_add'); ?>"><?php echo I18N('add'); ?></a>
-                    </div>
-                </div>
-                <div class="panel-body">
-                    <p>Status: <?php echo $status_types[$data['status']]; ?></p>
-                    <p>Date: <?php echo cTime($data['date']); ?></p>
-                    <p>Title: <?php echo $data['title']; ?></p>
-                    <p>Content: <?php echo $data['content']; ?></p>
-                </div>
-                <div class="panel-footer"></div>
+    <?php echo (getMsg("msg_notify")); ?>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <span class="panel-title">News Details</span>
+            <div class="pull-right">
+                <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news'); ?>"><?php echo $lang->I18N('list'); ?></a>
+                <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'news_add'); ?>"><?php echo $lang->I18N('add'); ?></a>
             </div>
         </div>
+        <div class="panel-body">
+            <p>Status: <?php echo $status_types[$data['status']]; ?></p>
+            <p>Date: <?php echo cTime($data['date']); ?></p>
+            <p>Title: <?php echo $data['title']; ?></p>
+            <p>Content: <?php echo $data['content']; ?></p>
+        </div>
+        <div class="panel-footer"></div>
     </div>
 </div>

+ 38 - 42
admin/views/tickets.php

@@ -7,51 +7,47 @@ if (!defined('IN_SYS')) {
 ?>
 
 <div class="container">
-    <div class="row">
-        <div class="col-md-12">
-            <?php echo (getMsg("msg_notify")); ?>
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <span class="panel-title">Support Tickets</span>
-                </div>
-                <div class="panel-body">
-                    <div class="table-responsive">
-                        <table class="table table-bordered table-striped table-hover">
-                            <thead>
+    <?php echo (getMsg("msg_notify")); ?>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <span class="panel-title"><?php echo $lang->I18N('tickets'); ?></span>
+        </div>
+        <div class="panel-body">
+            <div class="table-responsive">
+                <table class="table table-bordered table-striped table-hover">
+                    <thead>
+                        <tr>
+                            <th style="width: 150px;">Date</th>
+                            <th>Department</th>
+                            <th>Subject</th>
+                            <th>Status</th>
+                            <th style="width: 150px;">Last Updated</th>
+                            <th></th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <?php if ($tickets["total"]) {
+                            foreach ($tickets["list"] as $key => $value) { ?>
                                 <tr>
-                                    <th style="width: 150px;">Date</th>
-                                    <th>Department</th>
-                                    <th>Subject</th>
-                                    <th>Status</th>
-                                    <th style="width: 150px;">Last Updated</th>
-                                    <th></th>
+                                    <td style="width: 150px;"><?php echo cTime($value["date"]); ?></td>
+                                    <td><?php echo $ticket_types[$value["department"]]; ?></td>
+                                    <td><?php echo $value["subject"]; ?></td>
+                                    <td><?php echo $status_types[$value["status"]]; ?></td>
+                                    <td style="width: 150px;"><?php echo cTime($value["lastupdated"]); ?></td>
+                                    <td><a class="btn btn-default btn-xs pull-right" href="<?php echo setRouter('admin', 'tickets_details', ['id' => $value['id']]); ?>"><?php echo $lang->I18N('details'); ?></a></td>
                                 </tr>
-                            </thead>
-                            <tbody>
-                                <?php if ($tickets["total"]) {
-                                    foreach ($tickets["list"] as $key => $value) { ?>
-                                        <tr>
-                                            <td style="width: 150px;"><?php echo cTime($value["date"]); ?></td>
-                                            <td><?php echo $ticket_types[$value["department"]]; ?></td>
-                                            <td><?php echo $value["subject"]; ?></td>
-                                            <td><?php echo $status_types[$value["status"]]; ?></td>
-                                            <td style="width: 150px;"><?php echo cTime($value["lastupdated"]); ?></td>
-                                            <td><a class="btn btn-default btn-xs pull-right" href="<?php echo setRouter('admin', 'tickets_details', ['id' => $value['id']]); ?>">Details</a></td>
-                                        </tr>
-                                    <?php }
-                            } else { ?>
-                                    <tr>
-                                        <td colspan="6" class="text-center">No Records Found</td>
-                                    </tr>
-                                <?php } ?>
-                            </tbody>
-                        </table>
-                    </div>
-                </div>
-                <div class="panel-footer">
-                    <span><?php echo $tickets["total"]; ?> Records Found, Page <?php echo $tickets["page"]; ?> of <?php echo $tickets["pages"]; ?></span>
-                </div>
+                            <?php }
+                    } else { ?>
+                            <tr>
+                                <td colspan="6" class="text-center">No Records Found</td>
+                            </tr>
+                        <?php } ?>
+                    </tbody>
+                </table>
             </div>
         </div>
+        <div class="panel-footer">
+            <span><?php echo $tickets["total"]; ?> Records Found, Page <?php echo $tickets["page"]; ?> of <?php echo $tickets["pages"]; ?></span>
+        </div>
     </div>
 </div>

+ 23 - 27
admin/views/tickets_details.php

@@ -7,35 +7,31 @@ if (!defined('IN_SYS')) {
 ?>
 
 <div class="container">
-    <div class="row">
-        <div class="col-md-12">
-            <?php echo (getMsg("msg_notify")); ?>
-            <div class="panel panel-default">
-                <div class="panel-heading">
-                    <span class="panel-title">Tickets Details</span>
-                    <div class="pull-right">
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'tickets'); ?>"><?php echo I18N('list'); ?></a>
-                    </div>
+    <?php echo (getMsg("msg_notify")); ?>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <span class="panel-title"><?php echo $lang->I18N('tickets-details'); ?></span>
+            <div class="pull-right">
+                <a class="btn btn-default btn-xs" href="<?php echo setRouter('admin', 'tickets'); ?>"><?php echo $lang->I18N('list'); ?></a>
+            </div>
+        </div>
+        <div class="panel-body">
+            <p>Type: <?php echo $ticket_types[$data['department']]; ?></p>
+            <p>Status: <?php echo $status_types[$data['status']]; ?></p>
+            <p>Subject: <?php echo $data['subject']; ?></p>
+            <p>Content: <?php echo $data['content']; ?></p>
+            <form action="" method="POST">
+                <div class="form-group">
+                    <label for="Comment">Comment: <sup>*</sup></label>
+                    <textarea name="comment" id="comment" value="<?php echo ($data['comment']); ?>" class="form-control <?php echo (isset($err['comment_err'])) ? 'is-invalid' : ''; ?>" rows="10" maxlength="5000" placeholder="Comment"></textarea>
+                    <span class="text-warning"><?php echo isset($err["comment_err"]) ? $err["comment_err"] : ""; ?></span>
                 </div>
-                <div class="panel-body">
-                    <p>Type: <?php echo $ticket_types[$data['department']]; ?></p>
-                    <p>Status: <?php echo $status_types[$data['status']]; ?></p>
-                    <p>Subject: <?php echo $data['subject']; ?></p>
-                    <p>Content: <?php echo $data['content']; ?></p>
-                    <form action="" method="POST">
-                        <div class="form-group">
-                            <label for="Comment">Comment: <sup>*</sup></label>
-                            <textarea name="comment" id="comment" value="<?php echo ($data['comment']); ?>" class="form-control <?php echo (isset($err['comment_err'])) ? 'is-invalid' : ''; ?>" rows="10" maxlength="5000" placeholder="Comment"></textarea>
-                            <span class="text-warning"><?php echo isset($err["comment_err"]) ? $err["comment_err"] : ""; ?></span>
-                        </div>
-                        <div class="form-group">
-                            <button type="submit" name="do_comment_tickets" class="btn btn-primary">Add Comment</button>
-                            <button type="submit" name="do_close_tickets" class="btn btn-primary">Close Tickets</button>
-                        </div>
-                    </form>
+                <div class="form-group">
+                    <button type="submit" name="do_comment_tickets" class="btn btn-primary">Add Comment</button>
+                    <button type="submit" name="do_close_tickets" class="btn btn-primary">Close Tickets</button>
                 </div>
-                <div class="panel-footer"></div>
-            </div>
+            </form>
         </div>
+        <div class="panel-footer"></div>
     </div>
 </div>

+ 24 - 24
bak/register_bak.php

@@ -4,10 +4,10 @@
    $security_id = md5(rand(6000,getrandmax())); // $security_id = md5(rand(6000,PHP_INT_MAX));
 ?>
 <!DOCTYPE html>
-<html lang="<?php echo $current_lang; ?>">
+<html lang="<?php echo $lang->get_lang(); ?>">
 <head>
     <meta charset="utf-8">
-    <title><?php echo $title; ?> - <?php echo I18N('register'); ?></title>
+    <title><?php echo $title; ?> - <?php echo $lang->I18N('register'); ?></title>
     <?php include ("headmate.php"); ?>
 </head>
 
@@ -18,37 +18,37 @@
     <div class="form-group form-horizontal form-account">
         <input type="hidden" name="plan_name" value="free webhosting">
         <div class="form-group">
-            <label for="inputUsername" class="control-label"><?php echo I18N('username'); ?></label>
-            <input type="text" name="username" class="form-control" id="inputUsername" placeholder="<?php echo I18N('input_username'); ?>" value="<?php if (isset($_GET['username'])) { echo $_GET['username']; }?>">
+            <label for="inputUsername" class="control-label"><?php echo $lang->I18N('username'); ?></label>
+            <input type="text" name="username" class="form-control" id="inputUsername" placeholder="<?php echo $lang->I18N('input_username'); ?>" value="<?php if (isset($_GET['username'])) { echo $_GET['username']; }?>">
         </div>
         <div class="form-group">
-            <label for="inputDomain" class="control-label"><?php echo I18N('domain'); ?></label>
-            <input type="text" name="domain" class="form-control" id="inputDomain" placeholder="<?php echo I18N('input-domain'); ?>" value="<?php if (isset($_GET['domain'])) { echo $_GET['domain']; }?>">
+            <label for="inputDomain" class="control-label"><?php echo $lang->I18N('domain'); ?></label>
+            <input type="text" name="domain" class="form-control" id="inputDomain" placeholder="<?php echo $lang->I18N('input-domain'); ?>" value="<?php if (isset($_GET['domain'])) { echo $_GET['domain']; }?>">
         </div>
         <div class="form-group">
-            <label for="inputPassword" class="control-label"><?php echo I18N('password'); ?></label>
-            <input type="password" name="password" class="form-control" id="inputPassword" placeholder="<?php echo I18N('input_password'); ?>">
+            <label for="inputPassword" class="control-label"><?php echo $lang->I18N('password'); ?></label>
+            <input type="password" name="password" class="form-control" id="inputPassword" placeholder="<?php echo $lang->I18N('input_password'); ?>">
         </div>
         <div class="form-group">
-            <label for="inputEmail" class="control-label"><?php echo I18N('email'); ?></label>
-            <input type="email" name="email" class="form-control" id="inputEmail" placeholder="<?php echo I18N('input_email'); ?>" value="<?php if (isset($_GET['email'])) { echo $_GET['email']; }?>">
+            <label for="inputEmail" class="control-label"><?php echo $lang->I18N('email'); ?></label>
+            <input type="email" name="email" class="form-control" id="inputEmail" placeholder="<?php echo $lang->I18N('input_email'); ?>" value="<?php if (isset($_GET['email'])) { echo $_GET['email']; }?>">
         </div>
         <div class="form-group">
-            <label for="inputCategory" class="control-label"><?php echo I18N('site_category'); ?></label>
+            <label for="inputCategory" class="control-label"><?php echo $lang->I18N('site_category'); ?></label>
             <select class="form-control" name="website_category" id="inputCategory">
-                <option><?php echo I18N('choose_from_below'); ?></option>
-                <option><?php echo I18N('personal'); ?></option>
-                <option><?php echo I18N('business'); ?></option>
-                <option><?php echo I18N('hobby'); ?></option>
-                <option><?php echo I18N('forum'); ?></option>
-                <option><?php echo I18N('dating'); ?></option>
-                <option><?php echo I18N('software_download'); ?></option>
+                <option><?php echo $lang->I18N('choose_from_below'); ?></option>
+                <option><?php echo $lang->I18N('personal'); ?></option>
+                <option><?php echo $lang->I18N('business'); ?></option>
+                <option><?php echo $lang->I18N('hobby'); ?></option>
+                <option><?php echo $lang->I18N('forum'); ?></option>
+                <option><?php echo $lang->I18N('dating'); ?></option>
+                <option><?php echo $lang->I18N('software_download'); ?></option>
             </select>
         </div>
         <div class="form-group">
-            <label for="inputLanguage" class="control-label"><?php echo I18N('site_language'); ?></label>
+            <label for="inputLanguage" class="control-label"><?php echo $lang->I18N('site_language'); ?></label>
             <select class="form-control" name="website_language" id="inputLanguage">
-                <option><?php echo I18N('choose_from_below'); ?></option>
+                <option><?php echo $lang->I18N('choose_from_below'); ?></option>
                 <!-- <option data-i18n="english">English</option> -->
                 <!-- <option data-i18n="non_english">Non-English</option> -->
                 <option selected="selected" value="English">Auto: English</option>
@@ -160,16 +160,16 @@
             </select>
         </div>
         <div class="form-group">
-            <label for="inputID" class="control-label"><?php echo I18N('security_code'); ?></label>
+            <label for="inputID" class="control-label"><?php echo $lang->I18N('security_code'); ?></label>
             <img width="90px" height="25px" src="./security_code.php?id=<?=$security_id?>">
             <input type="hidden" name="id" class="form-control" id="inputID" value="<?=$security_id?>">
         </div>
         <div class="form-group">
-            <label for="inputSecurityCode" class="control-label"><?php echo I18N('input_security_code'); ?></label>
-            <input type="text" name="number" class="form-control" id="inputSecurityCode" placeholder="<?php echo I18N('input_security_code_above'); ?>">
+            <label for="inputSecurityCode" class="control-label"><?php echo $lang->I18N('input_security_code'); ?></label>
+            <input type="text" name="number" class="form-control" id="inputSecurityCode" placeholder="<?php echo $lang->I18N('input_security_code_above'); ?>">
         </div>
         <div class="form-group">
-            <button type="submit" name="submit" class="btn btn-primary"><?php echo I18N('register'); ?></button>
+            <button type="submit" name="submit" class="btn btn-primary"><?php echo $lang->I18N('register'); ?></button>
         </div>
     </div>
 </div>

+ 1 - 1
bak/resetpass.php

@@ -30,7 +30,7 @@
         </div>
         <div class="form-group">
             <label>Not yet have an account ?</label>
-            <label><a href="register.php"><?php echo I18N('register'); ?></a></label>
+            <label><a href="register.php"><?php echo $lang->I18N('register'); ?></a></label>
         </div>
         <div class="form-group">
             <button type="submit" name="submit" class="btn btn-primary btn-block">Submit</button>

+ 3 - 3
clientarea/views/footer.php

@@ -20,11 +20,11 @@ if (!defined('IN_SYS')) {
                 <li class="dropup">
                     <div class="dropdown-toggle" id="changelanguage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                         <span class="glyphicon glyphicon-globe"></span>
-                        <a href="#"><?php echo $languages[$current_lang][0]; ?></a>
+                        <a href="#"><?php echo $lang->get_language_name(); ?></a>
                     </div>
-                    <ul class="dropdown-menu language-change"><?php echo $language_tags; ?></ul>
+                    <ul class="dropdown-menu language-change"><?php echo $lang->get_languages_tags(); ?></ul>
                 </li>
-                <li><a href="<?php echo setRouter('about'); ?>"><?php echo I18N('about'); ?></a></li>
+                <li><a href="<?php echo setRouter('about'); ?>"><?php echo $lang->I18N('about'); ?></a></li>
             </ul>
         </div>
     </div>

+ 3 - 3
clientarea/views/header.php

@@ -6,7 +6,7 @@ if (!defined('IN_SYS')) {
 }
 ?>
 <!DOCTYPE html>
-<html lang="<?php echo $current_lang; ?>">
+<html lang="<?php echo $lang->get_lang(); ?>">
 
 <head>
     <meta charset="utf-8" />
@@ -14,7 +14,7 @@ if (!defined('IN_SYS')) {
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
     <meta name="description" content="<?php echo $description; ?>">
     <meta name="author" content="<?php echo $author; ?>">
-    <title><?php echo I18N('clientarea'); ?></title>
+    <title><?php echo $lang->I18N('clientarea'); ?></title>
     <link href="favicon.ico?_=<?php echo $static_release; ?>" type="image/x-icon" rel="icon" />
     <link href="favicon.ico?_=<?php echo $static_release; ?>" type="image/x-icon" rel="shortcut icon" />
     <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css?_=<?php echo $static_release; ?>">
@@ -26,7 +26,7 @@ if (!defined('IN_SYS')) {
     <![endif]-->
     <script type="text/javascript">
         var domain = "<?php echo $lang->getDomain(); ?>";
-        var cur_lang = "<?php echo $current_lang; ?>";
+        var cur_lang = "<?php echo $lang->get_lang(); ?>";
         var ifastnet_aff = <?php echo $iFastNetAff; ?>;
     </script>
 </head>

+ 1 - 1
clientarea/views/login.php

@@ -12,7 +12,7 @@ if (!defined('IN_SYS')) {
             <?php echo getMsg("msg_notify"); ?>
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <h3 class="panel-title"><?php echo I18N('login'); ?></h3>
+                    <h3 class="panel-title"><?php echo $lang->I18N('login'); ?></h3>
                 </div>
                 <div class="panel-body">
                     <p>Please fill in credentials to log in.</p>

+ 1 - 1
clientarea/views/main.php

@@ -12,7 +12,7 @@ if (!defined('IN_SYS')) {
             <?php echo getMsg("msg_notify"); ?>
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <h3 class="panel-title"><?php echo I18N('clientarea'); ?></h3>
+                    <h3 class="panel-title"><?php echo $lang->I18N('clientarea'); ?></h3>
                 </div>
                 <div class="panel-body">
                     <p>Please fill in credentials to log in.</p>

+ 1 - 1
clientarea/views/navbar.php

@@ -58,7 +58,7 @@ if (!defined('IN_SYS')) {
                                 <li><a href="<?php echo setRouter('clientarea', 'logout'); ?>">Logout</a></li>
                             </ul>
                         <?php } else { ?>
-                            <a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo I18N('clientarea'); ?>&nbsp;<span class="caret"></span></a>
+                            <a href="#" class="dropdown-toggle" data-toggle="dropdown"><?php echo $lang->I18N('clientarea'); ?>&nbsp;<span class="caret"></span></a>
                             <ul class="dropdown-menu">
                                 <li><a href="<?php echo setRouter('clientarea', 'login'); ?>">Login</a></li>
                                 <li><a href="<?php echo setRouter('clientarea', 'register'); ?>">Register </a></li>

+ 3 - 3
clientarea/views/tickets.php

@@ -12,9 +12,9 @@ if (!defined('IN_SYS')) {
             <?php echo (getMsg("msg_notify")); ?>
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <span class="panel-title">Support Tickets</span>
+                    <span class="panel-title"><?php echo $lang->I18N('tickets'); ?></span>
                     <div class="pull-right">
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets_add'); ?>"><?php echo I18N('add'); ?></a>
+                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets_add'); ?>"><?php echo $lang->I18N('add'); ?></a>
                     </div>
                 </div>
                 <div class="panel-body">
@@ -39,7 +39,7 @@ if (!defined('IN_SYS')) {
                                             <td><?php echo $value["subject"]; ?></td>
                                             <td><?php echo $status_types[$value["status"]]; ?></td>
                                             <td style="width: 150px;"><?php echo cTime($value["lastupdated"]); ?></td>
-                                            <td><a class="btn btn-default btn-xs pull-right" href="<?php echo setRouter('clientarea', 'tickets_details', ['id' => $value['id']]); ?>">Details</a></td>
+                                            <td><a class="btn btn-default btn-xs pull-right" href="<?php echo setRouter('clientarea', 'tickets_details', ['id' => $value['id']]); ?>"><?php echo $lang->I18N('details'); ?></a></td>
                                         </tr>
                                     <?php }
                             } else { ?>

+ 2 - 2
clientarea/views/tickets_add.php

@@ -14,7 +14,7 @@ if (!defined('IN_SYS')) {
                 <div class="panel-heading">
                     <span class="panel-title">Tickets Add</span>
                     <div class="pull-right">
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets'); ?>"><?php echo I18N('list'); ?></a>
+                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets'); ?>"><?php echo $lang->I18N('list'); ?></a>
                     </div>
                 </div>
                 <div class="panel-body">
@@ -39,7 +39,7 @@ if (!defined('IN_SYS')) {
                             <span class="text-warning"><?php echo isset($err["content_err"]) ? $err["content_err"] : ""; ?></span>
                         </div>
                         <div class="form-group">
-                            <button type="submit" name="do_add_tickets" class="btn btn-primary"><?php echo I18N('add'); ?></button>
+                            <button type="submit" name="do_add_tickets" class="btn btn-primary"><?php echo $lang->I18N('add'); ?></button>
                         </div>
                     </form>
                 </div>

+ 3 - 3
clientarea/views/tickets_details.php

@@ -12,10 +12,10 @@ if (!defined('IN_SYS')) {
             <?php echo (getMsg("msg_notify")); ?>
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <span class="panel-title">Tickets Details</span>
+                    <span class="panel-title"><?php echo $lang->I18N('tickets-details'); ?></span>
                     <div class="pull-right">
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets'); ?>"><?php echo I18N('list'); ?></a>
-                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets_add'); ?>"><?php echo I18N('add'); ?></a>
+                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets'); ?>"><?php echo $lang->I18N('list'); ?></a>
+                        <a class="btn btn-default btn-xs" href="<?php echo setRouter('clientarea', 'tickets_add'); ?>"><?php echo $lang->I18N('add'); ?></a>
                     </div>
                 </div>
                 <div class="panel-body">

+ 4 - 1
core.php

@@ -6,9 +6,12 @@ if (!defined('IN_SYS')) {
 }
 $ROOT = __DIR__;
 include_once "{$ROOT}/data/config.php";
-include_once "{$ROOT}/library/language.php";
+include_once "{$ROOT}/data/lang.php";
+include_once "{$ROOT}/library/lang.class.php";
 include_once "{$ROOT}/library/functions.php";
 include_once "{$ROOT}/library/pdo.class.php";
 
 $rooturl = $_SERVER['HTTP_HOST'];
 $domain = preg_replace('/^www\./', '', $rooturl);
+
+$lang = new Language("{$ROOT}/data/language/", $languages, 'en-US');

+ 2 - 2
core/controllers/about.php

@@ -15,8 +15,8 @@ $enable_section = [
 $section_page = "{$ROOT}/core/views/about_{$section}.php";
 
 if (is_file(($section_page))) {
-    $title = $title . ' - ' . I18N('about') . ' ' . $enable_section[$section]['title'];
+    $title = $title . ' - ' . $lang->I18N('about') . ' ' . $enable_section[$section]['title'];
 } else {
-    $title = $title . ' - ' . I18N('about');
+    $title = $title . ' - ' . $lang->I18N('about');
     $section_page = "{$ROOT}/core/views/about_uiisc.php";
 }

+ 1 - 1
core/controllers/cancellation-refund.php

@@ -5,4 +5,4 @@ if (!defined('IN_SYS')) {
     exit;
 }
 
-$title = $title . ' - ' . I18N('cancellation_refund');
+$title = $title . ' - ' . $lang->I18N('cancellation_refund');

+ 1 - 1
core/controllers/contact.php

@@ -5,4 +5,4 @@ if (!defined('IN_SYS')) {
     exit;
 }
 
-$title = $title . ' - ' . I18N('contact_us');
+$title = $title . ' - ' . $lang->I18N('contact_us');

+ 1 - 1
core/controllers/help.php

@@ -5,7 +5,7 @@ if (!defined('IN_SYS')) {
     exit;
 }
 
-$title = $title . ' - ' . I18N('help');
+$title = $title . ' - ' . $lang->I18N('help');
 
 $questions = [
     [

+ 2 - 2
core/controllers/legal.php

@@ -8,9 +8,9 @@ if (!defined('IN_SYS')) {
 $section = empty($_GET["s"]) ? "terms" : $_GET["s"];
 
 if ($section == "privacy") {
-    $title = $title . ' - ' . I18N("privacy_policy");
+    $title = $title . ' - ' . $lang->I18N('privacy_policy');
     $section_page = "{$ROOT}/core/views/legal_privacy.php";
 } else {
-    $title = $title . ' - ' . I18N("tos");
+    $title = $title . ' - ' . $lang->I18N('tos');
     $section_page = "{$ROOT}/core/views/legal_terms.php";
 }

+ 1 - 1
core/controllers/login.php

@@ -6,4 +6,4 @@ if (!defined('IN_SYS')) {
 }
 
 
-$title = $title . ' - ' . I18N('login');
+$title = $title . ' - ' . $lang->I18N('login');

+ 1 - 1
core/controllers/news.php

@@ -5,4 +5,4 @@ if (!defined('IN_SYS')) {
     exit;
 }
 
-$title = $title . ' - ' . I18N('news');
+$title = $title . ' - ' . $lang->I18N('news');

+ 1 - 1
core/controllers/payment-methods.php

@@ -5,4 +5,4 @@ if (!defined('IN_SYS')) {
     exit;
 }
 
-$title = $title . ' - ' . I18N('payment_methods');
+$title = $title . ' - ' . $lang->I18N('payment_methods');

+ 1 - 1
core/controllers/register.php

@@ -5,4 +5,4 @@ if (!defined('IN_SYS')) {
     exit;
 }
 $security_id = md5(rand(6000, getrandmax())); // $security_id = md5(rand(6000,PHP_INT_MAX));
-$title = $title . ' - ' . I18N('register');
+$title = $title . ' - ' . $lang->I18N('register');

+ 1 - 1
core/controllers/solution.php

@@ -5,4 +5,4 @@ if (!defined('IN_SYS')) {
     exit;
 }
 
-$title = $title . ' - ' . I18N('solution');
+$title = $title . ' - ' . $lang->I18N('solution');

+ 1 - 1
core/controllers/support.php

@@ -5,4 +5,4 @@ if (!defined('IN_SYS')) {
     exit;
 }
 
-$title = $title . ' - ' . I18N('Technical Support');
+$title = $title . ' - ' . $lang->I18N('Technical Support');

+ 1 - 1
core/views/about_crogram.php

@@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div>
-        <h1><?php echo I18N('about'); ?> Crogram</h1>
+        <h1><?php echo $lang->I18N('about'); ?> Crogram</h1>
     </div>
 </div>
 <div class="container">

+ 1 - 1
core/views/about_ifastnet.php

@@ -9,7 +9,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div>
-        <h1><?php echo I18N('about'); ?> iFastNet</h1>
+        <h1><?php echo $lang->I18N('about'); ?> iFastNet</h1>
     </div>
 </div>
 <div class="container">

+ 1 - 1
core/views/about_uiisc.php

@@ -9,7 +9,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div>
-        <h1><?php echo I18N('about'); ?> UIISC</h1>
+        <h1><?php echo $lang->I18N('about'); ?> UIISC</h1>
     </div>
 </div>
 <div class="container">

+ 1 - 1
core/views/cancellation-refund.php

@@ -10,7 +10,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1 class="text-center"><?php echo I18N('cancellation_refund'); ?></a></h1>
+        <h1 class="text-center"><?php echo $lang->I18N('cancellation_refund'); ?></a></h1>
         <p class="text-center">Cancelation &amp; refund information</p>
     </div>
 </div>

+ 2 - 2
core/views/contact.php

@@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1><?php echo I18N('contact_us'); ?></h1>
+        <h1><?php echo $lang->I18N('contact_us'); ?></h1>
     </div>
 </div>
 <div class="container">
@@ -21,7 +21,7 @@ if (!defined('IN_SYS')) {
             <p>For technical support please look at the <a href="http://byet.net" target="_blank">Knowledge Base</a></p>
         </div>
         <div class="col-sm-12 col-md-12">
-            <h2><?php echo I18N('address'); ?></h2>
+            <h2><?php echo $lang->I18N('address'); ?></h2>
             <p>Shanghai China.</p>
         </div>
         <div class="col-sm-12 col-md-12">

+ 5 - 5
core/views/footer.php

@@ -20,13 +20,13 @@ if (!defined('IN_SYS')) {
                 <li class="dropup">
                     <div class="dropdown-toggle" id="changelanguage" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                         <span class="glyphicon glyphicon-globe"></span>
-                        <a href="#"><?php echo $languages[$current_lang][0]; ?></a>
+                        <a href="#"><?php echo $lang->get_language_name(); ?></a>
                     </div>
-                    <ul class="dropdown-menu language-change"><?php echo $language_tags; ?></ul>
+                    <ul class="dropdown-menu language-change"><?php echo $lang->get_languages_tags(); ?></ul>
                 </li>
-                <li><a href="about.php"><?php echo I18N('about'); ?></a></li>
-                <li><a href="contact.php"><?php echo I18N('contact'); ?></a></li>
-                <li><a href="support.php"><?php echo I18N('support'); ?></a></li>
+                <li><a href="about.php"><?php echo $lang->I18N('about'); ?></a></li>
+                <li><a href="contact.php"><?php echo $lang->I18N('contact'); ?></a></li>
+                <li><a href="support.php"><?php echo $lang->I18N('support'); ?></a></li>
             </ul>
         </div>
     </div>

+ 1 - 1
core/views/forum.php

@@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1><?php echo I18N("forum"); ?></h1>
+        <h1><?php echo $lang->I18N('forum'); ?></h1>
     </div>
 </div>
 

+ 2 - 2
core/views/header.php

@@ -6,7 +6,7 @@ if (!defined('IN_SYS')) {
 }
 ?>
 <!DOCTYPE html>
-<html lang="<?php echo $current_lang; ?>">
+<html lang="<?php echo $lang->get_lang(); ?>">
 
 <head>
     <meta charset="utf-8">
@@ -27,7 +27,7 @@ if (!defined('IN_SYS')) {
     <![endif]-->
     <script type="text/javascript">
         var domain = "<?php echo $lang->getDomain(); ?>";
-        var cur_lang = "<?php echo $current_lang; ?>";
+        var cur_lang = "<?php echo $lang->get_lang(); ?>";
         var ifastnet_aff = <?php echo $iFastNetAff; ?>;
     </script>
 </head>

+ 1 - 1
core/views/help.php

@@ -9,7 +9,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1><?php echo I18N('help'); ?></h1>
+        <h1><?php echo $lang->I18N('help'); ?></h1>
     </div>
 </div>
 

+ 1 - 1
core/views/legal_privacy.php

@@ -11,7 +11,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1 class="text-center"><?php echo I18N('privacy_policy'); ?></a></h1>
+        <h1 class="text-center"><?php echo $lang->I18N('privacy_policy'); ?></a></h1>
         <p class="text-center">Privacy policy information</p>
     </div>
 </div>

+ 1 - 1
core/views/legal_terms.php

@@ -10,7 +10,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1 class="text-center"><?php echo I18N("tos"); ?></a></h1>
+        <h1 class="text-center"><?php echo $lang->I18N('tos'); ?></a></h1>
         <p class="text-center">Service Conditions and Policies</p>
     </div>
 </div>

+ 9 - 12
core/views/login.php

@@ -11,35 +11,32 @@ if (!defined('IN_SYS')) {
         <div class="col-md-6 col-sm-6 margin-auto">
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <h3 class="panel-title"><?php echo I18N('please_login'); ?></h3>
+                    <h3 class="panel-title"><?php echo $lang->I18N('please_login'); ?></h3>
                 </div>
                 <div class="panel-body">
                     <form class="form-group form-horizontal form-account" role="form" action="//cpanel.<?= $domain ?>/login.php" method="post" name="login">
                         <div class="form-group">
-                            <input type="text" name="uname" class="form-control" placeholder="<?php echo I18N('input_username'); ?>" required autofocus autocomplete="off">
+                            <input type="text" name="uname" class="form-control" placeholder="<?php echo $lang->I18N('input_username'); ?>" required autofocus autocomplete="off">
                         </div>
                         <div class="form-group">
-                            <input type="password" name="passwd" class="form-control" placeholder="<?php echo I18N('input_password'); ?>" required autocomplete="off">
+                            <input type="password" name="passwd" class="form-control" placeholder="<?php echo $lang->I18N('input_password'); ?>" required autocomplete="off">
                         </div>
                         <div class="form-group">
                             <select class="form-control" name="language" id="inputLanguage">
-                                <option disabled><?php echo I18N('choose_from_below'); ?></option>
-                                <?php foreach ($languages as $key => $value) {
-                                    $selected = $key == $current_lang ? 'selected="selected"' : '';
-                                    echo '<option value="' . $languages[$key][1] . '" ' . $selected . '>' . $languages[$key][0] . '</option>';
-                                } ?>
+                                <option disabled><?php echo $lang->I18N('choose_from_below'); ?></option>
+                                <?php echo $lang->get_languages_options(); ?>
                             </select>
                         </div>
                         <div class="form-group">
                             <div class="checkbox">
                                 <label>
-                                    <input type="checkbox" value="remember-me"><span><?php echo I18N('remember_me'); ?></span>
-                                    <a href="//cpanel.<?= $domain ?>/lostpassword.php"><?php echo I18N('lost_password'); ?></a>
+                                    <input type="checkbox" value="remember-me"><span><?php echo $lang->I18N('remember_me'); ?></span>
+                                    <a href="//cpanel.<?= $domain ?>/lostpassword.php"><?php echo $lang->I18N('lost_password'); ?></a>
                                 </label>
                             </div>
                         </div>
                         <div class="form-group">
-                            <button type="submit" name="submit" class="btn btn-primary btn-block"><?php echo I18N('login'); ?></button>
+                            <button type="submit" name="submit" class="btn btn-primary btn-block"><?php echo $lang->I18N('login'); ?></button>
                         </div>
                     </form>
                 </div>
@@ -50,7 +47,7 @@ if (!defined('IN_SYS')) {
 
 <!-- <script type="text/javascript">
         var domain = "<?php echo $lang->getDomain(); ?>";
-        var cur_language = "<?php echo $current_lang; ?>";
+        var cur_language = "<?php echo $lang->get_lang(); ?>";
         function change_language(lan) {
             setCookie('lang', lan, 1, '/', domain, false);
             if (cur_language == lan) {

+ 20 - 20
core/views/navbar.php

@@ -20,35 +20,35 @@ if (!defined('IN_SYS')) {
             </div>
             <div id="navbar" class="navbar-collapse collapse">
                 <ul class="nav navbar-nav">
-                    <li><a href="<?php echo setRouter('index');?>"><?php echo I18N('home'); ?></a></li>
-                    <li><a href="<?php echo setRouter('solution');?>"><?php echo I18N('solution'); ?></a></li>
-                    <li><a href="<?php echo setRouter('support');?>"><?php echo I18N('support'); ?></a></li>
+                    <li><a href="<?php echo setRouter('index');?>"><?php echo $lang->I18N('home'); ?></a></li>
+                    <li><a href="<?php echo setRouter('solution');?>"><?php echo $lang->I18N('solution'); ?></a></li>
+                    <li><a href="<?php echo setRouter('support');?>"><?php echo $lang->I18N('support'); ?></a></li>
                     <li class="dropdown">
-                        <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown"><?php echo I18N('more'); ?>&nbsp;<span class="caret"></span></a>
+                        <a href="javascript:void(0)" class="dropdown-toggle" data-toggle="dropdown"><?php echo $lang->I18N('more'); ?>&nbsp;<span class="caret"></span></a>
                         <ul class="dropdown-menu" role="menu">
-                            <li><a href="contact.php"><?php echo I18N('contact'); ?></a></li>
-                            <li><a href="help.php"><?php echo I18N('help'); ?></a></li>
-                            <li><a href="support.php"><?php echo I18N('support'); ?></a></li>
-                            <li><a href="<?php echo setRouter('forum'); ?>"><?php echo I18N('forum'); ?></a></li>
+                            <li><a href="contact.php"><?php echo $lang->I18N('contact'); ?></a></li>
+                            <li><a href="help.php"><?php echo $lang->I18N('help'); ?></a></li>
+                            <li><a href="support.php"><?php echo $lang->I18N('support'); ?></a></li>
+                            <li><a href="<?php echo setRouter('forum'); ?>"><?php echo $lang->I18N('forum'); ?></a></li>
                             <li class="divider"></li>
-                            <li class="dropdown-header"><?php echo I18N('aboutus'); ?></li>
-                            <li><a href="about.php"><?php echo I18N('about'); ?> UIISC</a></li>
-                            <li><a href="about.php?s=crogram"><?php echo I18N('about'); ?> Crogram,Inc.</a></li>
-                            <li><a href="about.php?s=ifastnet"><?php echo I18N('about'); ?> iFastNet</a></li>
+                            <li class="dropdown-header"><?php echo $lang->I18N('aboutus'); ?></li>
+                            <li><a href="about.php"><?php echo $lang->I18N('about'); ?> UIISC</a></li>
+                            <li><a href="about.php?s=crogram"><?php echo $lang->I18N('about'); ?> Crogram,Inc.</a></li>
+                            <li><a href="about.php?s=ifastnet"><?php echo $lang->I18N('about'); ?> iFastNet</a></li>
                             <li class="divider"></li>
-                            <li><a href="cancellation-refund.php"><?php echo I18N('cancellation_refund'); ?></a></li>
-                            <li><a href="payment-methods.php"><?php echo I18N('payment_methods'); ?></a></li>
+                            <li><a href="cancellation-refund.php"><?php echo $lang->I18N('cancellation_refund'); ?></a></li>
+                            <li><a href="payment-methods.php"><?php echo $lang->I18N('payment_methods'); ?></a></li>
                             <li class="divider"></li>
-                            <li class="dropdown-header"><?php echo I18N('legal_information'); ?></li>
-                            <li><a href="legal.php?s=terms"><?php echo I18N('tos'); ?></a></li>
-                            <li><a href="legal.php?s=privacy"><?php echo I18N('privacy_policy'); ?></a></li>
+                            <li class="dropdown-header"><?php echo $lang->I18N('legal_information'); ?></li>
+                            <li><a href="legal.php?s=terms"><?php echo $lang->I18N('tos'); ?></a></li>
+                            <li><a href="legal.php?s=privacy"><?php echo $lang->I18N('privacy_policy'); ?></a></li>
                         </ul>
                     </li>
                 </ul>
                 <ul class="nav navbar-nav navbar-right">
-                    <li><a href="<?php echo setRouter('login');?>"><?php echo I18N('login'); ?></a></li>
-                    <li><a href="<?php echo setRouter('register');?>"><?php echo I18N('register'); ?></a></li>
-                    <li><a href="<?php echo setRouter('clientarea'); ?>"><?php echo I18N('clientarea'); ?></a></li>
+                    <li><a href="<?php echo setRouter('login');?>"><?php echo $lang->I18N('login'); ?></a></li>
+                    <li><a href="<?php echo setRouter('register');?>"><?php echo $lang->I18N('register'); ?></a></li>
+                    <li><a href="<?php echo setRouter('clientarea'); ?>"><?php echo $lang->I18N('clientarea'); ?></a></li>
                 </ul>
             </div>
         </div>

+ 2 - 2
core/views/payment-methods.php

@@ -10,7 +10,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1 class="text-center"><?php echo I18N('payment_methods'); ?></a></h1>
+        <h1 class="text-center"><?php echo $lang->I18N('payment_methods'); ?></a></h1>
         <p class="text-center">Payment methods information</p>
     </div>
 </div>
@@ -18,7 +18,7 @@ if (!defined('IN_SYS')) {
     <div class="container">
         <div class="row">
             <div class="hidden-xs col-sm-12 col-md-12">
-                <h2><?php echo I18N('payment_methods'); ?></h2>
+                <h2><?php echo $lang->I18N('payment_methods'); ?></h2>
             </div>
             <div class="col-sm-12 col-md-12">
                 <p>We currently accept payments using 3 major payment gateways:</p>

+ 21 - 21
core/views/register.php

@@ -11,74 +11,74 @@ if (!defined('IN_SYS')) {
         <div class="col-md-6 col-sm-6 margin-auto">
             <div class="panel panel-default">
                 <div class="panel-heading">
-                    <h3 class="panel-title"><?php echo I18N('signup_free_hosting'); ?></h3>
+                    <h3 class="panel-title"><?php echo $lang->I18N('signup_free_hosting'); ?></h3>
                 </div>
                 <div class="panel-body">
                     <form class="form-horizontal" role="form" method=post action="//order.<?php echo $domain; ?>/register.php">
                         <!--remote_reg.php-->
                         <input type="hidden" name="plan_name" value="free webhosting">
                         <div class="form-group">
-                            <label for="inputUsername" class="col-sm-4 control-label"><?php echo I18N('username'); ?></label>
+                            <label for="inputUsername" class="col-sm-4 control-label"><?php echo $lang->I18N('username'); ?></label>
                             <div class="col-sm-5">
-                                <input type="text" name="username" class="form-control" id="inputUsername" placeholder="<?php echo I18N('input_username'); ?>" value="<?php if (isset($_GET['username'])) {
+                                <input type="text" name="username" class="form-control" id="inputUsername" placeholder="<?php echo $lang->I18N('input_username'); ?>" value="<?php if (isset($_GET['username'])) {
                                                                                                                                                                             echo $_GET['username'];
                                                                                                                                                                         } ?>">
                             </div>
                         </div>
                         <div class="form-group">
-                            <label for="inputPassword" class="col-sm-4 control-label"><?php echo I18N('password'); ?></label>
+                            <label for="inputPassword" class="col-sm-4 control-label"><?php echo $lang->I18N('password'); ?></label>
                             <div class="col-sm-5">
-                                <input type="password" name="password" class="form-control" id="inputPassword" placeholder="<?php echo I18N('input_password'); ?>">
+                                <input type="password" name="password" class="form-control" id="inputPassword" placeholder="<?php echo $lang->I18N('input_password'); ?>">
                             </div>
                         </div>
                         <div class="form-group">
-                            <label for="inputEmail" class="col-sm-4 control-label"><?php echo I18N('email'); ?></label>
+                            <label for="inputEmail" class="col-sm-4 control-label"><?php echo $lang->I18N('email'); ?></label>
                             <div class="col-sm-5">
-                                <input type="email" name="email" class="form-control" id="inputEmail" placeholder="<?php echo I18N('input_email'); ?>" value="<?php if (isset($_GET['email'])) {
+                                <input type="email" name="email" class="form-control" id="inputEmail" placeholder="<?php echo $lang->I18N('input_email'); ?>" value="<?php if (isset($_GET['email'])) {
                                                                                                                                                                     echo $_GET['email'];
                                                                                                                                                                 } ?>">
                             </div>
                         </div>
                         <div class="form-group">
-                            <label for="inputCategory" class="col-sm-4 control-label"><?php echo I18N('site_category'); ?></label>
+                            <label for="inputCategory" class="col-sm-4 control-label"><?php echo $lang->I18N('site_category'); ?></label>
                             <div class="col-sm-5">
                                 <select class="form-control" name="website_category" id="inputCategory">
-                                    <option value=""><?php echo I18N('choose_from_below'); ?></option>
-                                    <option value="personal"><?php echo I18N('personal'); ?></option>
-                                    <option value="business"><?php echo I18N('business'); ?></option>
-                                    <option value="hobby"><?php echo I18N('hobby'); ?></option>
-                                    <option value="forum"><?php echo I18N('forum'); ?></option>
-                                    <option value="dating"><?php echo I18N('dating'); ?></option>
-                                    <option value="software_download"><?php echo I18N('software_download'); ?></option>
+                                    <option value=""><?php echo $lang->I18N('choose_from_below'); ?></option>
+                                    <option value="personal"><?php echo $lang->I18N('personal'); ?></option>
+                                    <option value="business"><?php echo $lang->I18N('business'); ?></option>
+                                    <option value="hobby"><?php echo $lang->I18N('hobby'); ?></option>
+                                    <option value="forum"><?php echo $lang->I18N('forum'); ?></option>
+                                    <option value="dating"><?php echo $lang->I18N('dating'); ?></option>
+                                    <option value="software_download"><?php echo $lang->I18N('software_download'); ?></option>
                                 </select>
                             </div>
                         </div>
                         <div class="form-group">
-                            <label for="inputLanguage" class="col-sm-4 control-label"><?php echo I18N('site_language'); ?></label>
+                            <label for="inputLanguage" class="col-sm-4 control-label"><?php echo $lang->I18N('site_language'); ?></label>
                             <div class="col-sm-5">
                                 <select class="form-control" name="website_language" id="inputLanguage">
-                                    <option value=""><?php echo I18N('choose_from_below'); ?></option>
+                                    <option value=""><?php echo $lang->I18N('choose_from_below'); ?></option>
                                     <option value="english" data-i18n="english">English</option>
                                     <option value="non-english" data-i18n="non_english">Non-English</option>
                                 </select>
                             </div>
                         </div>
                         <div class="form-group">
-                            <label for="inputID" class="col-sm-4 control-label"><?php echo I18N('security_code'); ?></label>
+                            <label for="inputID" class="col-sm-4 control-label"><?php echo $lang->I18N('security_code'); ?></label>
                             <div class="col-sm-5">
                                 <img width="90px" height="25px" src="/security_code.php?id=<?php echo $security_id; ?>">
                                 <input type="hidden" name="id" class="form-control" id="inputID" value="<?php echo $security_id; ?>">
                             </div>
                         </div>
                         <div class="form-group">
-                            <label for="inputSecurityCode" class="col-sm-4 control-label"><?php echo I18N('input_security_code'); ?></label>
+                            <label for="inputSecurityCode" class="col-sm-4 control-label"><?php echo $lang->I18N('input_security_code'); ?></label>
                             <div class="col-sm-5">
-                                <input type="text" name="number" class="form-control" id="inputSecurityCode" placeholder="<?php echo I18N('input_security_code_above'); ?>">
+                                <input type="text" name="number" class="form-control" id="inputSecurityCode" placeholder="<?php echo $lang->I18N('input_security_code_above'); ?>">
                             </div>
                         </div>
                         <div class="form-group">
                             <div class="col-sm-offset-4 col-sm-6">
-                                <button type="submit" name="submit" class="btn btn-default"><?php echo I18N('register'); ?></button>
+                                <button type="submit" name="submit" class="btn btn-default"><?php echo $lang->I18N('register'); ?></button>
                             </div>
                         </div>
                     </form>

+ 44 - 44
core/views/solution.php

@@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header">
-        <h1><?php echo I18N('solution'); ?></h1>
+        <h1><?php echo $lang->I18N('solution'); ?></h1>
     </div>
 </div>
 
@@ -17,49 +17,49 @@ if (!defined('IN_SYS')) {
         <div class="col-sm-4">
             <div class="list-group">
                 <div class="list-group-item">
-                    <a class="btn btn-link btn-xs pull-right" href="register.php" role="button"><?php echo I18N('register'); ?></a>
-                    <?php echo I18N('host-plan-free'); ?>
+                    <a class="btn btn-link btn-xs pull-right" href="register.php" role="button"><?php echo $lang->I18N('register'); ?></a>
+                    <?php echo $lang->I18N('host-plan-free'); ?>
                 </div>
-                <div class="list-group-item"><span class="badge">1</span><?php echo I18N('ftp-accounts'); ?></div>
-                <div class="list-group-item disabled"><span class="badge"><?php echo I18N('not-support'); ?></span><?php echo I18N('free-domains'); ?></div>
-                <div class="list-group-item"><span class="badge">10</span><?php echo I18N('sub-domains'); ?></div>
-                <div class="list-group-item"><span class="badge">10</span><?php echo I18N('add-on-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('parked-domains'); ?></div>
-                <div class="list-group-item"><span class="badge">10</span><?php echo I18N('mysql-databases'); ?></div>
-                <div class="list-group-item"><span class="badge">10 GB</span><?php echo I18N('disk-quota'); ?></div>
-                <div class="list-group-item"><span class="badge">100 GB</span><?php echo I18N('monthly-bandwidth'); ?></div>
-                <div class="list-group-item"><span class="badge">50000</span><?php echo I18N('daily-hits'); ?></div>
-                <div class="list-group-item"><span class="badge">30019</span><?php echo I18N('host-inodes'); ?></div>
+                <div class="list-group-item"><span class="badge">1</span><?php echo $lang->I18N('ftp-accounts'); ?></div>
+                <div class="list-group-item disabled"><span class="badge"><?php echo $lang->I18N('not-support'); ?></span><?php echo $lang->I18N('free-domains'); ?></div>
+                <div class="list-group-item"><span class="badge">10</span><?php echo $lang->I18N('sub-domains'); ?></div>
+                <div class="list-group-item"><span class="badge">10</span><?php echo $lang->I18N('add-on-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('parked-domains'); ?></div>
+                <div class="list-group-item"><span class="badge">10</span><?php echo $lang->I18N('mysql-databases'); ?></div>
+                <div class="list-group-item"><span class="badge">10 GB</span><?php echo $lang->I18N('disk-quota'); ?></div>
+                <div class="list-group-item"><span class="badge">100 GB</span><?php echo $lang->I18N('monthly-bandwidth'); ?></div>
+                <div class="list-group-item"><span class="badge">50000</span><?php echo $lang->I18N('daily-hits'); ?></div>
+                <div class="list-group-item"><span class="badge">30019</span><?php echo $lang->I18N('host-inodes'); ?></div>
                 <div class="list-group-item">Latest vPanel with Softaculous</div>
                 <div class="list-group-item">Latest PHP and mySQL</div>
                 <div class="list-group-item">SiteBuilder</div>
                 <div class="list-group-item">1 Click Script Installer</div>
-                <div class="list-group-item disabled"><span class="badge"><?php echo I18N('not-support'); ?></span>Node.JS</div>
-                <div class="list-group-item disabled"><span class="badge"><?php echo I18N('not-support'); ?></span>Postgres</div>
-                <div class="list-group-item disabled"><span class="badge"><?php echo I18N('not-support'); ?></span>Free SSL Certificate</div>
-                <div class="list-group-item disabled"><span class="badge"><?php echo I18N('not-support'); ?></span>Custom CRON Jobs</div>
+                <div class="list-group-item disabled"><span class="badge"><?php echo $lang->I18N('not-support'); ?></span>Node.JS</div>
+                <div class="list-group-item disabled"><span class="badge"><?php echo $lang->I18N('not-support'); ?></span>Postgres</div>
+                <div class="list-group-item disabled"><span class="badge"><?php echo $lang->I18N('not-support'); ?></span>Free SSL Certificate</div>
+                <div class="list-group-item disabled"><span class="badge"><?php echo $lang->I18N('not-support'); ?></span>Custom CRON Jobs</div>
                 <div class="list-group-item text-center">
                     <!-- <a class="btn btn-default" href="plan/free.php" role="button">详情</a> -->
-                    <a class="btn btn-primary" href="register.php" role="button"><?php echo I18N('register'); ?></a>
+                    <a class="btn btn-primary" href="register.php" role="button"><?php echo $lang->I18N('register'); ?></a>
                 </div>
             </div>
         </div>
         <div class="col-sm-4">
             <div class="list-group">
                 <div class="list-group-item">
-                    <a class="btn btn-link btn-xs pull-right" href="register.php" role="button"><?php echo I18N('register'); ?></a>
-                    <?php echo I18N('host-plan-super'); ?>
+                    <a class="btn btn-link btn-xs pull-right" href="register.php" role="button"><?php echo $lang->I18N('register'); ?></a>
+                    <?php echo $lang->I18N('host-plan-super'); ?>
                 </div>
-                <div class="list-group-item"><span class="badge">100</span><?php echo I18N('ftp-accounts'); ?></div>
-                <div class="list-group-item"><span class="badge">6</span><?php echo I18N('free-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('sub-domains'); ?></div>
-                <div class="list-group-item"><span class="badge">20</span><?php echo I18N('add-on-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('parked-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('mysql-databases'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('disk-quota'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('monthly-bandwidth'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('daily-hits'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('host-inodes'); ?></div>
+                <div class="list-group-item"><span class="badge">100</span><?php echo $lang->I18N('ftp-accounts'); ?></div>
+                <div class="list-group-item"><span class="badge">6</span><?php echo $lang->I18N('free-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('sub-domains'); ?></div>
+                <div class="list-group-item"><span class="badge">20</span><?php echo $lang->I18N('add-on-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('parked-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('mysql-databases'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('disk-quota'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('monthly-bandwidth'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('daily-hits'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('host-inodes'); ?></div>
                 <div class="list-group-item">Latest cPanel with Softaculous</div>
                 <div class="list-group-item">Latest PHP and mySQL</div>
                 <div class="list-group-item">SiteBuilder</div>
@@ -69,26 +69,26 @@ if (!defined('IN_SYS')) {
                 <div class="list-group-item">Free SSL Certificate</div>
                 <div class="list-group-item">Custom CRON Jobs</div>
                 <div class="list-group-item text-center">
-                    <a class="btn btn-primary" href="register.php" role="button"><?php echo I18N('register'); ?></a>
+                    <a class="btn btn-primary" href="register.php" role="button"><?php echo $lang->I18N('register'); ?></a>
                 </div>
             </div>
         </div>
         <div class="col-sm-4">
             <div class="list-group">
                 <div class="list-group-item">
-                    <a class="btn btn-link btn-xs pull-right" href="register.php" role="button"><?php echo I18N('register'); ?></a>
-                    <?php echo I18N('host-plan-ultimate'); ?>
+                    <a class="btn btn-link btn-xs pull-right" href="register.php" role="button"><?php echo $lang->I18N('register'); ?></a>
+                    <?php echo $lang->I18N('host-plan-ultimate'); ?>
                 </div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('ftp-accounts'); ?></div>
-                <div class="list-group-item"><span class="badge">21</span><?php echo I18N('free-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('sub-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('add-on-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('parked-domains'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('mysql-databases'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('disk-quota'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('monthly-bandwidth'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('daily-hits'); ?></div>
-                <div class="list-group-item"><span class="badge"><?php echo I18N('unlimited'); ?></span><?php echo I18N('host-inodes'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('ftp-accounts'); ?></div>
+                <div class="list-group-item"><span class="badge">21</span><?php echo $lang->I18N('free-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('sub-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('add-on-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('parked-domains'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('mysql-databases'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('disk-quota'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('monthly-bandwidth'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('daily-hits'); ?></div>
+                <div class="list-group-item"><span class="badge"><?php echo $lang->I18N('unlimited'); ?></span><?php echo $lang->I18N('host-inodes'); ?></div>
                 <div class="list-group-item">Latest cPanel with Softaculous</div>
                 <div class="list-group-item">Latest PHP and mySQL</div>
                 <div class="list-group-item">SiteBuilder</div>
@@ -97,7 +97,7 @@ if (!defined('IN_SYS')) {
                 <div class="list-group-item">Postgres</div>
                 <div class="list-group-item">Free SSL Certificate</div>
                 <div class="list-group-item">Custom CRON Jobs</div>
-                <div class="list-group-item text-center"><a class="btn btn-primary" href="register.php" role="button"><?php echo I18N('register'); ?></a></div>
+                <div class="list-group-item text-center"><a class="btn btn-primary" href="register.php" role="button"><?php echo $lang->I18N('register'); ?></a></div>
             </div>
         </div>
     </div>

+ 4 - 4
core/views/support.php

@@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
 
 <div class="container">
     <div class="page-header text-center">
-        <h1><?php echo I18N('Technical Support'); ?></h1>
+        <h1><?php echo $lang->I18N('Technical Support'); ?></h1>
         <!-- <h3>24/7 Availability</h3> -->
     </div>
 </div>
@@ -19,17 +19,17 @@ if (!defined('IN_SYS')) {
     <div class="row">
         <div class="col-md-4 text-center">
             <img src="assets/images/tickets.jpg" alt="Tickets">
-            <h3><?php echo I18N('Tickets'); ?></h3>
+            <h3><?php echo $lang->I18N('Tickets'); ?></h3>
             <p>You can submit a support ticket from VistaPanel, we will reply you as soon as possible.</p>
         </div>
         <div class="col-md-4 text-center">
             <img src="assets/images/emails.jpg" alt="Emails">
-            <h3><?php echo I18N('Emails'); ?></h3>
+            <h3><?php echo $lang->I18N('Emails'); ?></h3>
             <p>You can email us, but we use only the following email for technical support: <a>support@uiisc.com</a></p>
         </div>
         <div class="col-md-4 text-center">
             <img src="assets/images/forums.jpg" alt="Forums">
-            <h3><?php echo I18N('forum'); ?></h3>
+            <h3><?php echo $lang->I18N('forum'); ?></h3>
             <p>You can also join our <a href="<?php echo setRouter('forum'); ?>">community forums</a> if you want to interact with other users and get instant answers.</p>
         </div>
     </div>

+ 111 - 0
data/lang.php

@@ -0,0 +1,111 @@
+<?php
+
+$languages = [
+    'en-US' => ['English', 'English'],
+    'zh-CN' => ['简体中文', 'Chinese_simplified'],
+    'zh-SG' => ['简体中文(新加坡)', 'Chinese_simplified'],
+    'zh-HK' => ['繁體中文(香港)', 'Chinese_traditional'],
+    'zh-TW' => ['繁體中文(台湾)', 'Chinese_traditional'],
+    'af' => ['Afrikaans', 'Afrikaans'],
+    'sq' => ['የአልባኒያ', 'Albanian'],
+    'am' => ['Amharic', 'Amharic'],
+    'ar' => ['Arabic', 'Arabic'],
+    'hy' => ['Armenian', 'Armenian'],
+    'az' => ['Azərbaycan', 'Azeerbaijani'],
+    'eu' => ['Basque', 'Basque'],
+    'be' => ['Belarusian', 'Belarusian'],
+    'bn' => ['Bengali', 'Bengali'],
+    'bs' => ['Bosnian', 'Bosnian'],
+    'bg' => ['Bulgarian', 'Bulgarian'],
+    'my' => ['Burmese', 'Burmese'],
+    'ca' => ['Catalan', 'Catalan'],
+    'ce' => ['Cebuano', 'Cebuano'], // 宿务语
+    'ch' => ['Chichewa', 'Chichewa'],
+    'co' => ['Corsican', 'Corsican'],
+    'hr' => ['Croatian', 'Croatian'],
+    'cs' => ['Czech', 'Czech'],
+    'da' => ['Danish', 'Danish'],
+    'nl' => ['Dutch', 'Dutch'],
+    'eo' => ['Esperanto', 'Esperanto'],
+    'et' => ['Estonian', 'Estonian'],
+    'fa' => ['Farsi', 'Farsi'],
+    'fil' => ['Filipino', 'Filipino'],
+    'fi' => ['Finnish', 'Finnish'],
+    'fr' => ['français', 'French'],
+    'fy' => ['Frisian', 'Frisian'],
+    'gl' => ['Galician', 'Galician'],
+    'ka' => ['Georgian', 'Georgian'],
+    'de' => ['Deutsch', 'German'],
+    'el' => ['Greek', 'Greek'],
+    'gu' => ['Gujarati', 'Gujarati'],
+    'ko' => ['Haitian Creole', 'Haitian Creole'],
+    'ha' => ['Hausa', 'Hausa'],
+    'haw' => ['Hawaiian', 'Hawaiian'],
+    'he' => ['Hebrew', 'Hebrew'],
+    'hi' => ['Hindi', 'Hindi'],
+    'hm' => ['Hmong', 'Hmong'],
+    'hu' => ['Hungarian', 'Hungarian'],
+    'is' => ['Icelandic', 'Icelandic'],
+    'ig' => ['Igbo', 'Igbo'],
+    'id' => ['Indonesian', 'Indonesian'],
+    'ga' => ['Irish', 'Irish'],
+    'it' => ['Italian', 'Italian'],
+    'jp' => ['日本語', 'Japanese'],
+    'jv' => ['Wong Jawa', 'Javanese'],
+    'kn' => ['Kannada', 'Kannada'],
+    'kk' => ['Kazakh', 'Kazakh'],
+    'kh' => ['Khmer', 'Khmer'],
+    'ko' => ['한국의', 'Korean'],
+    'ku' => ['Kurdish', 'Kurdish'],
+    'kz' => ['Kyrgyz', 'Kyrgyz'],
+    'lo' => ['ພາສາລາວ', 'Lao'],
+    'la' => ['Latinae', 'Latin'],
+    'lv' => ['Latvian', 'Latvian'],
+    'lt' => ['Lithuanian', 'Lithuanian'],
+    'lu' => ['Luxembourgish', 'Luxembourgish'],
+    'mk' => ['Macedonian', 'Macedonian'],
+    'ma' => ['Malagasy', 'Malagasy'],
+    'ms' => ['Malay', 'Malay'],
+    'ml' => ['Malayalam', 'Malayalam'],
+    'mt' => ['Maltese', 'Maltese'],
+    'ma' => ['Maori', 'Maori'],
+    'mr' => ['Marathi', 'Marathi'],
+    'mn' => ['Mongolian', 'Mongolian'],
+    'ne' => ['Nepali', 'Nepali'],
+    'no' => ['Norwegian', 'Norwegian'],
+    'pa' => ['Pashto', 'Pashto'],
+    'pe' => ['Persian', 'Persian'],
+    'po' => ['Polish', 'Polish'],
+    'pg' => ['Português', 'Portuguese'],
+    'pu' => ['Punjabi', 'Punjabi'],
+    'ro' => ['Romanian', 'Romanian'],
+    'ru' => ['Russian', 'Russian'],
+    'sa' => ['Samoan', 'Samoan'],
+    'gd' => ['Scots Gaelic', 'Scots Gaelic'],
+    'sr' => ['Serbian', 'Serbian'],
+    'se' => ['Sesotho', 'Sesotho'],
+    'sh' => ['Shona', 'Shona'],
+    'si' => ['Sindhi', 'Sindhi'],
+    'sin' => ['Sinhala', 'Sinhala'],
+    'sk' => ['Slovak', 'Slovak'],
+    'sl' => ['Slovenian', 'Slovenian'],
+    'so' => ['Somali', 'Somali'],
+    'es' => ['Spanish', 'Spanish'],
+    'su' => ['Sundanese', 'Sundanese'],
+    'sw' => ['Swahili', 'Swahili'],
+    'sv' => ['Swedish', 'Swedish'],
+    'tj' => ['Tajik', 'Tajik'],
+    'ta' => ['Tamil', 'Tamil'],
+    'te' => ['Telugu', 'Telugu'],
+    'ts' => ['Thai', 'Thai'],
+    'tu' => ['Turkish', 'Turkish'],
+    'uk' => ['Ukrainian', 'Ukrainian'],
+    'ur' => ['Urdu', 'Urdu'],
+    'uz' => ['Uzbek', 'Uzbek'],
+    'vi' => ['Vietnamese', 'Vietnamese'],
+    'we' => ['Welsh', 'Welsh'],
+    'xh' => ['Xhosa', 'Xhosa'],
+    'yi' => ['Yiddish', 'Yiddish'],
+    'yo' => ['Yorùbá', 'Yoruba'],
+    'zu' => ['Zulu', 'Zulu'],
+];

+ 8 - 4
library/language/en-US/language.php → data/language/en-US/language.php

@@ -63,8 +63,12 @@ $LANG = [
     'more' => 'More',
     'about' => 'About',
     'aboutus' => 'About',
-    'clientarea' => 'Client Area',
-    'add' => 'Add',
-    'list' => 'List',
-    'managearea'        => 'Manage Area'
+    'clientarea'        => 'Client Area',
+    'add'               => 'Add',
+    'list'              => 'List',
+    'managearea'        => 'Manage Area',
+    'delete'            => 'Delete',
+    'details'           => 'Details',
+    'tickets'           => 'Tickets',
+    'tickets-details'   => 'Tickets Details',
 ];

+ 4 - 0
library/language/ko/language.php → data/language/ko/language.php

@@ -67,4 +67,8 @@ $LANG = [
     'add' => '더하다',
     'list' => '명부',
     'managearea' => '관리센터',
+    'delete'            => '삭제',
+    'details'           => '세부 정보',
+    'tickets'           => '작업 지시서',
+    'tickets-details'   => '작업 지시 세부 정보',
 ];

+ 5 - 1
library/language/zh-CN/language.php → data/language/zh-CN/language.php

@@ -66,5 +66,9 @@ $LANG = [
     'clientarea'        => '客户中心',
     'add'               => '新增',
     'list'              => '列表',
-    'managearea'        => '管理中心'
+    'managearea'        => '管理中心',
+    'delete'            => '删除',
+    'details'           => '详情',
+    'tickets'           => '工单',
+    'tickets-details'   => '工单详情',
 ];

+ 3 - 0
data/language/zh-HK/language.php

@@ -0,0 +1,3 @@
+<?php
+
+include dirname(__FILE__) . "/../zh-TW/language.php";

+ 3 - 0
data/language/zh-SG/language.php

@@ -0,0 +1,3 @@
+<?php
+
+include dirname(__FILE__) . "/../zh-CN/language.php";

+ 5 - 1
library/language/zh-HK/language.php → data/language/zh-TW/language.php

@@ -66,5 +66,9 @@ $LANG = [
     'clientarea' => '客戶中心',
     'add' => '新增',
     'list' => '列表',
-    'managearea' => '管理中心'
+    'managearea'        => '管理中心',
+    'delete'            => '刪除',
+    'details'           => '詳情',
+    'tickets'           => '工單',
+    'tickets-details'   => '工單詳情',
 ];

+ 182 - 0
library/lang.class.php

@@ -0,0 +1,182 @@
+<?php
+
+class Language
+{
+    public $language_area; // area
+    public $language_country; // country
+    public $language_dir;
+    public $languages; // languages enabled
+    public $dir;
+
+    public function __construct($language_root, $languages, $lang_default = "en-US")
+    {
+        $this->dir = $language_root;
+        $this->language_area = $lang_default;
+        $this->languages = $languages;
+        $this->initDefaultLanguage();
+        if (empty($this->language_country) && !empty($this->language_area)) {
+            $this->language_country = substr($this->language_area, 0, strpos($this->language_area, "-"));
+        }
+        $this->initLanguageDir();
+        echo $this->getFileDir('language.php');
+        echo $this->language_country;
+        include $this->getFileDir('language.php');
+        $this->LANG = $LANG;
+    }
+
+    function I18N($key = "")
+    {
+        // global $LANG;
+        return isset($key) ? isset($this->LANG[$key]) ? $this->LANG[$key] : $key : "";
+    }
+
+    /**
+     * get absolute path of language file
+     */
+    public function getFileDir($file)
+    {
+        if (file_exists($this->language_dir . $file)) {
+            return $this->language_dir . $file;
+        } else {
+            echo '-----';
+            if (file_exists($this->dir . $this->language_area . "/" . $file)) {
+                return $this->dir . $this->language_area . "/" . $file;
+            } else {
+                if (file_exists($this->dir . $this->language_country . "/" . $file)) {
+                    return $this->dir . $this->language_country . "/" . $file;
+                } else {
+                    return $this->dir . "en-US/" . $file;
+                }
+            }
+        }
+    }
+
+    /**
+     * get current language directory
+     */
+    private function initLanguageDir()
+    {
+        if (file_exists($this->dir . $this->language_area) && !empty($this->language_area)) {
+            $this->language_dir = $this->dir . $this->language_area . '/';
+        } else {
+            if (file_exists($this->dir . $this->language_country) && !empty($this->language_country)) {
+                $this->language_dir = $this->dir . $this->language_country . '/';
+            } else {
+                $this->language_dir = $this->dir . 'en-US/';
+            }
+        }
+    }
+
+    /**
+     * get the default language
+     */
+    public function initDefaultLanguage()
+    {
+        if ($this->get_cookie_lang()) {
+            return;
+        }
+        $language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
+        preg_match_all("/[\\w-]+/", $language, $language);
+        $this->language_area = $language[0][0];
+        @($this->language_country = $language[0][1]);
+        $this->setCookieLanguage();
+    }
+    /**
+     * get lang form cookie
+     */
+    public function get_cookie_lang()
+    {
+        if (!@empty($_COOKIE['lang'])) {
+            $language = $_COOKIE['lang'];
+            if (strpos($language, "-")) {
+                $this->language_area = $language;
+            } else {
+                $this->language_country = $language;
+            }
+            return true;
+        }
+        return false;
+    }
+    /**
+     * set current language to cookie
+     */
+    public function setCookieLanguage($lang = "")
+    {
+        if (empty($lang)) {
+            $lang = $this->language_area;
+        }
+        if (empty($lang)) {
+            $lang = $this->language_country;
+        }
+        if (empty($lang)) {
+            return false;
+        }
+        setcookie("lang", $lang, time() + 365 * 24 * 3600, "/", $this->getDomain());
+        return true;
+    }
+
+    /**
+     * get current domain
+     */
+    public function getDomain()
+    {
+        if (empty($this->domain)) {
+            $domain = $_SERVER['SERVER_NAME'];
+            if (strcasecmp($domain, "localhost") === 0) {
+                $this->domain = $domain;
+                return $this->domain;
+            }
+            if (preg_match("/^(\\d+\\.){3}\\d+\$/", $domain, $domain_temp)) {
+                $this->domain = $domain_temp[0];
+                return $this->domain;
+            }
+            preg_match_all("/\\w+\\.\\w+\$/", $domain, $domain);
+            $this->domain = $domain[0][0];
+            return $this->domain;
+        } else {
+            return $this->domain;
+        }
+    }
+
+    /**
+     * return current language directory
+     */
+    public function get_language_dir()
+    {
+        return $this->language_dir;
+    }
+
+    public function get_lang()
+    {
+        if (array_key_exists($this->language_area, $this->languages)) {
+            return $this->language_area;
+        } else if (array_key_exists($this->language_country, $this->languages)) {
+            return $this->language_country;
+        }
+    }
+
+    public function get_languages_tags()
+    {
+        $tags = '';
+        foreach ($this->languages as $k => $value) {
+            $actived = $k == $this->get_lang() ? ' class="active"' : '';
+            $tags .= '<li' . $actived . '><a class="language-change-click" data-language="' . $k . '" href="javascript://">' . $this->languages[$k][0] . '</a></li>';
+        }
+        return $tags;
+    }
+
+    public function get_language_name()
+    {
+        return $this->languages[$this->get_lang()][0];
+    }
+
+    public function get_languages_options()
+    {
+        $options = '';
+        foreach ($this->languages as $k => $value) {
+            $selected = $k == $this->get_lang() ? ' selected="selected"' : '';
+            $options .= '<option value="' . $value[1] . '"' . $selected . '>' . $value[0] . '</option>';
+        }
+        return $options;
+    }
+}

+ 0 - 276
library/language.php

@@ -1,276 +0,0 @@
-<?php
-if (!defined('IN_SYS')) {
-    // exit('禁止访问');
-    header("Location: ../index.php");
-    exit;
-}
-
-global $lang, $languages;
-
-$languages = [
-    'en-US' => array('English', 'English'),
-    'zh-CN' => array('简体中文', 'Chinese_simplified'),
-    'zh-SG' => array('简体中文(新加坡)', 'Chinese_simplified'),
-    'zh-HK' => array('繁體中文(香港)', 'Chinese_traditional'),
-    'zh-TW' => array('繁體中文(台湾)', 'Chinese_traditional'),
-    'af' => array('Afrikaans', 'Afrikaans'),
-    'sq' => array('የአልባኒያ', 'Albanian'),
-    'am' => array('Amharic', 'Amharic'),
-    'ar' => array('Arabic', 'Arabic'),
-    'hy' => array('Armenian', 'Armenian'),
-    'az' => array('Azərbaycan', 'Azeerbaijani'),
-    'eu' => array('Basque', 'Basque'),
-    'be' => array('Belarusian', 'Belarusian'),
-    'bn' => array('Bengali', 'Bengali'),
-    'bs' => array('Bosnian', 'Bosnian'),
-    'bg' => array('Bulgarian', 'Bulgarian'),
-    'my' => array('Burmese', 'Burmese'),
-    'ca' => array('Catalan', 'Catalan'),
-    'ce' => array('Cebuano', 'Cebuano'), // 宿务语
-    'ch' => array('Chichewa', 'Chichewa'),
-    'co' => array('Corsican', 'Corsican'),
-    'hr' => array('Croatian', 'Croatian'),
-    'cs' => array('Czech', 'Czech'),
-    'da' => array('Danish', 'Danish'),
-    'nl' => array('Dutch', 'Dutch'),
-    'eo' => array('Esperanto', 'Esperanto'),
-    'et' => array('Estonian', 'Estonian'),
-    'fa' => array('Farsi', 'Farsi'),
-    'fil' => array('Filipino', 'Filipino'),
-    'fi' => array('Finnish', 'Finnish'),
-    'fr' => array('français', 'French'),
-    'fy' => array('Frisian', 'Frisian'),
-    'gl' => array('Galician', 'Galician'),
-    'ka' => array('Georgian', 'Georgian'),
-    'de' => array('Deutsch', 'German'),
-    'el' => array('Greek', 'Greek'),
-    'gu' => array('Gujarati', 'Gujarati'),
-    'ko' => array('Haitian Creole', 'Haitian Creole'),
-    'ha' => array('Hausa', 'Hausa'),
-    'haw' => array('Hawaiian', 'Hawaiian'),
-    'he' => array('Hebrew', 'Hebrew'),
-    'hi' => array('Hindi', 'Hindi'),
-    'hm' => array('Hmong', 'Hmong'),
-    'hu' => array('Hungarian', 'Hungarian'),
-    'is' => array('Icelandic', 'Icelandic'),
-    'ig' => array('Igbo', 'Igbo'),
-    'id' => array('Indonesian', 'Indonesian'),
-    'ga' => array('Irish', 'Irish'),
-    'it' => array('Italian', 'Italian'),
-    'jp' => array('日本語', 'Japanese'),
-    'jv' => array('Wong Jawa', 'Javanese'),
-    'kn' => array('Kannada', 'Kannada'),
-    'kk' => array('Kazakh', 'Kazakh'),
-    'kh' => array('Khmer', 'Khmer'),
-    'ko' => array('한국의', 'Korean'),
-    'ku' => array('Kurdish', 'Kurdish'),
-    'kz' => array('Kyrgyz', 'Kyrgyz'),
-    'lo' => array('ພາສາລາວ', 'Lao'),
-    'la' => array('Latinae', 'Latin'),
-    'lv' => array('Latvian', 'Latvian'),
-    'lt' => array('Lithuanian', 'Lithuanian'),
-    'lu' => array('Luxembourgish', 'Luxembourgish'),
-    'mk' => array('Macedonian', 'Macedonian'),
-    'ma' => array('Malagasy', 'Malagasy'),
-    'ms' => array('Malay', 'Malay'),
-    'ml' => array('Malayalam', 'Malayalam'),
-    'mt' => array('Maltese', 'Maltese'),
-    'ma' => array('Maori', 'Maori'),
-    'mr' => array('Marathi', 'Marathi'),
-    'mn' => array('Mongolian', 'Mongolian'),
-    'ne' => array('Nepali', 'Nepali'),
-    'no' => array('Norwegian', 'Norwegian'),
-    'pa' => array('Pashto', 'Pashto'),
-    'pe' => array('Persian', 'Persian'),
-    'po' => array('Polish', 'Polish'),
-    'pg' => array('Português', 'Portuguese'),
-    'pu' => array('Punjabi', 'Punjabi'),
-    'ro' => array('Romanian', 'Romanian'),
-    'ru' => array('Russian', 'Russian'),
-    'sa' => array('Samoan', 'Samoan'),
-    'gd' => array('Scots Gaelic', 'Scots Gaelic'),
-    'sr' => array('Serbian', 'Serbian'),
-    'se' => array('Sesotho', 'Sesotho'),
-    'sh' => array('Shona', 'Shona'),
-    'si' => array('Sindhi', 'Sindhi'),
-    'sin' => array('Sinhala', 'Sinhala'),
-    'sk' => array('Slovak', 'Slovak'),
-    'sl' => array('Slovenian', 'Slovenian'),
-    'so' => array('Somali', 'Somali'),
-    'es' => array('Spanish', 'Spanish'),
-    'su' => array('Sundanese', 'Sundanese'),
-    'sw' => array('Swahili', 'Swahili'),
-    'sv' => array('Swedish', 'Swedish'),
-    'tj' => array('Tajik', 'Tajik'),
-    'ta' => array('Tamil', 'Tamil'),
-    'te' => array('Telugu', 'Telugu'),
-    'ts' => array('Thai', 'Thai'),
-    'tu' => array('Turkish', 'Turkish'),
-    'uk' => array('Ukrainian', 'Ukrainian'),
-    'ur' => array('Urdu', 'Urdu'),
-    'uz' => array('Uzbek', 'Uzbek'),
-    'vi' => array('Vietnamese', 'Vietnamese'),
-    'we' => array('Welsh', 'Welsh'),
-    'xh' => array('Xhosa', 'Xhosa'),
-    'yi' => array('Yiddish', 'Yiddish'),
-    'yo' => array('Yorùbá', 'Yoruba'),
-    'zu' => array('Zulu', 'Zulu'),
-];
-
-class Language
-{
-    public $language_area;
-    public $language_country;
-    public $language_dir;
-    public $dir;
-    public function __construct()
-    {
-        $this->dir = str_replace("\\", "/", dirname(__FILE__)) . "/language/";
-        $this->initDefaultLanguage();
-        if (empty($this->language_country) && !empty($this->language_area)) {
-            $this->language_country = substr($this->language_area, 0, strpos($this->language_area, "-"));
-        }
-        $this->initLanguageDir();
-    }
-    /**
-     * get absolute path of language file
-     */
-    public function getFileDir($file)
-    {
-        $dir = $this->dir;
-        if (file_exists($this->getLanguageDir() . $file)) {
-            return $this->getLanguageDir() . $file;
-        } else {
-            if (file_exists($dir . $this->language_area . "/" . $file)) {
-                return $dir . $this->language_area . "/" . $file;
-            } else {
-                if (file_exists($dir . $this->language_country . "/" . $file)) {
-                    return $dir . $this->language_country . "/" . $file;
-                } else {
-                    // if (file_exists($dir . "en-US/" . $file)) {
-                    return $dir . "en-US/" . $file;
-                    // } else {
-                    //   return false;
-                    // }
-                }
-            }
-        }
-    }
-    /**
-     * return current language directory
-     */
-    public function getLanguageDir()
-    {
-        return $this->language_dir;
-    }
-
-    /**
-     * get current language directory
-     */
-    private function initLanguageDir()
-    {
-        $dir = $this->dir;
-        if (file_exists($dir . $this->language_area) && !empty($this->language_area)) {
-            $this->language_dir = $dir . $this->language_area . '/';
-        } else {
-            if (file_exists($dir . $this->language_country) && !empty($this->language_country)) {
-                $this->language_dir = $dir . $this->language_country . '/';
-            } else {
-                $this->language_dir = $dir . 'en-US/';
-            }
-        }
-    }
-
-    /**
-     * get the default language
-     */
-    public function initDefaultLanguage()
-    {
-        if ($this->getCookieLanguage()) {
-            return;
-        }
-        $language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
-        preg_match_all("/[\\w-]+/", $language, $language);
-        $this->language_area = $language[0][0];
-        @($this->language_country = $language[0][1]);
-        $this->setCookieLanguage();
-    }
-    /**
-     * get language form cookie
-     */
-    public function getCookieLanguage()
-    {
-        if (!@empty($_COOKIE['lang'])) {
-            $language = $_COOKIE['lang'];
-            if (strpos($language, "-")) {
-                $this->language_area = $language;
-            } else {
-                $this->language_country = $language;
-            }
-            return true;
-        }
-        return false;
-    }
-    /**
-     * set current language to cookie
-     */
-    public function setCookieLanguage($lang = "")
-    {
-        if (empty($lang)) {
-            $lang = $this->language_area;
-        }
-        if (empty($lang)) {
-            $lang = $this->language_country;
-        }
-        if (empty($lang)) {
-            return false;
-        }
-        setcookie("lang", $lang, time() + 365 * 24 * 3600, "/", $this->getDomain());
-        return true;
-    }
-
-    /**
-     * get current domain
-     */
-    public function getDomain()
-    {
-        if (empty($this->domain)) {
-            $domain = $_SERVER['SERVER_NAME'];
-            if (strcasecmp($domain, "localhost") === 0) {
-                $this->domain = $domain;
-                return $this->domain;
-            }
-            if (preg_match("/^(\\d+\\.){3}\\d+\$/", $domain, $domain_temp)) {
-                $this->domain = $domain_temp[0];
-                return $this->domain;
-            }
-            preg_match_all("/\\w+\\.\\w+\$/", $domain, $domain);
-            $this->domain = $domain[0][0];
-            return $this->domain;
-        } else {
-            return $this->domain;
-        }
-    }
-}
-
-$lang = new Language();
-$current_lang = 'en-US';
-if (array_key_exists($lang->language_area, $languages)) {
-    $current_lang = $lang->language_area;
-} else if (array_key_exists($lang->language_country, $languages)) {
-    $current_lang = $lang->language_country;
-}
-
-$language_tags = '';
-foreach ($languages as $k => $value) {
-    $actived = $k == $current_lang ? ' class="active"' : '';
-    $language_tags .= '<li' . $actived . '><a class="language-change-click" data-language="' . $k . '" href="javascript://">' . $languages[$k][0] . '</a></li>';
-}
-
-include $lang->getFileDir('language.php');
-
-function I18N($key = "")
-{
-    global $LANG;
-    return isset($key) ? isset($LANG[$key]) ? $LANG[$key] : $key : "";
-}

+ 0 - 3
library/language/zh-SG/language.php

@@ -1,3 +0,0 @@
-<?php
-
-include('../zh-CN/language.php');

+ 0 - 70
library/language/zh-TW/language.php

@@ -1,70 +0,0 @@
-<?php
-$LANG = [
-    'home' => '主頁',
-    'solution' => '方案',
-    'news' => '新聞',
-    'contact' => '聯繫',
-    'contact_us' => '聯繫我們',
-    'help' => '幫助',
-    'login' => '登錄',
-    'register' => '註冊',
-    'username' => '用戶名',
-    'input_username' => '請輸入用戶名',
-    'password' => '密碼',
-    'input_password' => '請輸入密碼',
-    'email' => '電子郵箱地址',
-    'input_email' => '請輸入電子郵箱地址',
-    'site_category' => '網站類型',
-    'personal' => '個人',
-    'business' => '商業',
-    'hobby' => '愛好',
-    'forum' => '論壇',
-    'adult' => '成人',
-    'dating' => '約會',
-    'software_download' => '軟件/下載',
-    'choose_from_below' => '下拉選擇',
-    'site_language' => '網站語言',
-    'english' => '英文',
-    'non_english' => '非英文',
-    'security_code' => '驗證碼',
-    'input_security_code' => '輸入驗證碼',
-    'input_security_code_above' => '請輸入上面圖中驗證碼',
-    'legal_information' => '法律信息',
-    'privacy_policy' => '隱私政策',
-    'tos' => '服務條款',
-    'cancellation_refund' => '取消與退款',
-    'payment_methods' => '支付方式',
-    'signup_free_hosting' => '註冊免費空間',
-    'remember_me' => '記住我',
-    'please_login' => '請登錄',
-    'lost_password' => '忘記密碼了?',
-    'address' => '地址',
-    'host-plan' => '主機方案',
-    'host-plan-free' => '免費主機',
-    'host-plan-paid' => '收費主機',
-    'host-plan-super' => '高級主機套餐',
-    'host-plan-ultimate' => '頂級主機套餐',
-    'ftp-accounts' => 'FTP 帳號',
-    'free-domains' => '免費域名',
-    'sub-domains' => '子網域',
-    'add-on-domains' => '附加網域',
-    'parked-domains' => '寄放網域',
-    'mysql-databases' => 'MySQL 資料庫',
-    'disk-quota' => '磁碟空間額度',
-    'monthly-bandwidth' => '月流量額度',
-    'daily-hits' => '每日點擊額度',
-    'host-inodes' => '信息節點額度',
-    'unlimited' => '無限',
-    'reset-password' => '重置密碼',
-    'domain' => '域名',
-    'input-domain' => '請輸入域名',
-    'support' => '支持',
-    'not-support' => '不支持',
-    'more' => '更多',
-    'about' => '關於',
-    'aboutus' => '關於我們',
-    'clientarea' => '客戶中心',
-    'add' => '新增',
-    'list' => '列表',
-    'managearea' => '管理中心'
-];