我需要爲我的(可伸縮)Web應用程序中的靜態文本設計翻譯機制/策略 - 這些應用程序基於HTML,JQuery/JavaScript在ASP.NET環境(但沒有服務器端控件)異步jQuery調用http處理程序。如何從存儲在數據庫中的翻譯中本地化靜態網站文本?
我已經使用Globalize成功地本地化數字,日期等,但是現在需要整理文本翻譯。
翻譯的文本被適當地存儲在數據庫中(通過本地合作伙伴在另一個應用程序維護),因此,我不想使用基於ResX相當於一個文件,像jQuery Localisation/jQuery Localize/jQuery-i18n-properties的方法,而不是我的解決方案後,類似於extending the Resource-Provider Model,本地化ASP.NET控件(我沒有),以從數據庫中獲取翻譯。
客戶端的方法:我只是偶然發現i18next's dynamic (non-static) resouce route,我試圖找出如果我能恢復從一個HTTP處理程序類似的東西(和緩存中JStorage/LawnChair)填寫佔位/標籤使用the jQuery function或者採取類似Moustache或hogan.js模板的方法。
服務器端方法: 修改HTML,它是服務之前,例如this answer建議使用HttpResponse.Filter修改響應服務器端(見this article)。由於緩衝區是分塊的,我不得不按照建議的here捕獲整個流,這會導致性能下降,但是,我希望我可以通過頁面的來減輕這個影響。
或使用HTTP處理程序like this看起來像更簡單的方法,但我不太確定如何緩存此實例中的頁面的多個版本。
其他人是否有這些方法的經驗或知道任何類似的或'最佳實踐'滿足要求,特別是在性能,可擴展性和可維護性方面?
如果有什麼不清楚的,請告訴我,我是網絡開發新手。 :)
注意:這是針對在平板電腦/手持設備上運行的Web應用程序進行數據捕獲,它不是CMS或靜態網站(以前的版本用於在.Net Compact Framework上運行,大約5年,現在是時候進行更新,以便用戶可以使用非Windows設備,如android和iPad)。
如果它是一個靜態站點,那麼在語言層客戶端攻擊看起來更麻煩,而不是將其轉換爲CMS並在服務器端進行。 –
@Diodeus(更新後的問題)這聽起來像是一種需要考慮的方法(但這不是CMS),您能否詳細解答一個答案? (請注意HttpResponse.Filter方法)。 –
你需要把它全部吸收到某種數據庫中,你如何提供它是一個單獨的問題。修補原始軟件也是一種選擇。 –