【问题标题】:My .resx Resource File Pain Points我的 .resx 资源文件痛点
【发布时间】:2016-12-21 17:26:01
【问题描述】:

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

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

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

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

有没有办法克服这些问题?

【问题讨论】:

  • 请看我回答的编辑。咻

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


【解决方案1】:

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

编辑

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

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

【讨论】:

  • 您对将字典保存在静态类本身而不是使用数据库加载它有何看法?它还将提供静态类型。
猜你喜欢
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多