在 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 中本地化这些类型参数?或者这只能在代码中实现?
最佳答案
我没有尝试过,但这可行:
<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>
并实现新接口(interface):
string IMarkupExtension<string>.ProvideValue(IServiceProvider serviceProvider)
{
...
return translation;
}
object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
{
return (this as IMarkupExtension<string>).ProvideValue(serviceProvider);
}
关于xaml - 本地化 XAML 中的类型参数(例如 x :String),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491246/