mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-03-12 04:36:25 -07:00
Merge branch 'master' of github.com:serghey-rodin/vesta
This commit is contained in:
commit
cd0dbb4671
bin
web
edit/user
inc
js
login
reset
templates
@ -19,9 +19,14 @@ source $VESTA/conf/vesta.conf
|
||||
|
||||
|
||||
is_language_valid() {
|
||||
if [ ! -e "$VESTA/web/inc/i18n/$language.php" ]; then
|
||||
echo "Error: language $language not exist"
|
||||
log_event "$E_NOTEXIST $EVENT"
|
||||
if ! [[ "$1" =~ ^[[:alnum:]_-]+$ ]]; then
|
||||
echo "Error: language $1 is not valid"
|
||||
log_event "$E_INVALID" "$EVENT"
|
||||
exit $E_INVALID
|
||||
fi
|
||||
if [ ! -e "$VESTA/web/inc/i18n/$1.php" ]; then
|
||||
echo "Error: language $1 doesn't exist"
|
||||
log_event "$E_NOTEXIST" "$EVENT"
|
||||
exit $E_NOTEXIST
|
||||
fi
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ exec (VESTA_CMD."v-list-user-packages json", $output, $return_var);
|
||||
$packages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// List lanugages
|
||||
// List languages
|
||||
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
|
||||
$languages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
112
web/inc/i18n.php
Normal file
112
web/inc/i18n.php
Normal file
@ -0,0 +1,112 @@
|
||||
<?php
|
||||
// Functions for internationalization
|
||||
|
||||
/**
|
||||
* Translates string to given language in first parameter, key given in second parameter (dynamically loads required language). Works like spritf from second parameter
|
||||
* @global array $LANG Associative array of language pharses
|
||||
* @return string Translated string
|
||||
*/
|
||||
function _translate() {
|
||||
global $LANG;
|
||||
|
||||
$args = func_get_args();
|
||||
$l = $args[0];
|
||||
|
||||
if (!$l) return 'NO LANGUAGE DEFINED';
|
||||
$key = $args[1];
|
||||
|
||||
if (!isset($LANG[$l])) {
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$l.'.php');
|
||||
}
|
||||
|
||||
if (!isset($LANG[$l][$key])) {
|
||||
$text=$key;
|
||||
} else {
|
||||
$text=$LANG[$l][$key];
|
||||
}
|
||||
|
||||
array_shift($args);
|
||||
if (count($args)>1) {
|
||||
$args[0] = $text;
|
||||
return call_user_func_array("sprintf",$args);
|
||||
} else {
|
||||
return $text;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates string by a given key in first parameter to current session language. Works like sprintf
|
||||
* @global array $LANG Associative array of language pharses
|
||||
* @return string Translated string
|
||||
* @see _translate()
|
||||
*/
|
||||
function __() {
|
||||
$args = func_get_args();
|
||||
array_unshift($args,$_SESSION['language']);
|
||||
return call_user_func_array("_translate",$args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Detects user language from Accept-Language HTTP header.
|
||||
* @param string Fallback language (default: 'en')
|
||||
* @return string Language code (such as 'en' and 'ja')
|
||||
*/
|
||||
function detect_user_language($fallback='en') {
|
||||
static $user_lang = '';
|
||||
|
||||
// Already detected
|
||||
if (!empty($user_lang)) return $user_lang;
|
||||
|
||||
// Check if Accept-Language header is available
|
||||
if (!isset($_SERVER) ||
|
||||
!isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ||
|
||||
!is_string($_SERVER['HTTP_ACCEPT_LANGUAGE'])
|
||||
) {
|
||||
// Store result for reusing
|
||||
$user_lang = $fallback;
|
||||
return $user_lang;
|
||||
}
|
||||
|
||||
// Sort Accept-Language by `q` value
|
||||
$accept_langs = explode(',', preg_replace('/\s/', '', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE'])));
|
||||
$accept_langs_sorted = [];
|
||||
foreach ($accept_langs as $lang) {
|
||||
$div = explode(';q=', $lang, 2);
|
||||
if (count($div) < 2) {
|
||||
// `q` value was not specfied
|
||||
// -> Set default `q` value (1)
|
||||
$div[] = '1';
|
||||
}
|
||||
list($code, $q) = $div;
|
||||
if (preg_match('/^[\w\-]+$/', $code)) {
|
||||
// Acceptable language code
|
||||
$accept_langs_sorted[$code] = (double)$q;
|
||||
}
|
||||
}
|
||||
arsort($accept_langs_sorted);
|
||||
|
||||
// List languages
|
||||
exec (VESTA_CMD."v-list-sys-languages json", $output, $return_var);
|
||||
$languages = json_decode(implode('', $output), true);
|
||||
unset($output);
|
||||
|
||||
// Find best matching language
|
||||
foreach ($accept_langs_sorted as $user_lang => $dummy) {
|
||||
$decision = '';
|
||||
foreach ($languages as $prov_lang) {
|
||||
if (strlen($decision) > strlen($prov_lang)) continue;
|
||||
if (strpos($user_lang, $prov_lang) !== false) {
|
||||
$decision = $prov_lang;
|
||||
}
|
||||
}
|
||||
if (!empty($decision)) {
|
||||
// Store result for reusing
|
||||
$user_lang = $decision;
|
||||
return $user_lang;
|
||||
}
|
||||
}
|
||||
|
||||
// Store result for reusing
|
||||
$user_lang = $fallback;
|
||||
return $user_lang;
|
||||
}
|
@ -27,7 +27,7 @@ $LANG['ja'] = array(
|
||||
|
||||
'Add User' => 'ユーザーを追加',
|
||||
'Add Domain' => 'ドメインを追加',
|
||||
'Add Web Domain' => 'Webドメインを追加',
|
||||
'Add Web Domain' => 'ウェブドメインを追加',
|
||||
'Add DNS Domain' => 'DNSドメインを追加',
|
||||
'Add DNS Record' => 'DNSレコードを追加',
|
||||
'Add Mail Domain' => 'メールドメインを追加',
|
||||
@ -62,8 +62,8 @@ $LANG['ja'] = array(
|
||||
'rebuild db' => 'データベースを再構築',
|
||||
'rebuild cron' => 'Cronを再構築',
|
||||
'update counters' => 'カウンタを更新',
|
||||
'suspend' => '停止',
|
||||
'unsuspend' => '停止解除',
|
||||
'suspend' => '凍結',
|
||||
'unsuspend' => '凍結解除',
|
||||
'delete' => '削除',
|
||||
'show per user' => 'ユーザー別',
|
||||
'login as' => '次のユーザーとしてログイン:',
|
||||
@ -71,9 +71,9 @@ $LANG['ja'] = array(
|
||||
'edit' => '編集',
|
||||
'open webstats' => 'ウェブ統計を開く',
|
||||
'view logs' => 'ログを表示',
|
||||
'list records' => '%sつのレコード',
|
||||
'list records' => '%s個のレコード',
|
||||
'add record' => 'レコードを追加',
|
||||
'list accounts' => '%sつのアカウント',
|
||||
'list accounts' => '%s個のアカウント',
|
||||
'add account' => 'アカウントを追加',
|
||||
'open webmail' => 'ウェブメールを開く',
|
||||
'list fail2ban' => 'fail2banリスト',
|
||||
@ -86,7 +86,7 @@ $LANG['ja'] = array(
|
||||
'restart' => '再起動',
|
||||
'update' => '更新',
|
||||
'generate' => '生成',
|
||||
'Generate CSR' => 'CSRを生成',
|
||||
'Generate CSR' => '証明書署名要求を生成',
|
||||
'reread IP' => 'IPアドレスを再読み込み',
|
||||
'enable autoupdate' => '自動更新を有効化',
|
||||
'disable autoupdate' => '自動更新を無効化',
|
||||
@ -114,7 +114,7 @@ $LANG['ja'] = array(
|
||||
'Adding IP address' => 'IPアドレスの追加',
|
||||
'Editing IP Address' => 'IPアドレスの編集',
|
||||
'Editing Backup Exclusions' => 'バックアップ除外設定の編集',
|
||||
'Generating CSR' => 'CSRの生成',
|
||||
'Generating CSR' => '証明書署名要求の生成',
|
||||
'Listing' => 'リスト中:',
|
||||
'Search Results' => '検索結果',
|
||||
'Adding Firewall Rule' => 'ファイアウォールの規則の追加',
|
||||
@ -122,8 +122,8 @@ $LANG['ja'] = array(
|
||||
'Adding IP Address to Banlist' => 'BANリストへのIPアドレスの追加',
|
||||
|
||||
'active' => 'アクティブ',
|
||||
'spnd' => '停止中',
|
||||
'suspended' => '停止中',
|
||||
'spnd' => '凍結中',
|
||||
'suspended' => '凍結中',
|
||||
'running' => '実行中',
|
||||
'stopped' => '停止中',
|
||||
'outdated' => '旧版',
|
||||
@ -155,9 +155,9 @@ $LANG['ja'] = array(
|
||||
'Backend Template' => 'バックエンド テンプレート',
|
||||
'Proxy Template' =>'プロキシ テンプレート',
|
||||
'DNS Template' => 'DNSテンプレート',
|
||||
'Web Domains' => 'Webドメイン',
|
||||
'Web Domains' => 'ウェブドメイン',
|
||||
'SSL Domains' => 'SSLドメイン',
|
||||
'Web Aliases' => 'Webエイリアス',
|
||||
'Web Aliases' => 'ウェブエイリアス',
|
||||
'per domain' => 'ドメインごと',
|
||||
'DNS Domains' => 'DNSドメイン',
|
||||
'DNS Domains' => 'DNSドメイン',
|
||||
@ -177,7 +177,7 @@ $LANG['ja'] = array(
|
||||
'Proxy Support' => 'プロキシのサポート',
|
||||
'Proxy Extensions' => 'プロキシ対象拡張子',
|
||||
'Web Statistics' => 'ウェブアクセス統計',
|
||||
'Additional FTP Account' => '追加のFTP',
|
||||
'Additional FTP Account' => '追加のFTPアカウント',
|
||||
'SOA' => 'SOA',
|
||||
'TTL' => 'TTL',
|
||||
'Expire' => '有効期限',
|
||||
@ -196,7 +196,7 @@ $LANG['ja'] = array(
|
||||
'Host' => 'ホスト',
|
||||
'Charset' => '文字セット',
|
||||
'Min' => '分',
|
||||
'Hour' => '時間',
|
||||
'Hour' => '時',
|
||||
'Day' => '日',
|
||||
'Month' => '月',
|
||||
'Day of week' => '曜日',
|
||||
@ -239,7 +239,7 @@ $LANG['ja'] = array(
|
||||
'Release' => 'リリース',
|
||||
'Architecture' => 'アーキテクチャ',
|
||||
'Object' => 'オブジェクト',
|
||||
'Owner' => '使用者',
|
||||
'Owner' => '所有者',
|
||||
'Username' => 'ユーザー名',
|
||||
'Password' => 'パスワード',
|
||||
'Email' => 'メールアドレス',
|
||||
@ -247,9 +247,9 @@ $LANG['ja'] = array(
|
||||
'Language' => '言語',
|
||||
'First Name' => '名',
|
||||
'Last Name' => '姓',
|
||||
'Send login credentials to email address' => 'ログイン認証資格をメールアドレスに送信',
|
||||
'Default Template' => 'デフォルトテンプレート',
|
||||
'Default Name Servers' => 'デフォルトネームサーバー',
|
||||
'Send login credentials to email address' => 'ログイン情報をメールアドレスに送信',
|
||||
'Default Template' => '規定のテンプレート',
|
||||
'Default Name Servers' => '規定のネームサーバー',
|
||||
'Domain' => 'ドメイン',
|
||||
'DNS Support' => 'DNSのサポート',
|
||||
'Mail Support' => 'メールのサポート',
|
||||
@ -258,16 +258,16 @@ $LANG['ja'] = array(
|
||||
'SSL Certificate' => 'SSL証明書',
|
||||
'SSL Key' => 'SSL鍵',
|
||||
'SSL Certificate Authority / Intermediate' => 'SSL認証局',
|
||||
'SSL CSR' => 'SSL CSR',
|
||||
'SSL CSR' => 'SSL証明書署名要求',
|
||||
'optional' => '任意',
|
||||
'internal' => '内部',
|
||||
'Statistics Authorization' => '統計の認証',
|
||||
'Statistics Auth' => '統計の認証',
|
||||
'Account' => 'アカウント',
|
||||
'Prefix will be automaticaly added to username' => 'ユーザー名には接頭辞 %s が自動的に付加されます',
|
||||
'Send FTP credentials to email' => 'FTP認証資格をメールアドレスに送信',
|
||||
'Send FTP credentials to email' => 'FTPログイン情報をメールアドレスに送信',
|
||||
'Expiration Date' => '有効期限',
|
||||
'YYYY-MM-DD' => 'YYYY/MM/DD',
|
||||
'YYYY-MM-DD' => 'YYYY-MM-DD',
|
||||
'Name servers' => 'ネームサーバー',
|
||||
'Record' => 'レコード',
|
||||
'IP or Value' => 'IPアドレスまたは値',
|
||||
@ -297,7 +297,7 @@ $LANG['ja'] = array(
|
||||
'mail accounts' => 'メールアカウント',
|
||||
'accounts' => 'アカウント',
|
||||
'databases' => 'データベース',
|
||||
'cron jobs' => 'cronジョブ',
|
||||
'cron jobs' => 'Cronジョブ',
|
||||
'backups' => 'バックアップ',
|
||||
'quota' => '割り当て量',
|
||||
'day of week' => '曜日',
|
||||
@ -337,7 +337,7 @@ $LANG['ja'] = array(
|
||||
'Download ErrorLog' => 'ErrorLogをダウンロード',
|
||||
'Country' => '国',
|
||||
'2 letter code' => '2レターコード',
|
||||
'State / Province' => '都道府県',
|
||||
'State / Province' => '州 / 都道府県',
|
||||
'City / Locality' => '市区町村',
|
||||
'Organization' => '組織',
|
||||
'Action' => 'アクション',
|
||||
@ -347,41 +347,41 @@ $LANG['ja'] = array(
|
||||
'Banlist' => 'BANリスト',
|
||||
'ranges are acceptable' => '範囲指定が可能です',
|
||||
'CIDR format is supported' => 'CIDRフォーマットが使用できます',
|
||||
'Add one more Name Server' => 'Add one more Name Server',
|
||||
'Add one more Name Server' => 'ネームサーバーを追加',
|
||||
|
||||
'unlimited' => '無制限',
|
||||
'1 account' => '1つのアカウント',
|
||||
'%s accounts' => '%sつのアカウント',
|
||||
'1 domain' => '1つのドメイン',
|
||||
'%s domains' => '%sつのドメイン',
|
||||
'1 record' => '1つのレコード',
|
||||
'%s records' => '%sつのレコード',
|
||||
'1 mail account' => '1つのメールアカウント',
|
||||
'%s mail accounts' => '%sつのメールアカウント',
|
||||
'1 database' => '1つのデータベース',
|
||||
'%s databases' => '%sつのデータベース',
|
||||
'1 cron job' => '1つのcronジョブ',
|
||||
'%s cron jobs' => '%sつのcronジョブ',
|
||||
'1 archive' => '1つのアーカイブ',
|
||||
'%s archives' => '%sつのアーカイブ',
|
||||
'1 package' => '1つのパッケージ',
|
||||
'%s packages' => '%sつのパッケージ',
|
||||
'1 IP address' => '1つのIPアドレス',
|
||||
'%s IP addresses' => '%sつのIPアドレス',
|
||||
'1 account' => '1個のアカウント',
|
||||
'%s accounts' => '%s個のアカウント',
|
||||
'1 domain' => '1個のドメイン',
|
||||
'%s domains' => '%s個のドメイン',
|
||||
'1 record' => '1個のレコード',
|
||||
'%s records' => '%s個のレコード',
|
||||
'1 mail account' => '1個のメールアカウント',
|
||||
'%s mail accounts' => '%s個のメールアカウント',
|
||||
'1 database' => '1個のデータベース',
|
||||
'%s databases' => '%s個のデータベース',
|
||||
'1 cron job' => '1個のCronジョブ',
|
||||
'%s cron jobs' => '%s個のCronジョブ',
|
||||
'1 archive' => '1個のアーカイブ',
|
||||
'%s archives' => '%s個のアーカイブ',
|
||||
'1 package' => '1個のパッケージ',
|
||||
'%s packages' => '%s個のパッケージ',
|
||||
'1 IP address' => '1個のIPアドレス',
|
||||
'%s IP addresses' => '%s個のIPアドレス',
|
||||
'1 month' => '1ヶ月',
|
||||
'%s months' => '%sヶ月',
|
||||
'1 log record' => '1つのログレコード',
|
||||
'%s log records' => '%sつのログレコード',
|
||||
'1 object' => '1つのオブジェクト',
|
||||
'%s objects' => '%sつのオブジェクト',
|
||||
'1 log record' => '1個のログレコード',
|
||||
'%s log records' => '%s個のログレコード',
|
||||
'1 object' => '1個のオブジェクト',
|
||||
'%s objects' => '%s個のオブジェクト',
|
||||
'no exclusions' => '除外しない',
|
||||
'1 rule' => '1つの規則',
|
||||
'%s rules' => '%sつの規則',
|
||||
'1 rule' => '1個の規則',
|
||||
'%s rules' => '%s個の規則',
|
||||
'There are no currently banned IP' => '現在BANされているIPはありません',
|
||||
|
||||
'USER_CREATED_OK' => 'ユーザー <a href="/edit/user/?user=%s"><b>%s</b></a> は正常に作成されました',
|
||||
'WEB_DOMAIN_CREATED_OK' => 'ドメイン <a href="/edit/web/?domain=%s"><b>%s</b></a> は正常に作成されました',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'DNS ドメイン <a href="/list/dns/?domain=%s"><b>%s</b></a> は正常に作成されました',
|
||||
'DNS_DOMAIN_CREATED_OK' => 'DNSドメイン <a href="/list/dns/?domain=%s"><b>%s</b></a> は正常に作成されました',
|
||||
'DNS_RECORD_CREATED_OK' => 'レコード <b>%s.%s</b> は正常に作成されました',
|
||||
'MAIL_DOMAIN_CREATED_OK' => 'メールドメイン <a href="/list/mail/?domain=%s"><b>%s</b></a> は正常に作成されました',
|
||||
'MAIL_ACCOUNT_CREATED_OK' => 'メールアカウント <a href="/edit/mail/?account=%s&domain=%s"><b>%s@%s</b></a> は正常に作成されました',
|
||||
@ -393,37 +393,37 @@ $LANG['ja'] = array(
|
||||
'RULE_CREATED_OK' => '規則は正常に作成されました',
|
||||
'Autoupdate has been successfully enabled' => '自動更新が有効化されました',
|
||||
'Autoupdate has been successfully disabled' => '自動更新が無効化されました',
|
||||
'Cronjob email reporting has been successfully enabled' => 'Cronjobのメール報告が有効化されました',
|
||||
'Cronjob email reporting has been successfully disabled' => 'Cronjobのメール報告が無効化されました',
|
||||
'Cronjob email reporting has been successfully enabled' => 'Cronジョブのメール報告が有効化されました',
|
||||
'Cronjob email reporting has been successfully disabled' => 'Cronジョブのメール報告が無効化されました',
|
||||
'Changes has been saved.' => '変更が保存されました',
|
||||
'Confirmation' => '確認',
|
||||
'DELETE_USER_CONFIRMATION' => 'ユーザー %s を削除してもよろしいですか?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'ユーザー %s を停止してもよろしいですか?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'ユーザー %s の停止を解除してもよろしいですか?',
|
||||
'SUSPEND_USER_CONFIRMATION' => 'ユーザー %s を凍結してもよろしいですか?',
|
||||
'UNSUSPEND_USER_CONFIRMATION' => 'ユーザー %s の凍結を解除してもよろしいですか?',
|
||||
'DELETE_DOMAIN_CONFIRMATION' => 'ドメイン %s を削除してもよろしいですか?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'ドメイン %s を停止してもよろしいですか?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'ドメイン %s の停止を解除してもよろしいですか?',
|
||||
'SUSPEND_DOMAIN_CONFIRMATION' => 'ドメイン %s を凍結してもよろしいですか?',
|
||||
'UNSUSPEND_DOMAIN_CONFIRMATION' => 'ドメイン %s の凍結を解除してもよろしいですか?',
|
||||
'DELETE_RECORD_CONFIRMATION' => 'レコード %s を削除してもよろしいですか?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'レコード %s を停止してもよろしいですか?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'レコード %s の停止を解除してもよろしいですか?',
|
||||
'SUSPEND_RECORD_CONFIRMATION' => 'レコード %s を凍結してもよろしいですか?',
|
||||
'UNSUSPEND_RECORD_CONFIRMATION' => 'レコード %s の凍結を解除してもよろしいですか?',
|
||||
'DELETE_MAIL_ACCOUNT_CONFIRMATION' => 'メールアカウント %s を削除してもよろしいですか?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'メールアカウント %s を停止してもよろしいですか?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'メールアカウント %s の停止を解除してもよろしいですか?',
|
||||
'SUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'メールアカウント %s を凍結してもよろしいですか?',
|
||||
'UNSUSPEND_MAIL_ACCOUNT_CONFIRMATION' => 'メールアカウント %s の凍結を解除してもよろしいですか?',
|
||||
'DELETE_DATABASE_CONFIRMATION' => 'データベース %s を削除してもよろしいですか?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'データベース %s を停止してもよろしいですか?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'データベース %s の停止を解除してもよろしいですか?',
|
||||
'SUSPEND_DATABASE_CONFIRMATION' => 'データベース %s を凍結してもよろしいですか?',
|
||||
'UNSUSPEND_DATABASE_CONFIRMATION' => 'データベース %s の凍結を解除してもよろしいですか?',
|
||||
'DELETE_CRON_CONFIRMATION' => 'Cronジョブを削除してもよろしいですか?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Cronジョブを停止してもよろしいですか?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Cronジョブの停止を解除してもよろしいですか?',
|
||||
'SUSPEND_CRON_CONFIRMATION' => 'Cronジョブを凍結してもよろしいですか?',
|
||||
'UNSUSPEND_CRON_CONFIRMATION' => 'Cronジョブの凍結を解除してもよろしいですか?',
|
||||
'DELETE_BACKUP_CONFIRMATION' => 'バックアップ %s を削除してもよろしいですか?',
|
||||
'DELETE_EXCLUSION_CONFIRMATION' => 'バックアップ除外設定 %s を削除してもよろしいですか?',
|
||||
'DELETE_PACKAGE_CONFIRMATION' => 'パッケージ %s を削除してもよろしいですか?',
|
||||
'DELETE_IP_CONFIRMATION' => 'IPアドレス %s を削除してもよろしいですか?',
|
||||
'DELETE_RULE_CONFIRMATION' => '規則 #%s を削除してもよろしいですか?',
|
||||
'SUSPEND_RULE_CONFIRMATION' => '規則 #%s を停止してもよろしいですか?',
|
||||
'UNSUSPEND_RULE_CONFIRMATION' => '規則 %s の停止を解除してもよろしいですか?',
|
||||
'SUSPEND_RULE_CONFIRMATION' => '規則 #%s を凍結してもよろしいですか?',
|
||||
'UNSUSPEND_RULE_CONFIRMATION' => '規則 %s の凍結を解除してもよろしいですか?',
|
||||
'LEAVE_PAGE_CONFIRMATION' => 'ページを離れてもよろしいですか?',
|
||||
'RESTART_CONFIRMATION' => '%s を再起動させてもよろしいですか?',
|
||||
'RESTART_CONFIRMATION' => '%s を再起動してもよろしいですか?',
|
||||
'Welcome' => 'ようこそ',
|
||||
'LOGGED_IN_AS' => '%s としてログインしました',
|
||||
'Error' => 'エラー',
|
||||
@ -435,8 +435,8 @@ $LANG['ja'] = array(
|
||||
'Password is too short.' => 'パスワードが短すぎます(少なくとも6文字必要です)',
|
||||
'Error code:' => 'エラーコード: %s',
|
||||
'SERVICE_ACTION_FAILED' => '"%s" "%s" に失敗しました',
|
||||
'IP address is in use' => 'IPアドレスはすでに使われています',
|
||||
'BACKUP_SCHEDULED' => 'タスクがキューに追加されました バックアップのダウンロードの準備が完了するとメールによる通知が送信されます',
|
||||
'IP address is in use' => 'IPアドレスは既に使われています',
|
||||
'BACKUP_SCHEDULED' => 'タスクがキューに追加されました バックアップがダウンロード可能になると、メールによる通知が送信されます',
|
||||
'BACKUP_EXISTS' => '現在バックアップが実行中です バックアップが完了するまでお待ちください',
|
||||
'RESTORE_SCHEDULED' => 'タスクがキューに追加されました 復元が完了するとメールによる通知が送信されます',
|
||||
'RESTORE_EXISTS' => '現在復元作業が実行中です 再度操作を行う前に復元作業が完了するまでお待ちください',
|
||||
@ -444,21 +444,21 @@ $LANG['ja'] = array(
|
||||
'WEB_EXCLUSIONS' => "ドメイン名を一行ずつ入力してください すべてのドメインを除外するには*を使用してください 特定のディレクトリを除外するには次の形式を用いてください: domain.com:public_html/cache:public_html/tmp",
|
||||
'DNS_EXCLUSIONS' => "ドメイン名を一行ずつ入力してください すべてのドメインを除外するには*を使用してください",
|
||||
'MAIL_EXCLUSIONS' => "ドメイン名を一行ずつ入力してください すべてのドメインを除外するには*を使用してください 特定のアカウントを除外するには次の形式を用いてください: domain.com:info:support:postmaster",
|
||||
'DB_EXCLUSIONS' => "データベース名をフルで一行ずつ入力してください すべてのデータベースを除外するには*を使用してください",
|
||||
'DB_EXCLUSIONS' => "完全なデータベース名を一行ずつ入力してください すべてのデータベースを除外するには*を使用してください",
|
||||
'CRON_EXCLUSIONS' => "すべてのジョブを除外するには*を使用してください",
|
||||
'USER_EXCLUSIONS' => "ディレクトリ名を一行ずつ入力してください すべてのディレクトリを除外するには*を使用してください",
|
||||
|
||||
'Welcome to Vesta Control Panel' => 'Vesta Control Panel へようこそ',
|
||||
'Welcome to Vesta Control Panel' => 'Vesta Control Panel にようこそ',
|
||||
'MAIL_FROM' => 'Vesta Control Panel <noreply@%s>',
|
||||
'GREETINGS_GORDON_FREEMAN' => "こんにちは %s %s さん\n",
|
||||
'GREETINGS_GORDON_FREEMAN' => "こんにちは、 %s %s さん\n",
|
||||
'GREETINGS' => "こんにちは\n",
|
||||
'ACCOUNT_READY' => "アカウントは正常に作成され、使用する準備ができました\n\nhttps://%s/login/\ユーザー名: %s\nパスワード: %s\n\n--\nVesta Control Panel\n",
|
||||
'ACCOUNT_READY' => "アカウントは正常に作成され、使用する準備ができました\n\nhttps://%s/login/\nユーザー名: %s\nパスワード: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'FTP login credentials' => 'FTPログイン認証資格',
|
||||
'FTP_ACCOUNT_READY' => "FTPアカウントは正常に作成され、使用する準備ができました\n\ホスト名: %s\ユーザー名: %s_%s\nパスワード: %s\n\n--\nVesta Control Panel\n",
|
||||
'FTP login credentials' => 'FTPログイン情報',
|
||||
'FTP_ACCOUNT_READY' => "FTPアカウントは正常に作成され、使用する準備ができました\n\nホスト名: %s\nユーザー名: %s_%s\nパスワード: %s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'Database Credentials' => 'データベース認証資格',
|
||||
'DATABASE_READY' => "データベースは正常に作成されました.\n\nデータベース: %s\nユーザー: %s\nパスワード: %s\n%s\n\n--\nVesta Control Panel\n",
|
||||
'Database Credentials' => 'データベースログイン情報',
|
||||
'DATABASE_READY' => "データベースは正常に作成されました\n\nデータベース名: %s\nユーザー名: %s\nパスワード: %s\n%s\n\n--\nVesta Control Panel\n",
|
||||
|
||||
'forgot password' => 'パスワードを忘れた場合',
|
||||
'Confirm' => '確認',
|
||||
@ -487,7 +487,7 @@ $LANG['ja'] = array(
|
||||
'Configuring Server' => 'サーバー設定',
|
||||
'Hostname' => 'ホスト名',
|
||||
'Time Zone' => 'タイムゾーン',
|
||||
'Default Language' => 'デフォルトの言語',
|
||||
'Default Language' => '規定の言語',
|
||||
'FileSystem Disk Quota ' => 'ディスク割り当て量',
|
||||
'Vesta Control Panel Plugins' => 'Vesta Control Panel プラグイン',
|
||||
'preview' => 'プレビュー',
|
||||
@ -496,108 +496,108 @@ $LANG['ja'] = array(
|
||||
'Template Manager' => 'テンプレートマネージャー',
|
||||
'Backup Migration Manager' => 'バックアップ移行マネージャー',
|
||||
'FileManager' => 'ファイルマネージャー',
|
||||
'show: CPU / MEM / NET / DISK' => 'show: CPU / MEM / NET / DISK',
|
||||
'show: CPU / MEM / NET / DISK' => '表示: CPU / MEM / NET / DISK',
|
||||
|
||||
'sort by' => 'ソート',
|
||||
'Date' => '日付',
|
||||
'Starred' => 'スター付き',
|
||||
'Name' => '名前',
|
||||
|
||||
'File Manager' => 'File Manager',
|
||||
'type' => 'type',
|
||||
'size' => 'size',
|
||||
'date' => 'date',
|
||||
'name' => 'name',
|
||||
'Initializing' => 'Initializing',
|
||||
'UPLOAD' => 'UPLOAD',
|
||||
'NEW FILE' => 'NEW FILE',
|
||||
'NEW DIR' => 'NEW DIR',
|
||||
'DELETE' => 'DELETE',
|
||||
'RENAME' => 'RENAME',
|
||||
'COPY' => 'COPY',
|
||||
'ARCHIVE' => 'ARCHIVE',
|
||||
'EXTRACT' => 'EXTRACT',
|
||||
'DOWNLOAD' => 'DOWNLOAD',
|
||||
'Hit' => 'Hit',
|
||||
'to reload the page' => 'to reload the page',
|
||||
'Directory name cannot be empty' => 'Directory name cannot be empty',
|
||||
'File name cannot be empty' => 'File name cannot be empty',
|
||||
'No file selected' => 'No file selected',
|
||||
'No file or folder selected' => 'No file or folder selected',
|
||||
'File type not supported' => 'File type not supported',
|
||||
'Directory download not available in current version' => 'Directory download not available in current version',
|
||||
'Directory not available' => 'Directory not available',
|
||||
'Done' => 'Done',
|
||||
'Close' => 'Close',
|
||||
'Copy' => 'Copy',
|
||||
'Cancel' => 'Cancel',
|
||||
'Rename' => 'Rename',
|
||||
'Delete' => 'Delete',
|
||||
'Extract' => 'Extract',
|
||||
'Create' => 'Create',
|
||||
'Compress' => 'Compress',
|
||||
'File Manager' => 'ファイルマネージャー',
|
||||
'type' => '種類',
|
||||
'size' => '容量',
|
||||
'date' => '日付',
|
||||
'name' => '名前',
|
||||
'Initializing' => '初期化中',
|
||||
'UPLOAD' => 'アップロード',
|
||||
'NEW FILE' => '新規ファイル',
|
||||
'NEW DIR' => '新規ディレクトリ',
|
||||
'DELETE' => '削除',
|
||||
'RENAME' => '名前の変更',
|
||||
'COPY' => 'コピー',
|
||||
'ARCHIVE' => 'アーカイブ',
|
||||
'EXTRACT' => '展開',
|
||||
'DOWNLOAD' => 'ダウンロード',
|
||||
'Hit' => '',
|
||||
'to reload the page' => 'を押すとページを再読み込みします',
|
||||
'Directory name cannot be empty' => 'ディレクトリ名を入力してください',
|
||||
'File name cannot be empty' => 'ファイル名を入力してください',
|
||||
'No file selected' => 'ファイルが選択されていません',
|
||||
'No file or folder selected' => 'ファイルやフォルダが選択されていません',
|
||||
'File type not supported' => 'サポートされていないファイル形式です',
|
||||
'Directory download not available in current version' => '現在のバージョンではディレクトリのダウンロードはできません',
|
||||
'Directory not available' => 'ディレクトリが使用できません',
|
||||
'Done' => '完了',
|
||||
'Close' => '閉じる',
|
||||
'Copy' => 'コピー',
|
||||
'Cancel' => 'キャンセル',
|
||||
'Rename' => '名前を変更',
|
||||
'Delete' => '削除',
|
||||
'Extract' => '展開',
|
||||
'Create' => '作成',
|
||||
'Compress' => '圧縮',
|
||||
'OK' => 'OK',
|
||||
'Are you sure you want to copy' => 'Are you sure you want to copy',
|
||||
'Are you sure you want to delete' => 'Are you sure you want to delete',
|
||||
'into' => 'into',
|
||||
'existing files will be replaced' => 'existing files will be replaced',
|
||||
'Original name' => 'Original name',
|
||||
'File' => 'File',
|
||||
'already exists' => 'already exists',
|
||||
'Create file' => 'Create file',
|
||||
'Create directory' => 'Create directory',
|
||||
'Are you sure you want to copy' => '次のファイルをコピーしてもよろしいですか',
|
||||
'Are you sure you want to delete' => '次のファイルを削除してもよろしいですか',
|
||||
'into' => 'から',
|
||||
'existing files will be replaced' => '既に存在するファイルは置き換えられます',
|
||||
'Original name' => '元の名前',
|
||||
'File' => 'ファイル',
|
||||
'already exists' => 'は既に存在します',
|
||||
'Create file' => 'ファイルの作成',
|
||||
'Create directory' => 'ディレクトリの作成',
|
||||
|
||||
'Add New object' => 'Add New object',
|
||||
'Save Form' => 'Save Form',
|
||||
'Cancel saving form' => 'Cancel saving form',
|
||||
'Go to USER list' => 'Go to USER list',
|
||||
'Go to WEB list' => 'Go to WEB list',
|
||||
'Go to DNS list' => 'Go to DNS list',
|
||||
'Go to MAIL list' => 'Go to MAIL list',
|
||||
'Go to DB list' => 'Go to DB list',
|
||||
'Go to CRON list' => 'Go to CRON list',
|
||||
'Go to BACKUP list' => 'Go to BACKUP list',
|
||||
'Focus on search' => 'Focus on search',
|
||||
'Display/Close shortcuts' => 'Display/Close shortcuts',
|
||||
'Move backward through top menu' => 'Move backward through top menu',
|
||||
'Move forward through top menu' => 'Move forward through top menu',
|
||||
'Enter focused element' => 'Enter focused element',
|
||||
'Add New object' => '新しい項目を追加する',
|
||||
'Save Form' => '変更を保存する',
|
||||
'Cancel saving form' => '変更を破棄する',
|
||||
'Go to USER list' => 'ユーザーの一覧に移動',
|
||||
'Go to WEB list' => 'ウェブの一覧に移動',
|
||||
'Go to DNS list' => 'DNSの一覧に移動',
|
||||
'Go to MAIL list' => 'メールの一覧に移動',
|
||||
'Go to DB list' => 'データベースの一覧に移動',
|
||||
'Go to CRON list' => 'CRONの一覧に移動',
|
||||
'Go to BACKUP list' => 'バックアップの一覧に移動',
|
||||
'Focus on search' => '検索欄にフォーカスする',
|
||||
'Display/Close shortcuts' => 'ショートカットの表示を切り替える',
|
||||
'Move backward through top menu' => '上部のメニューにおいて後方の項目に移動します',
|
||||
'Move forward through top menu' => '上部のメニューにおいて前方の項目に移動します',
|
||||
'Enter focused element' => 'フォーカスされた項目に入ります',
|
||||
|
||||
'Upload' => 'Upload',
|
||||
'New File' => 'New File',
|
||||
'New Folder' => 'New Folder',
|
||||
'Download' => 'Download',
|
||||
'Rename' => 'Rename',
|
||||
'Copy' => 'Copy',
|
||||
'Archive' => 'Archive',
|
||||
'Delete' => 'Delete',
|
||||
'Save File (in text editor)' => 'Save File (in text editor)',
|
||||
'Close Popup / Cancel' => 'Close Popup / Cancel',
|
||||
'Move Cursor Up' => 'Move Cursor Up',
|
||||
'Move Cursor Dow' => 'Move Cursor Dow',
|
||||
'Switch to Left Tab' => 'Switch to Left Tab',
|
||||
'Switch to Right Tab' => 'Switch to Right Tab',
|
||||
'Switch Tab' => 'Switch Tab',
|
||||
'Go to the Top of File List' => 'Go to the Top of File List',
|
||||
'Go to the Last File' => 'Go to the Last File',
|
||||
'Open File/Enter Directory' => 'Open File/Enter Directory',
|
||||
'Go to Parent Directory' => 'Go to Parent Directory',
|
||||
'Select Current File' => 'Select Current File',
|
||||
'Select Bunch of Files' => 'Select Bunch of Files',
|
||||
'Append File to the Current Selection' => 'Append File to the Current Selection',
|
||||
'Select All Files' => 'Select All Files',
|
||||
'Upload' => 'アップロード',
|
||||
'New File' => 'ファイルの作成',
|
||||
'New Folder' => 'フォルダの作成',
|
||||
'Download' => 'ダウンロード',
|
||||
'Rename' => '名前の変更',
|
||||
'Copy' => 'コピー',
|
||||
'Archive' => 'アーカイブ',
|
||||
'Delete' => '削除',
|
||||
'Save File (in text editor)' => 'ファイルの保存(テキストエディタ上で)',
|
||||
'Close Popup / Cancel' => 'ポップアップを閉じる / キャンセルする',
|
||||
'Move Cursor Up' => 'カーソルを上に移動する',
|
||||
'Move Cursor Dow' => 'カーソルを下に移動する',
|
||||
'Switch to Left Tab' => '左のタブに切り替える',
|
||||
'Switch to Right Tab' => '右のタブに切り替える',
|
||||
'Switch Tab' => 'タブを切り替える',
|
||||
'Go to the Top of File List' => 'ファイルリストの先頭に移動する',
|
||||
'Go to the Last File' => '最後のファイルに移動する',
|
||||
'Open File/Enter Directory' => 'ファイルを開く / ディレクトリに入る',
|
||||
'Go to Parent Directory' => '親ディレクトリに移動する',
|
||||
'Select Current File' => 'ファイルを選択する',
|
||||
'Select Bunch of Files' => 'ファイルを範囲選択する',
|
||||
'Append File to the Current Selection' => 'ファイルを追加選択する',
|
||||
'Select All Files' => 'すべてのファイルを選択する',
|
||||
'shortcuts are inspired by magnificent GNU <a href="https://www.midnight-commander.org/">Midnight Commander</a> file manager' =>
|
||||
'shortcuts are inspired by magnificent GNU <a href="https://www.midnight-commander.org/">Midnight Commander</a> file manager',
|
||||
|
||||
'Licence Key' => 'Licence Key',
|
||||
'Enter License Key' => 'Enter License Key',
|
||||
'Buy Licence' => 'Buy Licence',
|
||||
'Buy Lifetime License' => 'Buy Lifetime License',
|
||||
'Disable and Cancel Licence' => 'Disable and Cancel Licence',
|
||||
'Licence Activated' => 'Licence Activated',
|
||||
'Licence Deactivated' => 'Licence Deactivated',
|
||||
'Restrict users so that they cannot use SSH and access only their home directory.' => 'Restrict users so that they cannot use SSH and access only their home directory.',
|
||||
'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => 'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.',
|
||||
'This is a commercial module, you would need to purchace license key to enable it.' => 'This is a commercial module, you would need to purchace license key to enable it.'
|
||||
'Licence Key' => 'ライセンスキー',
|
||||
'Enter License Key' => 'ライセンスキーを入力',
|
||||
'Buy Licence' => 'ライセンスを購入',
|
||||
'Buy Lifetime License' => '永久ライセンスを購入',
|
||||
'Disable and Cancel Licence' => 'ライセンスをキャンセルして無効化する',
|
||||
'Licence Activated' => 'ライセンスが有効化されました',
|
||||
'Licence Deactivated' => 'ライセンスが無効化されました',
|
||||
'Restrict users so that they cannot use SSH and access only their home directory.' => 'ユーザーによるSSHの使用を禁止し、各自のホームディレクトリにのみアクセスできるように制限します',
|
||||
'Browse, copy, edit, view, and retrieve all of your web domain files using fully featured File Manager.' => '高機能なファイルマネージャーを用いてウェブ上のファイルを閲覧、コピー、編集、表示、復旧できます',
|
||||
'This is a commercial module, you would need to purchace license key to enable it.' => 'これは有償の機能で、有効化するにはライセンスキーを購入する必要があります'
|
||||
|
||||
);
|
||||
);
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n.php');
|
||||
|
||||
// Check system settings
|
||||
if ((!isset($_SESSION['VERSION'])) && (!defined('NO_AUTH_REQUIRED'))) {
|
||||
session_destroy();
|
||||
@ -14,63 +16,15 @@ if ((!isset($_SESSION['user'])) && (!defined('NO_AUTH_REQUIRED'))) {
|
||||
$_SESSION['request_uri'] = $_SERVER['REQUEST_URI'];
|
||||
header("Location: /login/");
|
||||
exit;
|
||||
|
||||
}
|
||||
|
||||
if (isset($_SESSION['user'])) {
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$_SESSION['language'].'.php');
|
||||
if(!isset($_SESSION['token'])){
|
||||
$token = uniqid(mt_rand(), true);
|
||||
$_SESSION['token'] = $token;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Translates string by a given key in first parameter to current session language. Works like sprintf
|
||||
* @global array $LANG Associative array of language pharses
|
||||
* @return string Translated string
|
||||
* @see _translate()
|
||||
*/
|
||||
function __() {
|
||||
$args = func_get_args();
|
||||
array_unshift($args,$_SESSION['language']);
|
||||
return call_user_func_array("_translate",$args);
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates string to given language in first parameter, key given in second parameter (dynamically loads required language). Works like spritf from second parameter
|
||||
* @global array $LANG Associative array of language pharses
|
||||
* @return string Translated string
|
||||
*/
|
||||
function _translate() {
|
||||
global $LANG;
|
||||
|
||||
$args = func_get_args();
|
||||
$l = $args[0];
|
||||
|
||||
if (!$l) return 'NO LANGUAGE DEFINED';
|
||||
$key = $args[1];
|
||||
|
||||
if (!isset($LANG[$l])) {
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$l.'.php');
|
||||
}
|
||||
|
||||
if (!isset($LANG[$l][$key])) {
|
||||
$text=$key;
|
||||
} else {
|
||||
$text=$LANG[$l][$key];
|
||||
}
|
||||
|
||||
array_shift($args);
|
||||
if (count($args)>1) {
|
||||
$args[0] = $text;
|
||||
return call_user_func_array("sprintf",$args);
|
||||
} else {
|
||||
return $text;
|
||||
}
|
||||
}
|
||||
|
||||
define('VESTA_CMD', '/usr/bin/sudo /usr/local/vesta/bin/');
|
||||
|
||||
$i = 0;
|
||||
|
@ -1,46 +1,10 @@
|
||||
<?php
|
||||
session_start();
|
||||
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n.php');
|
||||
|
||||
if (empty($_SESSION['language'])) {
|
||||
$_SESSION['language'] = 'en';
|
||||
}
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$_SESSION['language'].'.php');
|
||||
|
||||
if (!function_exists('_translate')) {
|
||||
function _translate() {
|
||||
global $LANG;
|
||||
|
||||
$args = func_get_args();
|
||||
$l = $args[0];
|
||||
|
||||
if (!$l) return 'NO LANGUAGE DEFINED';
|
||||
$key = $args[1];
|
||||
|
||||
if (!isset($LANG[$l])) {
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$l.'.php');
|
||||
}
|
||||
|
||||
if (!isset($LANG[$l][$key])) {
|
||||
$text=$key;
|
||||
} else {
|
||||
$text=$LANG[$l][$key];
|
||||
}
|
||||
|
||||
array_shift($args);
|
||||
if (count($args)>1) {
|
||||
$args[0] = $text;
|
||||
return call_user_func_array("sprintf",$args);
|
||||
} else {
|
||||
return $text;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('__')) {
|
||||
function __() {
|
||||
$args = func_get_args();
|
||||
array_unshift($args,$_SESSION['language']);
|
||||
return call_user_func_array("_translate",$args);
|
||||
}
|
||||
$_SESSION['language'] = detect_user_language();
|
||||
}
|
||||
?>
|
||||
|
||||
|
@ -93,8 +93,8 @@ foreach ($sys_arr as $key => $value) {
|
||||
$_SESSION[$key] = $value;
|
||||
}
|
||||
|
||||
// Set default language
|
||||
if (empty($_SESSION['language'])) $_SESSION['language']='en';
|
||||
// Detect language
|
||||
if (empty($_SESSION['language'])) $_SESSION['language'] = detect_user_language();
|
||||
|
||||
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/i18n/'.$_SESSION['language'].'.php');
|
||||
require_once('../templates/header.html');
|
||||
|
@ -74,14 +74,8 @@ if ((!empty($_POST['user'])) && (!empty($_POST['code'])) && (!empty($_POST['pass
|
||||
}
|
||||
}
|
||||
|
||||
// Set system language
|
||||
exec (VESTA_CMD . "v-list-sys-config json", $output, $return_var);
|
||||
$data = json_decode(implode('', $output), true);
|
||||
if (!empty( $data['config']['LANGUAGE'])) {
|
||||
$_SESSION['language'] = $data['config']['LANGUAGE'];
|
||||
} else {
|
||||
$_SESSION['language'] = 'en';
|
||||
}
|
||||
// Detect language
|
||||
if (empty($_SESSION['language'])) $_SESSION['language'] = detect_user_language();
|
||||
|
||||
if (empty($_GET['action'])) {
|
||||
require_once '../templates/header.html';
|
||||
|
@ -125,7 +125,7 @@
|
||||
if (( $value == $v_language ) || ( $svalue == $v_language)){
|
||||
echo 'selected' ;
|
||||
}
|
||||
if (( $value == 'en' ) && (empty($v_language))){
|
||||
if (( $value == detect_user_language() ) && (empty($v_language))){
|
||||
echo 'selected' ;
|
||||
}
|
||||
echo ">".htmlentities($value)."</option>\n";
|
||||
|
@ -104,7 +104,7 @@
|
||||
if (( $value == $v_language ) || ( $svalue == $v_language)){
|
||||
echo 'selected' ;
|
||||
}
|
||||
if (( $value == 'en' ) && (empty($v_language))){
|
||||
if (( $value == detect_user_language() ) && (empty($v_language))){
|
||||
echo 'selected' ;
|
||||
}
|
||||
echo ">".htmlentities($value)."</option>\n";
|
||||
|
Loading…
x
Reference in New Issue
Block a user