我知道有一些工具可以将文本文件提供给Visual Studio的资源文件.但是我想从我的资源文件中获取文本到文本文件,以便它们可以被翻译.或者有更好的方法吗?
我在C#中有一个.Net应用程序,我有一个类似的文件结构:
App_LocalResources
 - MyPage.aspx.resx
 - MyPage.aspx.fr.resx
MyPage.aspx
MyPage.aspx.cs
我试图以编程方式更改语言,告诉应用程序使用哪个resx文件.我想在代码隐藏文件(MyPage.aspx.cs)中执行此操作.
我在OnPreRender,Page_Init和Page_Load事件中尝试了这两种方法:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-CA");
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
它不起作用.该页面仍显示英语.MyPage.aspx文件包含:
<h3><asp:Literal runat="server" Text="<%$ Resources:pageTitle %>" /></h3>
请注意,我不关心浏览器语言.它必须超越这个.我一直在网上搜索这个解决方案无济于事.所有示例都显示了我已经尝试过的方式切换语言(上图)但是这不会影响所使用的资源文件.有任何想法吗?
我是一个不得不在MFC应用上做一些工作的.NET人.该应用程序是VS2008 MFC可执行文件,我已转换为VS2010.原始开发人员通过在应用程序命令行中指定具有键值对的.txt文件的名称来进行本地化.安装的可执行文件快捷方式指定了一个不同的.txt文件,具体取决于安装该应用程序的国家/地区.如果您直接运行.exe,这当然不起作用.对我来说,这似乎是一种奇怪的方式.
我想用MFC方式做这个,但我很难在Google上找到明确的答案.我的理解是.rc文件中的字符串表应该用于本地化?这是目前MFC的最佳实践吗?
关于字符串表,我已经读过,实践是为不同的语言创建多个字符串表.MFC应用程序如何选择使用哪种语言?它是基于机器当前语言设置还是我可以控制它(可能是我们希望语言由我们也在构建的Wix .msi安装程序指定)?
我还读到在MFC应用程序中嵌入所有资源已经失宠了,现在你应该编译单独的资源.dll?这是真的生病调查如何做到这一点......
最后,我是否必须做一些特殊的事情来让MFC支持Unicode或默认是MFC Unicode?
谢谢
我想从我的qrc文件中获取所有图像并将它们传递给ComboBox.不知道该说些什么.这是我认为的一项非常基本的任务,但我无法找到解决方案.
我在网上搜索并获得不一致的答案,但这些答案并没有解决我的问题.我创建了一个对话框,然后单击它向导为我创建一个类.不幸的是,它将类和文件命名为非常糟糕,所以我重命名了该文件.现在visual studio不会让我通过gui到dlg资源做任何事情 - 比如挂钩按钮甚至处理程序等等.我得到消息框:
"添加/删除操作是不可能的,因为代码元素'Cxxxx'是只读的"
这是一个真正的问题,因为通过代码手动添加处理程序和事物是繁琐的,并且其中一个开发人员无法以这种方式执行 - 他需要GUI来操作事件.
我试过删除ncb文件并重建项目,但没有运气.MS显然还没有解决这个问题4年左右(基于我在网上看到的搜索).
我无法通过MFC应用程序向导gui添加变量,事件处理程序或其他任何有用的东西.我只能通过编辑cpp和h文件来实现.
有没有人有什么建议?
资源文件(.RES)接受任何类型的二进制文件,但如果它是exe文件,我该如何运行它?
在我的.rc文件中,我发现我有3个TEXTINCLUDE部分重复两次,内容不同.当我打开"资源包含"时,仅显示前3个部分中的包含.很久以前我已经调整了.rc,所以它可能是剩下的.
我可以安全地删除后面的3个部分吗?
我从我的.rc文件中粘贴了这个,你可以看到TEXTINCLUDE部分是如何重复的(即"3 TEXTINCLUDE"后跟"1 TEXTINCLUDE".
1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END
2 TEXTINCLUDE 
BEGIN
    "#include ""afxres.h""\r\n"
    "#include ""res/Pngs.h""\r\n"
    "#include ""res/PngsNag.h""\0"
END
3 TEXTINCLUDE 
BEGIN
    "#include ""afxres.rc""      // Standard components\r\n"
    "#include ""res/MyProject.rc2""\r\n"
    "#include ""res/Pngs.rc2""\r\n"
    "#include ""res/PngsNag.rc2""\0"
END
1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END
2 TEXTINCLUDE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
END
3 TEXTINCLUDE 
BEGIN
    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
    "#define _AFX_NO_OLE_RESOURCES\r\n"
    "#define _AFX_NO_TRACKER_RESOURCES\r\n"
    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
    "\r\n"
    "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
    "#ifdef _WIN32\r\n"
    "LANGUAGE 9, 1\r\n"
    "#pragma code_page(1252)\r\n"
    "#endif //_WIN32\r\n"
    "#include ""res\\MyProject.rc2""  // non-Microsoft Visual C++ edited resources\r\n" …我有一个需要支持法语和英语的项目.我将所有字符串放入资源文件中.当我在Visual Studio中调试程序时,我可以用法语成功查看该程序.但是,当我运行该程序的测试时,该程序将恢复为英语.我将法语资源dll文件添加到部署中.这允许我用法语调试单个单元测试,但是当我单击Test - > Debug - > All Tests in Solution时,程序将以英语运行.
我试图将[DeploymentItem(@"..\bin\x86\Release\fr","fr-FR")]添加到其中一个测试中,但这没有帮助.有没有人对如何解决这个问题有任何建议?谢谢!
我需要在资源文件中循环,并使用以下语句加载所有BMP文件; bBitmap.Handle := LoadBitmap(hInstance, 'IMAGE_NAME');
如何循环资源文件; 我是否必须执行常规IO操作并将其视为文本文件?我可以读取每一行并创建一个位图名称列表,而不是在一个单独的循环上执行上面的语句来加载位图.或者Delphi库中是否有内置方法来执行此操作?
FILE_NAME_1 BITMAP"btnFile1.bmp" 
FILE_NAME_2 BITMAP"btnFile2.bmp" 
....
我有一个包含多个QML文件的项目.所有这些都在资源文件中.现在我想从本地文件系统加载外部图像.但我找不到办法做到这一点.
Image {
    source: "images/image.png" // that tries to load file as 'qrc:/images/image.png'
    source: "file://images/image.png" // that does not work (file not found)
}
所以现在我有点困惑,我怎么能以正确的方式加载文件?
我在类库项目中有一个资源文件.我正在使用此资源文件来保存用户可能最终看到的各种消息.
例如,资源的名称是"InvalidEmailAddress",en-US资源文件中的值是"无效的电子邮件地址".
当我调用ResourceManager的GetString(string)方法时,我这样做:
 return resourceManager.GetString("InvalidEmailAddress");
但是,这对我来说真的很糟糕.如果有人更改资源的名称怎么办?现在我的语句将返回一个空值.
有没有解决这个问题的方法?
更新:本地化是一个重要因素.使用资源管理器是为了确保我可以更改文化并获取适当的字符串值.
我已经为 cordova android 创建了一个自定义插件,我想使用资源文件。因此我在插件中添加了以下标签
<resource-file src="src/android/res/values/strings.xml" target="res/values/strings.xml" />
但是,这会导致在为 android 构建时出现以下错误:
TypeError: 无法在 android_parser.update_from_config (C:\Users\Matthias\AppData\Roaming\npm\ node_modules\cordova\node_modules\cordova-lib\src\cordova\metadata\android_parse r.js:209 处设置 null 属性“文本” :51) 运行一个或多个平台时出错:TypeError: 无法将属性“文本”设置为 null
当我从plugin.xml中删除资源文件标签时,构建成功。尽管如此,我还是需要那些绳子。
有谁知道解决此问题的任何解决方案或替代方案?我在这里发现了类似的问题,不幸的是没有记录任何解决方案:
谢谢。