c# - 将 ASP.Net 网站翻译成另一种语言

标签 c# asp.net translation

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

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

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

剩下的数据(DB、XML等)都已经整理好了。

那么,有没有什么工具或方法可以像上面提到的那样,不花很多时间来提取所有文本? 提取的文本甚至不需要放在键/值对。我很乐意以简单的格式提取文本,每个文本由一个新行分隔。

如果有一种方法可以将翻译后的文本替换回其原始位置,那就太好了。但是,这不是必需的。我很乐意只提取所有内容。

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

非常感谢您。

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

最佳答案

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

在服务器上使用本地资源文件(在预设模式中实际上是 XML)可以避免每次加载页面时昂贵的数据库往返(尽管这可以通过输出缓存来缓解)并且非常容易发送您的短语进行翻译 - 所有短语都在一个地方,在同一个文件中。考虑到 .NET 的普遍性,正如您所期望的那样,有一系列工具可用于处理它们。甚至可以 translate a resource file using Bing to give your translator a head start .

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

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

如果您使用的是 ASP.NET Web 窗体,那么我肯定会赞同使用 Resharper to extract your strings to a named key for you 的建议。 , 但你应该知道它 cannot yet do this with Razor views如果您使用的是 ASP.NET MVC 或网页 - 尽管在 MVC 的情况下它仍会提供从模型中移动字符串的功能(并且确实鼓励您这样做)。

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

关于c# - 将 ASP.Net 网站翻译成另一种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16099234/

相关文章:

c# - session 超时与定时器

android - 使用 json 的泰卢固语文本

python - 字符串不会在 Django 中使用 Python 2.7 中可用的格式函数进行翻译

c# - 如何从数据集中分离不同表的数据?

c# - 将文件从一个 Azure 存储帐户复制到另一个 Azure 存储帐户

c# - 来自字符串的 DependencyProperty

c# - MyApp.vshost.exe 应该与 MyApp.exe 一起分发吗?

asp.net - asp.net 中的身份验证 Cookie

asp.net - Twilio 回调在我的 .NET 服务中不起作用

Django 翻译 : msgfmt: command not found