Tag: 本地化

C#如何强制本地化文化进入测试项目的en-US

如何在VS2008中为C#中的测试项目指定concrente Localization Culture? 我正在构建具有web.config中指定的非标准文化的Asp .Net MVC应用程序但是如何为该项目的unit testing设置相同的文化?

有哪些优秀的非英语短语有单数和复数forms可用于测试国际化和本地化库?

我一直在研究.NET库来协助应用程序的国际化。 它是用C#编写的,名为SmartFormat ,在GitHub上是开源的。 它包含多种语言的语法数字规则,可根据模板和语言环境确定正确的单数/复数forms。 规则是从Unicode语言复数规则获得的 。 翻译具有依赖于数量的单词的短语(例如名词,动词和形容词)时,指定多个表单,格式化程序根据这些规则选择正确的表单。 英语示例:(注意语法与String.Format几乎相同) var message = “There {0:is:are} {0} {0:item:items} remaining.”; var output = Smart.Format(culture, message, items.Count); 我想为许多支持的语言编写unit testing。 但是,我只会说英语和西class牙语(两者都有相同的语法编号规则)。 有哪些优秀的非英语测试用语可用于这些unit testing? 我正在寻找类似于”There {0:is:are} {0} {0:item:items} remaining.”短语”There {0:is:are} {0} {0:item:items} remaining.” 。 请注意此示例如何根据数量需要特定的动词和名词。 关于语法的说明 : 此库查找:分隔的单词,并根据为语言环境定义的规则选择正确的单词。 例如,在波兰语中,“文件”一词有3种复数forms:1“plik”,2-4“pliki”,5-21“plików”。 因此,您将在格式字符串中指定所有3个表单: “{0} {0:plik:pliki:plików}” 。 这些单词通常从最小可能值到最大值排序,例如”{0:zero:one:two:few:many:other}” ,由Unicode语言复数规则定义。 这里已经讨论了有关此代码的其他信息: 单数/复数单词的本地化 – 语法数字的不同语言规则是什么?

如何限制构建仅支持EN“Microsoft.Expression.Interactions.resources.dll”,并避免使用DE,KR,FR,ES等…?

当我构建我的WPF项目时,它会创建几个语言文件夹,每个文件夹包含“Microsoft.Expression.Interactions.resources.dll”。 奇怪的是,我从未创建过我的资源字符串到其他语言的翻译,但它仍然创建了DE,KR,FR,ES文件夹。 我只需要EN。 如何将本地化限制为EN?

本地化资源不会更改页面中的某些超链接控件

以上是开发中网站的截图… 我们有一个DropdownList控件,并在其SelectedIndexChanged上回发它,然后我们更改站点文化,然后加载相应的资源文件。 DropDownList ASP.NET代码 所有网页inheritance的公共类 using System; using System.Web; using System.Threading; using System.Globalization; public class languagebase : System.Web.UI.Page { protected override void InitializeCulture() { try { string LanguageCode = Request[“ctl00$ucMenu$ddlLanguage”]; // Language Drop Down Control in Front End if (!LanguageCode.IsNullOrEmpty()) { setCulture(LanguageCode); // Set Culture language from drop down Request.Cookies[“LanguageCode”].Value = LanguageCode; // Update REQUEST […]

直接在XAML中使用.resw文件中的字符串

我知道从.resw文件引用本地化字符串的常用方法是这样的: XAML: Resources.resw: ButtonUid.Content = “Hello World” 但也有可能像这样做: XAML(伪代码): Resources.resw: buttonLabel = “Hello World” 我想在第二个例子中做到这一点的原因是因为这是一个我从iOS和Android移植到WP的应用程序。 我想将iOS或Android字符串文件转换为.resw语法,但不会遍历每个字符串并添加.Content或.Text或其他用途。 有一个简单的解决方案吗?

Convert.ToString(DateTime)产生英国格式而不是美国格式

我遇到一个问题,即C#DateTime字符串无法转换为SQL DateTime,因为它被神秘地格式化为英国日期(dd / MM / yyyy)。 以下是一系列事件: 在美国的远程服务器上创建一个对象,并将其序列化为xml。 xml在CA中的本地计算机上反序列化为对象。 序列化日期如下:2011-07-13T09:56:57.0542425 应用程序尝试将对象保存到调用前面提到的存储过程的数据库。 它(不必要地)将日期转换为字符串,然后使用Convert.ToString(DateTime)将其作为参数传递给sproc。 sproc因SqlException“将数据类型nvarchar转换为datetime时出错”而失败,因为它为DateTime类型参数接收的字符串是dd / MM / yyyy格式(数据库语言是英语US)。 现在,代码不应该将日期时间转换为字符串,只能转换回SQL中的日期时间,但这个问题刚刚开始发生(在多台计算机上),一切都很好,超过一年。 所以我认为数据库或操作系统的文化必须刚刚改变,导致它们使用不同的日期格式。 令我惊讶的是,将操作系统(Windows 7)从英语(加拿大)更改为英语(美国)并重新启动后,问题仍然存在。 为了使其更加混乱,当在本地创建相同类型的对象而不是反序列化时,不会发生错误,无论区域设置如何。 唯一的区别是序列化版本发生在Windows服务中,本地创建的对象版本发生在Windows应用程序中。 它们都使用自己的调用Convert.ToString(DateTime)的程序集副本,但它们使用的是该程序集的相同版本。 我完全糊涂了。 PS .NET 2.0和SQL Server 2005

如何定义XmlSerializer使用的文化

我使用以下代码反序列化xml配置文件: // Create object by deserializing the given xml document var serializer = new XmlSerializer(typeof(ConfigurationFile)); var stream = File.Open(path, FileMode.Open, FileAccess.Read); var configFile = serializer.Deserialize(stream); 在配置中,我有一些浮动数字定义如下: DailyThreshold = “41.9” 作为小数分隔符“。” 是文化依赖我想知道我如何定义序列化程序用来解析这些数字的文化?

使用C#中的德语小数分隔符对XML进行XML反序列化

我正在尝试从“德语”xml字符串反序列化Movie对象: string inputString = “” + “” + “5” + “1,99” // <– Price with German decimal separator! + "”; XmlSerializer movieSerializer = new XmlSerializer(typeof(Movie)); Movie inputMovie; using (StringReader sr = new StringReader(inputString)) { inputMovie = (Movie)movieSerializer.Deserialize(sr); } System.Console.WriteLine(inputMovie); 这里的Movie类供参考: [XmlRoot(“movie”)] public class Movie { [XmlAttribute(“title”)] public string Title { get; set; } [XmlElement(“rating”)] public […]

如何更改Microsoft C#编译器的错误消息的语言?

他们的俄语翻译无效且令人困惑。 例如,在某些消息中语言关键字被翻译。 所以我想看看原始版本(在#develop,LINQPad,ASP.NET错误等)。 更新这个伟大的网站有助于通过他们的翻译找到原始的英语错误消息: FindErr.NET

c#如何在将字符串移动到资源以进行本地化时处理Newline字符?

我正在用c#编写一个应用程序。出于本地化的目的,我将所有的字符串都移到了资源上。 字符串的一些示例: “First sentence.\n Second sentence.” “wait…” 在第一个字符串中有换行符”\n”我应该将换行符移动到资源。 在第二个字符串中,我应该将三个点移动到资源还是应该将字符串拆分为两个部分,如”wait” + “…”并仅将”wait”移动到资源。 我正在使用谷歌翻译将字符串翻译成其他语言,我担心换行字符”\n”将无法通过谷歌翻译很好地翻译成其他语言,因此我犹豫是否将新行字符转移到资源上。 这是我对本地化的第一次看法。如果您有任何进一步的想法或指出我正确的方向,建议。 谢谢。