C# 新手教程. QQ截图20190321105537.png 读取时代码如下: ResourceManager ret = new ResourceManager(typeof(index)); // 当前类名index. MessageBox.Show(ret.GetString("indxe1")); 2.png 读取代码如下: Resource1.test3; 简单直接. 3.png
在 Visual Studio 中,如果我们在一个 .NET Core 工程里加入了一个资源文件(.resx),那么你会发现有个对应的 .Designer.cs 文件被自动生成了,每次资源文件的内容有变化 给资源文件(.resx)生成对应的 .Designer.cs 文件的CustomTool叫做ResXFileCodeGenerator ? 在 Visual Studio 中,你可以在RESX文件的属性窗口里将它设置为 <reset to default> 从而关闭这货 ? DataResource.Designer.cs"> <DesignTime>True</DesignTime> <AutoGen>True</AutoGen> <DependentUpon>DataResource.resx /DependentUpon> </Compile> </ItemGroup> <ItemGroup> <EmbeddedResource Update="Data\DataResource.<em>resx</em>
多格式兼容:支持Resx(传统.NET资源格式)、XML、JSON三种语言文件格式,满足不同项目的格式偏好。 快速开始:安装与基础配置 第一步:安装NuGet包 根据项目使用的语言文件格式,选择对应的安装命令: 语言文件格式 安装命令 适用场景 Resx Install-Package Lang.Avalonia.Resx Resx格式 Resx文件需以基础文件名(如Resources.resx)+ 文化标识(可选)命名,基础文件默认为 fallback 语言,具体参考示例项目: i18n/Resources.resx // 默认语言(如英语) i18n/Resources.zh-CN.resx // 简体中文 i18n/Resources.zh-Hant.resx // 繁体中文 i18n/Resources.ja-JP.resx 无论是传统Resx用户,还是偏好XML/JSON的现代项目,都能快速集成并享受高效的多语言管理体验。
在本文中,通过支持使用现有资源文件( *.resx files),我们仍然可以轻松地将现有应用程序转换为新的区域设置。 否则,您将需要向所有现有的RESX文件添加每个新字符串。 ? 然后,我们可以向所需的UI元素添加绑定: ? 如果有绑定错误,那么绑定中的路径集不匹配任何RESX文件中的任何字符串,而且它甚至不能像以前那样返回默认的RESX值。 添加更多区域设置 ? 在Visual Studio中创建一个新文件的resx文件。 现在您已经有了一个新的RESX文件,您可以更改区域资源文件的资源值,这样新的区域(Resources.Fr-fr.resx)设置就添加完成了。 列举可用语言文化区域设置 ?
而 Resx 资源文件,作为一种久经考验的本地化资源管理方式,在 Avalonia UI 中也找到了新的用武之地。 下图是使用VS扩展 ResXManager[1] 对Resx资源文件进行管理的截图: 2. 详细使用步骤:构建多语言应用的基石 2.1. Resx 资源文件的精心布局 2.1.1. 例如,中文简体对应的资源文件名为 Resource.zh-CN.resx,中文繁体为 Resource.zh-Hant.resx,日语则是 Resource.ja-JP.resx。 总结:Resx 资源文件国际化方案的优劣剖析 通过 Resx 资源文件实现 Avalonia UI 应用的国际化,无疑为传统开发者提供了一条熟悉且便捷的道路。 普通用户可能不熟悉 Resx 文件的结构和编辑方式,也难以理解 T4 文件生成代码的逻辑。
而 Resx 资源文件,作为一种久经考验的本地化资源管理方式,在 Avalonia UI 中也找到了新的用武之地。 下图是使用VS扩展 ResXManager[1] 对Resx资源文件进行管理的截图: 2. 详细使用步骤:构建多语言应用的基石 2.1. Resx 资源文件的精心布局 2.1.1. 例如,中文简体对应的资源文件名为 Resource.zh-CN.resx,中文繁体为 Resource.zh-Hant.resx,日语则是 Resource.ja-JP.resx。 总结:Resx 资源文件国际化方案的优劣剖析 通过 Resx 资源文件实现 Avalonia UI 应用的国际化,无疑为传统开发者提供了一条熟悉且便捷的道路。 普通用户可能不熟悉 Resx 文件的结构和编辑方式,也难以理解 T4 文件生成代码的逻辑。
使用resx资源文件 既然UWP是XAML大家族的一份子,那么应该也可以使用resx资源文件实现本地化,毕竟生成resx对应代码的是PublicResXFileCodeGenerator,而不是UWP本身 打开“添加新项”对话框,选中“资源文件(.resw)”,在“名称”文本框中将文件名称改为“Labels.resx”,点击“添加”。 在“解决方案资源管理器”选中“Labels.resx”,邮件打开“属性”视图,“生成操作”选择“嵌入的资源”。 将“Labels.resx”复制为“Labels.zh-CN.resx”,打开“Labels.zh-CN.resx”,“访问修饰符”改为“无代码生成”。 解决方案是不在UWP应用项目中添加resx资源文件,而在类库中添加resx资源文件,这样连错误都不报了。 不知道Xamarin.Forms是不是也可以这样实现,毕竟它也是XAML大家族的一员。 6.
在本篇中我们还将创建两个自定义的ResourceManager,以实现对独立.resx资源文件和自定义结构的XML资源文件的支持。 资源文件的支持 较之.resources资源文件这种二进制文件,以XML形式定义的.Resx资源文件是一个纯文本文件,我们可以对其进行自由地修改,所以有时候我们直接将独立的.resx文件作为资源存储形式更利于资源内容的维护 GreetingMessages.resx"), new CultureInfo("en-US")); 4: AddResource(() => new ResXResourceWriter("GreetingMessages.en-US.resx 二、将资源定义在自定义结构的XML文件中 .Resx资源文件本质上就是一XML文件,既然.Resx文件可以作为资源文件,我们肯定可以将资源定义在我们自定义的XML文件中。 .NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇] .NET的资源并不限于.resx文件,你可以采用任意存储形式[下篇]
常用于 readme.txt,C/C++ 类库,ini 文件等 3 注意点 路径中不能有 # 嵌入的资源(Embedded Resource) 不推荐,有更好的方法,如后面的 Resources.resx Resources.resx 添加方式:添加新建项 - 资源文件(C#) Resources 中的内容,都是只读的,而且处理字符串,可以添加图片,音视频等多媒体文件。 Resources.resx Resources.zh-CN.resx 然后在代码中,如果如下方式切换语言项。 注意,多语言使用时,多个 Resources 文件,只能有一个 Designer.cs 文件,类似下面这样,可以直接在资源管理器中,通过复制 Resources.resx 文件的方式,重命名得到 Resources.zh-CN.resx ResXManager - Visual Studio Marketplace 以上的 Settings.settings 和 Resources.resx,建议通过项目属性的方式,来有 VS 创建,会自动生成
Errors.resx 错误消息 Errors.NotFound, Errors.Unauthorized Validation.resx 验证消息模板 Required, StringLengthMax Display.resx 字段显示名称 Content, Type, Difficulty 每个资源文件都有对应的英文版本(如 Shared.en.resx)。 (包含ResourceManager) ├── ExamDisplay.resx # 中文资源 └── ExamDisplay.en.resx # 英文资源 CodeSpirit.SurveyApi/Resources/ ├── SurveyDisplayResources.cs ├── SurveyDisplay.resx └── SurveyDisplay.en.resx 添加资源文件: • Shared.ja.resx • Errors.ja.resx • Validation.ja.resx • Display.ja.resx 3.
多格式兼容:支持Resx(传统.NET资源格式)、XML、JSON三种语言文件格式,满足不同项目的格式偏好。 快速开始:安装与基础配置 第一步:安装NuGet包 根据项目使用的语言文件格式,选择对应的安装命令: 语言文件格式 安装命令 适用场景 Resx Install-Package Lang.Avalonia.Resx Resx格式 Resx文件需以基础文件名(如Resources.resx)+ 文化标识(可选)命名,基础文件默认为 fallback 语言,具体参考示例项目: i18n/Resources.resx // 默认语言(如英语) i18n/Resources.zh-CN.resx // 简体中文 i18n/Resources.zh-Hant.resx // 繁体中文 i18n/Resources.ja-JP.resx 无论是传统Resx用户,还是偏好XML/JSON的现代项目,都能快速集成并享受高效的多语言管理体验。
在本篇文章中,我会通过自定义ResourceManager让资源的存储形式不仅仅局限于.ResX文件,你可以根据需要实现任意的存储方式,比如结构化的XML、数据库表,甚至是通过远程访问获取资源。 ResourceSet、ResourceReader与ResourceWriter 三、自定义BinaryResourceManager管理单独二机制资源文件 一、从添加资源文件(.resx 文件)说起 说起资源,你首先想到的肯定是通过VS添加的扩展名为.resx的资源文件。 不但如此,当你在.resx文件中定义任意类型资源条目的时候,默认定义的代码生成器会为你生成对应的托管代码,使你可以采用强类型编程的方式获取某个条目。 ? 比如说,如果你在一个名称为Resources.resx的资源文件中定义了如上图所示的两个字符串资源条目,默认的代码生成器或为你生成如下的代码。
之前写了两篇文章《.NET资源并不限于.ResX文件》(上篇、下篇),介绍了如何通过自定义ResourceManager的方式来扩展资源的存储形式。 在那篇文章中,我定义了三种基于独立文件的ResourceManager(ResXResourceManager、BinaryResourceManager和XmlResoureManager)分别实现对.ResX .ResX文件一样,为了提供多多语言的支持,我们用带有Culture Code后缀的文件名来区分资源文件所基于语言文化。 this.LabelGreeting4Chris.Text = this.GetLocalResourceObject("Greeting4Chris.Text").ToString(); 5: } .NET的资源并不限于.resx 文件,你可以采用任意存储形式[上篇] .NET的资源并不限于.resx文件,你可以采用任意存储形式[下篇] 如何在ASP.NET应用中使用自定义资源存储形式
, default.aspx.de-DE.resx and default.aspx.ar-EG.resx. You can use general English or general German or general Arabic like this: default.aspx.en.resx, default.aspx.de.resx and default.aspx.ar.resx. Copying the resources created previously and renaming this copy to default.aspx.de.resx and default.aspx.ar-EG.resx value for the ApplicationKey property (without the .resx extension).
新建一个.NET Core控制台项目,然后我们在其中新建一个.resx资源文件叫DemoResource.resx 注意.resx资源文件默认是Internal访问级别的,这会导致其它程序集无法访问资源文件类 所以现在我们就为资源文件DemoResource.resx再创造两种语言: DemoResource.zh-CN.resx,简体中文资源文件: DemoResource.ja-JP.resx,日语资源文件 DemoResource.zh-CN.resx是简体中文资源文件,我们将其内部的字符串Message定义为了简体中文。 DemoResource.ja-JP.resx是日语资源文件,我们将其内部的字符串Message定义为了日语。 如果当前线程的这两个属性是什么语言,那么.resx资源文件就会返回对应语言的内容。
引言:Resx 资源文件与 Avalonia UI 国际化的邂逅 在软件开发领域,国际化是确保应用能够跨越语言和文化边界,触达全球用户的关键。 而 Resx 资源文件,作为一种久经考验的本地化资源管理方式,在 Avalonia UI 中也找到了新的用武之地。 例如,中文简体对应的资源文件名为 Resource.zh-CN.resx,中文繁体为 Resource.zh-Hant.resx,日语则是 Resource.ja-JP.resx。 总结:Resx 资源文件国际化方案的优劣剖析 通过 Resx 资源文件实现 Avalonia UI 应用的国际化,无疑为传统开发者提供了一条熟悉且便捷的道路。 普通用户可能不熟悉 Resx 文件的结构和编辑方式,也难以理解 T4 文件生成代码的逻辑。
在WPF中,除了常用的根据路径引用资源文件,还为我们提供了管理资源数据的“对象级”资源,以及Resources.resx文件,前者通过一个类型为ResouceDictionary的键值对对象来管理页面中定义的资源 03.Resources.resx文件 在项目的Properties下展开可以找到这个文件: 双击打开后,是个列表,我们可以看到是个表格界面: 左上角可以指定资源是string 在代码中获取该资源如下: 在Xaml中获取该资源如下: 在.NET 5版本中,默认去掉了Properties这个文件夹,但如果需要的话我们依然可以通过手动为项目添加Resources.resx
突破维护局限,拥抱用户定制 Resx 资源文件往往将维护权限局限于开发端,而自定义 XML 语言文件则以其独特的灵活性脱颖而出。 Resx 资源文件的适用场景 当项目无用户侧修改需求时,Resx 资源文件凭借其在开发环境中的便捷管理性,可通过 Resx Manager 等工具进行高效操作,是较为理想的选择。 文中涉及的相关资源如下: XML语言管理包:AvaloniaXmlTranslator[4] 案例Demo及语言管理工具:CodeWF.Toolbox[5] Resx资源管理扩展:Resx Manager 无论是 Resx 资源文件还是自定义 XML 文件,都将在各自的适用领域继续发挥重要作用,共同推动 Avalonia 国际化进程的不断前进。 参考资料 [1] Avalonia 国际化之路:Resx 资源文件的深度应用与探索: https://dotnet9.com/bbs/post/2024/12/avalonia-internationalization-depth-application-and-exploration-of-resx-resource-files
分析原因 查看html页面,会发现加载css和js的地址不能访问了 <link href='http://extentreports.com/<em>resx</em>/dist/css/extent.css' type <script src='http://extentreports.com/<em>resx</em>/dist/js/extent.js' type='text/javascript'></script> 访问上面的两个地址出现无法访问了 --<link href='http://extentreports.com/<em>resx</em>/dist/css/extent.css' type='text/css' rel='stylesheet'/>-- --<script src='http://extentreports.com/<em>resx</em>/dist/js/extent.js' type='text/javascript'></script>-->
如果要添加的资源是字符串而非文件,我们可以使用应用程序名称空间下的Resources.resx资源文件。 Resources.resx文件内容的组织形式也是“键-值”对,编译后,Resources.resx会形成Properties名称空间中的Resource类,使用这个类的方法或属性就能获取资源。 为了让XAML编译器能够访问这个类,一定要把Resources.resx的访问级别由Internal改为public。 使用Resources.resx最大的好处就是便于程序国际化,本地化。 方法就不是使用Resources.resx了,WPF不支持这么做。在WPF使用外部文件作为资源,仅需要将其简单的放入项目即可。