2012-02-09 178 views
0

我有一個全局資源文件:ContactDetails.resx。這裏是在網站上使用的地址和聯繫信息。從資源文件鏈接到資源

我也有一個聯繫頁面列出了所有的聯繫方式,但是依賴於語言而改變。所以在英國的網站上,英國的聯繫方式出現在頂部,而法國網站上的法國細節將出現在頂部。

有沒有一種方法來嵌套資源,從不同資源的值中引用資源值?

回答

0

如果資源值不存在於您的法語資源文件中,但在默認資源文件中存在,系統將自動從默認資源文件中獲取該值。

所以,如果您的本地化設置爲fr,和您的電話是一樣的東西:

Resources.ContactDetails.Telephone 

和電話不存在ContactDetails.fr.resx那麼它將從獲得電話值ContactDetails.resx


如果所有的值都要顯示在頁面上,但取決於本地化的不同順序,我建議不要將這些值存儲在資源文件中。資源文件的變化是爲了改變語言,而不是改變數據的佈局。

相反,我會建議將這些存儲在數據庫中,並有3個文本控件,如頁面上:

<asp:literal id="ltl1stTelephone" runat="server" /> 
<asp:literal id="ltl2ndTelephone" runat="server" /> 
<asp:literal id="ltl3rdTelephone" runat="server" /> 

然後根據定位,指定哪些值應該被分配到各控制。

if (System.Threading.Thread.CurrentThread.CurrentUICulture = "fr"){ 
    ......... 
} 
+0

不是我所問的。基本上一個資源文件提供了頁面的結構(可能不是我所知道的最佳實踐)。這將加載哪些命令顯示聯繫人詳細信息。但是,我不想將自己的聯繫方式本身存儲在本文件中,因爲對一個電話號碼的更改意味着許多其他地方的更改。相反,我想擁有另一個位置,其中包含從第一個資源文件引用的所有聯繫人詳細信息。 – Chris 2012-02-09 16:05:56

+2

想想看,資源文件是否是正確的方法去解決這個問題......你將如何實現這一目標? – Chris 2012-02-09 16:06:37

+0

因此,您將HTML代碼存儲在資源字符串值中?這可能不是最好的方法。如果它的法語本地化,你可以使用不同的CSS文件?這可能會更好。還是我仍然誤解? – Curt 2012-02-09 16:08:31