db에 저장된 영문 번역 질문입니다. > 그누M 피드백

그누M 피드백

db에 저장된 영문 번역 질문입니다. 정보

질문 db에 저장된 영문 번역 질문입니다.

본문

메뉴를 번역하기 위해서 번역할 메뉴들을 전부 기본 영문으로 입력하였습니다.

db에서 회사 는 company 라고 넣고 암튼 이런식으로 영문으로 모조리 바꿔서 저장했습니다.


for($i=0; $row = sql_fetch_array($result); $i++) {
    $manu[$i] = $row;
    $menu[$i]['me_name'] = __($row['me_name']);
}

그리고 메뉴 출력부분 head.php 부분에서

<?php

for($i=0; $i<count($list); $i++) {

    echo " menu ::: ".__($menu[$i])." ::: ";

}

?>

테스트를 위해서 대충 이런식으로 적어서

pedit에서 코드에서 업데이트를 해보면 메뉴에 대한 부분은 번역에 나오지 않더라구요

이부분은 에디터로 직접 po 파일 수정을 통해서 입력해야 하는 건가요?

추천
1
비추천
0

댓글 전체

네 그렇습니다.

poeditor 를 사용하여 번역문을 추가로 생성해야 합니다.

그런데 번역함수에 인자형식이 변수가 붙으면 안됩니다. ( poeditor 에서 번역함수를 불러올시 에러가 일어날수 있습니다. )

인자값은 무조건 string 형식 으로 들어가야 합니다.

php 사용자 함수를 추가하여 아래와 같이 해당 번역문을 가져와야 합니다.

예)

$menu[$i]['me_name'] = get_menu_translate($row['me_name']);

function get_menu_translate( $menu_name ){
    $menus =array(
            'freeboard' => __('Freeboard'),
            'feedback' => __('Feedback'),
            'notice' => __('Notice'),
            'manual' => __('Manual'),
    );

    return isset($menus[$menu_name]) ? $menus[$menu_name] : $menu_name;

}
일단 게시판은 [code]가 안먹히는군요 ㅋㅋㅋㅋㅋ

변수는 안되고 문자만 가능하군요
메뉴가 자주 바뀌는건 아니지만 일일이 수작업으로 등록한다는게 아닌것 같으서 다음과 같은 방식으로 해봤습니다.
관리자 메뉴 저장시 data/file/index/menu_string.php 파일을 생성하게 해서,
<?php
if (!defined('_GNUBOARD_')) exit;

$menu_string = array( '메뉴1' => __('메뉴1') ,
                                '메뉴2' => __('메뉴2'),
);
?>
와 같은 형태로 저장이 되게 만들었습니다.
그래서 메뉴 사용하는 부분에서는 이파일을 include 시키고
@thisgun님께서 올려주신 함수를 이용하여
function get_menu_translate( $menu_name ){
    @include_once(GML_DATA_PATH.'/file/index/menu_string.php');
    return isset($menus[$menu_name]) ? $menus[$menu_name] : $menu_name;
}
와 같은형태로 수정하였습니다.

pedit 소스경로에 이파일을 추가시킴으로써 자동으로 불러오게 수정을 하였습니다.

감사합니다.
전체 103 |RSS
그누M 피드백 내용 검색

회원로그인

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