Tag: 全球化

如何将资源字符串组合用于validation属性错误消息?

如果我在validation属性上有错误消息,例如: 名字是必需的 姓氏是必需的 然后像这样的validation属性: [Required(ErrorMessageResourceName = “Error_FirstNameRequired”, ErrorMessageResourceType = typeof(Strings)] public string FirstName {get;set;} 我不想为每个实例做一个翻译。 有没有办法在格式化程序中组合资源字符串,例如: [Required(ErrorMessage = string.Format(“{0} {1}”, Strings.Label_FirstName, Strings.Error_IsRequired))] public string FirstName {get;set;} 当然这不起作用,因为它需要是一个编译时常量。 但是有没有实现这一点,以便我可以构建本地化的字符串并重用已经存在的字符串? 我想过只创建自定义属性,允许设置额外的属性并覆盖默认的输出消息,但这将是太多的重构和kludgy imo。 有任何想法吗?

ASP.Net核心MVC中的本地化无法正常工作 – 无法找到资源文件

在尝试本地化我的应用程序时,我遵循了以下步骤: https : //docs.asp.net/en/latest/fundamentals/localization.html 这是我的代码: Startup.cs public List RequestCultureProviders { get; private set; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddLocalization(options => options.ResourcesPath = “Resources”); services.AddMvc() .AddViewLocalization(options => options.ResourcesPath = “Resources”) .AddDataAnnotationsLocalization(); services.AddOptions(); services.AddTransient(); services.AddTransient(); } public void Configure(IApplicationBuilder […]

.Net中当前CultureInfo的距离单位

是否可以从CultureInfo类或System.Globalization命名空间中的任何其他类获取距离单位。 例如“en-GB”将是“mile”,“en-FR”将是“km”

外化WinForms应用程序的翻译?

我正在开发一个将在很多不同国家部署的应用程序,当然这意味着不同的语言。 问题是我不会自己翻译,也不会翻译其他开发者。 其中一个用户将翻译它,他将无法访问Visual Studio。 问题是,怎么做? 是否有工具可用于编辑resx文件并在应用程序的上下文中查看文本? 此外,是否可以将翻译文件添加到已编译的应用程序中?

MVC3全球化:在模型绑定之前需要全局过滤

目前,我有一个名为GlobalizationFilter的全局filter,它检查路由值,cookie和浏览器语言标题,以确定请求的正确文化设置: public override void OnActionExecuting(ActionExecutingContext filterContext) { // determine cultureInfo Thread.CurrentThread.CurrentCulture = cultureInfo; Thread.CurrentThread.CurrentUICulture = cultureInfo; } 这一切都有效,但模型绑定过程似乎发生在全局filter之前,因此模型绑定器不会考虑文化设置。 这会导致解释双值, DateTime值等问题。 我可以将文化检测代码移动到其他位置,但我不喜欢我的任何选择: 应用程序的BeginRequest事件。 此时路由尚未发生,因此我将不得不从URL手动取出/en-US/ culture标记。 这是不可接受的。 Controller的Initialize()方法。 这将迫使我为所有控制器编写基类,并从中inheritance现有的控制器。 我不喜欢这个,但如果没有更好的结果,我会选择这个解决方案。 理想情况下,我想找到一些方法在“路由完成”和“模型绑定开始”事件之间注入我的代码,但我在MSDN / Google上没有发现任何内容。 或者也许还有其他方法来处理我不知道的MVC3全球化? 在此先感谢任何贡献。

如何从CultureInfo获取国家/地区代码?

我有以下内容: System.Globalization.CultureInfo c = new System.Globalization.CultureInfo(“en-GB”); var a = c.DisplayName; var b = c.EnglishName; var d = c.LCID; var e = c.Name; var f = c.NativeName; var g = c.TextInfo; var h = c.ThreeLetterISOLanguageName; var i = c.ThreeLetterWindowsLanguageName; var j = c.TwoLetterISOLanguageName; 这些都没有给我国家代码,例如GB 。 有没有办法在没有字符串拆分的情况下获得它?

.NET RegionInfo类

当我尝试创建一个具有某些ISO 3166国家代码的新RegionInfo(孟加拉国的“BD”,索马里的“SO”,斯里兰卡的“LK”),我得到一个ArgumentException,表示它无法识别。 这是怎么回事? RegionInfo的Intellisense(字符串)表示它符合ISO 3166,但不支持这些国家/地区代码? 我不明白。

.NET全球化和卫星DLL

我正在努力本地化我用C#编写的应用程序。 一切似乎都很好用,使用卫星资源程序集来翻译每个表单的字符串(根据本教程: http : //msdn.microsoft.com/en-us/library/y99d1cd3%28VS.71%29.aspx ) 但是,应用程序最终将需要相当多的语言,这意味着我的工作目录中的目录(即/ zh-tw,/ zh-cn,/ fr-FR,/ ja-JP等)。 我想通过在/ languages或/ resources子目录中找到所有这些来清理它(换句话说,设置“附属程序集的基本路径”)。 但我搜索了高低,并且无法找到任何方法来定制这些附属组件的位置。 任何提示将非常感谢!

C#,Localization,Resources和MonoDevelop

我的问题是 :使用MonoDevelop(这是我正在处理的许多项目的首选环境)我正在试图找出如何使用资源文件来处理本地化消息以及如何将它们正确地包含在项目中作为嵌入式资源。 我的目标是为消息键及其值创建一个具有简单名称 – 值对的资源文件,并为其本地化字符串提供单独的文件,例如 Messages.resources Hello.World = Hello World Goodbye.Cruel.World = Goodbye, Cruel World Messages.de.resources Hello.World = Hallo Welt Goodbye.Cruel.World = Auf Wiedersehen, grausame Welt 我有几个问题。 首先 ,MonoDevelop的.resources文件和Visual Studio的资源概念之间有什么区别(如果有的话)。 据我所知,MonoDevelop(和SharpDevelop)允许您创建.resources文件,而Visual Studio使用.resx文件并通过resgen实用程序将它们编译成.resources文件(二进制文件类型)。 在MonoDevelop中使用资源时,我是否需要使用resgen编译我的资源(例如Messages.resources)? 当我尝试使用MonoDevelop允许我通过他们的向导创建的直接.resources文件时,我收到以下错误: “Stream不是有效的资源文件。” 其次 ,一旦我有一个适当生成的资源文件,我就可以将它们嵌入到我的项目中,如果我理解正确的话,它会使资源成为程序集的一部分。 如果我有两个文件,Messages.resources和Messages.de.resources,MonoDevelop(至少)在嵌入它们时为它们分配相同的ID值。 我是否需要在项目中包含我的默认本地化,然后为每个受支持的区域设置单独的项目? 接下来,C#如何区分我的Messages.resources和Messages.de.resources文件(或者它们是什么文件)? 我目前正在尝试使用以下代码解析我的消息资源: … public string Translate(string messageKey, CultureInfo cultureInfo) { ResourceManager resourceManager = new ResourceManager(“My.Project.Messages”, Assembly.GetExecutingAssembly()); […]

是否可以创建与所用键盘相同的键盘布局?

如果我需要为看起来像他/她的键盘的用户生成用于自定义的键盘布局,我该怎么办? 例如这样的事情: 法语,瑞典语,英语,加拿大等将有不同的布局,对吧。 这是很多工作还是只是使用某种内置.NET区域类的问题?