mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-02 01:52:10 +09:00
Add option to auto-select the language
This commit is contained in:
parent
a1fc0e3c3b
commit
96154c8430
7 changed files with 45 additions and 10 deletions
|
|
@ -275,7 +275,7 @@ class Context
|
|||
|
||||
if($this->lang_type = self::get('l'))
|
||||
{
|
||||
if($_COOKIE['lang_type'] != $this->lang_type)
|
||||
if($_COOKIE['lang_type'] !== $this->lang_type)
|
||||
{
|
||||
setcookie('lang_type', $this->lang_type, $_SERVER['REQUEST_TIME'] + 3600 * 24 * 1000, '/');
|
||||
}
|
||||
|
|
@ -284,18 +284,31 @@ class Context
|
|||
{
|
||||
$this->lang_type = $_COOKIE['lang_type'];
|
||||
}
|
||||
elseif($site_module_info->default_language)
|
||||
elseif(config('locale.auto_select_lang') && count($enabled_langs) > 1)
|
||||
{
|
||||
$this->lang_type = $this->db_info->lang_type = $site_module_info->default_language;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->lang_type = $this->db_info->lang_type;
|
||||
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
|
||||
{
|
||||
foreach($enabled_langs as $lang_code => $lang_name)
|
||||
{
|
||||
if(!strncasecmp($lang_code, $_SERVER['HTTP_ACCEPT_LANGUAGE'], strlen($lang_code)))
|
||||
{
|
||||
$this->lang_type = $lang_code;
|
||||
setcookie('lang_type', $this->lang_type, $_SERVER['REQUEST_TIME'] + 3600 * 24 * 1000, '/');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!$this->lang_type || !isset($enabled_langs[$this->lang_type]))
|
||||
{
|
||||
$this->lang_type = 'ko';
|
||||
if($site_module_info->default_language)
|
||||
{
|
||||
$this->lang_type = $this->db_info->lang_type = $site_module_info->default_language;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->lang_type = $this->db_info->lang_type ?: 'ko';
|
||||
}
|
||||
}
|
||||
|
||||
self::setLangType($this->lang_type);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ return array(
|
|||
'locale' => array(
|
||||
'default_lang' => 'ko',
|
||||
'enabled_lang' => array('ko'),
|
||||
'auto_select_lang' => false,
|
||||
'default_timezone' => 'Asia/Seoul',
|
||||
'internal_timezone' => 32400,
|
||||
),
|
||||
|
|
|
|||
|
|
@ -529,6 +529,7 @@ class adminAdminController extends admin
|
|||
}
|
||||
Rhymix\Framework\Config::set('locale.default_lang', $vars->default_lang);
|
||||
Rhymix\Framework\Config::set('locale.enabled_lang', array_values($enabled_lang));
|
||||
Rhymix\Framework\Config::set('locale.auto_select_lang', $vars->auto_select_lang === 'Y');
|
||||
|
||||
// Default time zone
|
||||
Rhymix\Framework\Config::set('locale.default_timezone', $vars->default_timezone);
|
||||
|
|
|
|||
|
|
@ -376,6 +376,7 @@ class adminAdminView extends admin
|
|||
Context::set('supported_lang', Rhymix\Framework\Lang::getSupportedList());
|
||||
Context::set('default_lang', Rhymix\Framework\Config::get('locale.default_lang'));
|
||||
Context::set('enabled_lang', Rhymix\Framework\Config::get('locale.enabled_lang'));
|
||||
Context::set('auto_select_lang', Rhymix\Framework\Config::get('locale.auto_select_lang'));
|
||||
|
||||
// Site title and HTML footer
|
||||
$oModuleModel = getModel('module');
|
||||
|
|
|
|||
|
|
@ -65,8 +65,10 @@ $lang->about_lang_env = 'If you want to make the language setting same for first
|
|||
$lang->xe_license = 'Rhymix complies with the GPL.';
|
||||
$lang->yesterday = 'Yesterday';
|
||||
$lang->today = 'Today';
|
||||
$lang->default_lang = 'Select default language.';
|
||||
$lang->lang_select = 'Select the supporting language(s).';
|
||||
$lang->default_lang = 'Default Language';
|
||||
$lang->lang_select = 'Supported Languages';
|
||||
$lang->auto_select_lang = 'Auto-select Language';
|
||||
$lang->about_auto_select_lang = 'Automatically select the language based on the language of each visitor\'s browser.';
|
||||
$lang->about_recompile_cache = 'Delete useless or invalid cache files?';
|
||||
$lang->confirm_run = 'It may take a long time. Do you want to run?';
|
||||
$lang->use_ssl = 'Use <abbr title="Secure Sockets Layer">SSL</abbr>';
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ $lang->yesterday = '어제';
|
|||
$lang->today = '오늘';
|
||||
$lang->default_lang = '기본 언어 선택';
|
||||
$lang->lang_select = '지원 언어 선택';
|
||||
$lang->auto_select_lang = '언어 자동 선택';
|
||||
$lang->about_auto_select_lang = '방문자의 브라우저 언어에 따라 자동으로 언어를 선택하는 기능입니다.';
|
||||
$lang->about_recompile_cache = '쓸모 없어졌거나 잘못된 캐시파일들을 지우시겠습니까?';
|
||||
$lang->confirm_run = '오랜 시간이 걸릴 수 있습니다. 실행하시겠습니까?';
|
||||
$lang->use_ssl = '<abbr title="Secure Sockets Layer">SSL</abbr> 사용';
|
||||
|
|
|
|||
|
|
@ -45,6 +45,21 @@
|
|||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->auto_select_lang}</label>
|
||||
<div class="x_controls">
|
||||
<label for="auto_select_lang_y" class="x_inline">
|
||||
<input type="radio" name="auto_select_lang" id="auto_select_lang_y" value="Y" checked="checked"|cond="$auto_select_lang" />
|
||||
{$lang->cmd_yes}
|
||||
</label>
|
||||
<label for="auto_select_lang_n" class="x_inline">
|
||||
<input type="radio" name="auto_select_lang" id="auto_select_lang_n" value="N" checked="checked"|cond="!$auto_select_lang" />
|
||||
{$lang->cmd_no}
|
||||
</label>
|
||||
<br />
|
||||
<p class="x_help-block">{$lang->about_auto_select_lang}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label" for="default_timezone">{$lang->timezone}</label>
|
||||
<div class="x_controls">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue