반응형

 

 

쇼핑몰 강좌에서 뜬끔없이 다국어라니 이상하기도 하지만 지금 퍼블리싱용으로 사용중인 템플릿이 영어로 돼 있어서 메뉴들이 모두 영어인 관계로 한글로 바꾸는 김에 다국어 처리를 해보려고 한다.

 

다국어처리는 방법이 여러가지가 있겠지만 나만의 방법으로 해보려고 한다. 이것이 꼭 정답이 아니라는 것은 다들 알것이다. 그리고 이 방법이 우수하다는것도 절대 아니다. 그냥 참고만 하시라.

 

우선 한글, 영어, 일어 세가지를 해볼건데 이 세가지 버튼을 이용해서 언어 설정을 변경하는 것을 해보자. 해당 언어를 선택하면 쿠키에 선택한 언어값을 넣으려고 한다. 우선 top.php를 수정하자.

 

/inc/top.php

 

<?php session_start();
include $_SERVER["DOCUMENT_ROOT"]."/inc/dbcon.php";
include $_SERVER["DOCUMENT_ROOT"]."/inc/lang.php";
ini_set( 'display_errors', '0' );

function islanguage($n){

    switch($n) {
        case "kr":$rs="한국어";
        break;
        case "en":$rs="English";
        break;
        case "jp":$rs="日本語";
        break;
    }
    return $rs;

}

?>
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>eElectronics - HTML eCommerce Template</title>
   
    <!-- Google Fonts -->
    <link href='http://fonts.googleapis.com/css?family=Titillium+Web:400,200,300,700,600' rel='stylesheet' type='text/css'>
    <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300' rel='stylesheet' type='text/css'>
    <link href='http://fonts.googleapis.com/css?family=Raleway:400,100' rel='stylesheet' type='text/css'>
   
    <!-- Bootstrap -->
   
    <!-- Font Awesome -->
   
    <!-- Custom CSS -->
    <link rel="stylesheet" href="/css/owl.carousel.css">
    <link rel="stylesheet" href="/style.css">
    <link rel="stylesheet" href="/css/responsive.css">

    <script  src="http://code.jquery.com/jquery-latest.min.js"></script>

  </head>
  <body>
   
    <div class="header-area">
        <div class="container">
            <div class="row">
                <div class="col-md-8">
                    <div class="user-menu">
                        <ul>
                            <li><a href="#"><i class="fa fa-user"></i> <?php echo $_LANG[$_CONFIG["LANGSET"]]['top']['myaccount'];?></a></li>
                            <li><a href="#"><i class="fa fa-heart"></i> <?php echo $_LANG[$_CONFIG["LANGSET"]]['top']['wishlist'];?></a></li>
                            <li><a href="cart.php"><i class="fa fa-user"></i> My Cart</a></li>
                            <li><a href="checkout.html"><i class="fa fa-user"></i> Checkout</a></li>
                            <li><a href="/member/login.php"><i class="fa fa-user"></i> Login</a></li>
                        </ul>
                    </div>
                </div>
               
                <div class="col-md-4">
                    <div class="header-right">
                        <ul class="list-unstyled list-inline">
                            <li class="dropdown dropdown-small">
                                <a data-toggle="dropdown" data-hover="dropdown" class="dropdown-toggle" href="#"><span class="key">currency :</span><span class="value">USD </span><b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="#">USD</a></li>
                                    <li><a href="#">INR</a></li>
                                    <li><a href="#">GBP</a></li>
                                </ul>
                            </li>

                            <li class="dropdown dropdown-small">
                                <a data-toggle="dropdown" data-hover="dropdown" class="dropdown-toggle" href="#"><span class="key"></span><span class="value"><?php echo islanguage($_CONFIG["LANGSET"]);?> </span><b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="/inc/lang_set.php?langset=kr">한국어</a></li>
                                    <li><a href="/inc/lang_set.php?langset=en">English</a></li>
                                    <li><a href="/inc/lang_set.php?langset=jp">日本語</a></li>
                                </ul>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
        </div>
    </div> <!-- End header area -->
   
    <div class="site-branding-area">
        <div class="container">
            <div class="row">
                <div class="col-sm-6">
                    <div class="logo">
                        <h1><a href="/">e<span>Electronics</span></a></h1>
                    </div>
                </div>
               
                <div class="col-sm-6">
                    <div class="shopping-item">
                        <a href="cart.php">Cart - <span class="cart-amunt">$800</span> <i class="fa fa-shopping-cart"></i> <span class="product-count">5</span></a>
                    </div>
                </div>
            </div>
        </div>
    </div> <!-- End site branding area -->
   
    <div class="mainmenu-area">
        <div class="container">
            <div class="row">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="sr-only">Toggle navigation</span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                </div>
                <div class="navbar-collapse collapse">
                    <ul class="nav navbar-nav">
                        <li class="active"><a href="/">Home</a></li>
                        <li><a href="shop.html">Shop page</a></li>
                        <li><a href="single-product.html">Single product</a></li>
                        <li><a href="cart.php">Cart</a></li>
                        <li><a href="checkout.html">Checkout</a></li>
                        <li><a href="#">Category</a></li>
                        <li><a href="#">Others</a></li>
                        <li><a href="#">Contact</a></li>
                    </ul>
                </div>  
            </div>
        </div>
    </div> <!-- End mainmenu area -->

이렇게 언어별로 선택할 수 있는 버튼이 만들어졌다. 저걸 클릭하면 언어를 바꿔주면 된다. 그전에 config.php를 조금 수정한다.

 

/inc/config.php

 

<?php
$_CONFIG["CDN_SERVER"] = "http://localhost:8008";
$_CONFIG["LANGSET"] = $_COOKIE['lang_set']??"kr";

?>

선택된 언어가 없으면 한글로 지정한다.

 

top.php에 한국어 english 링크를 보면 lang_set.php로 링크가 돼 있다. 이 파일에서 언어 설정을 해주면 된다. 쿠키를 만들어 준다.

 

/inc/lang_set.php

 

<?php ob_start();
$langset = $_GET['langset'];
setcookie('lang_set', $langset, time() + (86400 * 30), "/");
header( 'Location: /' );
?>

 

이렇게 해준다. 이렇게 되면 쿠키가 생성되고 config.php에서 쿠키를 가져와서 언어를 설정한다.

그리고 설정된 언어에 맞춰서 화면에 다국어 처리할 부분을 처리해준다. 먼저 언어팩을 만들어보자.

 

/inc/lang.php

 

<?php

$_LANG['kr']['top']['myaccount'] = "내 계정";
$_LANG['en']['top']['myaccount'] = "My Account";
$_LANG['jp']['top']['myaccount'] = "アカウント";

$_LANG['kr']['top']['wishlist'] = "위시리스트";
$_LANG['en']['top']['wishlist'] = "Wish List";
$_LANG['jp']['top']['wishlist'] = "ウィッシュリスト";

?>

 

다국어를 사용할 부분에 대해서 언어별로 사용할 값을 넣어서 만들어준다. 파일을 구분해서 만들어도 되지만 파일이 많아지면 관리가 힘들다. 그냥 파일 하나로 해보자.

 

이제는 사용자 화면에 적용할 부분에 값을 넣으면 된다. 이미 top.php 소스에 적용돼 있다. 

 

<div class="user-menu">
                        <ul>
                            <li><a href="#"><i class="fa fa-user"></i> <?php echo $_LANG[$_CONFIG["LANGSET"]]['top']['myaccount'];?></a></li>
                            <li><a href="#"><i class="fa fa-heart"></i> <?php echo $_LANG[$_CONFIG["LANGSET"]]['top']['wishlist'];?></a></li>
                            <li><a href="cart.php"><i class="fa fa-user"></i> My Cart</a></li>
                            <li><a href="checkout.html"><i class="fa fa-user"></i> Checkout</a></li>
                            <li><a href="/member/login.php"><i class="fa fa-user"></i> Login</a></li>
                        </ul>
                    </div>

이 부분이다. 이런식으로 영어로 돼 있는 부분에 이런식으로 php로 바꿔주면 된다. 

 

그러면 한글을 선택하면 이렇게 한글로 나오고 일본어를 선택하면 일본어로 나온다.

 

텍스트로 돼 있는 부분은 이렇게 바꾸고 디비에서 불러오는 부분은 디비에 넣을때 각 언어별로 구분해서 넣은 뒤 언어별로 화면에 뿌려주면 된다.

반응형

+ Recent posts