【问题标题】:Localize strings in XAML UI in UWP在 UWP 中本地化 XAML UI 中的字符串
【发布时间】:2023-03-17 23:22:01
【问题描述】:

我的 UWP 应用的 Resources.resw 文件中有一个名为 info_278 的资源条目。我有 3 个场景需要使用此资源,但看起来我需要复制它以适应不同的场景。场景如下。

  1. 来自代码的错误消息内容

    var displayErrorOnPopup = ResourceHandler.Get("info_278");

  2. XAML 中的 TextBlock Text 属性(看起来需要一个新条目,如 info_278.Text

    <TextBlock x:Uid="info_278" Margin="10,0,0,0" />

  3. 来自 XAML 的按钮内容属性(看起来需要一个新条目,如 info_278.Content

    <Button x:Uid="info_278" Margin="10,0,0,0" />

如何在不复制 .resw 文件中的此资源的情况下继续操作?


【问题讨论】:

  • 您想避免重复“info_278”字符串吗?
  • 是的。如果不能,我想知道我的选择。

标签: xaml uwp win-universal-app uwp-xaml windows-10-universal


【解决方案1】:

避免重复的唯一方法是使用ResourceLoader 在代码隐藏中设置字符串值。因为您可以直接访问目标控件的特定属性。像这样:

var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView();
this.TextBlock.Text = resourceLoader.GetString("info_278");

如果你不打算在后面的代码中做,那么我不得不说没有办法避免资源字符串的重复。您应该为不同的 XAML 场景添加 info_278.Textinfo_278.Content

【讨论】:

  • 您能否在此docs.microsoft.com/en-us/windows/uwp/app-resources/…的“注释”部分下进一步解释@
  • @SurenSaluka 你指的是哪个音符部分?红色音符部分?还是上面的注释部分?
  • 我引用“注意对于附加属性,您需要在”...这部分中使用特殊语法。很高兴看到一个使用本地化附加属性的示例。
  • @SurenSaluka 我不得不说我以前没有对附加属性使用本地化。所以我不能分享这个例子。
【解决方案2】:

ButtonContent 可以是TextBlock

<Button>
  <TextBlock x:Uid="MyTextId" Style="{StaticResource MyTextBlockStyle}" />
</Button>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    相关资源
    最近更新 更多