테스트 사이트 - 개발 중인 베타 버전입니다

다국어 언어선택시 첫화면으로 이동하도록 설정하고 싶어요. 채택완료

직장인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 포인트
Rido
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년 전
감사합니다! 알려주신 첫번째 방법으로 잘 해결하였습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인