|
對(duì)于本地化這個(gè)功能我個(gè)人一直覺(jué)得在需求階段就要確定該項(xiàng)目需不需要實(shí)行本地化,這樣后面就可以減輕許多工作量,Sl中對(duì)本地化功能的支持與ASP.NET中一樣,主要使用CultureInfo類(lèi)來(lái)完成的。
下面來(lái)看實(shí)現(xiàn)本地化的具體流程,先來(lái)看一看我的項(xiàng)目結(jié)構(gòu):
這里我是把資源文件放入單獨(dú)的項(xiàng)目中,這樣結(jié)構(gòu)上也比較的清晰。
第一步:先在Languages項(xiàng)目下添加幾個(gè)資源文件,這里對(duì)于資源的命名要遵循.NET命名規(guī)范,比如說(shuō)當(dāng)前文化是中文的話,系統(tǒng)就會(huì)自動(dòng)到Localization.zh-CN.resx中獲取相關(guān)的字符。這里如果對(duì)多語(yǔ)言的文化的命名不熟悉的話,可以查看.NET全球化,我們?cè)O(shè)置一個(gè)簡(jiǎn)單的值:
我們這里定義了一個(gè)Country字段,在中文和英文兩種文化中值分別為中國(guó)與China。
第二步:建立值轉(zhuǎn)化類(lèi)AppResource.cs。
namespace Languages
{
public class AppResource:IValueConverter
{
public readonly static ResourceManager manager = new ResourceManager("Languages.Localization", typeof(Localization).Assembly);
private static CultureInfo culture = Thread.CurrentThread.CurrentCulture;
public static CultureInfo UICultrue
{
get { return culture; }
set { culture = value; }
}
public string Get(string resource)
{
return manager.GetString(resource, UICultrue);
}
public static string GetValue(string resource)
{
return manager.GetString(resource, UICultrue);
}
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var reader=(AppResource)value;
return reader.Get((string)parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
NET技術(shù):Silverlight中本地化的實(shí)現(xiàn),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。