当我尝试本地化时,字符串在应用程序中不可见

问题描述 投票:0回答:1

在 xaml 文件中,我使用此代码定义了按钮

xaml page

在“Resources.resw”文件中我是这样定义的。该文件位于不同的类库中。

resources.resw page

但是该字符串在应用程序中不可见。如果 Resources.resw 位于同一项目中,则不会出现此问题中创建的 xaml 文件。但是我不能将它保留在同一个项目中,必须移动到另一个类库。

这就是文件的定义方式,

C:\Users nnes\Desktop\localization\UWP\Main\WinApp\View\UserControl\URLUserControl.xaml C:\Users nnes\Desktop\localization\UWP\Main\WinAppUtil\Strings n-US\Resources.resw

我该如何解决这个问题?还有其他替代方法吗?

我认为出现此问题是因为类库命名空间未在 xaml 文件中引用。不过,我已将类库依赖项添加到项目中。

windows xaml uwp localization uwp-xaml
1个回答
0
投票

根据文档从类库或Windows运行时库加载字符串,此类字符串的资源标识符通常采用LibraryName/ResourcesFileName/ResourceIdentifier的形式。库可以为自己的资源获取ResourceLoader。

对于您的场景,您可以使用

ResourceLoader
加载字符串,或直接在 xaml 中使用资源。

<Button
      x:Name="NextButton"
      Margin="0,0,0,0"
      HorizontalAlignment="Center"
      Click="NextButton_Click"    
      x:Uid="/<YourClassLibraryName>/<ResourcesName>/NextContent" 
      FontWeight="SemiBold"/>

var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView("<YourClassLibraryName>/<ResourcesName>/NextContent");
this.NextButton.Content = resourceLoader.GetString("Content");

<data name="NextContent.Content" xml:space="preserve">
   <value>Next</value>
</data>
© www.soinside.com 2019 - 2024. All rights reserved.