我的.resx资源文件痛点

时间:2016-12-21 17:26:02

标签: asp.net .net visual-studio localization resx

当使用.resx资源文件进行本地化时,我有以下几点:

  1. 对于每个标签,我需要在每个不同的语言文件中创建一个条目。在复制条目名称方面容易出现人为错误,并且在一个地方添加相同标签的不同语言版本会更容易。例如:

    var lbl_Hello = new { en = "Hello, fr = "Bonjour" };

  2. 我似乎无法使用Visual Studio搜索在resx可视化编辑器中搜索名称或值。

  3. 是否有其他方法可以克服这些问题?

1 个答案:

答案 0 :(得分:0)

我感觉到你的痛苦。多年来微软没有为此提供更好的替代方案,这是荒谬的。甚至.NET Core本地化也使用.resx文件。我的替代方法是创建一个表,其中包含您要跟踪的一列foreach语言。然后很快在管道中(在.NET Core中)或在配置阶段(旧的ASP)中以静态变量(字典)的形式将其加载到内存中,或者将其插入本地/共享缓存而没有过期日期。

修改

如果要本地化的字符串数量不是很大并且所有语言都可用,那么你可以完美地将它们内联到静态类本身,而不是将它们放在外部资源(数据库或文件)上)。但是在外部资源上使用这些字符串有一个明显的优势,您可以在不重新编译应用程序的情况下替换它们。

此外,有时您不会使用您想要提供的所有可用语言翻译所有字符串。然后,如果您在数据库或外部文件中分配了资源,那么您可以提供用户界面以允许具有所需权限的某些用户修改/完成翻译。