2011-03-15 50 views
1

我有一個SL 4.0應用程序託管在IIS上,可以更改GUI語言。問題是託管在一臺機器上,語言功能正常工作,而另一臺機器不工作。這裏面的一段代碼:在Silverlight客戶端中未正確加載資源文件

 Thread.CurrentThread.CurrentCulture = new CultureInfo(message.NewCulture); 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(message.NewCulture); 

Windows7的上它更新的UICulture與正確的資源文件和Windows Server 2008上沒有。兩個系統上的IIS設置似乎都是一樣的。任何建議在哪裏看?

+0

當您提到Windows Server 2008時,您是在服務器上本地運行還是Windows Server 2008託管Web應用程序,並且您是從客戶端計算機運行它? – Aligned 2011-04-14 13:17:56

+0

@Kevin -Windows Server正在託管應用程序,我從單獨的計算機(它具有Windows服務器或Windows 7作爲操作系統,在不同的瀏覽器上嘗試過)運行它 – tchrikch 2011-04-14 18:31:42

+0

所使用的文化基於客戶端的計算機/瀏覽器設置。如果您在客戶端上運行代碼示例(SL),我不清楚您的問題。我認爲你可能有錯誤的地方(即服務器)的代碼。看起來像你這樣做,但在你的代碼片段中多一點可能會有所幫助。 – Aligned 2011-04-14 18:47:00

回答

1

您可能想看看Tim Heuer撰寫的有關該主題的博客條目。

http://timheuer.com/blog/archive/2009/08/26/silverlight-string-localization.aspx

使用這個博客帖子,我能夠得到的時間和最小的努力短時間內實現全球化/本地化。

聽起來你需要看看設計器中的訪問修飾符部分。您需要將其設置爲Public才能在XAML綁定中使用它。還要檢查所有RESX文件在文件的屬性中是否標記爲Embedded Resource。

另外請確保您的字符串資源字典具有擴展類似的東西: enter image description here

附:我希望你能閱讀蒂姆的博客文章,他比我解釋的更詳細。另外,從我個人的經歷來看,我無法動態地重新加載語言,直到我看到標題爲「公共修改器替代方法和動態設置文化」的博客文章部分。

+0

thx,但我使用該博客條目構建我的本地化:)但是,我稍後做了一些更改,但核心保持不變。不幸的是,沒有任何幫助,仍然在一些機器本地化工程完美和其他失敗。無論如何,我幾乎已經忘記了博客條目+1 – tchrikch 2011-04-13 06:53:13

0

R - 單擊包含您的本地化文件的程序集,選擇卸載項目,然後編輯項目文件。項目文件採用XML格式。尋找一個與SupportedCultures相關的XML標籤(或類似的東西)。確保你的文化在列表中。

本地化不想爲我踢,直到我得到解決。

+0

thx的建議,但我已經做了幾次 – tchrikch 2011-03-18 15:24:53