我正在使用的一個應用程序是在美國,中南美洲和歐洲使用的大型ASP.NET 3.5 Web窗體應用程序。我們也開始對AJAX做更多的工作,因此我們需要在JavaScript控件中定位字符串本地化策略。本地化ASP.NET Web窗體應用程序中的JavaScript字符串
例如,我們有一個寫成jQuery插件的控件,它將數據格式化爲可排序的表格。按鈕和表格列需要可本地化。
我們目前使用兩種不同的方法來處理這種情況,但我並不完全滿意。
編寫大量的jQuery插件風格的代碼,然後將一個
script
塊.aspx
頁面,我們將在值拉從.resx
文件,並將它們送入插件代碼上。下面是僞代碼的例子:<script> var view; $(function() { view = { columnHeaders: { productNumber = <%$ Resources:WidgetProductNumber_HeaderText %>, productDescription = <%$ Resources:WidgetProductDescription_HeaderText %> } }; }); </script>
將JavaScript的純
.js
文件與到位串的自定義標記。我們有一個手冊HttpModule
,它將解析JavaScript文件,並用來自任何現有.resx
文件的文件名與正在處理的JavaScript文件的名稱相匹配的值替換標記。
這兩種方法都有問題。我寧願將我們的JavaScript代碼與我們的.aspx
頁面分開,以使其更加不顯眼且可重複使用。
HttpModule
方法很聰明,但對開發者有點不透明。我還希望實現一個名爲Rejuicer的JavaScript打包程序,它也被寫爲HttpModule
,並且讓它們一起工作似乎需要定製開源代碼。我更願意在編寫代碼時使用代碼,以便隨着項目的進展升級它。
是否有任何其他嘗試和真正的策略來解決ASP.NET中的這個問題?
感謝您的答覆,但我不知道這真的解決了我的問題。我試圖簡化在JavaScript UI組件中使用字符串的過程,而不是將數據本身國際化。你是否建議我應該建立另一個Web服務來將UI配置對象作爲JSON提供?我想這是做到這一點的一種方式,但它似乎比上面概述的解決方案更復雜。你能澄清嗎? –