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

다국어 홈페이지 게시판 _head.php, _tail.php 채택완료

 

 

국문과 영문홈페이지를 제작중입니다.

 

head, tail은 모두 국문 영문을 만들었습니다.

 

아래와 같이 다 구성하였구요, 

 

국문 : head, 영문 : head_en

게시판
국문 : tail, 영문 : tail_en

 

 

게시판은 국문과 영문 모두

국문 하나의 게시판을 같이 사용할것이라네요~

 

자유게시판이라고 치면, 

관리자모드 > 게시판 수정 > 상단파일경로, 하단파일경로

이렇게 있는데, 여기서 각각 하나의 페이지만 연결하도록 되어있잖아요~ 

 

예를 들면, 

/bbs/board.php?bo_table=free&lang=kor

일때는 상단파일경로 : _head.php, 하단파일경로 : _tail.php 를 include!

 

/bbs/board.php?bo_table=free&lang=eng

일때는 상단파일경로 : _head_en.php, 하단파일경로 : _tail_en.php 를 include!

 

이런식으로 할 수 있는 방법이 없을까요??????? 

 

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

답변 5개

채택된 답변
+20 포인트

_common.php에 추가하세요.

</p>

<p>$_lang_array = array("kor", "eng");</p>

<p>$_default_lang = "kor";</p>

<p>$_SESSION['lang'] = (in_array($_SESSION['lang'], $_lang_array)) ? $_SESSION['lang'] : $_default_lang;</p>

<p>if(in_array($_GET['lang'], $_lang_array)){</p>

<p>    $_SESSION['lang'] = $_GET['lang'];</p>

<p>}</p>

<p>

 

head 파일 include 하는 부분은 아래처럼(tail 도 동일하게)

</p>

<p>if($_SESSION['lang'] == "eng"){</p>

<p>    include "_head_en.php";</p>

<p>}else{</p>

<p>    include "_head.php";

}</p>

<p>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

우선 답변 너무 감사드립니다 !! ^^
root/_common.php에 위와 같이 넣고,

root/_head_en.php,
root/_tail_en.php 생성,

[code]
if(defined('G5_THEME_PATH')) {
require_once(G5_THEME_PATH.'/head_en.php');
return;
}

if (G5_IS_MOBILE) {
include_once(G5_MOBILE_PATH.'/head_en.php');
return;
}
[/code]


테마폴더안에도
G5_THEME_PATH/head_en.php,
G5_THEME_PATH/tail_en.php 생성


root/_head.php,
root/_tail.php에

[code]
//include_once(G5_PATH.'/head.php');

if($_SESSION['lang'] == "eng"){
include(G5_PATH.'/head_en.php');
}else{
include(G5_PATH.'/head.php');
}
[/code]

메뉴 링크에,
/bbs/board.php?bo_table=notice&lang=eng

라고 불러왔는데 바뀌지는 않는데.....

이렇게 부르면 상하단이 바뀌어야 되는게 맞는지요? ㅎㅎ
각 단계별로 변수가 제대로 받는지 echo 로 찍어서 확인해보세요. 파일명도 제대로 했는지도 확인해보시구요.
소스를 좀 설명드릴께요.
_common.php 파일에 들어가는 다음 소스는 사이트 어디서든 lang이란 변수를 get방식으로 값을 전달하면 언어를 변경하고 또 페이지내에서 이동시에도 해당 언어를 유지하는 내용니다.
[code]
//사용하는 언어들의 변수값
$_lang_array = array("kor", "eng");
//아무 변수가 없는 경우(처음 접속하는 경우나 로그아웃해서 세션을 초기화 한 경우)에 선택할 언어
$_default_lang = "kor";

//세션에 저장된 lang 값이 사용하는 언어에 있으면 그 언어를 세션에 저장, 없으면 기본언어를 세션에 저장
$_SESSION['lang'] = (in_array($_SESSION['lang'], $_lang_array)) ? $_SESSION['lang'] : $_default_lang;
//처음들어오면 여기 세션에 값이 없으니 기본값으로 저장됩니다.
//이 위치에 echo $_SESSION['lang']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.

//만약에 GET 방식으로 lang 변수를 전달하면 그 전달받은 값이 사용하는 언어($_lang_array )에 있는지 확인 후 있으면 세션에 저장
if(in_array($_GET['lang'], $_lang_array)){
$_SESSION['lang'] = $_GET['lang'];
}
//이 위치에 echo $_SESSION['lang']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.
[/code]


head 파일 include 하는 부분은 아래처럼(tail 도 동일하게)
이 부분은 _common.php 에서 정의된 $_SESSION['lang'] 값에 따라 불러올 상단과 하단 파일을 정하는 곳입니다.
[code]
//이 위치에 echo $_SESSION['lang']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.
if($_SESSION['lang'] == "eng"){
include "_head_en.php";
}else{
include "_head.php";
}
[/code]

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

https://www.happyjung.com/lecture/2142

이렇게 하면 됩니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

답변 감사합니다 :)
이거는 한게시판을 언어별로 다 생성해서 사용하는거 아닌가요? ㅎㅎ
전 그렇게 이해했는데... 혹시 아닌지요?? ㅎ
전 한개의 게시판을 상하단의 인클루드 파일만 바꾸고 싶은거라서요 ㅜ
한개의 게시판을 이용하는것이라면
내용을 분리해서 관리해야 한다는건데, wr_contest 를 explode 로 분리해서 사용해야한다는 건데
불가능한것은 아니지만, 내용을 언어별로 관리하는것에 대한 고민이 필요할듯 하네요
그것보다는 별도로 분리시키는것도 괜찮습니다
seo 관점으로 보면 언어별로 다른 결과를 추출할 수 있으니까요
검색엔진이 개별 언어로 추출하도록 하는것도 고민해야 합니다

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

$_GET['lang']에서 주소의 파라미터 lang값을 받으실 수 있습니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

혹시.... 간단한 예제가 없을까요???
겨우 html정도만 ㅜㅜ

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

국문과 영문 헤드에서 lang 변수가 자기 언어와 맞지 않으면 올바른 언어로 연결되게 작업을 처리해주시면 될거 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

혹시.....
참고할만한 코드라도 있을까요?? ㅜ

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

세션으로 lang 변수를 전달하면 될겁니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

세..... 션..... 어떻게해야할지요?? ㅜ
참고할만한 코드라도 있을까요??

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

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

로그인

전체 질문 목록