Asp.net mvc 在MVC中划分资源文件的最佳实践

Asp.net mvc 在MVC中划分资源文件的最佳实践,asp.net-mvc,resx,Asp.net Mvc,Resx,多亏了这篇文章,我获得了MVC站点设置并可以使用多种语言: 划分资源文件的最佳做法是什么?我应该在每种语言中使用一个大型资源文件,还是应该在我使用的每一页中使用一个资源文件 欢迎发表任何评论唯一的答案是“视情况而定”。如果文本的总数很小,那么您可能只需要每种语言一个resx文件。如果它变得太乱/太大,则将它们拆分为逻辑单元 在过去,我使用了1套文件用于一般文本(提交、确定、取消、登录、搜索、错误),1套文件用于领域特定文本(客户、产品、购物篮、售罄、付款)。第一组文件可能会被其他项目重用。免责声

多亏了这篇文章,我获得了MVC站点设置并可以使用多种语言:

划分资源文件的最佳做法是什么?我应该在每种语言中使用一个大型资源文件,还是应该在我使用的每一页中使用一个资源文件

欢迎发表任何评论

唯一的答案是“视情况而定”。如果文本的总数很小,那么您可能只需要每种语言一个resx文件。如果它变得太乱/太大,则将它们拆分为逻辑单元

在过去,我使用了1套文件用于一般文本(提交、确定、取消、登录、搜索、错误),1套文件用于领域特定文本(客户、产品、购物篮、售罄、付款)。第一组文件可能会被其他项目重用。

免责声明:根据我自己的经验

短篇故事:仅使用一个文件,在处理非visual studio、非xml转换器时,它的开销较小

我曾经将表单、页面等拆分成多个文件

起初,这似乎是给这些文件提供一点结构的好方法:一页,一个文件

好处是您没有包含所有类型密钥的大文件。你有很短的文件,它相对容易发现未使用的关键点

但是

即使在更大的项目中,对我来说这也很难管理。让我解释一下

通常情况下,我不会自己做所有的翻译。当然,我可以处理我的母语和拼写检查,我的英语并不糟糕。但是当涉及到(对我来说)外语时,通常会有另一个人替我翻译此人并不总是有visual studio经验,也不知道如何处理任何类型的XML格式(就像
resx
文件一样)

当一个项目发展时,关键点会来来去去去。因此,在项目开发过程中同步所有关键点并不具有最高优先级;缺少的键将默认为默认语言。更糟糕的是,在beta版或升级版期间,您会发现一些初始翻译会随着时间的推移而改变或变得过时

所以,像往常一样:变化会到来

现在,为了管理这些更改,如果我使用单独的文件,我需要执行以下操作来获得翻译。注;翻译人员没有visual studio或xml经验

对于每个文件

  • 从目标语言中删除所有键(以删除未维护的过时键)
  • 将键复制到excel
  • 将常用翻译复制到excel文件
  • 以某种方式构造它,以便可以在目标resx文件中通过它
  • 将文件发送给翻译,在等待回复的同时喝点咖啡
  • 将翻译复制到每个resx文件中
那你就完了

因此,厌倦了所有的复制/粘贴,我最近做了以下工作:

使用前缀以页面为目标;e、 g.:
HOME\u Title
并将所有内容放在一个文件中

翻译过程现在简化为:

一(1)份文件

  • 删除外文文件的所有键以删除过时的键
  • 将键和常用翻译复制到excel(一个操作)
  • 将文件发送给翻译人员,并在等待回复的同时尝试使用tea进行更改
  • 只需一个操作,即可将翻译复制到您庞大的
    resx
    文件中
对我来说,这样做效果更好,因为我不在乎文件有多大,实际上我发现翻译过程更有条理。翻译人员可能需要更长的时间,因为他/她在进行小改动时需要处理更多的密钥。但是如果您愿意,可以按前缀处理此问题。此外,有时更多的语境会导致更好的翻译。通常情况下,译者与产品有一定的关系


所以,对我来说,我会把它们都放在一个文件中。

好的,谢谢。我已经在考虑将一般文本与更具体的文本分开。看起来我当时的想法是正确的。我忍不住为相反的解决方案提供了一些论据;-)