我有一个 Windows Phone 应用程序,想要将其本地化。因为我从服务器上运行时下载翻译,所以不能使用 AppResources。我想要做的是创建一个转换器,将键转换为翻译值中的字符串。 类似于:
Text="{"STRING_OK", Converter={StaticResource TranslationConverter}}"
当然,这段代码无法编译,但有没有解决方法?我该如何使用转换器来转换硬编码的值?
我有一个 Windows Phone 应用程序,想要将其本地化。因为我从服务器上运行时下载翻译,所以不能使用 AppResources。我想要做的是创建一个转换器,将键转换为翻译值中的字符串。 类似于:
Text="{"STRING_OK", Converter={StaticResource TranslationConverter}}"
另一个可能的解决办法比创建MarkupExtension
更简单,就是将硬编码的值设置为转换器参数。无论如何,正如@KingKing所指出的那样,我们仍需要绑定才能使用Converter
。我们可以让转换器忽略通过绑定传递的值,只考虑ConverterParameter
在转换逻辑中的作用:
Text="{Binding Converter={StaticResource TranslationConverter},
ConverterParameter=STRING_OK}"
文本="{Binding Path=LocalizedResources.TextLabelLocale, Source={StaticResource LocalizedStrings},Converter={StaticResource TranslationConverter}}"
public class LocalizedStrings { public LocalizedStrings() { }
private static sdkGlobalizationCS.AppResources localizedResources = new sdkGlobalizationCS.AppResources();
public sdkGlobalizationCS.AppResources LocalizedResources { get { return localizedResources; } }
}