UWP C# Localization
本文关键字:Localization UWP | 更新日期: 2023-09-27 17:58:39
所以我对开发世界还很陌生,我已经知道如何在XAML上本地化了[只需输入一个x:Uid,非常简单]。但我如何在代码上做到这一点?我已经尝试了一些东西,但没有成功。有人能帮我吗?这是我试图分配的代码:
private void OnShowLoadingChanged(Visibility newVisibility)
{
ui_progressRing.IsActive = newVisibility == Visibility.Visible;
ui_progressRing.Visibility = Visibility.Visible;
ui_textBlock.Text = "Loading Comments";
PlayAnimation(newVisibility);
}
显然是Loading Comments字符串,我知道我必须使用GetString,但我只是做得不对。。。
您需要一个资源加载器,但您可以获得一个并像这样重用它:
private ResourceLoader MyResourceLoader
{
get
{
if (_resourceLoader == null)
_resourceLoader = new ResourceLoader();
return _resourceLoader;
}
}
private ResourceLoader _resourceLoader { get; set; }
那只是
MyResourceLoader.GetString(key)
在资源文件中,设置了[tbImage.Text]、[imgMain.Source]。您可以在xaml中使用x:Uid。在c#方法中,要根据语言获取资源,可以使用以下代码片段:
ResourceContext resourceContext = new ResourceContext();
resourceContext.Languages = new string[] { language };
ResourceMap resourceMap = ResourceManager.Current.MainResourceMap.GetSubtree("Resources");
string imageSource= resourceMap.GetValue("imgMain/Source", resourceContext).ValueAsString;
this.imgMain.Source = new BitmapImage(new Uri(imageSource, UriKind.RelativeOrAbsolute));
this.tbImage.Text = resourceMap.GetValue("tbImage/Text", resourceContext).ValueAsString;
MSDN中有一个关于UWP本地化的示例。https://code.msdn.microsoft.com/how-to-create-a-localizatio-c61f4b37