精华内容
下载资源
问答
  • Resources转Resx

    2015-06-03 08:47:16
    Resources转Resx
  • Resx Editor-开源

    2021-05-29 21:11:15
    Resx Editor 是一个面向翻译的小型文件编辑器,用于 Microsoft RESX 2.0 文件。 Resx Editor 专为专业翻译人员设计(包括字数统计功能)。
  • BootstrapBlazorAppLocalizerSample-Resx
  • ResX Builder

    2010-09-25 08:58:19
    一个用来从.NET 程序集或者resources文件中提取资源并可以重新构建托管资源文件(ResX)的工具,C#代码。 Visual 2005 By Regnad
  • WPF国际化实现方式很多:可使用xaml资源文件(*.xaml)存储各语言展示的内容,本人另一号有过介绍:也可使用通用的资源文件(*.resx),该方式不受限于项目模板,可适用于其它项目类型,C/S、B/S、App(Xamarin)等皆可使用...

    WPF国际化实现方式很多:

    可使用xaml资源文件(*.xaml)存储各语言展示的内容,本人另一号有过介绍:

    也可使用通用的资源文件(*.resx),该方式不受限于项目模板,可适用于其它项目类型,C/S、B/S、App(Xamarin)等皆可使用。

    本文不是要介绍怎样实现项目国际化,主要是介绍一款VS扩展程序,可方便的管理通用的资源文件(*.resx),比如下面这样:

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png使用ResX Manager管理多资源文件

    方便的地方在于:

    一个界面列出整个解决方案所有的资源文件

    同一工程国际化资源文件一个界面比照着即可管理

    按多语言资源文件命名规则,相同前缀的资源文件,后缀(.resx前的一小部分)区分不同语言,比如UiResource.zh-CN.resx为简体中文,UiResource.resx为默认语言,其他语言扩展只需要增加一个资源文件,修改后缀即可。

    对比直接打开资源文件效果:

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png

    上面只是两个文件,支持更多国际化语言,每增加一条翻译、或者修改,就要双击全部资源文件,那要多累呀。

    简单做了铺垫,下面说说怎么安装该插件及使用方式。

    1 安装

    请到ResXManager发布地址下载安装:

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png插件详情

    或者VS扩展中搜索ResX Manager安装:

    bd8b24e0f9ce682fa13d4bd22bbfd31c.pngVS扩展搜索安装

    2 功能说明

    2.1 统一管理和修改各资源文件

    见本文第一张图(来自乐趣课堂WPF项目资源文件),左侧展示解决方案中所有工程的资源文件结构、位置,选择某资源文件后,右侧展示资源文件中的键及键对应的各语言翻译文字,同一名命名规则的资源文件可同时进行编辑。

    2.2 查漏

    如下图,Search和StartTime键对应的中文缺少翻译,输入框有红色背景提示,此时可直接进行即时输入翻译。

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png漏翻译标识

    如果键较多,或者支持的语言较多,可点击下面的翻译切换,一般我在上面这里就直接修改了,下面的这个界面我很少操作:

    切换翻译 Tab

    输入未翻译的语言

    点击开始、应用所有,使所修改的翻译应用于对应的资源文件

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png清晰显示待翻译的语言

    2.3 导出和导入Excel文件

    当多语言翻译工作量较大,或者某一语言需要专业人士协助,让别人使用Visual Studio来编辑资源文件是不太合理的,这时使用导出功能将指定的资源文件导出为Excel格式,直接填写缺漏部分,再将完善的Excel文件导入自动更新各资源文件。

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png导出资源文件为Excel

    也可以选择需要翻译的资源文件对应的键,选择导出所选,导出文件如下,红框处为刚输入的简体中文翻译文。

    bd8b24e0f9ce682fa13d4bd22bbfd31c.png编辑导出的Excel文件

    如上图,完善翻译后,再选择导入即可。

    该扩展程序是不是很方便?欢迎留言交流。

    除非注明,文章均由

    转载请注明:

    作者:乐趣课堂

    链接:

    展开全文
  • 详细的WPF通过Resx文件实现多语言切换完整源代码。 代码包括,resx资源文件,window界面,切换代码,界面示例
  • resx文本编辑器

    2014-02-13 14:13:05
    resx文本编辑器 内有说明 详细请查看
  • Resx资源转换器 非开发人员的工具,可以将.NET项目中的资源文件(resx)快速并行转换为多种语言。 并行显示所有资源和所有翻译字符串的树状视图,每种语言一列。 VS2015或更高版本推荐。 下载 或在任何现代版本的...
  • 资源文件简介 (1)resx文件: 基于文本的格式是特定于.NET 框架的 XML 格式,称为 ResX(.resx 文件)。不考虑其 XML 基础,该格式不是专门为人工阅读而设计的(XML 格式很少是这样的)。但是,Visual Studio .NET ...
  • 未能加载 .RESX 文件中使用的类型 Forms.ListItems, Forms, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null。请确保已在项目中添加了必需的引用。 第 136 行,位置 5。 E:\Forms\Form2.resx 136 5 Forms ...

    错误信息提示:

    错误	339	Resx 文件无效。未能加载 .RESX 文件中使用的类型 Forms.ListItems, Forms, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null。请确保已在项目中添加了必需的引用。 第 136 行,位置 5。	E:\Forms\Form2.resx	136	5	Forms
    
    
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <!-- 
        Microsoft ResX Schema 
        
        Version 2.0
        
        The primary goals of this format is to allow a simple XML format 
        that is mostly human readable. The generation and parsing of the 
        various data types are done through the TypeConverter classes 
        associated with the data types.
        
        Example:
        
        ... ado.net/XML headers & schema ...
        <resheader name="resmimetype">text/microsoft-resx</resheader>
        <resheader name="version">2.0</resheader>
        <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
        <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
        <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
        <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
        <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
            <value>[base64 mime encoded serialized .NET Framework object]</value>
        </data>
        <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
            <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
            <comment>This is a comment</comment>
        </data>
                    
        There are any number of "resheader" rows that contain simple 
        name/value pairs.
        
        Each data row contains a name, and value. The row also contains a 
        type or mimetype. Type corresponds to a .NET class that support 
        text/value conversion through the TypeConverter architecture. 
        Classes that don't support this are serialized and stored with the 
        mimetype set.
        
        The mimetype is used for serialized objects, and tells the 
        ResXResourceReader how to depersist the object. This is currently not 
        extensible. For a given mimetype the value must be set accordingly:
        
        Note - application/x-microsoft.net.object.binary.base64 is the format 
        that the ResXResourceWriter will generate, however the reader can 
        read any of the formats listed below.
        
        mimetype: application/x-microsoft.net.object.binary.base64
        value   : The object must be serialized with 
                : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
                : and then encoded with base64 encoding.
        
        mimetype: application/x-microsoft.net.object.soap.base64
        value   : The object must be serialized with 
                : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
                : and then encoded with base64 encoding.
    
        mimetype: application/x-microsoft.net.object.bytearray.base64
        value   : The object must be serialized into a byte array 
                : using a System.ComponentModel.TypeConverter
                : and then encoded with base64 encoding.
        -->
      <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
        <xsd:element name="root" msdata:IsDataSet="true">
          <xsd:complexType>
            <xsd:choice maxOccurs="unbounded">
              <xsd:element name="metadata">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" />
                  </xsd:sequence>
                  <xsd:attribute name="name" use="required" type="xsd:string" />
                  <xsd:attribute name="type" type="xsd:string" />
                  <xsd:attribute name="mimetype" type="xsd:string" />
                  <xsd:attribute ref="xml:space" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="assembly">
                <xsd:complexType>
                  <xsd:attribute name="alias" type="xsd:string" />
                  <xsd:attribute name="name" type="xsd:string" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="data">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                    <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
                  <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
                  <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
                  <xsd:attribute ref="xml:space" />
                </xsd:complexType>
              </xsd:element>
              <xsd:element name="resheader">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                  </xsd:sequence>
                  <xsd:attribute name="name" type="xsd:string" use="required" />
                </xsd:complexType>
              </xsd:element>
            </xsd:choice>
          </xsd:complexType>
        </xsd:element>
      </xsd:schema>
      <resheader name="resmimetype">
        <value>text/microsoft-resx</value>
      </resheader>
      <resheader name="version">
        <value>2.0</value>
      </resheader>
      <resheader name="reader">
        <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
      <resheader name="writer">
        <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
      </resheader>
    </root>

    解决方案:

          将 .RESX文件里的那个<data……></data>删除,即可。

    展开全文
  • 使用标准RESX文件本地化文本,图像和任何其他WPF属性
  • C# 资源文件的读写操作,包括resource和resx文件
  • Resx转换器 ResxConverter是一个工具,可以帮助将resx文件转换为任何格式。 ResxConverter随附在三个主要软件包中。 核心-包括所有resx解析代码,并允许将转换扩展为任何格式。 CLI-允许从命令行使用它。 移动-...
  • ILSpy反编译后,Winform窗体中的resx文件全部变成了resources,为了方便查看代码,得把这些转回来,这个工具批量转换非常方便
  • 这是“解决.resx合并问题”的替代方法
  • 支持Resx转换Excel,也支持Excel转换Resx。 选择文件夹即可转换该文件夹中所有内容,用winform实现的exe程序。 有源码,也可以直接从bin目录中执行exe。
  • 用ResgenTool.exe可以把***.resources 转换为 ***.resx, ================== 反编译.NET WinForm步骤: 1. 使用Reflector.exe导出代码文件 2. VS中新建项目后,把 反编译的*.cs 文件拷贝到项目中 3. 运行ResgenTool...
  • Do not compile resx files

    2021-01-03 06:31:03
    With prevision version of ASP.NET we had option to deliver non-compiled resx file. That was great when you need a way to change OOB strings at already installed site: customers was able to do that by ...
  • 使用一种语言的多个Resource.resx文件(资源管理器)进行WPF本地化。 如果只想对文本进行本地化,而发现太大而不能满足您的需要,则可以将其用作“一个文件”替代方案,它可以对字符串(而不是图像)进行本地化。 ...
  • 使用resx文件实现Winform多语言切换,本博文提供的代码可以实现简体中文、繁体中文、英文的切换。如果需要增加其它语言的切换,只需要编写相应的语言的resx文件即可。 并且,当修改了语言之后,会更新所有打开的窗口...

    使用resx文件实现Winform多语言切换,本博文提供的代码可以实现简体中文、繁体中文、英文的切换。如果需要增加其它语言的切换,只需要编写相应的语言的resx文件即可。 并且,当修改了语言之后,会更新所有打开的窗口。先贴几张图展示一下效果。

    程序下载:点击打开链接

    http://download.csdn.net/detail/softimite_zifeng/9731575

    1. 简体中文

    2. 繁体中文

    3. 英文

    下面子丰介绍一下实现的过程:

    1. 为每个窗口创建相应语言的resx文件。子丰以英文为例,右键->添加->新建项->资源文件,文件名为窗口名.en-US,如上面的两个窗口,分别为LoginForm.en-US.resx和PasswordForm.en-US.resx。简体中文为LoginForm.zh-CN.resx和PasswordForm.zh-CN.resx,繁体中文为LoginForm.zh-CHT.resx和PasswordForm.zh-CHT.resx。下面给出LoginForm.en-US.resx文件的截图。

    2. 在项目的Properties的Settings.settings中添加变量DefaultLanguage,用于保存当前设置的默认语言。当下次启动程序时,会读取该变量,从而将程序的语言设置为上次程序关闭时的语言。

    3. 创建一个静态类(MultiLanguage.cs)用于编写与切换语言相关的变量和代码。

    (1)变量DefaultLanguage,用于保存当前默认语言

    //当前默认语言

    public static string DefaultLanguage = "zh-CN";

    (2)函数SetDefaultLanguage修改当前默认语言

    ///

    /// 修改默认语言

    ///

    /// 待设置默认语言

    public static void SetDefaultLanguage(string lang)

    {

    System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);

    DefaultLanguage = lang;

    Properties.Settings.Default.DefaultLanguage = lang;

    Properties.Settings.Default.Save();

    }

    (3)函数LoadLanguage用于加载语言或切换语言

    ///

    /// 加载语言

    ///

    /// 加载语言的窗口

    /// 窗口的类型

    public static void LoadLanguage(Form form, Type formType)

    {

    if (form != null)

    {

    System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(formType);

    resources.ApplyResources(form, "$this");

    Loading(form, resources);

    }

    }

    ///

    /// 加载语言

    ///

    /// 控件

    /// 语言资源

    private static void Loading(Control control, System.ComponentModel.ComponentResourceManager resources)

    {

    if (control is MenuStrip)

    {

    //将资源与控件对应

    resources.ApplyResources(control, control.Name);

    MenuStrip ms = (MenuStrip)control;

    if (ms.Items.Count > 0)

    {

    foreach (ToolStripMenuItem c in ms.Items)

    {

    //遍历菜单

    Loading(c, resources);

    }

    }

    }

    foreach (Control c in control.Controls)

    {

    resources.ApplyResources(c, c.Name);

    Loading(c, resources);

    }

    }

    ///

    /// 遍历菜单

    ///

    /// 菜单项

    /// 语言资源

    private static void Loading(ToolStripMenuItem item, System.ComponentModel.ComponentResourceManager resources)

    {

    if (item is ToolStripMenuItem)

    {

    resources.ApplyResources(item, item.Name);

    ToolStripMenuItem tsmi = (ToolStripMenuItem)item;

    if (tsmi.DropDownItems.Count > 0)

    {

    foreach (ToolStripMenuItem c in tsmi.DropDownItems)

    {

    Loading(c, resources);

    }

    }

    }

    }

    4. 在主窗口的Load事件中读取Properties.Settings.Default.DefaultLanguage,并将ComboBox赋值为当前默认语言,即简体中文、繁体中文或英文。

    private void LoginForm_Load(object sender, EventArgs e)

    {

    //设置combobox的值

    string language = Properties.Settings.Default.DefaultLanguage;

    if (language == "zh-CN")

    {

    languageTxt.Text = "简体中文(默认)";

    }

    else if (language == "zh-CHT")

    {

    languageTxt.Text = "繁體中文";

    }

    else if (language == "en-US")

    {

    languageTxt.Text = "English";

    }

    }

    5. 在每个窗口的Load事件中调用函数MultiLanguage.LoadLanguage,使窗口在出现时即显示为当前默认语言。

    private void PasswordForm_Load(object sender, EventArgs e)

    {

    //加载语言

    MultiLanguage.LoadLanguage(this, typeof(PasswordForm));

    }

    6. 编写用于切换语言的ComboBox的SelectedIndexChanged事件,使得当用户选择对应的语言时,程序会切换到该语言。

    //切换语言

    private void languageTxt_SelectedIndexChanged(object sender, EventArgs e)

    {

    languageTxt.Enabled = false;

    if (languageTxt.Text == "简体中文(默认)")

    {

    //修改默认语言

    MultiLanguage.SetDefaultLanguage("zh-CN");

    //对所有打开的窗口重新加载语言

    foreach (Form form in Application.OpenForms)

    {

    LoadAll(form);

    }

    }

    else if (languageTxt.Text == "繁體中文")

    {

    //修改默认语言

    MultiLanguage.SetDefaultLanguage("zh-CHT");

    //对所有打开的窗口重新加载语言

    foreach (Form form in Application.OpenForms)

    {

    LoadAll(form);

    }

    }

    else if (languageTxt.Text == "English")

    {

    //修改默认语言

    MultiLanguage.SetDefaultLanguage("en-US");

    //对所有打开的窗口重新加载语言

    foreach (Form form in Application.OpenForms)

    {

    LoadAll(form);

    }

    }

    languageTxt.Enabled = true;

    }

    private void LoadAll(Form form)

    {

    if (form.Name == "LoginForm")

    {

    MultiLanguage.LoadLanguage(form, typeof(LoginForm));

    }

    else if (form.Name == "PasswordForm")

    {

    MultiLanguage.LoadLanguage(form, typeof(PasswordForm));

    }

    }

    展开全文
  • 使用标准RESX文件本地化文本,图像和任何其他WPF属性
  • C#反编译资源文件修复工具ILSpy Reflector resgen批量resources转换resx工具 ILSpy反编译后,Winform窗体中的resx文件全部变成了resources,为了方便查看代码,得把这些转回来,这个工具批量转换非常方便
  • 这是“解决.resx合并问题”的替代方法
  • c#读取resx的配置项

    2021-09-10 08:40:52
    编辑config.resx,添加requestUrl,值为http://192.168.1.100:9001/service/,保存 代码读取配置项: Assembly myAssem = Assembly.GetExecutingAssembly(); ResourceManager rm = new ResourceManager("DemoMvc.co...

    右键点击解决方案,点击"添加" → "新建项",左边树形列表里选中Visual C#, 选择资源文件,命名为config.resx,点击"添加"。

    编辑config.resx,添加requestUrl,值为http://192.168.1.100:9001/service/,保存

    代码读取配置项:
    Assembly myAssem = Assembly.GetExecutingAssembly();
    ResourceManager rm = new ResourceManager("DemoMvc.config", myAssem); //DemoMvc是程序的命名空间,config 是资源文件名,不带扩展名
    string requestUrl = rm.GetString("requestUrl");

    (注意:以上代码段读取工程中已有的resx文件似乎不行,因此新建了一个config.resx,不知何故)

    展开全文
  • wpf-controls-localization-resx-files:此存储库包括带有默认字符串的resource(.resx)文件,这些文件用于Syncfusion WPF库的本地化
  • ResX修改器 C#中的帮助程序修改C# ResX文件 这个程序是一个简单的辅助工具,用于在 C# 中修改 .resx 文件。 这个想法是能够简单地添加、更新和/或删除 .resx 文件中的条目。 它是如何工作的: 使用 Visual Studio ...
  • Resx Resource翻译器源码

    2011-08-02 14:25:15
    Resx Resource翻译器源码 可以快速打开.NET项目中的resource文件(resx)进行翻译,所有可用资源文件放置到 左侧树状菜单浏览,右侧显示翻译字符串。项目兼容 vs2008和 vs2010。 使用向导 启动Resx Resource翻译器,...
  • 确保您的resx文件包含与MSBuild集成的每个条目的有效注释

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,734
精华内容 3,493
关键字:

resx