将 CSV 文件或 Excel 电子表格转换为 RESX 文件

2024-03-28

我正在寻找针对我遇到的问题的解决方案或建议。我有一堆需要本地化的 ASPX 页面,还有一堆需要支持 6 种语言的文本。

进行翻译的人员无法访问 Visual Studio,最简单的工具可能是 Excel。如果我们使用 Excel 甚至导出到 CSV,我们需要能够导入以移动到 .resx 文件。那么,最好的方法是什么?

我知道这个问题,将 Visual Studio 资源文件转换为文本文件? https://stackoverflow.com/questions/198772/convert-a-visual-studio-resource-file-to-a-text-file已经使用 Resx Editor,但更简单的解决方案将是首选。


我不确定您正在寻找的答案有多全面,但如果您真的只是使用 [string, string] 对进行本地化,并且您只是在寻找一种快速加载资源(.resx)的方法文件与翻译结果,那么以下将作为一个相当快速、低技术含量的解决方案。

需要记住的是,.resx 文件只是 XML 文档,因此应该可以从外部代码手动将数据加载到资源中。以下示例在 VS2005 和 VS2008 中对我有用:

namespace SampleResourceImport
{
    class Program
    {
        static void Main(string[] args)
        {

            XmlDocument doc = new XmlDocument();
            string filePath = @"[file path to your resx file]";
            doc.Load(filePath);
            XmlElement root = doc.DocumentElement;

            XmlElement datum = null;
            XmlElement value = null;
            XmlAttribute datumName = null;
            XmlAttribute datumSpace = doc.CreateAttribute("xml:space");
            datumSpace.Value = "preserve";

            // The following mocks the actual retrieval of your localized text
            // from a CSV or ?? document...
            // CSV parsers are common enough that it shouldn't be too difficult
            // to find one if that's the direction you go.
            Dictionary<string, string> d = new Dictionary<string, string>();
            d.Add("Label1", "First Name");
            d.Add("Label2", "Last Name");
            d.Add("Label3", "Date of Birth");

            foreach (KeyValuePair<string, string> pair in d)
            {
                datum = doc.CreateElement("data");
                datumName = doc.CreateAttribute("name");
                datumName.Value = pair.Key;
                value = doc.CreateElement("value");
                value.InnerText = pair.Value;

                datum.Attributes.Append(datumName);
                datum.Attributes.Append(datumSpace);
                datum.AppendChild(value);
                root.AppendChild(datum);
            }

            doc.Save(filePath);
        }
    }
}

显然,前面的方法不会为您的资源生成代码隐藏,但是在 Visual Studio 中打开资源文件并切换资源的辅助功能修饰符将为您(重新)生成静态属性。

如果您正在寻找完全基于 XML 的解决方案(相对于 CSV 或 Excel 互操作),您还可以指示翻译人员将其翻译内容存储在 Excel 中,另存为 XML,然后使用 XPath 检索您的本地化信息。唯一需要注意的是文件大小往往会变得相当臃肿。

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 CSV 文件或 Excel 电子表格转换为 RESX 文件 的相关文章

随机推荐

  • 无需外部 SD 卡即可缓存位图

    图像不会缓存在内部存储中 并且在没有外部 SD 卡的设备上会崩溃 我已经尝试了我所知道的 但没有任何效果 这是ImageCache java package com minecraftpix android bitmapfun util i
  • Azure API 应用程序 (.NET Core) 截断了大型 JSON 响应

    我有一个返回 JSON 的标准 NET Core API 控制器 一切都按设计进行 但对于较大的数据集 响应会被截断 我无法弄清楚 或在 Stackoverflow 或其他地方找到 如何增加限制 假设这就是原因 有人可以指出我正确的方向吗
  • web.xml 中的安全约束未应用于具有文件扩展名的 URL 模式

    我在 web xml 中输入了以下安全约束 我的目标是 XML 文件位于公共区域 这适用于 images 文件夹 然而 url 模式 xml似乎不起作用 有任何想法吗
  • 如何使用内联汇编在 C/C++ 程序中调用 DOS 中断?

    我需要从 C C 程序调用一些 DOS 中断 服务 我尝试了以下内联 asm 代码 读一个字符 int main asm movb 0x01 ah int 0x21 system PAUSE 但这没有用 我想知道我在这里做错了什么 另外如果
  • 每个 id 单行到每个 id 多行

    我想根据给定的时间间隔将观察结果从每个 id 单行扩展到每个 id 多行 gt dput df structure list id c 123 456 789 gender c 0 1 1 yr start c 2005 2010 2000
  • 使用 Ruby on Rails 进行 Postgres 公共表表达式查询

    我试图找到在 Rails 应用程序中使用通用表表达式进行 Postgres 查询的最佳方法 因为我知道 ActiveRecord 显然不支持 CTE 我有一张桌子叫user activity transitions其中包含一系列正在启动和停
  • 如何将数据帧转换为R中的ID列表? [复制]

    这个问题在这里已经有答案了 我整个晚上都在努力弄清楚如何在 R 中做到这一点 基本上我有一个如下的数据集 id lt c 1 1 1 2 2 3 3 3 3 label lt c a b c b d a c d e mydata lt as
  • 在固定超时内缓存单个对象的最佳方法是什么?

    Google Guava 有 CacheBuilder 允许使用过期密钥创建 ConcurrentHash 从而允许在固定 tiemout 后删除条目 但是我只需要缓存某种类型的一个实例 使用 Google Guava 在固定超时内缓存单个
  • Rxjs 主题下一个或 onNext

    我对 rxjs 很陌生 请耐心等待 例如在本教程中http blog angular university io how to build angular2 apps using rxjs observable data services
  • 无法在 Ubuntu 12.10 上安装 pg gem

    我使用的是 Ubuntu 12 10 64 位 并且安装了以下软件包 dpkg get selections grep postgre output postgresql postgresql 9 1 postgresql client p
  • 在 Java 中对月份和年份进行排序的最有效方法

    我有一个列表 其中包含字符串格式的日期 MON YYYY 我需要对此列表进行排序 到目前为止我遵循的方法是读取列表并以日期格式转换字符串并使用比较选项 但是我我没有得到想要的结果 代码片段 List
  • 检测受密码保护的 PPT 和 XLS 文档

    我找到了这个答案https stackoverflow com a 14336292 1537195 https stackoverflow com a 14336292 1537195这提供了检测 DOC 和 XLS 文件密码保护的好方法
  • 追加在 for 循环中生成的 pandas 数据帧

    我正在 for 循环中访问一系列 Excel 文件 然后我将 Excel 文件中的数据读取到 pandas 数据框中 我不知道如何将这些数据框附加在一起 然后将数据框 现在包含所有文件中的数据 保存为新的 Excel 文件 这是我尝试过的
  • Python Reddis 队列 ValueError:worker 无法处理 __main__ 模块中的函数

    我正在尝试使用 python rq 在 redis 中排队一项基本作业 但它会抛出此错误 ValueError 函数来自main模块无法被工作人员处理 这是我的程序 import requests def count words at ur
  • Oracle:DDL 和事务回滚

    Oracle DDL 创建 更改 是否可以像 MS SQL 中那样具有事务性 从 2005 年开始 DDL 在 Oracle 中不是事务性的 来自11 2 doc http docs oracle com cd E25054 01 serv
  • 使用 javascript regexp 查找第一个和最长的匹配

    我有一个像下面的简化示例一样的正则表达式 var exp he hell 当我在字符串上运行它时 它会给我第一个匹配项 fx var str hello world var match exp exec str match contains
  • 将 CNN 的输出传递给 BILSTM

    我正在开发一个项目 其中我必须将 CNN 的输出传递给双向 LSTM 我创建了如下模型 但它抛出 不兼容 错误 请让我知道哪里出了问题以及如何解决这个问题 model Sequential model add Conv2D filters
  • requestAnimationFrame 仅被调用一次

    我正在尝试在 Ionic 2 应用程序中使用 ThreeJS 实现非常基本的动画 基本上是尝试旋转一个立方体 但立方体没有旋转 因为 requestAnimationFrame 仅在渲染循环内执行一次 I m able to see onl
  • 如何设置 Eclipse CDT 使用 GCC-4 而不是 GCC?

    如何设置 Eclipse CDT 使用 GCC 4 而不是 GCC 我问这个问题是因为我使用 Windows 64 位和 Cygwin 而 gcc exe 不起作用 我需要配置 Eclipse CDT 以使用 gcc 4 exe 但我不知道
  • 将 CSV 文件或 Excel 电子表格转换为 RESX 文件

    我正在寻找针对我遇到的问题的解决方案或建议 我有一堆需要本地化的 ASPX 页面 还有一堆需要支持 6 种语言的文本 进行翻译的人员无法访问 Visual Studio 最简单的工具可能是 Excel 如果我们使用 Excel 甚至导出到