StringFormat中的Xamarin XAML多语言

StringFormat中的Xamarin XAML多语言,xaml,xamarin,string-formatting,Xaml,Xamarin,String Formatting,我在Xamarin中有一个简单的(Android)应用程序。 直到现在,它只使用一种语言,现在我添加了第二种语言的翻译。我使用resource.resx文件,并在XAML中使用它,如下所示: <Span Text="{x:Static resource:AppResources.Text1}" /> 其中,Text1是从资源文件加载的(取决于语言)。 我不知道如何在下一行中做类似的事情,在下一行中,我使用绑定和StringFormat: <Label Text="{Bi

我在Xamarin中有一个简单的(Android)应用程序。 直到现在,它只使用一种语言,现在我添加了第二种语言的翻译。我使用resource.resx文件,并在XAML中使用它,如下所示:

<Span Text="{x:Static resource:AppResources.Text1}" /> 

其中,Text1是从资源文件加载的(取决于语言)。 我不知道如何在下一行中做类似的事情,在下一行中,我使用绑定和StringFormat:

<Label Text="{Binding Datum, StringFormat='Some text: {0}'}" />

我试过:

<Label Text="{Binding Datum, StringFormat='{x:Static resource:AppResources.Text2} {0}'}" />

但它不起作用


有什么想法吗?

使用跨距组合数据和文本

<Label>
  <Label.FormattedText>
    <FormattedString>
      <Span Text="{x:Static resource:AppResources.Text1}" />
      <Span Text="{Binding Datum}" />
    </FormattedString>
  </Label.FormattedText>
</Label>


您可以使用本地化资源翻译静态文本。如果您有动态文本,那么这种方法不起作用。什么类型的数据是“数据”?数据(英语中的日期)是字符串。如果动态文本不能以这种方式使用,您有什么建议?XAML中是否存在任何可能的IF(取决于设备语言)?如果是DateTime,则.NET将根据设备的区域设置对其进行本地化和格式化。如果您需要在DateTime旁边的标签中包含一些本地化文本,则可以将其拆分为多个跨距,并使用本地化资源仅对文本进行本地化