|
對于本地化這個功能我個人一直覺得在需求階段就要確定該項目需不需要實行本地化,這樣后面就可以減輕許多工作量,Sl中對本地化功能的支持與ASP.NET中一樣,主要使用CultureInfo類來完成的。
下面來看實現(xiàn)本地化的具體流程,先來看一看我的項目結構:
這里我是把資源文件放入單獨的項目中,這樣結構上也比較的清晰。
第一步:先在Languages項目下添加幾個資源文件,這里對于資源的命名要遵循.NET命名規(guī)范,比如說當前文化是中文的話,系統(tǒng)就會自動到Localization.zh-CN.resx中獲取相關的字符。這里如果對多語言的文化的命名不熟悉的話,可以查看.NET全球化,我們設置一個簡單的值:
我們這里定義了一個Country字段,在中文和英文兩種文化中值分別為中國與China。
第二步:建立值轉化類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技術:Silverlight中本地化的實現(xiàn),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。