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
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;
}
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 소스경로에 이파일을 추가시킴으로써 자동으로 불러오게 수정을 하였습니다.
감사합니다.
변수는 안되고 문자만 가능하군요
메뉴가 자주 바뀌는건 아니지만 일일이 수작업으로 등록한다는게 아닌것 같으서 다음과 같은 방식으로 해봤습니다.
관리자 메뉴 저장시 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 소스경로에 이파일을 추가시킴으로써 자동으로 불러오게 수정을 하였습니다.
감사합니다.