我正在尝试使用这篇博文中的建议获取针对 Asp.Net Identity 的瑞典语本地化错误消息:How to localize ASP.NET Identity UserName and Password error messages?
使用 NuGet 我下载了德语语言包,然后在 dotPeek 中打开\packages\Microsoft.AspNet.Identity.Core.2.0.0\lib\net45\de\Microsoft.AspNet.Identity.Core.resources.dll 然后将其导出到新的 VS 项目:
https://github.com/nielsbosma/AspNet.Identity.Resources.Swedish/
我已将生成的\Microsoft.AspNet.Identity.Core.resources.dll 复制到\packages\Microsoft.AspNet.Identity.Core.2.0.0\lib\net45\se 下的新文件夹中。
当我在本地运行我的站点时,我看到 Microsoft.AspNet.Identity.Core.resources.dll 已被复制到 MySite\bin\sv\
但是我无法让它工作:(
如果我在我的 Web.config 中设置:
<system.web>
...
<globalization culture="sv-SE" uiCulture="sv" />
</system.web>
我仍然收到英文默认错误消息。但是,如果我更改为从 NuGet 包含的德语,我会收到德语错误消息。
我使用 dotPeek 将我的 dll 与德语进行了比较,它们是相同的,除了我有 PublicKeyToken=null 而德语的是“31bf3856ad364e35”。这可能是我无法加载我的 dll 的原因吗?无论如何要为 dll 设置 PublicKeyToken 吗?任何解决方法?
感谢您的指点。
最佳答案
除非您拥有 Microsoft 用于签署 dll 的私钥。
更新:作为一种解决方法,直到我们添加对插入您自己的资源的支持,您现在可以使用显式开关包装所有默认身份结果错误消息,应该只有大约 10-20 个用户面临错误。
类似于:
public static string Localize(string error) {
switch (error) {
case "<english error>": return "<localized version";
}
}
关于c# - Asp.Net 身份本地化 PublicKeyToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22835981/