问题标签 [asp.net-core-localization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 模型验证错误定位
我正在开发一个 ASP.Net Core Web 应用程序,需要本地化我们在应用程序中使用的所有静态字符串。
我通过IStringLocalizerFactory
在 Startup.cs 中实现并将其添加为服务来本地化控制器和视图字符串。
我现在尝试在使用注释时向模型验证添加本地化。在我的用户模型中,我有
我在 UserModelErrorMessage.resx 文件中放置了“FullNameRequired”、“FullNameMinLength”、“FullNameMaxLength”。我还有一个 UserModelErrorMessage.fr.resx 文件,它具有相同的值但法语等效消息。当浏览器设置为英语时,会显示正确的错误消息。当我将浏览器切换为使用法语 ('fr') 语言时,我在视图和控制器中定义的静态字符串以法语显示,但数据验证消息仍以英语显示。我已经尝试过 Models.User.fr.resx 并且还手动生成了 .resource 文件,但都无济于事。
在 Startup.cs 配置服务中:
在 Startup.cs - 配置
在法语中获取数据注释验证消息时我缺少什么?
c# - 在 ASP.NET Core 中使用 NumberFormat 属性
ASP.NET Core 中的本地化系统发生了很大变化。在CurrentCulture
当前线程中不再可用。
我正在尝试按照此处的说明设置NumberFormat
属性,以自定义显示货币的格式,但显然这种方式不再可能。那么如何设置属性呢?CurrentCulture
NumberFormat
CurrentCulture
在 asp.net core 之前用于此的代码:
然后例如在我想要做的代码中的某个地方:
并期望numberFormat
应用这些设置。
localization - 了解 MVC6 RC1 中的资源文件
我一直在努力思考如何最好地在 MVC6 中为多种语言实现资源文件,但由于每个版本的变化让我对如何正确实现它们感到有点困惑。需要什么,有什么限制?
我看过的几篇文章:
https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/
http://pratikvasani.github.io/archive/2015/12/25/MVC-6-localization-how-to/
我正在尝试设置资源文件,以便我的用户可以使用英语和德语,这将基于浏览器设置或他们帐户中的个人设置。
实现这一目标的最佳方法是什么?
提前致谢!
编辑:
因此,根据文章,我在 Startup.cs 中添加了以下代码:
然后在 Resources 文件夹中,我创建了带有文件名的新 resx 文件:
“Views.Shared._LocalizationTest.en-US.resx”
“Views.Shared._LocalizationTest.de-DE.resx”
我的部分观点如下:
我似乎仍然缺少一些东西,因为我正在显示“TestString”而不是“Test String”来显示英语或“German: Test String”(根据我的资源文件)。
有任何想法吗?
c# - 在单独的项目 Asp.net Core MVC 中进行本地化
我刚刚升级到 Rc2,以前的工作不再起作用。我在一个单独的项目中有几个 resx 文件,我使用自定义类来访问数据。现在运行它时出现以下错误:
MissingManifestResourceException:找不到适合指定区域性或中性区域性的任何资源。确保“GarageWeb.Core.CoreResources.resources”在编译时正确嵌入或链接到程序集“GarageWeb.Core”中,或者所有所需的附属程序集都是可加载的并且完全签名。
编辑:我对此进行了简化并创建了一个控制台应用程序,该应用程序被剥离了所有内容,但在此处重现错误所需的内容:https ://github.com/GarageWeb/ResourceTest
这是访问资源的类:
它在这里失败: var本地化字符串 = _coreGlobalResources.ResourceManager.GetString(resourceKey);
有任何想法吗?有没有新的方法来嵌入这些资源?
asp.net-core - 更改默认文化/十进制本地化
尝试使用作为小数属性的视图模型时遇到问题。因为我的十进制区域/文化格式使用“,”而不是“。” 作为小数分隔符。
当我尝试发布该模型时,出现以下错误:
值 xxx 对“字段”无效。
我正在使用 jquery.unobtrusive 和 jquery.validation。因此,当我进行提交时,模型得到验证,并且错误显示为带有上述错误的标签。
问题是,该属性没有任何类型的属性(必需、正则表达式、范围)。因此,在尝试将字符串解析为十进制时,中间件/框架会产生该错误。
如果我输入一个小数点,如:40.05,表单提交成功。
如果我输入一个小数点:40,05,表单提交失败并出现上述错误。
我已经在以下位置阅读了有关全球化的信息:
https://docs.asp.net/en/latest/fundamentals/localization.html#globalization-and-localization-terms
但找不到设置我的全球化文化的“路径”。在 MVC4/5 中,我们习惯于在 system.web 中添加 web.config 标签,仅此而已。但在 MVC6 上,这似乎不是这样。
有小费吗?
asp.net-core - ASP.NET Core DisplayAttribute 本地化
根据文档:
运行时不会查找非验证属性的本地化字符串。在上面的代码中,“电子邮件”(来自 [Display(Name = "Email")])将不会被本地化。
我正在寻找一种方法来本地化 DisplayAttribute 中的文本。有什么建议可以以正确的方式进行吗?
localization - 无法在 ASP.Net Core 应用程序中设置默认和唯一文化
我正在研究波兰操作系统:
在我的Statup.cs
课堂上,我有以下代码
完整选项仅供参考,以确保没有设置任何内容。在我的_Layout.cshtml
我有以下代码:
唯一受支持和可用的文化应该是en-GB
,但是在网站上它总是显示:
我试图添加Microsoft.AspNet.Localization
包,但它没有区别。基于本地化中间件中的代码,一切都应该按预期工作。我正在运行最新版本的 ASP.NET Core 1.0.0。
c# - 如何将 C# 资源文件字符串转换为方法而不仅仅是属性?
例如,EntityFramework Microsoft.EntityFrameworkCore.Relational 项目在资源文件中有以下文本:
生成以下 C# 代码:
但是当我在 VS 中编辑文件并保存它时,我只会生成简单的属性,例如:
有问题的文件可以在这里找到:
那么问题又来了——他们是怎么做到的,我怎么能得到同样的结果?
asp.net-core - ASP .NET Core 1.0 RTM 本地化不起作用
我一直在尝试按照microsoft 文档为我的 asp .NET Core 1.0 RTM Web 应用程序实现本地化,但我无法让它工作。我遇到的问题是,无论我如何尝试设置文化,它总是显示来自英语资源文件的字符串。
如果有人有 5 分钟的时间,我将非常感谢您的意见。
这是我关于本地化的 Startup.cs 内容:
这就是我在 ActionFilter 中改变 OnActionExecuting 内部文化的方式
我也试过在我的控制器上这样做,但没有运气。
然后在我看来,我用.@inject IViewLocalizer Localizer
来显示本地化字符串@Localizer["Name"]
。
我的资源位于Resources/Views/ControllerName文件夹中,如下所示:
- 资源/视图/ControllerName/ViewName.en.resx
- 资源/视图/ControllerName/ViewName.sl.resx
- ...
无论我如何尝试改变文化,显示的字符串始终来自.en资源文件。有什么我想念的吗?还有什么我应该做的吗?看来我遇到的问题是设置语言。根据文档,您应该将cookie设置为Response.Cookies.Append
,但我也尝试过CultureInfo.CurrentCulture
as Thread.CurrentThread.CurentCulture
is not awailable 。
我真的不知道我错过了什么。有什么想法吗?
asp.net-core - 如何为视图设置后备资源文件
使用IViewLocalizer
我想使用默认或备用资源文件来实现视图本地化,用于出现在多个页面上的单词和短语,例如编辑、添加、删除......我不想在资源文件中添加这些重复的短语它们出现的所有视图,因此后备资源文件真的会派上用场,但我似乎找不到任何解决方案来解决这个问题。
目前我正在使用@inject IViewLocalizer Localizer
我的视图,并且我正在@Localizer["ResourceName"]
从资源文件中获取本地化的短语:
资源/视图/{ControllerName}/{ViewName}.{langCode}.resx
这适用于每个单独的视图和部分视图。现在我想在Resources/Views
orResources
文件夹中有一个资源文件作为后备资源文件。
因此,例如,如果我在我的一个视图中说,并且在or@Localizer["Edit"]
中找不到“编辑”资源,它会回退到这个默认文件,以便我可以在需要资源“编辑”的所有视图上使用它。Resources/Views/{ControllerName}/{ViewName}.{langCode}.resx
Resources/Views/{ControllerName}/{ViewName}.resx
我已经尝试过,Resources/Resource.{langCode}.resx
但似乎没有效果。