为 MVC 生成 Resx 文件

2024-01-05

我们使用 resx 文件进行全球化,并使用数据库查找我们的 CS 人员可以配置的内容(例如选项卡名称,可能因产品而异),因此在设计时是未知的。

我创建了一个自定义工具,可以读取 resx 文件并智能地将键/值对转储到关系数据库中(匹配值,这样我们就不会出现重复项)。

这对我们的业务有很大帮助 - 我们不必发送每个 resx 进行翻译(并为共享单词的重复翻译付费),而且我们的所有翻译(在数据库中)都有一个“黄金标准”。

我创建的工具还读取数据库,获取键/值对和每个值的翻译,并为每个 resx 文件(以及文本文件的每种语言的翻译)创建文本文件,并自动运行 resgen.exe(一个命令) Visual Studio 附带的 -line 工具,用于从生成的文本文件编译 resx 文件。

我没有任何源代码管理集成,因此我们必须在使用该工具时手动签出 resx 文件并手动签入生成的文件,但这并不是一个大问题。

我的问题是,此方法对于我们的新 MVC 项目失败:MVC 项目要求 resx 文件是访问修饰符为“public”的嵌入资源。

到目前为止,我们一直在手动修复这个问题,这引入了人为错误的可能性,并增加了不小的工作量。

有没有办法让 resgen.exe 创建嵌入式和公共的资源文件?如果没有,是否有其他方法可以创建 resx 文件来执行此操作?

更新,补充问题: 我们使用此方法生成的 resx 文件也会发出警告:

A custom tool 'PublicResXFileCodeGenerator' is associated with file '(resxname)',
but the output of the custom tool was not found in the project.
You may try re-running the custom tool by right-clicking on the file in the
Solution Explorer and choosing Run Custom Tool. 

提到的工具是我们最初用来创建 resx 文件的工具。有什么办法可以阻止这个警告吗?


首先,您可以使用以下方法生成公共资源:/publicClass命令行选项。另请参阅:Resgen.exe - 资源文件生成器 @ msdn http://msdn.microsoft.com/en-us/library/ccec7sz1.aspx

其次,我不认为你可以让 resgen 默认将资源文件嵌入资源,因为它不是资源的属性,而是项目的设置。

例如:当您添加新资源“Resource1”时,使用向导,新的项目组将添加到项目文件中:

<ItemGroup>
  <EmbeddedResource Include="Resource1.resx">
    <Generator>ResXFileCodeGenerator</Generator>
    <LastGenOutput>Resource1.Designer.cs</LastGenOutput>
  </EmbeddedResource>
</ItemGroup>

也许有一些库可以以编程方式修改项目文件,但我不知道。

我要做的只是尝试自己序列化和反序列化项目文件,然后为生成的每个资源添加该部分。

EDIT:

它还将添加不同的项目组:

<ItemGroup>
  <Compile Include="Resource1.Designer.cs">
    <AutoGen>True</AutoGen>
    <DependentUpon>Resource1.resx</DependentUpon>
    <DesignTime>True</DesignTime>
  </Compile>
</ItemGroup>

所以,除非你有一个好的第三方程序来序列化、编辑、反序列化项目文件。让巫师来做可能会更好。

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

为 MVC 生成 Resx 文件 的相关文章

随机推荐

  • java中xpath的问题

    我目前在 java 中的 xpath 表达式遇到问题 我正在尝试获取商店名称列表 我得到了以下 XML
  • 为什么这段代码打印的结果是“7”?

    最近开始学习PHP 请让我相信这个类型转换过程 来自 PHP net 通常 简单的十进制小数 例如 0 1 或 0 7 无法在不损失少量精度的情况下转换为其内部二进制对应部分 这可能会导致令人困惑的结果 例如 floor 0 1 0 7 1
  • NoClassDefFoundError:org/slf4j/impl/StaticLoggerBinder

    我正在尝试运行给出的示例图块示例here http richardbarabe wordpress com 2009 02 17 apache tiles 2 a brief example 下面是我的 POM xml
  • 阿拉伯语排版字体使我的 JTextArea、JTextPane 和 JTextEditor 变慢

    我在用JTextArea在 Java 中显示乌尔都语 阿拉伯语和英语的厚文本 问题是我的 GUI 冻结了12 15sec当我使用阿拉伯语排版字体 for JTextArea 我从 XML 获取文本 然后在文本区域中显示 也使用linewra
  • 备份 MySQL Amazon RDS

    我正在尝试在 AWS 之外设置副本 而主服务器正在 AWS RDS 上运行 我不希望我的主人有任何停机时间 因此 我设置了从属节点 现在我想备份位于 AWS 的当前数据库 mysqldump h RDS ENDPOINT u root p
  • 为什么我的宏不删除所有行(VBA)

    我有这个宏 它应该删除所有没有设置背景的单元格 但是当我执行宏时 如果两个或多个连续的单元格没有背景 它只会删除其中一个 这里是代码 Sub Macro1 Dim a As Range Set a Hoja1 Range A1 A12 Fo
  • 更改 Bootstrap 导航选项卡行换行

    在 Bootstrap 3 中 导航选项卡行的换行方式是最宽的行位于顶部 而较短的行位于底部 这使得选项卡看起来笨拙且不平衡 有没有一种方法可以修改导航选项卡 使底部的行更宽 更多类似这样的 这是JSFiddle https jsfiddl
  • 从 NSMutableString 中删除最后一个字符

    如何从 NSMutableString 中删除最后一个字符 你可以使用删除范围内的字符 http developer apple com library mac documentation Cocoa Reference Foundatio
  • 企业数据审计[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 阻止来自多个套接字的 select()

    Unix C 问题在这里 我有多个套接字 我正在尝试轮询周期性数据 我不想选择无限期地等待 所以我有一个超时并且我正在循环中运行 我发现一旦套接字准备好读取 它随时可以阅读 例如 当没有从任何套接字读取数据时 我无法让 select 进入睡
  • 如何让应用程序等待然后开始活动或返回?

    我希望我的 Activity 显示一个屏幕 3 秒钟 然后返回到上一个屏幕 但是当我使用 protected void onCreate Bundle savedInstanceState super onCreate savedInsta
  • 实体框架上下文为静态

    在 Web 应用程序中 如果我将实体框架模型的上下文声明为静态就可以了吗 可以吗 不推荐吗 为什么 谢谢 几乎肯定不是 随着越来越多的对象被查询 保存 ObjectContext 变得越来越大 另外 不建议像您所做的那样在线程之间共享 Ob
  • express/connect 中间件,在响应发送到客户端后执行

    是否可以编写一个中间件 在将响应发送到客户端之后或在处理请求并在将响应发送到客户端之前调用之后执行 pauljz 给出了基本方法 但为了扩展这里是一个中间件的示例 module exports function return functio
  • 当前上下文中不存在名称“$exception”

    今天我正在调试工作中的一个应用程序 我继续在其中一个 catch 块中设置断点 以便更详细地检查异常 The View Detail模式窗口正常打开 但它没有向我显示异常的详细信息 而是抛出一个奇怪的错误 我从未遇到过这个错误 我也不知道这
  • 如何导入外部库并将其转换为 Typescript 中的

    当我尝试使用我定义的 React 组件时 TypeScript 给了我一个编译错误 我不知道如何修复 import App require components views app app 当我使用导入模块时 该错误消失了
  • 如何指定使用Spring Cloud Stream向RabbitMQ发送消息的超时?

    我们在发送消息的过程中遇到了网络问题 这导致所有线程都处于阻塞状态 我们正在使用org springframework cloud spring cloud stream 2 0 1 RELEASE and org springframew
  • 在 hql 脚本中,我们使用“!sh echo ---new line---”来表示相同的 .想知道 impala 中的替代方案来打印 impala 脚本中的任何行吗?

    在 hql 脚本中 我们使用 sh echo new line 来表示相同的 想知道 impala 中的替代方案来打印 impala 脚本中的任何行吗 您可以从 impala 脚本调用 shell 命令行 作为其工作原理的示例 script
  • 在正则表达式中添加变量以使其在java中动态化

    我需要形成正则表达式才能检查响应日志的输出 日志文件将始终根据输入而不同 因此 我想创建一个dynamic基于函数输入的正则表达式 我可能需要一次传递可变数量的变量进行比较 那么如何在正则表达式中插入 或 因子 是否可以在 Java 中创建
  • pthreads 与 GCD 相比有什么优势吗?

    最近学习了 Grand Central Dispatch 我发现多线程代码非常直观 使用 GCD 我喜欢这样的事实 不需要锁 并且它内部使用无锁数据结构 并且 API 非常简单 现在 我开始学习 pthreads 我不禁对它的复杂性感到有点
  • 为 MVC 生成 Resx 文件

    我们使用 resx 文件进行全球化 并使用数据库查找我们的 CS 人员可以配置的内容 例如选项卡名称 可能因产品而异 因此在设计时是未知的 我创建了一个自定义工具 可以读取 resx 文件并智能地将键 值对转储到关系数据库中 匹配值 这样我