代码之家  ›  专栏  ›  技术社区  ›  Lea Cohen mark winkle

ASP.NET中的全局资源与本地资源

  •  37
  • Lea Cohen mark winkle  · 技术社区  · 17 年前

    我们使用resx文件来本地化我们的web应用程序。当只有一个页面使用某个短语时,我们通常创建本地resx文件(映射到特定页面),当多个页面需要该短语时,我们通常创建全局resx文件。

    Resource.UI.iNotFound

    所以我在想,为什么本地有resx文件呢?为什么不为整个应用程序使用一个全局resx文件,这样可以避免调用不存在的短语时出现运行时错误?

    4 回复  |  直到 15 年前
        1
  •  50
  •   Community Mohan Dere    6 年前

    我一直在寻找指导方针,并在 MSDN :

    在全局资源文件和本地资源文件之间进行选择

    您可以使用全局变量的任意组合 应用一般来说,您可以添加 将资源复制到全局资源文件 当您想要共享资源时 在书页之间。全球资源 资源文件也是强类型的 当您想要访问这些文件时使用 以编程方式。

    但是,全局资源文件可以 变大,如果你储存所有的 其中的本地化资源。全球的 难以管理,如果不止一个 开发人员正在处理不同的问题 页面,但在单个资源文件中。

    本地资源文件可以更轻松地 网页但你不能分享 您可能会创建许多本地 这必须局限于许多领域 语言。如果站点很大,则 资源可以快速扩展应用程序 中的程序集数 应用程序域。

    更改默认资源文件时, ASP.NET应用程序。这个可以 地点如果你添加卫星资源 文件,它不会导致 重新编译资源,但 ASP.NET应用程序将重新启动。

    因此,似乎真的该由编程团队来权衡每种方法的优缺点,并选择对它们有利的方法。

        2
  •  15
  •   user74207    17 年前

    Joe90-我不得不说,以我的经验,我不同意管理分散在整个项目中的大量本地资源文件比管理一个全局资源文件更容易。没有什么可以阻止同样的翻译一次又一次的重复,而且很难找到它们。访问全局资源文件非常容易在团队内进行协调,多个用户可以一眼看到他们所需的翻译是否已经完成。

    我从与Lea完全相同的策略开始—即,从本地资源文件开始,然后将其移动到全局资源文件(如果它被多次引用)。这很快就成了管理的麻烦,从那以后我每次都开始使用全局资源文件。

    微软似乎没有任何明确的指导方针来说明最佳实践是什么,甚至没有明确的指导方针来说明这两种方法是如何实现的,这样我们就可以大胆猜测了!

    我是 猜测 比较/回报是,本地资源文件只需要重新编译与之相关的文件,而更改全局资源文件似乎需要重新编译整个网站-固有的会话状态丢失等。因此需要在更新期间使网站脱机以确保安全。

        3
  •  7
  •   Anders Lundsgard    15 年前

    合并这个大的resx文件的问题在我看来应该不是问题。

    如果你有10个开发人员自己在网站上设置语言,你如何在网站上获得统一的表达方式?开发人员往往擅长代码而不是语法表达。(我自己也是一名开发人员。)

    语言专家应该编辑resx文件并为开发人员锁定它!

        4
  •  2
  •   Michael Urvan    14 年前

    全局资源文件是翻译的最佳方法。关键是使用命名约定,如字符串名称前几个字母的页面名称缩写,这样您就可以轻松地定位每个网页的资源。试图在多个页面上重复使用许多短语会给翻译人员带来更多的困惑。

    您可以通过使用缺少页面命名约定(前几个字母没有页面名称缩写)来定义任意多或少的可恢复短语,如Yes、No、BTN_OK、BTN_Cancel、QTN_AreYouSure等。RESX的大多数行都是特定于每个页面的,您不应该集中精力尽可能多地重复使用。在需要时使用文本查找/替换,可以在几分钟内小心地在整个文件中更改一个短语。

    推荐文章