diff --git a/admin/views/account_list.php b/admin/views/account_list.php index 7d98c32..b18ec1c 100644 --- a/admin/views/account_list.php +++ b/admin/views/account_list.php @@ -39,7 +39,7 @@ if (!defined('IN_SYS')) { - + I18N('login'); ?> diff --git a/admin/views/footer.php b/admin/views/footer.php index 73ddae3..494a202 100644 --- a/admin/views/footer.php +++ b/admin/views/footer.php @@ -20,13 +20,13 @@ if (!defined('IN_SYS')) {
  • - +
  • -
  • -
  • -
  • +
  • I18N('about'); ?>
  • +
  • I18N('contact'); ?>
  • +
  • I18N('support'); ?>
  • diff --git a/admin/views/header.php b/admin/views/header.php index 95e379a..4ffb041 100644 --- a/admin/views/header.php +++ b/admin/views/header.php @@ -6,7 +6,7 @@ if (!defined('IN_SYS')) { } ?> - + @@ -26,7 +26,7 @@ if (!defined('IN_SYS')) { diff --git a/admin/views/login.php b/admin/views/login.php index 4a9f10b..6811c02 100644 --- a/admin/views/login.php +++ b/admin/views/login.php @@ -11,7 +11,7 @@ if (!defined('IN_SYS')) {
    -

    +

    I18N('login'); ?>

    @@ -21,14 +21,14 @@ if (!defined('IN_SYS')) { - +
    You have logged in
    diff --git a/admin/views/main.php b/admin/views/main.php index 004463a..e39f7a4 100644 --- a/admin/views/main.php +++ b/admin/views/main.php @@ -11,20 +11,38 @@ if (file_exists("{$ROOT}/install.php")) { ?>
    + +
    + +
    +
    -
    +
    +
    +
    +

    统计信息

    +
    +
    +

    客户:100 个

    +

    工单:待处理 100 个(总共:1000 个)

    +

    订单:100 个

    +
    + +
    +
    +
    -

    Content Management System for Reseller

    +

    快捷操作

    - -
    - +
    diff --git a/admin/views/navbar.php b/admin/views/navbar.php index 464c6b7..8cb1d1f 100644 --- a/admin/views/navbar.php +++ b/admin/views/navbar.php @@ -20,7 +20,7 @@ if (!defined('IN_SYS')) {
    diff --git a/admin/views/news.php b/admin/views/news.php index 275608b..4ab24ec 100644 --- a/admin/views/news.php +++ b/admin/views/news.php @@ -7,50 +7,46 @@ if (!defined('IN_SYS')) { ?>
    -
    -
    - -
    -
    - -
    - -
    -
    -
    -
    - - - - - - - - - - - $value) { ?> - - - - - - - - - - - - -
    DateTitleStatus
    Details
    No Records Found
    -
    -
    - + +
    +
    + I18N('news'); ?> +
    +
    +
    + + + + + + + + + + + $value) { ?> + + + + + + + + + + + + +
    DateTitleStatus
    I18N('details'); ?>
    No Records Found
    +
    +
    +
    \ No newline at end of file diff --git a/admin/views/news_add.php b/admin/views/news_add.php index d26e5bf..4d34940 100644 --- a/admin/views/news_add.php +++ b/admin/views/news_add.php @@ -7,44 +7,40 @@ if (!defined('IN_SYS')) { ?>
    -
    -
    - -
    -
    - News Add -
    - -
    -
    -
    -
    -
    - - - -
    -
    - - - -
    -
    - - - -
    -
    - -
    -
    -
    - + +
    +
    + News Add +
    +
    +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/admin/views/news_details.php b/admin/views/news_details.php index 8dadbc6..7d5d5ba 100644 --- a/admin/views/news_details.php +++ b/admin/views/news_details.php @@ -7,25 +7,21 @@ if (!defined('IN_SYS')) { ?>
    -
    -
    - -
    -
    - News Details -
    - - -
    -
    -
    -

    Status:

    -

    Date:

    -

    Title:

    -

    Content:

    -
    - + +
    +
    + News Details +
    +
    +

    Status:

    +

    Date:

    +

    Title:

    +

    Content:

    +
    +
    \ No newline at end of file diff --git a/admin/views/tickets.php b/admin/views/tickets.php index 08d24ee..ceb85e2 100644 --- a/admin/views/tickets.php +++ b/admin/views/tickets.php @@ -7,51 +7,47 @@ if (!defined('IN_SYS')) { ?>
    -
    -
    - -
    -
    - Support Tickets -
    -
    -
    - - + +
    +
    + I18N('tickets'); ?> +
    +
    +
    +
    + + + + + + + + + + + + $value) { ?> - - - - - - + + + + + + - - - $value) { ?> - - - - - - - - - - - - - - -
    DateDepartmentSubjectStatusLast Updated
    DateDepartmentSubjectStatusLast UpdatedI18N('details'); ?>
    Details
    No Records Found
    -
    -
    - + + + No Records Found + + + +
    +
    \ No newline at end of file diff --git a/admin/views/tickets_details.php b/admin/views/tickets_details.php index e54a1b9..e71c781 100644 --- a/admin/views/tickets_details.php +++ b/admin/views/tickets_details.php @@ -7,35 +7,31 @@ if (!defined('IN_SYS')) { ?>
    -
    -
    - -
    -
    - Tickets Details -
    - -
    -
    -
    -

    Type:

    -

    Status:

    -

    Subject:

    -

    Content:

    -
    -
    - - - -
    -
    - - -
    -
    -
    - + +
    +
    + I18N('tickets-details'); ?> +
    +
    +

    Type:

    +

    Status:

    +

    Subject:

    +

    Content:

    +
    +
    + + + +
    +
    + + +
    +
    +
    +
    \ No newline at end of file diff --git a/bak/register_bak.php b/bak/register_bak.php index 84ad38e..697d082 100644 --- a/bak/register_bak.php +++ b/bak/register_bak.php @@ -4,10 +4,10 @@ $security_id = md5(rand(6000,getrandmax())); // $security_id = md5(rand(6000,PHP_INT_MAX)); ?> - + - <?php echo $title; ?> - <?php echo I18N('register'); ?> + <?php echo $title; ?> - <?php echo $lang->I18N('register'); ?> @@ -18,37 +18,37 @@
    diff --git a/bak/resetpass.php b/bak/resetpass.php index addb589..535250c 100644 --- a/bak/resetpass.php +++ b/bak/resetpass.php @@ -30,7 +30,7 @@
    - +
    diff --git a/clientarea/views/footer.php b/clientarea/views/footer.php index fa5e33f..ec541ee 100644 --- a/clientarea/views/footer.php +++ b/clientarea/views/footer.php @@ -20,11 +20,11 @@ if (!defined('IN_SYS')) {
  • - +
  • -
  • +
  • I18N('about'); ?>
  • diff --git a/clientarea/views/header.php b/clientarea/views/header.php index 0393bb3..da37235 100644 --- a/clientarea/views/header.php +++ b/clientarea/views/header.php @@ -6,7 +6,7 @@ if (!defined('IN_SYS')) { } ?> - + @@ -14,7 +14,7 @@ if (!defined('IN_SYS')) { - <?php echo I18N('clientarea'); ?> + <?php echo $lang->I18N('clientarea'); ?> @@ -26,7 +26,7 @@ if (!defined('IN_SYS')) { diff --git a/clientarea/views/login.php b/clientarea/views/login.php index 72672dc..d0c5e8e 100644 --- a/clientarea/views/login.php +++ b/clientarea/views/login.php @@ -12,7 +12,7 @@ if (!defined('IN_SYS')) {
    -

    +

    I18N('login'); ?>

    Please fill in credentials to log in.

    diff --git a/clientarea/views/main.php b/clientarea/views/main.php index 32302cc..841b2ec 100644 --- a/clientarea/views/main.php +++ b/clientarea/views/main.php @@ -12,7 +12,7 @@ if (!defined('IN_SYS')) {
    -

    +

    I18N('clientarea'); ?>

    Please fill in credentials to log in.

    diff --git a/clientarea/views/navbar.php b/clientarea/views/navbar.php index a24dbe2..16cda0b 100644 --- a/clientarea/views/navbar.php +++ b/clientarea/views/navbar.php @@ -58,7 +58,7 @@ if (!defined('IN_SYS')) {
  • Logout
  • -   + I18N('clientarea'); ?> 
    diff --git a/core/views/forum.php b/core/views/forum.php index 648fe63..2a86a68 100644 --- a/core/views/forum.php +++ b/core/views/forum.php @@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
    diff --git a/core/views/header.php b/core/views/header.php index 1256b48..4289136 100644 --- a/core/views/header.php +++ b/core/views/header.php @@ -6,7 +6,7 @@ if (!defined('IN_SYS')) { } ?> - + @@ -27,7 +27,7 @@ if (!defined('IN_SYS')) { diff --git a/core/views/help.php b/core/views/help.php index ece937a..b29d677 100644 --- a/core/views/help.php +++ b/core/views/help.php @@ -9,7 +9,7 @@ if (!defined('IN_SYS')) {
    diff --git a/core/views/legal_privacy.php b/core/views/legal_privacy.php index 44f04b5..93b5d6c 100644 --- a/core/views/legal_privacy.php +++ b/core/views/legal_privacy.php @@ -11,7 +11,7 @@ if (!defined('IN_SYS')) {
    diff --git a/core/views/legal_terms.php b/core/views/legal_terms.php index ea3f478..4da2d0f 100644 --- a/core/views/legal_terms.php +++ b/core/views/legal_terms.php @@ -10,7 +10,7 @@ if (!defined('IN_SYS')) {
    diff --git a/core/views/login.php b/core/views/login.php index 26f8adf..b1f580f 100644 --- a/core/views/login.php +++ b/core/views/login.php @@ -11,35 +11,32 @@ if (!defined('IN_SYS')) {
    -

    +

    I18N('please_login'); ?>

    @@ -50,7 +47,7 @@ if (!defined('IN_SYS')) {
    - +
    -
    - +
    - +
    - +
    -
    - +
    - +
    - +
    - +
    - +
    - +
    diff --git a/core/views/solution.php b/core/views/solution.php index cc573bb..877d100 100644 --- a/core/views/solution.php +++ b/core/views/solution.php @@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
    @@ -17,49 +17,49 @@ if (!defined('IN_SYS')) {
    - - + I18N('register'); ?> + I18N('host-plan-free'); ?>
    -
    1
    -
    -
    10
    -
    10
    -
    -
    10
    -
    10 GB
    -
    100 GB
    -
    50000
    -
    30019
    +
    1I18N('ftp-accounts'); ?>
    +
    I18N('not-support'); ?>I18N('free-domains'); ?>
    +
    10I18N('sub-domains'); ?>
    +
    10I18N('add-on-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('parked-domains'); ?>
    +
    10I18N('mysql-databases'); ?>
    +
    10 GBI18N('disk-quota'); ?>
    +
    100 GBI18N('monthly-bandwidth'); ?>
    +
    50000I18N('daily-hits'); ?>
    +
    30019I18N('host-inodes'); ?>
    Latest vPanel with Softaculous
    Latest PHP and mySQL
    SiteBuilder
    1 Click Script Installer
    -
    Node.JS
    -
    Postgres
    -
    Free SSL Certificate
    -
    Custom CRON Jobs
    +
    I18N('not-support'); ?>Node.JS
    +
    I18N('not-support'); ?>Postgres
    +
    I18N('not-support'); ?>Free SSL Certificate
    +
    I18N('not-support'); ?>Custom CRON Jobs
    - - + I18N('register'); ?> + I18N('host-plan-super'); ?>
    -
    100
    -
    6
    -
    -
    20
    -
    -
    -
    -
    -
    -
    +
    100I18N('ftp-accounts'); ?>
    +
    6I18N('free-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('sub-domains'); ?>
    +
    20I18N('add-on-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('parked-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('mysql-databases'); ?>
    +
    I18N('unlimited'); ?>I18N('disk-quota'); ?>
    +
    I18N('unlimited'); ?>I18N('monthly-bandwidth'); ?>
    +
    I18N('unlimited'); ?>I18N('daily-hits'); ?>
    +
    I18N('unlimited'); ?>I18N('host-inodes'); ?>
    Latest cPanel with Softaculous
    Latest PHP and mySQL
    SiteBuilder
    @@ -69,26 +69,26 @@ if (!defined('IN_SYS')) {
    Free SSL Certificate
    Custom CRON Jobs
    - - + I18N('register'); ?> + I18N('host-plan-ultimate'); ?>
    -
    -
    21
    -
    -
    -
    -
    -
    -
    -
    -
    +
    I18N('unlimited'); ?>I18N('ftp-accounts'); ?>
    +
    21I18N('free-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('sub-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('add-on-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('parked-domains'); ?>
    +
    I18N('unlimited'); ?>I18N('mysql-databases'); ?>
    +
    I18N('unlimited'); ?>I18N('disk-quota'); ?>
    +
    I18N('unlimited'); ?>I18N('monthly-bandwidth'); ?>
    +
    I18N('unlimited'); ?>I18N('daily-hits'); ?>
    +
    I18N('unlimited'); ?>I18N('host-inodes'); ?>
    Latest cPanel with Softaculous
    Latest PHP and mySQL
    SiteBuilder
    @@ -97,7 +97,7 @@ if (!defined('IN_SYS')) {
    Postgres
    Free SSL Certificate
    Custom CRON Jobs
    -
    +
    diff --git a/core/views/support.php b/core/views/support.php index 3482a64..f151beb 100644 --- a/core/views/support.php +++ b/core/views/support.php @@ -8,7 +8,7 @@ if (!defined('IN_SYS')) {
    @@ -19,17 +19,17 @@ if (!defined('IN_SYS')) {
    Tickets -

    +

    I18N('Tickets'); ?>

    You can submit a support ticket from VistaPanel, we will reply you as soon as possible.

    Emails -

    +

    I18N('Emails'); ?>

    You can email us, but we use only the following email for technical support: support@uiisc.com

    Forums -

    +

    I18N('forum'); ?>

    You can also join our community forums if you want to interact with other users and get instant answers.

    diff --git a/data/lang.php b/data/lang.php new file mode 100644 index 0000000..92c47e1 --- /dev/null +++ b/data/lang.php @@ -0,0 +1,111 @@ + ['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'], +]; diff --git a/library/language/en-US/language.php b/data/language/en-US/language.php similarity index 88% rename from library/language/en-US/language.php rename to data/language/en-US/language.php index b420c4f..6ec71b1 100644 --- a/library/language/en-US/language.php +++ b/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', ]; diff --git a/library/language/ko/language.php b/data/language/ko/language.php similarity index 93% rename from library/language/ko/language.php rename to data/language/ko/language.php index 9a07a4a..8ce1a74 100644 --- a/library/language/ko/language.php +++ b/data/language/ko/language.php @@ -67,4 +67,8 @@ $LANG = [ 'add' => '더하다', 'list' => '명부', 'managearea' => '관리센터', + 'delete' => '삭제', + 'details' => '세부 정보', + 'tickets' => '작업 지시서', + 'tickets-details' => '작업 지시 세부 정보', ]; diff --git a/library/language/zh-CN/language.php b/data/language/zh-CN/language.php similarity index 93% rename from library/language/zh-CN/language.php rename to data/language/zh-CN/language.php index b1f62b0..78f065c 100644 --- a/library/language/zh-CN/language.php +++ b/data/language/zh-CN/language.php @@ -66,5 +66,9 @@ $LANG = [ 'clientarea' => '客户中心', 'add' => '新增', 'list' => '列表', - 'managearea' => '管理中心' + 'managearea' => '管理中心', + 'delete' => '删除', + 'details' => '详情', + 'tickets' => '工单', + 'tickets-details' => '工单详情', ]; diff --git a/data/language/zh-HK/language.php b/data/language/zh-HK/language.php new file mode 100644 index 0000000..6b7bdb1 --- /dev/null +++ b/data/language/zh-HK/language.php @@ -0,0 +1,3 @@ + '客戶中心', 'add' => '新增', 'list' => '列表', - 'managearea' => '管理中心' + 'managearea' => '管理中心', + 'delete' => '刪除', + 'details' => '詳情', + 'tickets' => '工單', + 'tickets-details' => '工單詳情', ]; diff --git a/library/lang.class.php b/library/lang.class.php new file mode 100644 index 0000000..a6249a3 --- /dev/null +++ b/library/lang.class.php @@ -0,0 +1,182 @@ +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 .= '' . $this->languages[$k][0] . ''; + } + 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 .= ''; + } + return $options; + } +} diff --git a/library/language.php b/library/language.php deleted file mode 100644 index 0c9efa6..0000000 --- a/library/language.php +++ /dev/null @@ -1,276 +0,0 @@ - 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 .= '' . $languages[$k][0] . ''; -} - -include $lang->getFileDir('language.php'); - -function I18N($key = "") -{ - global $LANG; - return isset($key) ? isset($LANG[$key]) ? $LANG[$key] : $key : ""; -} diff --git a/library/language/zh-SG/language.php b/library/language/zh-SG/language.php deleted file mode 100644 index 8256a66..0000000 --- a/library/language/zh-SG/language.php +++ /dev/null @@ -1,3 +0,0 @@ - '主頁', - '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' => '管理中心' -];