在XAML中本地化类型参数(例如x:String)
一个人可以翻译字符串、图像等。大多数情况下,您都可以这样做:在XAML中本地化类型参数(例如x:String),xaml,xamarin,localization,internationalization,xamarin.forms,Xaml,Xamarin,Localization,Internationalization,Xamarin.forms,一个人可以翻译字符串、图像等。大多数情况下,您都可以这样做: <Label Text="{i18n:Translate NotesLabel}" /> 这里我们使用标记。如何在XAML中本地化这些类型参数?或者这只能在代码中实现吗?我还没有尝试过,但这可能会奏效: 要使其与上的XamlC一起工作,您可能必须从以下位置修复TranslateExtension的签名: 公共类TranslateExtension:IMarkupExtension 致: 公共类TranslateEx
<Label Text="{i18n:Translate NotesLabel}" />
这里我们使用
标记。如何在XAML中本地化这些类型参数?或者这只能在代码中实现吗?我还没有尝试过,但这可能会奏效:
要使其与上的XamlC
一起工作,您可能必须从以下位置修复TranslateExtension
的签名:
公共类TranslateExtension:IMarkupExtension
致:
公共类TranslateExtension:IMarkupExtension
并实现新的接口:
string IMarkupExtension.ProvideValue(IServiceProvider服务提供者)
{
...
返回翻译;
}
对象IMarkupExtension.ProviderValue(IServiceProvider服务提供者)
{
return(作为IMarkupExtension)。ProvideValue(serviceProvider);
}
现在我尝试了你的方法。在这里,当选择器的第一个翻译项在字符串IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
和对象IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)处返回时,我得到了System.Reflection.targetingException
。没有上下文的异常没有帮助。它可能看起来像一只虫子。请将该文件归档到bugzilla,我们将对其进行查看现在我创建了一个新项目,在这里我得到了System.ArgumentException:类型为“ProjectName.TranslateExtension”的对象无法转换为类型为“System.String”。
我也尝试了该示例,并得到了相同的错误消息。你好,Stephane。在XF的最新版本中,这种翻译似乎工作得很好。唯一缺少的是在XAML中转换为String
。我该怎么做?
<Picker x:Name="IndustryTypePicker1" SelectedIndex="{Binding Industry}" HorizontalOptions="FillAndExpand">
<Picker.Items>
<x:String>1</x:String>
<x:String>2</x:String>
</Picker.Items>
</Picker>