在我们的应用程序中,我们有一组数据项,每个项都有一个DisplayedName
属性。此属性应本地化,即应以用户选择的语言显示。因此,另一个属性DisplayedNameResourceKey
指定该属性应返回哪个资源DisplayedName
。
在简化的代码中,这意味着如下:
public string DisplayedName
{
get
{
return MyResources.ResourceManager.GetObject(this.DisplayedNameResourceKey);
}
}
public string DisplayedNameResourceKey
{
get;
set;
}
现在,问题是:用户应该能够编辑这些项目,包括DisplayedName
,或更准确地说是DisplayedNameResourceKey
. 不仅如此,用户还应该能够以某种方式定义他可以引用的新资源。也就是说,他可以从一组预定义的资源(一些常用名称)中进行选择,也可以定义一个自定义资源,然后用户也需要对其进行本地化。
但是,用户不能MyResources
在运行时和不编译的情况下添加自定义资源。因此,需要另一种方法。它不必是非常用户友好的方式(例如不需要 UI),因为这通常由我们的服务工程师完成。
我正在考虑使用包含资源键对和相应翻译的 txt 或 csv 文件。在预定义的位置,每种语言都会存在一个单独的文件。但我对这个想法并不满意,因为它涉及大量工作来解决资源问题。
有谁知道这种情况的好方法?