2012-10-25 3 views
4
내가 구글의 입력을 모방하려는

는 는 자동으로 입력중인 언어에 따라 입력의 입력 방향을 변경합니다.사용자가 RTL 또는 LTR 언어로 입력하는지 식별하는 방법은 무엇입니까?

사용자가 RTL 또는 LTR 언어로 입력하는 경우

가 어떻게 식별 할 수 ? 크로스 브라우저에서 작동해야합니다.

+0

Google이 입력 된 입력 방향을 어떻게 변경한다고 생각하십니까?오히려 입력 된 문자는 고유 한 방향성에 따라 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로 자동 표시됩니다. 여기에서 바꿀 내용을 설명하십시오. –

+0

사용자가 어떤 언어를 입력할지 알 수 없다고 가정하십시오. 나는 입력의 방향을 사용자의 언어와 동일하게하고 싶다. 영어로 입력 할 경우 입력 방향은 LTR입니다. 그러나 예를 들어 아랍어를 입력하면 입력 방향은 RTL이됩니다. – Alvarez

+0

텍스트 입력란에 라틴 문자를 입력하면 왼쪽에서 오른쪽으로 표시됩니다. 아랍어 문자의 경우 시각적 순서가 반대입니다. 이것은 적절한 구현에서 기대할 수 있습니다. 문제가 무엇입니까? –

답변

0

Google의 방향성 인식 알고리즘을 모방하려는 경우 삽입 된 문자 RTL 또는 LTR 여부, 입력 변화들을 인식해야합니다 (또는 :

참고로

, 여기에 W3C 문서입니다 중립) 및 텍스트 상자의 dir="" 특성을 적절하게 변경하십시오.

Google의 알고리즘은 대부분 문자열의 강력한 문자를 계산하여 그 방향성을 결정하는 것으로 보입니다. RTL을 입력하면 컨텍스트가 RTL로 전환되고 동일한 단락의 LTR로 전환하면 해당 문자가 RTL보다 많은 경우 컨텍스트가 다시 LTR로 전환 될 수 있습니다.

비교를 위해 페이스 북은 방향 알고리즘도 사용하지만 다소 차이가 있습니다 - 첫 번째 강한 문자를 사용하여 전체 숫자가 아닌 단락의 방향을 결정하는 것 같습니다.

(기록을 위해 Google에도 이와 같은 알고리즘이 여러 개있는 것 같습니다. Gmail은 Google 검색에서의 입력이 어떻게 정렬되어 있는지와 다른 Google 행 아웃과 약간 다르게 작동합니다. "또는"잘못된 "답변이 아니라 사용 사례에 해당)

구현 방법을 선택하는 경우 먼저 사용자가 입력하는 내용을 식별해야합니다. 이렇게하려면 여러 가지가 있지만, 나는 다음과 같은 추천 :

당신은 사용자의 입력을 수신하는 JavaScript 방법을 만들 수 있으며, 사용 위의 정규 표현식을 사용하여 사용 된 강력한 문자를 확인하십시오 (첫 문자 또는 모두를 계산하여 사용 및 스케일에 가장 적합한 것) - 그에 따라 텍스트 상자의 dir="" 속성을 변경하십시오.

제출 한 텍스트를 나중에 올바른 정렬로 표시해야하므로, 선택한 정렬을 저장하거나 무언가를 렌더링 할 때마다 다시 인식해야 할 수도 있습니다. 어느 쪽이든, 디스플레이가 동일한 dir="" 속성을 필요로한다는 것을 잊지 마십시오.

관련 문제