1

在我们的应用程序中,我们有一组数据项,每个项都有一个DisplayedName属性。此属性应本地化,即应以用户选择的语言显示。因此,另一个属性DisplayedNameResourceKey指定该属性应返回哪个资源DisplayedName

在简化的代码中,这意味着如下:

public string DisplayedName
{
    get
    {
        return MyResources.ResourceManager.GetObject(this.DisplayedNameResourceKey);
    }
}

public string DisplayedNameResourceKey
{
    get;
    set;
}

现在,问题是:用户应该能够编辑这些项目,包括DisplayedName,或更准确地说是DisplayedNameResourceKey. 不仅如此,用户还应该能够以某种方式定义他可以引用的新资源。也就是说,他可以从一组预定义的资源(一些常用名称)中进行选择,也可以定义一个自定义资源,然后用户也需要对其进行本地化。

但是,用户不能MyResources在运行时和不编译的情况下添加自定义资源。因此,需要另一种方法。它不必是非常用户友好的方式(例如不需要 UI),因为这通常由我们的服务工程师完成。

我正在考虑使用包含资源键对和相应翻译的 txt 或 csv 文件。在预定义的位置,每种语言都会存在一个单独的文件。但我对这个想法并不满意,因为它涉及大量工作来解决资源问题。

有谁知道这种情况的好方法?

4

1 回答 1

0

您可以考虑将资源放入数据库中。通过这种方式,您可以保持它相当动态和快速。

例如具有 3 列的表:资源键、语言、消息。您可能应该在资源键和语言列上创建一个复合索引以便快速查找。

于 2010-03-25T07:37:13.337 回答