Как локализовать ToggleSwitch в Windows Phone 7 (локализация Silverlight Toolkit)?
Silverlight Toolkit содержит файл ресурсов с именем Resources.resx, который содержит строковые состояния "Вкл" и "Выкл" для переключателя. Но когда я добавил соответствующий локализованный ресурс Resources.ru-RU.resx, он не был обнаружен локализацией (хотя подобный подход работает для моих собственных ресурсов).
Один из способов сделать это - создать собственную привязку для контента ToggleSwitch, но я надеялся на решение без кодирования. Возможный?
2 ответа
Решение
Вам нужно назвать свой файл ресурсов ControlResources.ru-RU.resx
см . статью Андрея Торзена на эту тему.
Локализовать ToggleSwitch в Silverlight Toolkit можно с помощью 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:
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;
}
}
Подробнее здесь.