在Localizing Xamarin.Forms Apps with RESX Resource Files中,可以翻译字符串,图像等。你大部分时间都可以这样做:
<Label Text="{i18n:Translate NotesLabel}" />
现在我想使用Picker
:
<Picker x:Name="IndustryTypePicker1" SelectedIndex="{Binding Industry}" HorizontalOptions="FillAndExpand">
<Picker.Items>
<x:String>1</x:String>
<x:String>2</x:String>
</Picker.Items>
</Picker>
我们在这里使用<x:String>
标签。如何在XAML中本地化这些类型参数?或者这只能在代码中使用吗?
答案 0 :(得分:2)
我没有尝试过,但这可行:
<Picker>
<Picker.Items>
<i18n:TranslateExtension Text="1" />
<i18n:TranslateExtension Text="2" />
</Picker.Items>
</Picker>
要使其与XamlC
一起使用,您可能需要修复TranslateExtension
的签名:
public class TranslateExtension : IMarkupExtension
为:
public class TranslateExtension : IMarkupExtension<string>
并实现新界面:
string IMarkupExtension<string>.ProvideValue(IServiceProvider serviceProvider)
{
...
return translation;
}
object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
{
return (this as IMarkupExtension<string>).ProvideValue(serviceProvider);
}