- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有两个文件:Resources.resx 和 Resources.de.resx。
Resources.de.resx 仅包含一个翻译后的值。我正在使用以下方法加载所有资源键/值:
ResourceSet resourceSet = Resources.ResourceManager.GetResourceSet(Thread.CurrentThread.CurrentCulture, true, true);
当我第一次加载资源集时,我的 Thread.CurrentThread.CurrentCulture.Name 是空字符串,Thread.CurrentThread.CurrentCulture.NativeName = "Invariant Language (Invariant Country)", Thread.CurrentThread.CurrentCulture.LCID = 127。
因此,资源集有 200 个键,其值按预期从 Resources.resx 加载。然后,我使用以下通过单击按钮触发的代码切换当前文化:
Thread.CurrentThread.CurrentCulture = new CultureInfo("de");
Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
当我现在加载资源集时,资源集中只有一个键。它是来自 Resources.de.resx 的翻译 key 。但我仍然希望有 200 个键,只有一个项目翻译成德语 (de)。
当前德语(德)文化的父文化与我第一次调用获取资源集的方法时相同的不变语言文化。基本上,由于某些原因,回退似乎不起作用。你能告诉我我做错了什么吗?
最佳答案
您必须从不变文化中获取所有键,然后才能查找所有翻译。所以回退有效。
查找到的资源可以存储在字典中。
var keys = Resources.ResourceManager
.GetResourceSet(CultureInfo.InvariantCulture, true, true)
.Cast<DictionaryEntry>()
.Select(entry => entry.Key)
.Cast<string>();
var enUsResources = keys.ToDictionary(
key => key,
key => Resources.ResourceManager.GetString(key, CultureInfo.GetCultureInfo("de")));
关于c# - GetResourceSet 不加载回退值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24786931/
我有两个文件:Resources.resx 和 Resources.de.resx。 Resources.de.resx 仅包含一个翻译后的值。我正在使用以下方法加载所有资源键/值:
我第一次在堆栈溢出中遇到与我类似的问题:Loop through all Resources in ResourceManager - C# 。它只解决了我需要做的一部分。当您在资源文件中请求特定区域
我正在开发一个用 C# (asp.net) 构建的大型 Web 应用程序。我有一个简单的 aspx 页面,它向客户端浏览器提供本地化字符串以供在 javascript 控件中使用。要获取字符串,我执行
.NET 中有没有办法进行以下调用: ResourceManager.GetResourceSet(new CultureInfo("en-GB"), true, false) ResourceMa
本文整理了Java中org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper.getResourceSet()方法的一些
我是一名优秀的程序员,十分优秀!