3

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

需要翻译的文本位于两个位置:

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

其余数据(DB、XML 等)已经整理好。

那么,如上所述,是否有任何工具或方法可以不费时地提取所有文本? 提取的文本甚至不需要在键/值对中。我很乐意将提取的文本以一种简单的格式提取出来,每个文本都由一个新行分隔。

将翻译的文本替换回其原始位置的方法会很好。但是,这不是必需的。我很乐意只提取所有内容。

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

非常感谢你。

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

4

1 回答 1

0

尽管您当前要求该网站仅翻译成西班牙语,但您永远无法知道您未来对其他语言的要求 - 由于这个和其他原因,默认的 ASP.NET 键/值对资源文件解决方案非常有意义。

在服务器上使用本地资源文件(在预设模式中有效地是 XML)可以避免每次页面加载时昂贵的数据库往返(尽管这可以通过输出缓存来缓解),并且可以很容易地发送你的短语用于翻译 - 所有短语都在同一个文件中的一个位置。鉴于 .NET 无处不在,有一系列工具可用于处理它们。甚至可以使用 Bing 翻译资源文件,让您的翻译人员抢占先机

考虑到在多个上下文中使用相同字符串的问题(可能需要或有必要为每个上下文以不同方式翻译文本 - 单词并不总是共享),使用键而不是匹配字符串文字很有意义不同语言中相同的可能含义)或大写等问题,您可能希望相同的字符串具有不同的大小写(尽管这在编程上不应该是一个不可克服的问题)。

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

如果您使用的是 ASP.NET Web 窗体,那么我肯定会推荐使用Resharper 为您提取字符串到命名键的建议,但您应该知道,如果您使用的是 ASP ,它还不能使用 Razor 视图执行此操作。 NET MVC 或网页 - 尽管在 MVC 的情况下它仍会提供从模型中移动字符串(并且确实鼓励您这样做)。

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

于 2013-07-13T15:52:05.323 回答