我们使用的resx文件本地化我们的Web应用程序。当多个页面需要短语通常我们创建本地RESX文件(即映射到特定网页)时,只有一个页面使用了某些特定的词组,以及全球的RESX文件。点击  但对全球的resx文件的好处是,它们是一类,你可以调用短语,如调用类的属性:

Resource.UI.iNotFound

所以,我在想 - 为什么必须在所有地方的resx文件?为什么不使用为整个应用程序一个全球性的resx文件,这样避免调用不存在的短语运行时错误?

我敢肯定有应该是一个很好的答案,我只是不知道它是什么......

有帮助吗?

解决方案

我一直在寻找的指导方针,并发现这 MSDN

  

<强>选择全局和本地资源文件之间

     

您可以使用全球任何组合   在Web和本地资源文件   应用。一般情况下,加   资源全局资源文件   当你想共享资源   页面之间。在全球资源   资源文件也被强类型   当你要访问的文件   编程。

     

然而,全球的资源文件可以   变大,如果你存储所有   在他们的本地化资源。全球   资源文件也可以更   困难,如果一个以上的管理,   开发商正在不同   的网页,但在一个单一的资源文件中。

     

本地资源文件更容易   管理资源单个ASP.NET   网页。但你不能共享   页面之间的资源。另外,   您可以创建很多地方   资源文件,如果你有很多的网页   必须本地化为许多   语言。如果网站是用大   许多文件夹和语言,当地   资源可以迅速扩大   在组件的数目   应用领域。

     

当您更改到一个默认的资源文件,   无论是本地或全局,ASP.NET   重新编译的资源并重新启动   ASP.NET应用程序。这个可以   影响整体性能的   现场。如果添加的卫星资源   文件,它不会导致   资源的重新编译,但   ASP.NET应用程序将重新启动。

如此看来,这真的取决于编程团队权衡每种方法的利弊,选择什么是对他们有好处。

其他提示

Joe90 - 我必须说,在我的经验,我不能同意,管理大量的遍布整个项目的本地资源文件要比管理一个全球资源文件更容易。没有什么可以一次又一次地停止同翻译的重复,他们都非常难以追查。进入全球资源文件是一个团队和多个用户中很容易统筹一眼就能看他们是否需要翻译已经完成看看。

我开始了与完全相同的政策LEA - 即开始与当地的资源文件,然后如果它被引用多次提出这个全局资源文件。这很快就成了麻烦的负荷管理和因为我已经搬到利用全球资源现在每次文件。

有似乎不被微软作为最佳实践是什么,甚至,这两种方法是如何实现的,这样我们就可以大胆地猜测任何明确的准则!

我的猜测的比较/回报是本地资源文件只要求它们与文件重新编译到,而不断变化的全球资源文件似乎需要整个网站的重新编译 - 与会话状态等的固有损耗,从而需要在更新过程中的站点脱机是安全

我有至少10名开发人员在一个单一的产品开发团队,我们使用的是一个全球性的resx为每个站点。

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

如果你有10个开发谁自己设置的语言在网站上,你如何获得一个统一的方式来表达自己的网站上?开发商往往倾向于善于代码,而不是语法表达。 (我是显影剂自己。)

一个语言专家应该修改的resx文件,并将其锁定为开发商!

一个全局资源文件是用于翻译的最佳方法。关键是使用的命名惯例,像页面名称缩写字符串名称的前几个字母,让你可以轻松地找到每个网页的基础资源。试图重复使用多个页面许多短语将导致更多的混乱的翻译。

您可以通过使用缺少页面命名约定的(没有页面名称缩写的前几个字母)作为多可少,只要你想,就像是,否,BTN_OK,BTN_Cancel,QTN_AreYouSure等可重复使用定义短语。大多数的RESX的一条是具体到每一个页面,你不应该集中在试图重新使用尽可能多地。改变整个文件中的一个短语可以仔细分钟,同时使用文本查找/必要时更换完成。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top