Silverlight Toolkit有一個名爲Resources.resx的資源文件,其中包含交換機的「On」和「Off」字符串狀態。但是,當我添加了相應的本地化資源Resources.ru-RU.resx時,它並沒有被本地化(儘管類似的方法適用於我自己的資源)。如何本地化Windows Phone 7上的ToggleSwitch(本地化Silverlight工具包)?
一種方法是爲ToggleSwitch Content創建我自己的綁定,但我希望得到一個非編碼解決方案。可能?
Silverlight Toolkit有一個名爲Resources.resx的資源文件,其中包含交換機的「On」和「Off」字符串狀態。但是,當我添加了相應的本地化資源Resources.ru-RU.resx時,它並沒有被本地化(儘管類似的方法適用於我自己的資源)。如何本地化Windows Phone 7上的ToggleSwitch(本地化Silverlight工具包)?
一種方法是爲ToggleSwitch Content創建我自己的綁定,但我希望得到一個非編碼解決方案。可能?
您需要命名您的資源文件ControlResources.ru-RU.resx
,請參閱Andrej Torzen's article的主題。
本地化ToggleSwitch在Silverlight工具包可以通過的DataTemplate
<toolkit:ToggleSwitch x:Name="MySwitch" Header="Localized Switch">
<toolkit:ToggleSwitch.ContentTemplate>
<DataTemplate>
<ContentControl HorizontalAlignment="Left"
Content="{Binding Converter={StaticResource Switch}}"/>
</DataTemplate>
</toolkit:ToggleSwitch.ContentTemplate>
</toolkit:ToggleSwitch>
聲明一個ValueConverter被achived:
public class BoolToSwitchConverter : IValueConverter
{
private string FalseValue = Resources.Off;
private string TrueValue = Resources.On;
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (value == null)
return FalseValue;
else
return ("On".Equals(value)) ? TrueValue : FalseValue;
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
return value != null ? value.Equals(TrueValue) : false;
}
}
更多細節here。
但它沒有。也許我應該做一些除了創建Resources.ru-RU.resx –
之外的東西哦,對,名稱需要是ControlResources.ru-RU.resx,不是資源,請參閱http://tozon.info/blog/post/2011/ 08/18 /本地化2011年8月 - Windows-Phone-Toolkit.aspx,如果它有效,我會用它更新答案。 –
這適用於除ToggleSwitch的「On」/「Off」標籤之外的所有內容 - 由於某種原因,它們不在ControlResources.resx文件中,而是在「屬性」文件夾中的Resources.resx中。也許傑夫認爲「開」/「關」不應該本地化?無論如何,很好的答案。 –