首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPFLocalizationExtension没有翻译第一个控件(代码后面)

WPFLocalizationExtension没有翻译第一个控件(代码后面)
EN

Stack Overflow用户
提问于 2017-07-13 11:26:50
回答 1查看 533关注 0票数 0

因此,尝试使用wpf本地化扩展。

我们的按钮/控件都将它们的in存储在后面的代码中,因此,我最终创建了一个翻译服务来翻译代码后面的代码。因此,它只是绑定完成的翻译。

在外部组处理翻译时,我们还将翻译存储在单独的项目中。因此,我的翻译方法设置如下。

代码语言:javascript
复制
private string Translate(string id)
{
    string uiString;

    var locExtension = new LocTextExtension
    {
        Key = "XXX.UI.Resources",
        ResourceIdentifierKey = id
    };

    locExtension.ResolveLocalizedValue( out uiString );
    return uiString ?? id;
}

然而,当我的页面被加载时,它似乎并没有翻译页面上的第一个按钮。第一个按钮返回为Buttun_BtnTxt,而不是转换的值。我试过交换哪个按钮是列表中的第一个按钮,而且总是第一个失败的按钮。

如果我添加了一些重试功能,它仍然会失败。(将上述代码放入while循环,检查== null,然后重试50000次)

如果我从第一页导航,所有其他页面都会很好地加载,如果我回到它,翻译也会很好。只是我不明白为什么它没有第一次翻译过来。

有没有人曾经做过这样的事,也有过同样的问题?

又看了一眼。添加了检查加载程序集的代码。在第一次运行时(在失败的地方),这是当前资源的唯一实例。

代码语言:javascript
复制
XXX.UI.Resources, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null

第一次尝试失败后,我再次检查程序集,现在也出现了以下条目。

代码语言:javascript
复制
XXX.UI.Resources.resources, Version=0.0.0.0, Culture=de-DE, PublicKeyToken=null
XXX.UI.Resources.resources, Version=0.0.0.0, Culture=ja-JP, PublicKeyToken=null
XXX.UI.Resources.resources, Version=0.0.0.0, Culture=zh-Hans, PublicKeyToken=null

不知道为什么加载延迟,也不知道这是否是导致问题的原因。但这是我现在唯一能想到的。

EN

回答 1

Stack Overflow用户

发布于 2017-07-13 13:26:56

终于弄明白了。我仍然需要在我的xaml中有以下内容。

代码语言:javascript
复制
xmlns:lex="http://wpflocalizeextension.codeplex.com"
lex:LocalizeDictionary.DesignCulture="en"
lex:ResxLocalizationProvider.DefaultAssembly="XXX.UI.Resources"
lex:ResxLocalizationProvider.DefaultDictionary="Resources"

至少有一次,如果没有它,本地化的东西根本不起作用,即使您是在后面的代码中进行本地化。

它之所以没有翻译第一个控件,是因为它首先要通过VM,然后在调用此代码的xaml中找到它。之后,代码背后的翻译工作得很好。

把那个xaml移到我的shellview视图中,一切都很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45079273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档