我需要将用英语制作的网站翻译成西班牙语(不需要多语言支持)。该网站将仅以西班牙语使用,因此无需费心实施“资源”或本地化。
需要翻译的文本分为两个部分:
其余的数据(数据库,XML等)已经整理好了。
如上所述,提取所有文本的工具或方法是否非常耗时? 提取的文本甚至不需要在键/值对。我很乐意以简单的格式提取文本,每个文本都以新行分隔。
将翻译后的文本替换回原来的位置会更好。但是,这不是必需的。我很乐意将所有内容都提取出来。
请尽量坚持按原样回答问题(例如,使用Google显示网站翻译版本等解决方案并没有真正帮助!)。
提前非常感谢你。
(这是一个用C#编写的代码隐藏的ASP.Net网站)
答案 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的情况下提供从模型中移动字符串(并且确实鼓励你这样做)。
最后,请注意本地化不仅仅是语言 - 在某些情况下,您的用户可能会对日期,数字,电话号码甚至不同的文字方向使用不同的格式。这可能不适用于您的项目,但肯定需要注意。