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,但我只是做得不对。。。

UWP C# Localization

您需要一个资源加载器,但您可以获得一个并像这样重用它:

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