답변 2개
Google 공식 Translation API를 통해
한국어로 입력된 검색어를 실시간으로 영어로 변환하여 DB 검색하시면 될 것입니다.
1. Composer를 이용한 공식 라이브러리 설치
composer require google/cloud-translate
2. Google Cloud API 준비
- Google Cloud 콘솔에서 Cloud Translation API 활성화
- 서비스 계정 키(JSON 파일)를 다운로드하여 보관 (google-credentials.json)
※ 예시를 만들어 봅니다. ※
프로젝트 루트 ├─ vendor/ # composer로 설치한 라이브러리 폴더 ├─ google-credentials.json # Google Cloud API 인증 키 파일 ├─ translate_search.php # 검색어 번역 처리 파일 └─ search.php # 검색 요청 및 결과 표시 페이지
*google-credentials.json은 Google Cloud에서 발급받은 키.
*Google Cloud Translation API 설치 시 자동으로 vendor/ 폴더에 관련 라이브러리가 추가.
프로젝트 루트에 translate_search.php를 포함하여 번역 기능을 활용
-데이터베이스 연결 설정은 실제 환경에 맞게 수정하세요.
use Google\Cloud\Translate\V2\TranslateClient;
function translateKoToEn($text) { $translate = new TranslateClient([ 'keyFilePath' => 'google-credentials.json' ]);
$result = $translate->translate($text, [ 'source' => 'ko', 'target' => 'en' ]);
return strtolower($result['text']); }
search.php 생성
// 데이터베이스 검색 함수 예시 (실제 환경에 맞게 수정 필요) function db_search_function($keyword) { $pdo = new PDO('mysql:host=localhost;dbname=mydatabase;charset=utf8mb4', 'db_user', 'db_password'); $stmt = $pdo->prepare("SELECT * FROM products WHERE LOWER(name) LIKE ? LIMIT 10"); $stmt->execute(["%$keyword%"]);
return $stmt->fetchAll(PDO::FETCH_ASSOC); }
// 사용자가 입력한 검색어 처리 $search_korean = isset($_GET['q']) ? trim($_GET['q']) : ''; $search_english = ''; $results = [];
if ($search_korean !== '') {
$search_english = translateKoToEn($search_korean);
$results = db_search_function($search_english);
}
?>
검색어 (한국어): = htmlspecialchars($search_korean) ?>
검색어 (영어 번역): = htmlspecialchars($search_english) ?>
검색 결과가 없습니다.
브라우저 주소창에서 아래와 같이 호출
- 검색폼에 검색어(오렌지 주스) 입력/검색 버튼을 누르면 번역후 검색된 결과가 출력. "http://example.com/search.php?q=오렌지 + 주스"
사용자 입력(오렌지 주스) → translate_search.php로 번역 → DB검색 → 결과, 화면 표시 - 검색 결과 화면
http://sir.kr/data/editor/2503/1930905316_1741992307.6118.png" width="100%" />
붙임) - 실 서비스엔, 입력값 검증 및 에러 처리를 반드시 추가.
- 캐싱 처리 권장.
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
api를 사용하지않고 해결하였습니다.