다국어 언어선택시 첫화면으로 이동하도록 설정하고 싶어요. 채택완료
직장인C
6년 전
조회 1,793
다국어 언어 선택 시 한국어와 영문의 주소 문제로 메인페이지로 강제로 보내고 싶습니다.
예를 들면 [회사소개] 메뉴에서 '영어'로 변경하면 '영문' [회사소개]가 아닌 홈페이지 첫화면으로요.
(현재는 주소이름 문제로, 없는 게시판이다는 알림이 떠서 곤란한 상황입니다)
그런데 어디를 어떻게 수정해야할 지 감이 잡히지 않습니다.
분명 [i18n.user.php] 를 수정하면 해결될 것 같은데 검색해도 나오지않네요.
선배님들의 도움을 부탁드립니다.
</p>
<p><?php</p>
<p>if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>
<p> </p>
<p>require_once(G5_I18N_PATH . '/i18n.class.php');</p>
<p> </p>
<p>class G5_i18n extends i18n {</p>
<p>public function __construct($filePath = NULL, $cachePath = NULL, $fallbackLang = NULL, $prefix = NULL)</p>
<p>{</p>
<p>parent::__construct($filePath, $cachePath, $fallbackLang, $prefix);</p>
<p>}</p>
<p> </p>
<p>// 언어 선택 상자</p>
<p>public function getLangSelectbox()</p>
<p>{</p>
<p>global $config;</p>
<p> </p>
<p>if (defined('G5_USE_I18N') && G5_USE_I18N && $config['cf_use_i18n']) {</p>
<p>$config['cf_language'] = json_decode($config['cf_language']);</p>
<p>$user_langs = $this->getUserLangs();</p>
<p> </p>
<p>$change_url = G5_I18N_URL . '/language.php?url=' . urlencode($_SERVER['REQUEST_URI']);</p>
<p>if (defined('G5_IS_ADMIN') && G5_IS_ADMIN) $change_url .= '&is_admin=1';</p>
<p>$change_url .= '&language=\'+this.value;';</p>
<p> </p>
<p>if (count($config['cf_language'])>0) {</p>
<p>// echo '<label for=""></label>';</p>
<p>echo '<select title="LANGUAGE" onchange="location.href=\'' . $change_url . '">';</p>
<p>foreach($config['cf_language'] as $key => $val) {</p>
<p>$selected = ( $user_langs[0] == $key ? ' selected' : '');</p>
<p>echo '<option value="' . $key . '"' . $selected . '>' . $val . '</option>';</p>
<p>}</p>
<p>echo '</select>';</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p> </p>
<p>$i18n = new G5_i18n();</p>
<p>$i18n->setCachePath(G5_DATA_PATH . '/cache/i18n');</p>
<p>$i18n->setFilePath(G5_LANG_PATH . '/{LANGUAGE}.json'); // language file path</p>
<p>if (isset($_GET['language']) && trim($_GET['language']) !== '') {</p>
<p>setcookie('lang', $_GET['language'], time() + (60*60*24), '/');</p>
<p>} else if ($config['cf_i18n_default'] && empty($_COOKIE['lang'])) {</p>
<p>$i18n->setForcedLang($config['cf_i18n_default']);</p>
<p>setcookie('lang', $config['cf_i18n_default'], time() + (60*60*24), '/');</p>
<p>}</p>
<p> </p>
<p>$i18n->init();</p>
<p>$langs = $i18n->getUserLangs();</p>
<p>define('G5_I18N_LANG', $langs[0]);</p>
<p>
</p>
<p>if (defined('G5_USE_I18N') && G5_USE_I18N && $config['cf_use_i18n'] && $config['cf_use_i18n_board']) {</p>
<p> $where_i18n = " and bo_lang = '" . G5_I18N_LANG . "'";</p>
<p> $update_i18n = ", bo_lang = '" . G5_I18N_LANG . "'";</p>
<p>}</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
6년 전
$change_url = G5_I18N_URL . '/language.php?url=' . urlencode($_SERVER['REQUEST_URI']);
이녀석을
$change_url = G5_I18N_URL . '/language.php?url=' . '/';
이렇게 변경해보시고
안되신다면
$change_url = G5_I18N_URL . '/language.php?url=' . G5_URL;
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
직장인C
6년 전
감사합니다! 알려주신 첫번째 방법으로 잘 해결하였습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인