问题标签 [resx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2010 - VS2010 下的某些 C++/CLI 项目属性页不支持 % 样式宏?
我们目前正在评估 VS2010,并将我们的 VS2008 C++/CLI 项目升级到新的 .vcxproj 格式。我注意到我们在项目设置中设置的某个属性没有正确翻译。在 Configuration Properties -> Managed Resources -> Resource Logical Name 下,我们曾经(在 VS2008 中)具有以下设置:
这表明所有 .resx 文件都将编译成
组件内部。(调试部分在组装时被丢弃)
根据 MSDN,$(InputName) 宏不再存在,应替换为 %(Filename)。但是,当翻译上述行以交换这些宏时,它似乎永远不会扩展。它尝试编译的第二个 .resx 文件,我得到一个“链接:致命错误 LNK1316:重复的托管资源名称 'Debug\OurLib.%(Filename).resources”。这向我表明 % 样式宏在这里没有被扩展,至少在这个特定的属性中。
如果我们没有在该属性中设置任何内容,则默认行为似乎是将子目录添加为前缀,例如:
其中 Forms 是 .resx 文件所在项目的子目录。仅当 .resx 文件位于正在构建的项目的直接子目录中时,才会发生这种情况。如果 .resx 文件存在于磁盘上的其他位置(又名 ..\OtherLib\Forms\SomeForm2.resx),则不会添加此前缀。
这会导致加载表单资源出现问题,因为它没有考虑到这个可能的前缀,即使我们使用的是标准的表单设计器获取资源的方法:
并且不要按名称指定 .resources 文件。
我刚刚描述的问题可能与原始问题不同,但如果我要修复资源逻辑名称问题,我认为这一切都会消失。有没有人有关于这些 % 宏以及允许在哪里使用它们的任何信息?
c# - 字符串资源文件命名方案及管理
也许是一个微不足道的问题,但我对答案很感兴趣。我目前正在重构一些非常大的整体字符串资源文件(每个项目一个垃圾箱资源文件,大约 30 个项目)。我将它们拆分,以便我们遵循文件约定,并使字符串在编码时更易于查找和管理。
通常我将文件拆分成这个方案:
- 错误消息.resx
- 日志消息.resx
- 查看资源.resx
- 应用资源.resx
我对命名并不十分兴奋,我只是想知道其他人使用什么。例如AppResources
,我看到很多演示项目使用StringResources
, Internal
(terrible!) 等,而不是 (应用程序内部使用的字符串)。
对管理资源或标准命名方案的想法/轶事/建议表示赞赏。
c# - 如何从 System.Drawing.Bitmap 对象中提取原始图像流?
我正在使用.resx
文件将图像嵌入到我的程序集中。在运行时,我需要将图像保存到独立文件中,恢复原始内容。如何从System.Drawing.Bitmap
实例中提取原始文件流?我知道我可以使用创建流Bitmap.Save()
,但这会转码(实际上是膨胀)图像,即使将 PNG 保存为 PNG。
或者也许我的错误是从一开始就阅读Resource
它们Bitmap
?
c# - ASP.NET *.resx 序列化
我正在为一个 I18N 项目做出贡献,并且有人调用将我们的 *.resx 文件序列化为 JSON 对象(无论出于何种原因)。
我想知道的是:
- 有没有办法获取给定 *.resx 文件的所有有效键的列表,以便我们可以使用 HttpContext.GetGlobalResourceObject 来获取令牌?
- 如果这不起作用,有没有人想出一个聪明的解决方案呢?
c# - 从 XAML 中的 *.resx 文件中获取值
是否可以将资源文件中的一些值直接添加到 XAML 标记中?或者为了本地化,我们总是必须在 *.cs 文件中做这样的事情:
资源在哪里Messages
,txtMessage
TextBlock 在哪里。
c# - 在 Resources.Designer 中防止(手动输入)代码删除
我在 Resources.Designer.cs 中添加了一个小函数,它运行良好,问题是当我从 Resources.resx 添加或删除某些内容时,此函数总是被删除,是否有任何指标我可以放置或无论如何绕过这个?
谢谢!
这是用作索引器的非常简单的方法。
我这样做是因为你不能做 Properties.Resources 然后连接一个值。扩展可以工作,但是我试过了,它变得很花哨,因为它都是静态方法,你不想实例化。
想法?
c# - ResXResourceWriter 截断文件末尾
我正在尝试从字符串字典创建一个 .resx 文件。幸运的是,.Net 框架有一个 ResXResourceWriter 类。唯一的问题是,当我使用下面的代码创建文件时,我生成的 resx 文件的最后几行丢失了。我检查了我的字典,它包含了我期望的所有字符串对。
不幸的是,显示整个 resx 文件有点困难,因为它有 2198 行(应该有 2222 行),但这是最后一点:
顺便说一句,请注意文件在“LangAlign_Return”中的“n”末尾处被截断。该字符串应为“LangAlign_ReturnToWorkspace”。该文件也应该在第 2222 行结束。
asp.net - ASP.NET HttpContext.GetLocalResourceObject() 抛出 InvalidOperationException
假设我们有这样的网站结构:
App_LocalResources
|- A.aspx.resx
|- B.aspx.resx
A.aspx
B.aspx
现在我在 A.aspx.cs 中使用 HttpContext.GetLocalResourceObject("~/A.aspx", "Key1") ,它工作正常。但是,如果我在 B.aspx.cs 中使用 HttpContext.GetLocalResourceObject("~/A.aspx", "Key1") ,则会引发异常:
未找到此页面的资源类。请检查资源文件是否存在,然后重试。
异常详细信息:System.InvalidOperationException:找不到此页面的资源类。请检查资源文件是否存在,然后重试。
我该如何解决这个问题?我想从外部页面读取本地资源,我不想自己读取 .resx 文件。谢谢 :-)
更新:就我而言,有一些“data.xml”文件(它们位于不同的目录中,并且具有类似的元素<key name='Key1' value='value1' />
),它们的内容将呈现为 html。
但是data.xml中的键名应该在渲染前进行本地化(不同的data.xml包含不同的键)。
例如,data.xml 有这样一个元素:
在结果 html 页面中,我想为 en-US 文化显示“Category Id = 3”,为 zh-CN 文化显示“类别 = 3”等。
所以我想我可以data.xml.??-??.resx
在文件夹中按照“”模式创建一些文件App_LocalResources
,然后使用HttpContext.GetLocalResource()
for each data.xml 来检索本地化的键名。这样我就不需要自己阅读 xml 了。可能吗?
c# - 如何为项目自动生成 resx 文件
我想为我的项目自动生成 Resx 文件,我听说有程序可以做到这一点。谁能告诉我它的名字?
c# - 一个本地 .resx 字符串可以引用另一个本地 .resx 字符串吗?
我正在尝试确定是否可以将连接字符串添加到我的本地 .resx 文件之一。这个例子应该澄清:
假设我有一个简单的 ASP.NET 网页,它由 (1) 一个标签组成,其文本是一个重要的关键字 (2) 一个带有必填字段验证的输入和 (3) 一个导致验证发生的按钮:
现在,在此页面的资源文件中,我们要本地化页面控件的字符串。但是,对于我们的错误消息,我们希望使用输入标签的文字名称。这是我的问题。
有没有办法将一个资源文件的字符串这种类型的串联连接到同一个文件中的另一个字符串?
谢谢!