2012-11-21 5 views
4

여러 언어로 된 대형 웹 사이트에서 나는 성가신 문제에 직면하고 있습니다. 웹 사이트에 도착하면, 귀하는 어떤 국가에서 왔는지 확인하고이를 확인하는 메시지를 표시합니다. 확인시 DB에서 페이지 언어를 스왑 아웃하고 관련 언어를 표시합니다. 이 작업은 jQuery를 사용하여 수행됩니다. 이제 문제는 아랍어 RTL을 읽습니다, 그래서 필요로 다음 중 하나C#에서 아랍어로 웹 사이트를 동적으로 번역

- "RTL"버전

또는

의 스타일 시트 밖으로 스왑 - HTML 태그를 변경하고 "디렉토리를 포함 = 'rtl' "arrtribute

이제 두 가지 모두를 시도해 보았습니다. 둘 다 실패했습니다. 페이지 소스를 볼 때 "dir"속성이없는 이전 Css 파일이나 HTML 태그가 계속 표시됩니다. 내가 틀렸다면 정정하십시오.하지만 DOM이 인스턴스화 된 후에 jQuery를 통해 비동기 적으로 발생했기 때문에 DOM이 새 변경 사항을 등록하지 않아서 발생했다고 생각합니다.

그런데 어쩌구와 tldr;
텍스트 방향을 동적으로 쉽게 바꿀 수있는 방법이 없습니까? 이것이 DOM 문제라면, 비동기 콜백 후에 어떻게 DOM을 다시로드 할 수 있습니까?

나는 몇 시간 동안이 문제에 관여했으며 interwebz에 거의 운이 없었습니다.

모든 도움을 환영하며 크게 감사드립니다.

친절 감사를

윌리엄 프랜시스

편집 : 나는 진정으로 아랍어 방식으로 작동 할 수있는 유일한 방법은 이후 다시 함께 발견

많은 조사 후. 일단 언어가 선택되면 포스트 백을 수행 한 다음 스타일 시트 HREF 속성을 코드에서 변경하는 간단한 과정 만 수행하면됩니다. 포스트 백이 없으면 스타일 시트를 변경할 수있는 JavaScript 또는 jQuery 형식이없는 것 같습니다. 참고 : 각 포스트 백, 즉 마스터 페이지를 통해 스타일 시트 HREF를 설정해야합니다. 스타일 시트 변경 사항은 페이지 전체에서 지속되지 않습니다.

JavaScript를 사용하여 스타일 시트를 변경하는 데 많은 도움이되는 웹 사이트입니다. 슬프게도, 그것은 나를 위해 작동하지 않았다.

http://www.alistapart.com/articles/alternate/

답변

0

는 몇 가지가 일어나고있을 수 있습니다. 나는 비슷한 일을 처리 할 때 매우 도움이 될이 페이지를 발견, 그래서 매우 추천 :

http://www.w3.org/International/tutorials/bidi-xhtml/

또한, 이미 검사 파이어 버그 같은 도구를 사용, 그렇게하지 않는 경우 생성 된 DOM은 AJAX가 실행되어 페이지의 초기 소스가 아닌 DOM의 변경된 상태를 확인합니다. 입니다. dir을 동적으로 변경할 수 있습니다. Firebug를 사용하여이 페이지의 HTML 태그 (set dir = "rtl")에 새로운 속성을 추가하여 동적으로 변경되는 것을 확인할 수 있습니다. 방향을 무시하는 다른 요소 일 수도 있습니다. AJAX 변경 사항이 올바르게로드되지 않았거나 다른 것들이있을 수 있습니다. 더 많은 코드를 게시 할 수 있다면 더 나은 답변을 제공하는 것이 도움이되지만 도움이되기를 바랍니다.

관련 문제