2012-11-21 49 views
4

我在一個擁有多種語言的大型網站上面臨着一個棘手的問題。在抵達網站時,它會檢測您來自哪個國家並提示您確認。確認後,它從數據庫中取出頁面語言並顯示相關語言。這是使用jQuery完成的。現在的問題是,阿拉伯語讀取RTL,所以我需要:在C中動態地將網站翻譯成阿拉伯語#

- 換出的樣式爲「RTL」版本

- 更改HTML標籤和包括「目錄='rtl'「arrtribute

現在,我已經嘗試了這兩種方法,但兩者都失敗。當我查看頁面源代碼時,它仍然顯示沒有「dir」屬性的舊Css文件或HTML標記。糾正我,如果我錯了,但我相信這是由於DOM沒有註冊新的更改,因爲他們已經實例化後通過jQuery異步發生。

畢竟這等於是等等和tldr;
有沒有更簡單的方法動態地換出文本方向?如果這是一個DOM問題,如何在異步回調之後重新加載DOM?

我已經在這個問題上好幾個小時了,並且在interwebz上運氣很少。

任何和所有的幫助是值得歡迎和不勝感激。

親切的問候,

威廉·弗朗西斯

編輯:

經過一番調查,我發現,要真正工作的阿拉伯語方式的唯一方法是用後回。一旦選擇了語言,你就做了一個回發,然後它只是一個簡單的過程,從後面的代碼改變Stylesheet HREF屬性。似乎沒有任何形式的JavaScript或jQuery可以在沒有回傳的情況下更改它,並且仍然反映新的樣式表。注意:您需要在每個回發頁上設置樣式表HREF,即通過母版頁。樣式表更改不會保留在頁面之間。

這是一個網站,它幫助我們大幅度地解釋了使用JavaScript進行樣式表更改的情況。可悲的是,它並不適合我。

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

回答

0

可能有幾件事情正在進行。我找到了這個網頁是當我在處理類似的事情非常有幫助的,所以我強烈建議:

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

而且,如果你不這樣做,使用類似於Firebug工具來檢查在AJAX運行後生成的DOM會確保您看到DOM的更改狀態,而不是頁面的初始源。它可能動態更改目錄 - 您可以使用Firebug將新屬性添加到此頁面的HTML標記(設置dir =「rtl」)以查看它動態變化。它可能是一些其他元素重寫方向,可能是因爲AJAX更改沒有正確加載或其他東西。如果你可以發佈更多的代碼,這將有助於給出更好的答案,但我希望這會有所幫助。