Tag: 本地化

如何用另一种语言翻译网站?(ASP .NET,c#)

我开发了一个大型商业门户网站。 我刚刚意识到我需要用另一种语言建立我的网站。 我研究过像这样的解决方案 在我的网站上使用第三方控件。 (适合我的设计。对于SEO的观点没有用。不想显示第三方品牌名称。) 为每种语言创建资源文件。(重构页面以使用资源文件中的文本需要大量工作。用户输入的数据如“业务描述”。) 还有其他选择吗? 我想的是一个解决方案,比如在服务器端创建页面然后我可以在发送回客户端之前翻译它。 有什么方法可以做到吗?(翻译所有内容,包括从数据库或代码中添加的数据。而不影响设计。)

从构建输出中省略本地化版本的程序集

在我的一个项目中,我正在使用一个名为Humanizer的很棒的库。 这个库有很多语言版本(我算38)。 当我构建我的项目时,然后我看到所有这些文件夹,如“af”,“ar”,“bg”,“bn-BD”,…,“zh-Hant”,其中的程序集包含此库的本地化资源。 我的问题是我的项目仅限英语,我没有兴趣在我的构建输出中拥有所有这些本地化程序集。 是否有一些从构建中省略它们的好方法? 我正在寻找这个问题的一般解决方案。 它发生在除Humanizer之外的库,如DevExpress Controls等,它们不是开源的。

ASP.NET MVC 4中未翻译自定义的错误消息

我想翻译validation消息“字段日期必须是日期”。 我已将以下键添加到Global.asax的Application_Start()中 ClientDataTypeModelValidatorProvider.ResourceClassKey = “ModelBinders”; DefaultModelBinder.ResourceClassKey = “ModelBinders”; 我在App_GlobalResources中创建了ModelBinders.resx,ModelBinders.nl.resx,ModelBinders.fr.resx。 我在.resx文件中添加了以下字符串资源(或翻译): Name Value ==== ===== FieldMustBeDate The field {0} must be a date. FieldMustBeNumeric The field {0} must be a number. PropertyValueInvalid The value ‘{0}’ is not valid for {1}. PropertyValueRequired A value is required. 当我提交日期字符串时,我将收到“FieldMustBeDate”的翻译。 当我提交无效日期(例如“01/01 / 201a”)时,我收到默认ModelBinders.resx中定义的“PropertyValueInvalid”的未翻译消息,而不是翻译…如何显示正确的翻译对于PropertyValueInvalid?

在C#中获取当前位置(在区域和语言中指定)

如何获取操作系统的区域和语言中指定的机器当前位置? 我已经尝试从RegionInfo类中获取它,但它返回了Region和Region的Format下拉列表中指定的Location。 只是为了澄清我的意思,如果您从机器的控制面板打开区域和语言,我想读取位置选项卡中指定的位置。 RegionInfo为我提供了格式下拉格式选项卡中指定的值。

.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子目录中找到所有这些来清理它(换句话说,设置“附属程序集的基本路径”)。 但我搜索了高低,并且无法找到任何方法来定制这些附属组件的位置。 任何提示将非常感谢!

我们应该在资源中存储格式字符串吗

对于我目前正在进行的项目,我必须将特殊格式的字符串提供给第三方服务进行处理。 所以我正在建立这样的字符串: string someString = string.Format(“{0}{1}{2}: Some message. Some percentage: {3}%”, token1, token2, token3, number); 而不是硬编码字符串,我正在考虑将其移动到项目资源中: string someString = string.Format(Properties.Resources.SomeString, token1, token2, token3, number); 在我看来,第二个选项不像第一个选项那么可读,即阅读代码的人必须提取字符串资源以确定最终结果应该是什么样子。 我该如何解决这个问题? 在这种情况下,硬编码格式字符串是否是必要的恶魔?

为多种语言制作网站的最佳方式

我使用( Asp.net,c# )建立了一个网站,其内容是英文的 。 现在我要求以支持多种语言的方式建立这个网站,即( 德语,法语 )。 Lable / Textbox / string所有值将显示各自选定的语言在搜索时我发现有一些方法 使用本地化 使用资源文件。 数据库(每个东西都保存在不同语言的数据库中)。 坦率地说,我不同意第三种选择。 我想知道哪种方式最好或者还有其他更好的方法吗? 注意:当前网站是使用.NET framework 4.0 / vs 2010构建的 。 谢谢

本地化和DataAnnotations。 GlobalResourceProxyGenerator和PublicResxFileCodeGenerator

为什么DataAnnotation属性难以访问PublicResxFileCodeGenerator创建的资源? 我发现以下属性: [Compare(“NewPassword”, ErrorMessageResourceName = “RegisterModel_ConfirmPasswordError”, ErrorMessageResourceType = typeof(Resources.Global))] 如果已使用PublicResxFileCodeGenerator创建资源,将无法找到该资源。 但是,使用GlobalResourceProxyGenerator创建的相同资源将正常工作。 两个资源文件都设置为Content,并且位于App_GlobalResources中。 我已经尝试将默认语言放在App_LocalResources中,但似乎没有任何区别。 我的测试是我的第二语言(GlobalResourceProxyGenerator)工作,但我的主要语言(PublicResxFileCodeGenerator)抛出exception(它无法找到资源文件)。 如果我切换到GlobalResourceProxyGenerator然后一切都很好(但显然没有公共访问)。 有人知道为什么吗? 我想将来将资源转移到另一个程序集中。

使用xamarin进行移动跨平台本地化,仅限iOS使用

我在Xamarin有一个针对Android,iOS和Windows手机的项目。 我用核心(PCL库)在不同平台之间共享公共代码。 我在我的核心库中添加了资源文件(.net资源).Resx,并在我的一个ViewModel中读取了我在代码片段后面使用的特定于文化的字符串: public string GetString() { // CommonResources is the name of my resource file ResourceManager resManager = new ResourceManager(typeof(CommonResources)); return resManager.GetString(“LoginLabel”,CultureInfo.CurrentCulture); } “LoginLabel”是我的资源键,其值为“登录”(英文)和荷兰语中的“inloggen”。 我在我的PCL项目中为英语和荷兰语创建了两个资源文件CommonResources。 CommonResources.resx CommonResources.nl-NL.resx 在android,iOS和windows手机中,我将文化设置如下: Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(“nl-NL”); Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(“nl-NL”); 这适用于Android和Windows手机。 但对iOS来说它不起作用。 它总是从英文文件返回资源字符串。 文化已正确设置,并以调试模式显示。 但不知何故,它无法从荷兰资源加载资源字符串。 所以问题是,可以使用PCL为所有平台本地化字符串(.Net方式)吗? 有谁有任何想法? 提前致谢。

MVVM符合WPF应用程序中的本地化

如何使用MVVM模式本地化WPF应用程序? 我真的想以“正确”的方式做到这一点。 我目前的方法是使用.resx资源文件来本地化我的应用程序。 我把它们包含在我的xaml代码中 xmlns:localization=”clr-namespace:ClientLibTestTool.ViewLanguages” 并像这样访问它们: 我的问题: 有没有更好的方法呢? 如何测试不同的语言(使用不同的语言设置加载应用程序)? 是否可以在运行时更改语言? 回答: 问题1: 问题2 :(谢谢,stijn) public MainWindow() { // Debug Settings localization.Culture = CultureInfo.GetCultureInfo(“en-US”); // localization.Culture = CultureInfo.GetCultureInfo(“de-DE”); this.InitializeComponent(); } 问题3 :(谢谢你,stijn) 不是真的,有必要重绘完整的窗口。