db에 저장된 영문 번역 질문입니다.
메뉴를 번역하기 위해서 번역할 메뉴들을 전부 기본 영문으로 입력하였습니다.
db에서 회사 는 company 라고 넣고 암튼 이런식으로 영문으로 모조리 바꿔서 저장했습니다.
[code]
for($i=0; $row = sql_fetch_array($result); $i++) {
$manu[$i] = $row;
$menu[$i]['me_name'] = __($row['me_name']);
}
[/code]
그리고 메뉴 출력부분 head.php 부분에서
<?php
for($i=0; $i<count($list); $i++) {
echo " menu ::: ".__($menu[$i])." ::: ";
}
?>
테스트를 위해서 대충 이런식으로 적어서
pedit에서 코드에서 업데이트를 해보면 메뉴에 대한 부분은 번역에 나오지 않더라구요
이부분은 에디터로 직접 po 파일 수정을 통해서 입력해야 하는 건가요?
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 2개
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;
}
변수는 안되고 문자만 가능하군요
메뉴가 자주 바뀌는건 아니지만 일일이 수작업으로 등록한다는게 아닌것 같으서 다음과 같은 방식으로 해봤습니다.
관리자 메뉴 저장시 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 소스경로에 이파일을 추가시킴으로써 자동으로 불러오게 수정을 하였습니다.
감사합니다.