2008-12-03 36 views
1

你如何本地化ASP.NET + javascript + Silverlight?asp.net,javascript和silverlight的共享本地化?

我希望能夠在asp.net頁面中以不同的語言包含相同的文本,頁面上的javascript和頁面上的Silverlight對象。

我曾嘗試用下面的方法,但在實踐中沒有經驗吧,我想聽聽你的問題的看法或替代方案:

1)創建一個類庫(ResourcesTest)並添加資源文件(Phrases.resx)與一些字符串(Hello='Hello'),加上本地化版本(Phrases.da.resx: Hello='Hej')。

2)添加一個空的JavaScript文件(PhrasesHandler.js)。

3)在AssemblyInfo.cs中這樣做是爲了允許使用由JavaScript/Silverlight的文本:

[assembly: WebResource("ResourcesTest.PhrasesHandler.js", "application/x-javascript")] 
[assembly: ScriptResource("ResourcesTest.PhrasesHandler.js", "ResourcesTest.Phrases", "Phrases")] 

4)。參考從ASP.NET資源代碼隱藏(ResourcesTest.Phrases.Hello),或通過包括嵌入在網頁中的JavaScript資源:

<asp:ScriptManager ID="sm1" runat="server"> 
    <Scripts> 
     <asp:ScriptReference Assembly="ResourcesTest" Name="ResourcesTest.PhrasesHandler.js" /> 
    </Scripts> 
</asp:ScriptManager>

,然後從JavaScript訪問文本(如Phrases.Hello),或Silverlight的通過JavaScript(HtmlPage.Window.Eval("Phrases.Hello"))。

我覺得這個方法相當複雜,我擔心處理這樣的系統,但沒有找到在ASP.NET,JavaScript和Silverlight之間共享本地化/多語言資源的其他方式。

你有沒有?你如何本地化ASP.NET + JavaScript + Silverlight?

回答

1

如果他們都可以接受JSON格式的數據,請使用它。

參見:Localize Strings in Javascript

+0

是的。我認爲JSON可以爲客戶端部件(Silverlight和JavaScript)做到這一點。感謝您的建議。 – 2009-01-13 09:19:30