【问题标题】:Stuck with localization using resource files坚持使用资源文件进行本地化
【发布时间】:2010-12-31 18:26:22
【问题描述】:

我对基于 resx 的本地化有一个非常奇怪的问题。
首先,让我解释一下,它现在是如何为我完成的。
它是 ASP.NET MVC 项目。我有两个程序集:网络和域。 Web 包含所有与 MVC 相关的东西,并且域,嗯,包含域类。此外,在域组装中,我存储了大量用于本地化的静态资源(我正在构建具有 3 种不同语言的站点)。

所以我在这个域程序集中有本地化文件夹,并且有如下文件:
CheckoutStrings.resx、CheckoutStrings.en-US.resx、CheckoutStrings.et-EE.resx 等等。

现在奇怪的是,这一切在我的本地机器上使用 VS 开发服务器和 IIS 7.5 运行得非常好。但是当我将解决方案上传到我的 Web 服务器(即 Windows Server 2008 R2,所以它也是 IIS 7.5)时,我的本地化突然停止工作。

我试着输出

Thread.CurrentThread.CurrentUICulture

在我看来,就在输出本地化字符串之前。
它给了我选择的文化,这是正确的,但是字符串被呈现为后备值,而不是本地化的。

我真的被困在这里,希望任何人都知道发生了什么......

【问题讨论】:

    标签: asp.net-mvc localization embedded-resource


    【解决方案1】:

    可能是根本找不到本地化文件,而您正在回退到“默认语言”吗?您是否可能在服务器上部署到 GAC,但从 /bin 文件夹中运行它,并在您的开发机器上使用子文件夹? 您是否尝试过使用 fuslogvw.exe 来查看代码的来源?

    请注意,要查看附属程序集的负载,您必须执行一些注册表“黑客”-http://msdn.microsoft.com/en-us/library/e74a18c4(VS.71).aspx

    记录绑定失败到卫星 装配体设置 HKLM\Software\Microsoft\Fusion\LogResourceBinds 注册表值为 1(该值为 双字)。

    【讨论】:

    • 1.怎么会找不到呢? 2. 不,我没有部署到 gac 3. 以前从未听说过 fuslogvw,感谢您的提示!
    • 我已经将 LogResourceBinds 设置为 1,就像你说的那样,之后 fuslogvw 显示了一些绑定日志,但没有特定于我的应用程序。我的域程序集中的其他东西肯定可以工作,所以我想不出任何不加载嵌入式资源的原因。真正让我印象深刻的是它可以在本地机器上运行,而不是在服务器上。
    • 我发现,像往常一样,这是我的错误。我们使用 svn/export 来部署站点,不知何故 svn 没有看到新生成的卫星程序集。所以 IIS 只加载没有卫星的域 dll。
    • 很高兴听到您发现了这个错误。
    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多