Language Switching
customer can now choose preferred language from available language list. we are store language in session for now, if customer logout the language will reset back to default, we will move it to database in the coming update.
This commit is contained in:
parent
676dcbe478
commit
5cb1a901c3
9
init.php
9
init.php
@ -131,6 +131,12 @@ if ((!empty($radius_user) && $config['radius_enable']) || _post('radius_enable')
|
||||
}
|
||||
|
||||
|
||||
// Check if the user has selected a language
|
||||
if (!empty($_SESSION['user_language'])) {
|
||||
$config['language'] = $_SESSION['user_language'];
|
||||
}
|
||||
|
||||
if (empty($_SESSION['Lang'])) {
|
||||
if (empty($config['language'])) {
|
||||
$config['language'] = 'english';
|
||||
}
|
||||
@ -143,6 +149,9 @@ if (file_exists($lan_file)) {
|
||||
$_SESSION['Lang'] = $_L;
|
||||
file_put_contents($lan_file, json_encode($_L));
|
||||
}
|
||||
} else {
|
||||
$_L = $_SESSION['Lang'];
|
||||
}
|
||||
|
||||
|
||||
function safedata($value)
|
||||
|
@ -10,7 +10,12 @@ class Lang
|
||||
{
|
||||
public static function T($key)
|
||||
{
|
||||
global $_L, $lan_file, $config;
|
||||
global $_L, $lan_file, $root_path, $config;
|
||||
|
||||
if (empty($lan_file)) {
|
||||
$lan_file = $root_path . File::pathFixer('system/lan/' . $config['language'] . '.json');
|
||||
}
|
||||
|
||||
if (is_array($_SESSION['Lang'])) {
|
||||
$_L = array_merge($_L, $_SESSION['Lang']);
|
||||
}
|
||||
|
@ -46,6 +46,7 @@ $ui->assign('_domain', str_replace('www.', '', parse_url(APP_URL, PHP_URL_HOST))
|
||||
$ui->assign('_url', APP_URL . '/?_route=');
|
||||
$ui->assign('_path', __DIR__);
|
||||
$ui->assign('_c', $config);
|
||||
$ui->assign('user_language', $_SESSION['user_language']);
|
||||
$ui->assign('UPLOAD_PATH', str_replace($root_path, '', $UPLOAD_PATH));
|
||||
$ui->assign('CACHE_PATH', str_replace($root_path, '', $CACHE_PATH));
|
||||
$ui->assign('PAGES_PATH', str_replace($root_path, '', $PAGES_PATH));
|
||||
|
@ -239,6 +239,29 @@ switch ($action) {
|
||||
r2(U . 'accounts/profile', 's', Lang::T('Phone number updated successfully'));
|
||||
break;
|
||||
|
||||
case 'language-update-post':
|
||||
global $root_path;
|
||||
if (!empty($_POST['language'])) {
|
||||
$selected_language = $_POST['language'];
|
||||
|
||||
$_SESSION['user_language'] = $selected_language;
|
||||
|
||||
$lan_file = $root_path . File::pathFixer('system/lan/' . $selected_language . '.json');
|
||||
|
||||
if (file_exists($lan_file)) {
|
||||
$_L = json_decode(file_get_contents($lan_file), true);
|
||||
$_SESSION['Lang'] = $_L;
|
||||
} else {
|
||||
$_L['author'] = 'Auto Generated by iBNuX Script';
|
||||
$_SESSION['Lang'] = $_L;
|
||||
file_put_contents($lan_file, json_encode($_L));
|
||||
}
|
||||
|
||||
r2($_SERVER['HTTP_REFERER'], 's', Lang::T('Languge set to ' . $selected_language));
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
$ui->display('a404.tpl');
|
||||
}
|
||||
|
@ -66,6 +66,15 @@
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-menu .dropdown-item {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.dropdown-menu .dropdown-item button {
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
{if isset($xheader)}
|
||||
@ -87,6 +96,50 @@
|
||||
</a>
|
||||
<div class="navbar-custom-menu">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="dropdown tasks-menu">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="true">
|
||||
<i class="fa fa-flag-o"></i> <span class="d-none d-sm-inline">Language</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<form method="post" action="{$_url}accounts/language-update-post">
|
||||
<li
|
||||
class="dropdown-item">
|
||||
<button class="btn btn-block btn-{if $user_language == 'english'}success {else}primary{/if} btn-xs" type="submit" name="language"
|
||||
value="english">
|
||||
{Lang::T('English')}
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
class="dropdown-item">
|
||||
<button class="btn btn-block btn-{if $user_language == 'indonesia'}success {else}primary{/if} btn-xs" type="submit" name="language"
|
||||
value="indonesia">
|
||||
{Lang::T('Indonesian')}
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
class="dropdown-item">
|
||||
<button class="btn btn-block btn-{if $user_language == 'spanish'}success {else}primary{/if} btn-xs" type="submit" name="language"
|
||||
value="spanish">
|
||||
{Lang::T('Spanish')}
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
class="dropdown-item">
|
||||
<button class="btn btn-block btn-{if $user_language == 'arabic'}success {else}primary{/if} btn-xs" type="submit" name="language"
|
||||
value="arabic">
|
||||
{Lang::T('Arabic')}
|
||||
</button>
|
||||
</li>
|
||||
<li
|
||||
class="dropdown-item">
|
||||
<button class="btn btn-block btn-{if $user_language == 'turkish'}success {else}primary{/if} btn-xs" type="submit" name="language"
|
||||
value="turkish">
|
||||
{Lang::T('Turkish')}
|
||||
</button>
|
||||
</li>
|
||||
</form>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown notifications-menu">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
|
||||
<i class="fa fa-envelope-o"></i>
|
||||
|
Loading…
x
Reference in New Issue
Block a user