尽管您当前要求该网站仅翻译成西班牙语,但您永远无法知道您未来对其他语言的要求 - 由于这个和其他原因,默认的 ASP.NET 键/值对资源文件解决方案非常有意义。
在服务器上使用本地资源文件(在预设模式中有效地是 XML)可以避免每次页面加载时昂贵的数据库往返(尽管这可以通过输出缓存来缓解),并且可以很容易地发送你的短语用于翻译 - 所有短语都在同一个文件中的一个位置。鉴于 .NET 无处不在,有一系列工具可用于处理它们。甚至可以使用 Bing 翻译资源文件,让您的翻译人员抢占先机。
考虑到在多个上下文中使用相同字符串的问题(可能需要或有必要为每个上下文以不同方式翻译文本 - 单词并不总是共享),使用键而不是匹配字符串文字很有意义不同语言中相同的可能含义)或大写等问题,您可能希望相同的字符串具有不同的大小写(尽管这在编程上不应该是一个不可克服的问题)。
最后,使用 ASP.NET 中的内置本地化 API 可以轻松地根据用户在其计算机上选择的区域设置更改语言和 UI(例如日期格式) - 并由浏览器在请求标头中发送。一位说西班牙语的访问者出现在您的网站上,并且它已经是西班牙语 - 无需寻找控件以根据标志或下拉列表更改语言。如果需要,这可以由您手动设置或覆盖,当然仅当您的站点具有适合该语言环境的资源文件时才适用,但这是一个非常强大的开箱即用功能。
如果您使用的是 ASP.NET Web 窗体,那么我肯定会推荐使用Resharper 为您提取字符串到命名键的建议,但您应该知道,如果您使用的是 ASP ,它还不能使用 Razor 视图执行此操作。 NET MVC 或网页 - 尽管在 MVC 的情况下它仍会提供从模型中移动字符串(并且确实鼓励您这样做)。
最后,请注意本地化不仅仅是语言——您的用户可能会使用不同的日期、数字、电话号码格式,甚至在某些情况下会使用不同的文本方向。这可能不适用于您的项目,但肯定需要注意。