다국어 홈페이지 게시판 _head.php, _tail.php

다국어 홈페이지 게시판 _head.php, _tail.php

QA

다국어 홈페이지 게시판 _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

_common.php에 추가하세요.


$_lang_array = array("kor", "eng");
$_default_lang = "kor";
$_SESSION['lang'] = (in_array($_SESSION['lang'], $_lang_array)) ? $_SESSION['lang'] : $_default_lang;
if(in_array($_GET['lang'], $_lang_array)){
    $_SESSION['lang'] = $_GET['lang'];
}

 

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


if($_SESSION['lang'] == "eng"){
    include "_head_en.php";
}else{
    include "_head.php";
}

 

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

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


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;
}



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


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


//include_once(G5_PATH.'/head.php');

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


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

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

이렇게 부르면 상하단이 바뀌어야 되는게 맞는지요? ㅎㅎ

소스를 좀 설명드릴께요.
_common.php 파일에 들어가는 다음 소스는 사이트 어디서든 lang이란 변수를 get방식으로 값을 전달하면 언어를 변경하고 또 페이지내에서 이동시에도 해당 언어를 유지하는 내용니다.


//사용하는 언어들의 변수값
$_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']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.



head 파일 include 하는 부분은 아래처럼(tail 도 동일하게)
이 부분은 _common.php 에서 정의된 $_SESSION['lang'] 값에 따라 불러올 상단과 하단 파일을 정하는 곳입니다.

//이 위치에 echo $_SESSION['lang']; 으로 변수값확인하세요. 값이 아예 없으면 문제가 생긴상태입니다.
if($_SESSION['lang'] == "eng"){
    include "_head_en.php";
}else{
    include "_head.php";
}

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

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

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

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

이렇게 하면 됩니다

답변 감사합니다 :)
이거는 한게시판을 언어별로 다 생성해서 사용하는거 아닌가요? ㅎㅎ
전 그렇게 이해했는데... 혹시 아닌지요?? ㅎ
전 한개의 게시판을 상하단의 인클루드 파일만 바꾸고 싶은거라서요 ㅜ

한개의 게시판을 이용하는것이라면
내용을 분리해서 관리해야 한다는건데,  wr_contest 를 explode 로 분리해서 사용해야한다는 건데
불가능한것은 아니지만, 내용을 언어별로 관리하는것에 대한 고민이 필요할듯 하네요
그것보다는 별도로 분리시키는것도 괜찮습니다
seo 관점으로 보면 언어별로 다른 결과를 추출할 수 있으니까요
검색엔진이 개별 언어로 추출하도록 하는것도 고민해야 합니다

답변을 작성하시기 전에 로그인 해주세요.
전체 9
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT