我们在全球化方面使用resx文件,以及数据库查找可配置的内容(例如选项卡名称,可以根据产品不同而不同),这些内容由我们的客户支持人员配置,并因此在设计时未知。
我创建了一个自定义工具,它会读取resx文件并智能地将键/值对转储到关系型数据库中(匹配值以避免重复)。
这对我们的业务非常有帮助 - 我们不必为每个resx发送翻译(并支付共享单词的重复翻译费用),并且我们拥有所有翻译的“黄金标准”(在数据库中)。
我创建的工具还会读取数据库,获取键/值对和每个值的翻译,并为每个resx文件(以及每种语言的文本文件的翻译)创建文本文件,并自动运行resgen.exe,这是一款随Visual Studio一起提供的命令行工具,以从生成的文本文件编译resx文件。
我没有任何源代码控制集成,因此在使用该工具时,我们必须手动签出resx文件并手动签入生成的文件,但这并不是一个大问题。
我的问题是,这种方法在我们的新MVC项目中失败了:MVC项目要求resx文件是具有“public”访问修饰符的嵌入式资源。
到目前为止,我们一直在手动修复这个问题,这可能会引入人为错误,并增加相当数量的工作量。
有没有办法让resgen.exe创建嵌入式和公共的资源文件?如果没有,是否有其他方法可以创建将这样做的resx文件?
更新,附加问题: 我们使用此方法生成的resx文件也会引发警告:
我创建了一个自定义工具,它会读取resx文件并智能地将键/值对转储到关系型数据库中(匹配值以避免重复)。
这对我们的业务非常有帮助 - 我们不必为每个resx发送翻译(并支付共享单词的重复翻译费用),并且我们拥有所有翻译的“黄金标准”(在数据库中)。
我创建的工具还会读取数据库,获取键/值对和每个值的翻译,并为每个resx文件(以及每种语言的文本文件的翻译)创建文本文件,并自动运行resgen.exe,这是一款随Visual Studio一起提供的命令行工具,以从生成的文本文件编译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文件的工具。有没有办法可以避免这个警告?