2012-05-04 74 views
1

我正在尋找一種通用機制來國際化必須在脫機模式下工作的Web應用程序。如何支持JQuery Mobile離線Web應用程序(i18n)的國際化?

最初我正在考慮爲元素添加data-i18n標籤,但這看起來像是一個非常難看的解決方案。

我遇到了http://panacodalabs.github.com/The-M-Docs/#components_&_utilities/m_i18n但是我不希望(或可能由於時間限制)將我的應用程序移植到該框架。

我需要一個適用於此問題的HTML5 jQuery Mobile友好解決方案,該解決方案適用於離線模式。

在我看來,HTML5框架中缺少這個關鍵組件。

回答

1

我不一定會說這是JQM應該提供的一個功能,因爲這可能在某些服務器端邏輯中做得最好。

我可以想到這樣做的兩種方式:
1.將所有語言翻譯成一些獨立的js文件,這些文件必須包含在清單文件中。檢查datebox plugin以瞭解如何完成此操作(右上角 - 選項)。
2.創建一個本地數據庫並在那裏存儲所需語言的翻譯。

我認爲第一個應該更容易處理,但可能難以設置/維護。另外,根據翻譯量,js文件確實變得很大......

+0

感謝您的建議。正如你所知,越來越多的網絡應用程序有望脫機工作,所以我們需要越來越少地依靠服務器端來解決某些問題,如國際化。 我認爲病人不得不破解一些東西... M項目提供了開箱即用的國際化,但我不想依賴那個框架它是純粹的js,我沒有時間去學習他們的應用程序mvc模式。 – Astronaut

+0

是的,這有點棘手。我也在用多種語言開展一個項目,我不太確定,如何讓它脫機(呃......需要先把它放到網上......)。現在,我將JavaScript和服務器端混合使用,但對於脫機,我不確定是否要下載完整的語言表,因爲如您所說,這些傾向於變大。對於簡單的東西,如表單驗證文本,我可以放下一個JavaScript數組片段與相關的文本到頁面中,當離線存儲時可用。雖然不完美。 – frequent

+0

我再次看了Datebox。如果你在這裏檢查:http://dev.jtsage.com/cdn/datebox/i18n/在源代碼中,我認爲每種語言設置是非常好的。因此,每個語言都會有一個.js文件,並且可能讓用戶決定他們想要哪個文件脫機。如果你破解了一些東西,我幾乎建議你去這個方向。 – frequent

1

你看過jQuery i18n插件嗎?

http://recursive-design.com/projects/jquery-i18n/

我目前使用它與jQuery 1.7.1和jQuery移動1.1.0,和它完美的作品。

+0

我看不出這有什麼用處。爲JS文件中的每種語言創建一個JSON字典,並在文本應該包含的變量中包含這些字典。然後在JS文件之間切換以改變語言。這是我的解決方案。我看不出這個插件可以提供什麼幫助 - 你能否詳細說明一下? – ProblemsOfSumit