MVC中划分资源文件的最佳实践

Best practice to divide Resource files in MVC

感谢这篇文章,我设置了 MVC 站点并准备​​好使用多语言:http://www.ryadel.com/en/setup-a-multi-language-website-using-asp-net-mvc/

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

如有任何意见,我们将不胜感激

唯一的答案是"it depends"。如果文本总数很少,那么您可能只需要每种语言 1 个 resx 文件。如果它变得太乱/太大,将它们分成逻辑单元。

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

免责声明:基于我自己的经验;

短篇小说:只使用一个文件,在处理非visual-studio、非xml-translators

时开销较小

我曾经把表格、页面等拆分成多个文件。

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

好处是您没有包含各种密钥的大文件。您的文件很短,发现未使用的密钥相对容易。

但是...

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

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

随着项目的发展,密钥会来来去去。因此,在项目开发过程中同步所有密钥并不是最高优先级;缺少的键将默认为默认语言。更糟糕的是,在测试版或升级期间,您会发现需要付出一些努力来进行一些初始翻译,这些翻译会随着时间的推移而改变或变得过时。

所以,一如既往:变化终将到来

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

每个文件

  • 从目标语言中删除所有键(以删除未维护的过时键)
  • 将密钥复制到 excel
  • 复制通用翻译到excel文件
  • 以某种方式构建它,以便您可以将它传回目标 resx 文件
  • 将文件发送给译员并在等待回复时喝杯咖啡
  • 将翻译复制到每个 resx 文件中

那就大功告成了。

所以,厌倦了所有 copy/pasting,我最近做了以下事情:

使用前缀定位页面;例如:HOME_Title 并将所有内容放在一个文件中。

翻译过程现在简化为:

一 (1) 个文件

  • 删除外语文件的所有密钥以摆脱过时的密钥。
  • 将密钥和通用翻译复制到 excel(一个操作)
  • 将文件发送给译员,在等待回复时尝试喝茶换口味
  • 将翻译复制到您巨大的 resx 文件中。

对我来说,这样效果更好,因为我不关心文件有多大,实际上我发现翻译过程更有条理。译者可能需要更长的时间,因为 he/she 在进行较小的更改时需要处理更多的键。但是如果你愿意,你可以按前缀处理这个。此外,有时更多的上下文会导致更好的翻译。通常译者与产品有一定的关系。

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