将ASP.Net站点翻译成另一种语言

时间:2013-04-19 07:14:55

标签: c# asp.net translation

我需要将用英语制作的网站翻译成西班牙语(不需要多语言支持)。该网站将仅以西班牙语使用,因此无需费心实施“资源”或本地化。

需要翻译的文本分为两个部分:

  • HTML页面中的静态
  • 代码隐藏,例如错误消息等。

其余的数据(数据库,XML等)已经整理好了。

如上所述,提取所有文本的工具或方法是否非常耗时? 提取的文本甚至不需要在键/值对。我很乐意以简单的格式提取文本,每个文本都以新行分隔。

将翻译后的文本替换回原来的位置会更好。但是,这不是必需的。我很乐意将所有内容都提取出来。

请尽量坚持按原样回答问题(例如,使用Google显示网站翻译版本等解决方案并没有真正帮助!)。

提前非常感谢你。

(这是一个用C#编写的代码隐藏的ASP.Net网站)

1 个答案:

答案 0 :(得分:0)

尽管您目前要求网站仅翻译成西班牙语,但您永远不会知道您对其他语言的未来要求 - 默认的ASP.NET键/值对资源文件解决方案因此及其他原因而非常有意义。

在服务器上使用本地资源文件(在预先设置的模式中实际上是XML)可以避免每次加载页面时往返数据库的成本高昂(尽管可以通过输出缓存来减轻这种情况),并且很容易发送您的短语进行翻译 - 所有短语都在一个地方,在同一个文件中。有了一系列工具可以与它们一起工作,正如您所期望的那样,无处不在的.NET。甚至可以translate a resource file using Bing to give your translator a head start

在多个上下文中使用相同字符串的问题时,使用键而不是匹配字符串文字会很有意义(对于每个上下文,以不同方式翻译文本可能是必要的或必要的 - 单词don&# 39; t总是在不同的语言中共享相同的可能含义)或像大写一样的问题,你可能想要使用不同大小写的相同字符串(尽管这不应该是编程上不可逾越的问题)。

最后在ASP.NET中使用内置的本地化API使得根据用户在其计算机上选择的语言环境更改语言和UI(例如日期格式)变得微不足道 - 并且在请求标头中由浏览器。一个说西班牙语的访问者出现在您的站点,它已经是西班牙语 - 无需根据标志或下拉列表寻找控制权来更改语言。如果需要,这可以由您手动设置或覆盖,当然只有在您的网站 适合该区域设置的资源文件时才适用,但这是一个非常强大的功能,可用于开箱即用。

如果您使用的是ASP.NET Web窗体,那么我肯定会推荐使用Resharper to extract your strings to a named key for you,但如果您使用的是ASP.NET MVC或网页,则应该注意它cannot yet do this with Razor views - 虽然它仍然可以在MVC的情况下提供从模型中移动字符串(并且确实鼓励你这样做)。

最后,请注意本地化不仅仅是语言 - 在某些情况下,您的用户可能会对日期,数字,电话号码甚至不同的文字方向使用不同的格式。这可能不适用于您的项目,但肯定需要注意。