在 UWP 中本地化 XAML UI 中的字符串
Localize strings in XAML UI in UWP
我的 UWP 应用程序的 Resources.resw
文件中有一个名为 info_278
的资源条目。我有 3 个场景需要使用此资源,但看起来我需要复制它以满足不同的场景。场景如下。
来自代码的错误消息内容
var displayErrorOnPopup = ResourceHandler.Get("info_278");
来自 XAML 的文本块文本 属性(看起来需要一个新条目,因为 info_278.Text)
<TextBlock x:Uid="info_278" Margin="10,0,0,0" />
来自XAML的按钮内容属性(看起来像info_278.Content需要一个新条目)
<Button x:Uid="info_278" Margin="10,0,0,0" />
如何在不在 .resw
文件中复制此资源的情况下继续操作?
避免重复的唯一方法是使用 ResourceLoader 在代码隐藏中设置字符串值。因为您可以直接访问目标控件的特定属性。像这样:
var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView();
this.TextBlock.Text = resourceLoader.GetString("info_278");
如果你不打算在后面的代码中这样做,那么我不得不说没有办法避免资源字符串的重复。您应该为不同的 XAML 场景添加 info_278.Text 和 info_278.Content。
Button
的Content
可以是TextBlock
:
<Button>
<TextBlock x:Uid="MyTextId" Style="{StaticResource MyTextBlockStyle}" />
</Button>
我的 UWP 应用程序的 Resources.resw
文件中有一个名为 info_278
的资源条目。我有 3 个场景需要使用此资源,但看起来我需要复制它以满足不同的场景。场景如下。
来自代码的错误消息内容
var displayErrorOnPopup = ResourceHandler.Get("info_278");
来自 XAML 的文本块文本 属性(看起来需要一个新条目,因为 info_278.Text)
<TextBlock x:Uid="info_278" Margin="10,0,0,0" />
来自XAML的按钮内容属性(看起来像info_278.Content需要一个新条目)
<Button x:Uid="info_278" Margin="10,0,0,0" />
如何在不在 .resw
文件中复制此资源的情况下继续操作?
避免重复的唯一方法是使用 ResourceLoader 在代码隐藏中设置字符串值。因为您可以直接访问目标控件的特定属性。像这样:
var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView();
this.TextBlock.Text = resourceLoader.GetString("info_278");
如果你不打算在后面的代码中这样做,那么我不得不说没有办法避免资源字符串的重复。您应该为不同的 XAML 场景添加 info_278.Text 和 info_278.Content。
Button
的Content
可以是TextBlock
:
<Button>
<TextBlock x:Uid="MyTextId" Style="{StaticResource MyTextBlockStyle}" />
</Button>