首页 文章

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

提问于
浏览
11

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

  • 在我的网站上使用了第三方控件 . (适合我的设计 . 对于SEO的观点没有用 . 不想显示第三方品牌名称 . )

  • 为每种语言创建资源文件 . (重构页面以使用资源文件中的文本需要大量工作 . 用户输入的数据如“业务描述” . )

Are there any Other options available.
我想的是一个解决方案,比如在服务器端创建页面然后我可以在发送回客户端之前翻译它 . 有什么方法可以做到吗?(翻译所有内容,包括从数据库或通过代码添加的数据 . 并且不影响设计 . )

9 回答

  • 15

    如果你真的需要翻译你的应用程序,那将需要做很多艰苦乏味的工作 . There is no magic bullet.

    您需要做的第一件事是将标记中的纯文本转换为asp:Localize控件 . 通过使用Localize控件,您可以保留现有的 <span> 标记,只需替换它们内部的文本即可 . 有's really no way around this. Visual Studio'的搜索和替换支持正则表达式匹配,可以帮助您,或者您可以使用Resharper(见下文) .

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

    或者,如果要使用资源文件,除了Visual Studio之外,我还建议使用两种工具:Resharper 5Localization Features screencast)和Zeta Resource Editor . 以下是使用此方法完成此操作所需的步骤:

    • 在visual studio中为每个页面使用"Generate Local Resource"工具

    • 在标记中的文本上使用Resharper的"Move HTML to resource"使其成为Localize控件 .

    • 使用Resharper搜索后面代码中的任何可本地化字符串,并将它们移动到资源文件中 .

    • 使用代码分析全球化规则/ FXCop帮助查找格式化数字,日期等可能遇到的任何其他问题 .

    • 一旦所有文本都在resx文件中,使用Zeta资源编辑器加载所有resx文件,添加新语言并导出以进行翻译(或者如果你足够勇敢则自动翻译) .

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

  • 1

    将页面转换为阿拉伯语或其他语言 .

    去 :

    1页设计

    2,工具

    3 - 生成本地资源

    4获取“App_LocalResources”包括“filename.aspx.resx”

    5复制文件并将名称更改为“filename.aspx.ar.resx”将页面转换为阿拉伯语或其他语言 .

    希望对你有帮助:)

  • -1

    我找到了一个很好的解决方案,请参阅http://www.nopcommerce.com/p/1784/nopcommerce-translator.aspx

    这个项目是开源的,源代码存储库在这里:https://github.com/Marjani/NopCommerce-Translator

    祝好运

  • 0

    为每种语言创建资源文件肯定会有更多的工作 - 但这是我可以选择的选项,因为它为您提供了更准确的机会 . 如果您这样做,您可以手动翻译由说该语言的人翻译的文本(有许多公司提供此类服务) .

    自动翻译系统通常很好地给出了对另一种语言的含义的一般印象,但是在尝试描绘专业图像时我永远不会使用它们,因为它们输出的内容通常没有意义 . 没有什么比'不专业'更尖叫!像文本一样没有意义,因为它已被自动翻译 .

  • 0

    我会将资源文件路由放在翻译选项上,因为语言中单词的含义可能非常具有上下文性,甚至一个错误也可能破坏您网站的可信度 .

    正如您所建议的那样,Visual Studio可以为包含文本的大多数控件生成元资源文件密钥,但可能需要手动完成其余操作,但我没有看到更简单,更可靠的解决方案 .

    我不认为本地化是一个易于自动化的事情,因为数据库中保存的文本经常导致模式更改以允许多种语言,并且Web HTML经常需要重组以处理截断或包装的标签和按钮文本,因为,例如,您已翻译成德语或其他东西 .

    其他考虑因素:文化设置 - 财务分隔符,日期格式 . 从右到左 - 阿拉伯语等一些语言是从右到左书写的,这意味着页面需要重新思考以控制图像等定位 .

    祝你好运 .

  • 0

    我最终以艰难的方式做到了:

    • 我在名为TranslateInto的字符串类上编写了一个扩展方法

    • 在Page的PreRender方法中,我根据类型(具有文本的类型)递归地获取所有控件

    • Foreach通过它们和text.TranslateInto(SupportedLanguages.CurrentLanguage)

    • 在我的TranslateInto方法中,我有一个非常大的switch语句,每个字符串都显示给用户及其相关的翻译 .

    它不是很漂亮,但它确实有效 .

  • 0

    一个大的开关盒?使用字典/哈希表(每种语言的单独实例),它更加有效和快速 .

  • 0

    我们使用名为MemoQ的翻译CAT工具(计算机辅助翻译),它允许我们翻译文本,同时保留所有标签和编码 . 当您从一种语言翻译成另一种语言时,单词的顺序会发生变化,这非常有用 .

    它也非常有用,因为它允许我们与来自世界各地的翻译人员合作,而无需他们拥有任何技术专业知识 . 它还允许我们由第二个翻译者阅读翻译证明 .

    我们使用这个翻译环境来翻译html,xml,InDesign,Word等 .

  • 1

    我想你应该试试谷歌翻译 .

    http://translate.google.com/translate_tools

    非常简单,非常有效 .

    HTH

相关问题