Tag: 本地化

StreamReader抱怨该文件不存在,但它确实存在

我有一个本地化的应用程序,可以在整个欧洲使用。 我有一个菜单选项从磁盘加载文件。 此操作在我的开发机器上正常工作但在我用于测试其他操作系统的虚拟机上不起作用_例如法语,西class牙语等。 StreamReader尝试打开文件时生成FileNotFoundException。 它说“’找不到文件C:\ Program Files \ MyCompany \ MyTool \ bin \ Files \ debug.txt’” 事实是,文件确实存在,位于正确的位置并且文件名正确。 目标(法语)操作系统上的目录名称与开发机器相同。 有任何想法吗? string ourPath = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName); try { System.IO.StreamReader sr = System.IO.File.OpenText(ourPath + @”\bin\Files\debug.txt”); string input = null; while ((input = sr.ReadLine()) != null) { m_text.Append(input); } sr.Close(); } catch (System.IO.FileNotFoundException) { MessageBox.Show(“LoadDebugOptions: File Not Found: ” […]

C#类库本地化

我需要在类库中快速介绍本地化 我不想从用户上下文中提取语言环境,而是将用户存储在数据库中,并且他们的语言环境也在数据库中设置…. 我在类库中的函数已经可以从db中的用户配置文件中提取语言环境代码…现在我想根据语言环境包含使用resx … 我需要几个步骤来正确地做到这一点…… 是的 – 我已经搜索了这个和一些研究,但我能找到的所有教程都太复杂了,无法满足我的需求。

如何在c#中本地化属性描述?

我正在开设一个将被其他国家的一些人使用的课程。 我必须将每条消息本地化,警告ec以便他们能够理解我们的意思。 在许多情况下,我实现了我的目标。 但是像描述这些属性属性在屁股上是如此痛苦。 这就是我现在所拥有的: [Category(“Editable Values”), Description(“Sets the minimum select…”)] public Ampere Simin { get {…} set {…} } 和 [Category(“Editable Values”), Description(Localisation.Simin)] // “Localisation” here is the internal resource file that i wrote for messages, warnings, exceptions and -unfortunately- descriptions public Ampere Simin { get {…} set {…} } 这就是我想要做的。 但是不可能以这种方式使用Localisations。 有关我可以使用的东西的任何建议而不是它吗?

DataAnnotation与自定义ResourceProvider

我创建了一个自定义ResourceProvider来从数据库中提取本地化信息。 我现在想使用DataAnnotation为模型添加validation。 DataAnnotation具有ErrorMessageResourceType和ErrorMessageResourceName属性,但ErrorMessageResourceType仅接受System.Type (即已编译的资源文件) 有没有办法让DataAnnotation使用自定义ResourceProvider?

ASP.NET核心模型绑定错误消息本地化

我正在使用ASP.NET Core,并尝试本地化应用程序。 我设法使用新的 asp .net核心资源来本地化控制器和视图,并使用旧资源来本地化错误消息以进行模型validation。 但是,当错误消息未链接到模型字段注释(如“必需”)并且模型绑定的数据不正确时(如预期数字的文本),我收到如下错误,我是无法本地化: “值’abc’对ID无效。” 当我在View为ID属性输入abc ,由于无法对该字段进行模型绑定,并且它在该字段附近显示validation消息,因此说“值’abc’对于ID无效。” 。 这是我正在使用的课程: public class Country : IHasID { public int ID { get; set; } [Required(ErrorMessageResourceType = typeof(L.Val), ErrorMessageResourceName = “NameR”)] [MaxLength(100, ErrorMessageResourceType = typeof(L.Val), ErrorMessageResourceName = “Max”)] public string Name { get; set; } /*Some other properties*/ } 我在互联网上发现的类似问题是针对较旧的asp .net版本,否则无法帮助我解决问题。

asp.net mvc本地化

我正在尝试使用路由实现本地化 我有以下内容: routes.MapRoute( “DefaultLocalized”, “{lang}/{controller}/{action}/{id}”, new { controller = “Home”, action = “Index”, id = “”, lang = “en” } ); routes.MapRoute( “Default”, “{controller}/{action}/{id}”, new { controller = “Home”, action = “Index”, id = “” } ); 当我调用我的页面domain/en/home/index ,它工作正常,但是当我调用domain/home/index我得到错误404:找不到资源。 此外,当我在domain/en/home/index并且我点击一个安全页面时,我被重定向到domain/Account/login ,我如何被重定向到domain/en/Account/login ? 另外,当我收到应用程序错误时,如何将其重定向到domain/en/home/error ? 真正的问题是如何使用语言作为路由参数实现本地化?

英语桌面C#.net应用程序中的阿拉伯语本地化

我正在构建一个企业C#.net应用程序,要求是将有阿拉伯语和英语版本。 客户可以选择2个选项,可以将英语和阿拉伯语一起用于标签和说明,也可以在开始时使用英语和阿拉伯语进行combobox选择并继续使用该语言。 我想节省我的时间,并希望我可以建立一个英文版本,阿拉伯语必须自动翻译。 提前致谢。

十进制与千位分隔符串联?

考虑一个Decimal值: Decimal value = -1234567890.1234789012M; 我想将此Decimal值转换为字符串,并包含“千位分隔符” 。 注意:我不想包括千位分隔符 ,我想包括数字分组 。 对于没有将数字分组为数千的文化,或者不使用逗号分隔组,差异很重要 在我的计算机上使用我当前的语言环境输出具有不同标准格式字符串的示例: value.ToString() = -1234567890..1234789012 (Implicit General) value.ToString(“g”) = -1234567890..1234789012 (General) value.ToString(“d”) = FormatException (Decimal whole number) value.ToString(“e”) = -1..234568e++009 (Scientific) value.ToString(“f”) = -1234567890..123 (Fixed Point) value.ToString(“n”) = -12,,3456,,7890..123 (Number with commas for thousands) value.ToString(“r”) = FormatException (Round trippable) value.ToString(“c”) = -$$12,,3456,,7890..123 (Currency) value.ToString(“#,0.#”) = […]

尝试为当前语言设置小数分隔符,获取“Instance is Only Only”

我的代码最初是为英语市场编写的,小数分隔符是“。” 所以它期望数值作为字符串使用“。” 作为分隔符。 但是我们现在在其他地方有用户,例如,小数分隔符为“,”的欧洲地区。 因此,在我的软件(实际上只是当前线程)的上下文中,我想要将当前语言的小数分隔符覆盖为“。”。 即使它默认为其他东西。 我试过了 String sep = “.”; NumberFormatInfo nfi1 = NumberFormatInfo.CurrentInfo; nfi1.NumberDecimalSeparator = sep; 但是我在第三行得到了“ Instance is read-only ”exception。 显然,NumberFormatInfo不可写。 那么如何将当前语言的小数分隔符设置为默认值以外的其他值?

如何正确设置Silverlight CurrentUICulture / CurrentCulture?

我正在使用C#开发SL5应用程序,我希望将其国际化。 我发现以下内容来设置UI文化: var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName); Thread.CurrentThread.CurrentUICulture = culture; Thread.CurrentThread.CurrentCulture = culture; 像DatePicker这样的控件似乎可以选择它。 如果我使用’d’格式字符串格式化任何日期时间,我仍然会得到默认格式“M / dd / yyyy”。 SL究竟如何解释文化以及如何为整个应用程序正确设置? 谢谢 更新: 找到答案: 首先,在Application_Startup中设置适当的文化: var culture = new CultureInfo(“nl-BE”); Thread.CurrentThread.CurrentUICulture = culture; Thread.CurrentThread.CurrentCulture = culture; 然而,关键因素是添加以下内容以强制RootVisual的文化/语言: var root = RootVisual as Page; if (root != null) { root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name); }