如何用另一种语言翻译网站?(ASP .NET,c#)

Tas*_*han 11 c# asp.net localization internationalization

我开发了一个大型商业门户网站.我刚刚意识到我需要用另一种语言访问我的网站.我研究过像这样的解决方案

  • 在我的网站上使用第三方控件.(适合我的设计.对于SEO的观点没有用.不想显示第三方品牌名称.)
  • 为每种语言创建资源文件.(重构页面以使用资源文件中的文本需要大量工作.用户输入的数据如"业务描述".)
  • 还有其他选择吗?
    我想的是一个解决方案,比如在服务器端创建页面然后我可以在发送回客户端之前翻译它.有什么方法可以做到吗?(翻译所有内容,包括从数据库或通过代码添加的数据.并且不影响设计.)

    Gre*_*reg 15

    如果你真的需要翻译你的应用程序,那将需要做很多艰苦乏味的工作.没有灵丹妙药.

    您需要做的第一件事是将标记中的纯文本转换为asp:Localize控件.通过使用Localize控件,您可以保留现有<span>标签,只需替换它们内部的文本即可.真的没办法解决这个问题.Visual Studio的搜索和替换支持正则表达式匹配,可以帮助您解决此问题,或者您可以使用Resharper(参见下文).

    第一种方法是下载开源购物应用程序nopCommerce,看看他们如何处理他们的本地化.它们将字符串存储在数据库中,并具有用于编辑语言的UI.类似的方法可能适合您.

    或者,如果您想使用资源文件,除了Visual Studio之外,我还建议使用两种工具:Resharper 5(本地化功能截屏视频)和Zeta资源编辑器.以下是使用此方法完成此操作所需的步骤:

    1. 在visual studio中为每个页面使用"生成本地资源"工具
    2. 使用Resharper在标记中的文本"将HTML移动到资源",使其成为Localize控件.
    3. 使用Resharper搜索后面代码中的任何可本地化字符串,并将它们移动到资源文件中.
    4. 使用代码分析全球化规则/ FXCop帮助查找格式化数字,日期等可能遇到的任何其他问题.
    5. 一旦所有文本都在resx文件中,使用Zeta资源编辑器加载所有resx文件,添加新语言并导出以进行翻译(或者如果你足够勇敢则自动翻译).

    我已经在一个翻译成8种语言(并且正在增长)的网站上使用这种方法,其中包含数十页(并且还在增长).但是,这不是用户可编辑的网站; 这些页面完全由程序员控制.