多語言開發中遇到的問題

站點有中英文版本,其界面元素都一樣。只是相應的文字信息區分了中文和英文,目前我把相關的信息都放在資源文件中,
然後網頁中有兩個按鈕來讓用戶選擇是中文還是英文,目前我的做法是:
當用戶選擇中文的時候,我用Session來保存一箇中文類的實例對象,這個實例主要是獲取中文版本中的資源,選擇英文的時候一樣放在Session中,部分代碼如下:
但是現在碰到一個問題,我在A這臺機器和B機器都打開網頁,無論誰變換了語言版本,則另一臺也跟着變了,如:A機器當前是中文,B機器切換爲英文的時候,刷新一下A機器上的頁面就也變成英文了。
不知道哦,只要有一個客戶端改了,其他的都也跟着變

不好意思,久沒有上來了,3.5編譯,能詳細些嗎?是的,是我本人的照片,怎麼了?

最好的解決方案,是找到那一段代碼,用替代的代碼來解決這個問題

將程序集增加到GAC,只要升級對應版本程序,永遠不會不兼容。就是強簽名+版本不相同,每個版本都有自己強簽名和版本號

我的版本是v2.0.50727,這個版本下就可以正常運行,如果用微軟件那個升級的版本.net 3.5就出錯了。看了你的博客,那升級到3.5要用那個版本呢我也經常遇到這個問題,,很多時候不同版本的框架之間的確存在兼容性問題。那就換成4.0

根本上說,3.5的runtime還是用2.0的,3.5主要是在2.0的基礎上增加了不少類庫
你的系統是x64的麼?外加建議你重新用2008編譯一下站點

windows 2003 sever系統,SP2補丁,兼容x32、x64,只能查到這個了

x64系統的話,你最好重新編譯一下站點,編譯爲x86試試, 或者用2008重新編譯成Any plateform也行

估計做過,他的參數名8成是混淆後的~重新編譯,別混淆

然後把網站放到一個新的目錄,設置好權限,注意加上ASP.NET權限
關鍵我現在用的v2.0.50727版本是正常瀏覽的,你意思是讓我先升級,然後用你這個方法來實現是不是呢?

首先還是在你自己的機器上用2008在3.5環境下跑過,再放到服務器上;外加先不要混淆。

然而如果要把這個字符串移植到C#,由於C#對於安全邊界檢查較嚴格,又沒有指針,所以無論把這個參數的類型轉換爲Char[], string還是StringBuilder,都無法完整獲得函數返回的內容(Char[]只能返回第一個字母, string和StringBuilder則返回到第一個/0位置。如果將string[]作爲參數傳入,則提示參數錯誤。
也想過自己封裝一個c++函數,將LPTSTR變成string[]返回,可是總希望尋求更聰明的解決方案。請問各位大牛有沒有什麼辦法?

LPTSTR對應於StringBuilder類型,可變的字符串,通常都可以,可能你這是特殊情況~

謝謝樓上的關於指針的文章,我在C#中用指針嘗試過了,發現不論是string(包括MarshalAs LPTSTR的string)還是StringBuilder,作爲參數傳到這個API中,返回的都只是第一個/0之前的內容,第一個/0之後的內容其實根本沒有返回,所以即使用指針也取不到。
看來唯一的辦法是寫個C++類封裝一下了。
恰是你的說法不對引起的, /0 是字符串分割符
你需要用自己的算法, 把傳入的東西當作字節數組來自己分析, 標準方式的各種字符串函數只會在第一個 /0 下停下來.

對應StringBuilder,String,Byte[],char[]都行,後兩者在知道長度的情況下是沒問題的,你這沒有,但應該也行,

可能是你之前用btnColor命名過一個按鈕,後來刪掉或改名了

我想問一下一樓的該怎麼定義?是不是缺少程序集或者命名空間
btnColor缺少或是沒有定義,你右鍵能跳到定義的地方嗎?這個是不存在的.所以報這個錯誤.
哦,真的是沒有定義,可是又不知道怎麼定義,我是菜鳥一個!哪位寫一下定義的代碼。
界面的數據顯示唄。根據你選擇的行傳入你需要查詢信息的主鍵即可。
數據庫裏面可以爲板塊設置權限。你什麼都不懂還要做這樣的博客系統。我的資源裏面有,你去下載一個嘛。
難道你一開始就什麼都會啊。不會就不能做了,可笑。。有沒有一點學習精神。
設計是一方面,實現有是一方面,我是學java的,現在學校要做。net設計,這個系統java的我會,但是。net沒怎麼接觸過,所以實現有點茫然啊,大家不要見笑LZ你太猛了 一天半就做系統了
雖然有很多基礎問題 但我還是很佩服你
一天的時間?從數據庫的設定,到頁面的設計,以及程序的生成,一個像樣的博客是不可能在一天的時間內搞定的
來源:nba直播

發佈了39 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章