Web应用程序国际化,服务器端还是客户端?

kil*_*wuk 5 javascript asp.net server-side client-side internationalization

我们希望将Web应用程序国际化.是否最好输出翻译服务器端(用.net 4 C#编写)或客户端(Javascript)?

我们已经开始通过创建一个JS文件来实现客户端,这个文件包含一个包含英语短语作为键的对象(因此开发人员了解每个消息在上下文中的含义),其值是显示给客户端的字符串任何警报和提示.我们正考虑将其扩展到整个前端的所有措辞.

这是一个好主意还是最好在服务器端执行这种工作?

更新:包含它有助于摆脱争论,我们不会在我们的Web应用程序中大量使用服务器端控件,我们的大多数控件都是基于jQuery/JS的.

更新:此特定应用程序不公开可见(除了登录页面)因此SEO问题不适用.

Dan*_*iel 5

SEO明智,我建议做服务器端,并使应用程序在单独的URL下可用.

例如:

www.application/EN /

www.application/es/...


Paw*_*yda 2

国际化第一条规则:遵循标准方式。不要重新发明轮子。对于 Asp.Net,这意味着服务器端国际化。

嗯,有点像。如果您碰巧有大量动态创建的控件,您仍然需要一些客户端脚本的本地化机制。您可以集中它,即创建一个翻译字符串的全局数组和模型+控制器,这样您就可以通过 AJAX 调用填充它(尽管对于 JSON,X 最好用 J 替换...)。
无论如何,您的模型应该简单地从资源文件中检索适当的字符串,并且控制器应该将 JSON 提供给客户端(好主意是实际请求较小的块,即仅对给定视图/屏幕进行翻译,而不是对整个应用程序进行翻译)。

正如您所看到的,最好的是某种混合方法。出于多种原因,最好对整个应用程序使用一种本地化模型,即仅使用 *.resx 文件。
此外,国际化不仅仅是简单的字符串外部化......