2012-08-27 2 views
0
를 검색 및 조회

특정 언어

가 어떻게 그 언어를 감지하고 특정 하나를 조회 할 수 있습니다 등, 중국어 프랑스어, 영어, 말레이어, 일본어, 한국어 등 내 DB에 삽입 된 다른 언어의 데이터, 내가 가진 . 예를 들어 중국어로 데이터를 쿼리하고 사용자에게 표시하려는 경우에만 사용할 수 있습니다. 내가 당신이라면

+1

어떤 데이터베이스가 생겼 : 당신이에 관심이 있다면, 당신은이 블로그 게시물을보고있다 싶어 수도? 아니면 아직 설계하지 않았습니까? –

+0

이미 db를 사용하고 UTF8을 사용하며 다른 언어를 사용하여 삽입 할 수 있습니다. 하지만 영어, 중국어, 일본어 버튼과 같은 기능을 갖고 싶기 때문에 사용자가 클릭하면 지정된 언어 만 표시됩니다. – vzhen

+0

각 언어를 데이터베이스의 다른 테이블로 만드십시오 (?) ... 또는 데이터베이스 설정에 대한 추가 정보를 제공하십시오 – khaverim

답변

2

, 당신의 UI 컨트롤에 표시되는 텍스트 저장하기 위해이 같은이있을 것이다 :에

create table ui_labels (
    control_id int, 
    language varchar(2), 
    label varchar(500), 
    primary key (control_id, language) 
); 

각 제어를위한 하나의 고유 한 control_id가있을 것입니다 (예 : 버튼)을하여 UI. 각 컨트롤에는 각 언어에 대해 하나씩 많은 레이블이있을 수 있습니다.

그런 다음 각 UI 컨트롤은 각 언어에 대해 다른 레이블을 가질 수 있습니다. (여기에 두 글자로 된 ISO 언어 코드가 있다고 가정하고 있지만 숫자 ID 또는 다른 식별 체계도 사용할 수 있습니다.)

이렇게하면 ui_labels 테이블에 행을 추가하는 것만으로 쉽게 새 언어를 추가 할 수 있습니다. 검색어에 사용하는 language 값을 전환하기 만하면 UI에 표시된 언어를 쉽게 전환 할 수 있습니다. 다음과 같이 할 수있는 버튼

데이터 :이 방법의 대안으로

insert into ui_labels (control_id, language, label) 
    values (1, 'en', 'Read the article'); 
insert into ui_labels (control_id, language, label) 
    values (1, 'es', 'Leer el artículo'); 
insert into ui_labels (control_id, language, label) 
    values (1, 'tl', 'Bumasa ang balita'); 

는하지만, 당신은 PHP에서 번역을 할 수있는 표준 방법 인 gettext을 조사 할 수 있습니다. 데이터베이스를 사용하지 않습니다. 문자열을 데이터베이스에 저장해야하는 경우 (예 : 최종 사용자가 편집 할 수 있어야하는 경우)이 옵션은 아니지만 고려할 수 있습니다.

http://verens.com/2008/04/03/translation-in-php/

+0

control_id = 1이 영어이고 control_id = 2가 말레이어 인 경우 어떻게 사용자 입력 언어를 감지하고 control_id를 삽입합니까? 영어와 말레이어는 동일한 알파벳 (A-Z)을 사용하기 때문에. Google 번역 API를 사용 하시겠습니까? – vzhen

+0

HTTP 요청을 검사하고 사용자가 원하는 언어를 확인해야합니다. 내 대답에 내가 링크 된 페이지는 이것을 수행하는 방법을 언급합니다. "다음으로, 브라우저의 Accept 헤더를 분석하여 우리가 가지고있는 것과 일치하는 로케일을 찾으십시오."라고 표시된 부분을 찾으십시오. –

+0

또한 다른 언어에 대해 다른 control_id를 사용할 수 없습니다. 버튼에는 동일한 control_id가 있지만 다른 언어로 번역 된 버튼이있는 행이 다릅니다. 내가 의미하는 바를 보여주는 예제를 추가했습니다. –

관련 문제